# How to Format a Blog Post in Your CMS: Headings, Lists, and Tables

> Format a blog post in your CMS with real structure: heading rules, lists, tables with header rows, a before-and-after markup example, and a two-minute check.

Canonical: https://www.getdexseo.com/blog/cms-publishing/format-blog-post-cms/
Author: Dex SEO, Editorial team
Published: Oct 21, 2026 · Updated: Oct 21, 2026

## Key takeaways

- Keep the title as the only H1; start the body at H2.
- Make steps and options real List blocks, not typed numbers.
- Give tables a header row and few columns.

Formatting a blog post in a CMS means giving the text a structure the browser can read: real headings, real lists, and tables with a header row. How the page looks matters, but the markup underneath matters more. Screen readers, search engines, and your own theme all rely on it.

This guide covers the markup your editor produces, not writing style. You will learn the rules for headings, lists, tables, and emphasis, see a wrong and a corrected version of the same section, and finish with a two-minute structure check. For the steps around this task, see the [blog publishing guide](https://www.getdexseo.com/blog/cms-publishing/).

## Formatting means structure, not only looks

Two sections can look the same on screen and be built very differently. One uses a Heading block. The other uses a bold paragraph in a larger font. A visitor scanning the page may not notice. A screen reader user will. They often move through a page by jumping from heading to heading. A bold paragraph is not a heading, so it is skipped.

The W3C’s [headings tutorial](https://www.w3.org/WAI/tutorials/page-structure/headings/) explains that headings communicate how content is organized, and that people use them to navigate. The same idea applies to lists and tables. Use the element that matches the meaning, then style it if needed.

## Headings: one H1, H2 for sections, H3 inside an H2

Most WordPress themes print the post title as the page’s H1. That means the body should start at H2.

-   **H1:** the title field only. Do not add another H1 in the body.
-   **H2:** each main section of the post.
-   **H3:** a subsection inside an H2. Do not use H3 directly under the title.
-   **Never use bold text as a heading.** If it names a section, make it a Heading block.

Pick a heading level for its place in the outline, not its size. If an H3 looks too large or small, change the theme style, not the level.

## Lists: ordered vs unordered

Use a numbered list when the order matters, such as steps in a task. Use a bulleted list when it does not, such as a set of options. In the block editor, both come from the List block. You can switch between them in the block toolbar.

Lists typed by hand cause the most trouble. A paragraph that starts with “1.” or “-” is still a paragraph. This often happens when text comes from another app. If your draft came from a doc, the [Google Docs to WordPress guide](https://www.getdexseo.com/blog/cms-publishing/google-docs-to-wordpress/) shows how to catch these after you paste.

Keep list items short and parallel. If each item needs several sentences, a set of H3 sections may work better.

## Tables: when to use one and how to keep it readable

Use a table when readers need to compare items across the same set of attributes. Do not use a table to lay out the page.

-   **Add a header row.** In the Table block settings, turn on the header section. The W3C’s [tables tutorial](https://www.w3.org/WAI/tutorials/tables/) explains why header cells help people understand the data.
-   **Keep columns few.** Three or four columns usually fit a phone. Six rarely do.
-   **Keep cells short.** Long sentences in cells make tables hard to scan on any screen.
-   **Avoid merged cells** unless the data truly needs them.

## Emphasis, quotes, and callouts

Use bold for a key term or warning inside a sentence, not for whole paragraphs. Use the Quote block only for quoted words from a source. If you want a highlighted tip, use a block your theme supports, such as a group with a background, but keep the text inside a normal paragraph.

Captions belong under images, not in separate bold lines. If the image needs a credit, the [image attribution guide](https://www.getdexseo.com/blog/cms-publishing/image-attribution-blog/) shows where to place it.

## Worked example: wrong markup vs corrected markup

_Fictional example._ A section from an imaginary gardening blog, as first entered and after correction:

| Element | Wrong markup | Corrected markup |
| --- | --- | --- |
| Section title | `<p><strong>Watering seedlings</strong></p>` | `<h2>Watering seedlings</h2>` |
| Steps | Three paragraphs starting “1.”, “2.”, “3.” | One `<ol>` with three items |
| Subsection | `<h4>` chosen because it looked smaller | `<h3>` under the H2 |
| Comparison | Table with no header row | Table with a header row |
| Tip | Whole paragraph in bold | Normal paragraph with one bold term |

The corrected version looks almost the same in the browser. The difference is that every element now says what it is.

## Two-minute structure check before saving

Run this check on every post before you publish or [schedule it](https://www.getdexseo.com/blog/cms-publishing/schedule-post-wordpress/):

| Element | What to check | How |
| --- | --- | --- |
| Headings | No H1 in the body; no skipped levels | Open List View or the outline panel |
| Fake headings | No bold paragraphs acting as titles | Scan List View for short Paragraph blocks |
| Lists | Steps and options are List blocks | List View shows List, not Paragraph |
| Tables | Header row on; few columns | Table block settings, then preview |
| Emphasis | Bold used for terms, not whole blocks | Read the preview |

The outline panel in the block editor also lists your headings, which makes skipped levels easy to spot. Then check the preview on a small screen, where tables cause most problems.

Formatting is one step of the release, not the last one. Make sure the right person signs off, using the access rules in the [WordPress user roles guide](https://www.getdexseo.com/blog/cms-publishing/wordpress-user-roles/). If a scheduled post with clean formatting still fails to appear, the cause is elsewhere; the [missed schedule guide](https://www.getdexseo.com/blog/cms-publishing/wordpress-missed-schedule/) covers that case.

## Confirm the markup in the code editor

List View shows block types. The code editor shows the actual HTML. Use it when something looks right but behaves oddly.

1.  Open the Options menu (the three dots at the top right of the editor).
2.  Choose Code editor. On most keyboards, the shortcut is Ctrl+Shift+Alt+M, or Cmd+Shift+Option+M on a Mac.
3.  Search the text for `<h2`, `<ul`, `<ol`, and `<table`. Each one should match what you expect.
4.  Look for `<strong>` wrapped around a whole line. That is often a fake heading.
5.  Switch back to the Visual editor before you keep writing.

You do not need to edit the HTML by hand. Fix the problem with blocks, then check the code view again.

## Where DEX fits

DEX publishes approved articles through the connected CMS and then checks the live page. Its Health page check reports on-page issues, including heading structure, on a single URL. It does not replace reading your own preview, but it gives you a second look after release.

## Formatting checklist

1.  Keep the title in the title field; start the body at H2.
2.  Use H3 only inside an H2, chosen for outline, not size.
3.  Make steps and options real List blocks.
4.  Give tables a header row and keep columns few.
5.  Use bold for terms, quotes for quotes, captions for images.
6.  Check List View and the preview before saving.

## FAQ

### Should my blog post body have an H1?

Usually not. Most themes print the post title as the H1, so start body sections at H2.

### Can I use bold text as a heading?

No. Bold text looks like a heading but is still a paragraph. Use a Heading block.

### How many table columns fit on a phone?

Three or four columns usually fit. Wider tables often force sideways scrolling.

## Sources

- [Headings tutorial](https://www.w3.org/WAI/tutorials/page-structure/headings/) — W3C WAI
- [Tables tutorial](https://www.w3.org/WAI/tutorials/tables/) — W3C WAI
- [List view](https://wordpress.org/documentation/article/list-view/) — WordPress.org
