Phase 2 · Foundation

Heading HTML Tags
(Fix / Improve)

Fix heading tag hierarchy across the site — missing H1s, multiple H1s, skipped levels, and heading tags used for visual styling rather than document structure.

Phase 2 — Foundation  |  Frequency: As identified  |  Duration: ~4 hrs per domain  |  Deliverable: Fixed heading structure sitewide

Overview

What it involves

Work through heading tag issues identified in the tech audit or a fresh Screaming Frog crawl. Issues fall into four categories: missing H1s (page has no H1 at all), multiple H1s (page has more than one H1), skipped levels (H1 to H3 with no H2), and decorative abuse (H4 or H2 used to make text big, not to mark a section). Fix per page where possible; fix at the CMS theme level where the issue is sitewide.

Why it matters

Heading hierarchy is how search engines parse page structure and understand topical relevance. Screen readers also use headings for navigation — broken hierarchy is an accessibility issue. Sitewide fixes (a theme using H2 where H1 belongs) are particularly high-leverage: one template change cascades across hundreds of pages instantly.

Crawl for Heading Issues

Run a heading-focused crawl in Screaming Frog

Open Screaming Frog, enter the client domain, run a full spider crawl.

After the crawl completes, use the H1 tab and H2 tab in the top filter bar to view heading data.

Key exports to pull

  • H1: filter by "Missing" — pages with no H1 tag
  • H1: filter by "Multiple" — pages with more than one H1
  • H2: filter by "Missing" — pages with no H2 (potential skipped-level indicator)
  • Bulk Export → All H1s and Bulk Export → All H2s (every heading with its page URL for review)

Save all exports dated to the client folder on Drive.

Missing & Multiple H1s

Fix missing H1s

For each page in the "Missing H1" list, open the page in the CMS and identify what should be the H1 — the main topic of the page. On a service page, this is the service name. On a location page, it is the location + service.

Check the keyword map for the target keyword assigned to this page. The H1 should contain that keyword naturally.

Rules for the H1

  • The H1 should not be identical to the meta title, but it should contain the same core keyword
  • Edit the main heading element to H1 in the CMS. Save and publish.
  • If the CMS has no heading option (some page builders use "Title" fields that don't output an H1 tag): escalate to the dev team — this is a template issue

Fix multiple H1s

For each page in the "Multiple H1" list, open the page in the CMS. Check each H1 and decide which one should be the H1.

Rule: the H1 is the single headline that describes the page's topic. There is exactly one per page.

Demote all other H1 tags to H2 or H3 as appropriate.

Common cause: A CMS theme that wraps the site name or navigation label in H1 on every page. If this is the cause — it is a theme-level fix (see Step 5), not a page-by-page fix.

Skipped Heading Levels

Fix skipped heading levels

A skipped level means H1 → H3 with no H2, or H2 → H4 with no H3. This breaks document structure.

Work through pages where H2 is missing but H3 tags exist (these are likely skips). For each skipped section: either add the missing intermediate heading, or change the lower-level heading up to fill the gap.

Example fix

  • Page has H1 "Pergola Installation Melbourne" then immediately H3 "Our Process"
  • Fix: change H3 to H2, since it's a direct sub-section of the H1
Important: Do not add heading levels just to fill a gap — if there's genuinely no section that needs a H2, the H3s are wrong and should be H2s.

Decorative Heading Abuse

Fix decorative heading abuse

Heading tags used purely for visual size (not document structure) need to be converted to styled spans or paragraph elements.

Look for H4 or H5 tags on the page. Open DevTools → Elements. Check whether these mark genuine sub-sections or are just being used to make text slightly bigger.

If decorative — change to

  • A <p> with a CSS class, or a <span> styled in the CMS
  • This is often a template or page-builder block setting — not a raw code edit
Common example: A "Did you know?" callout box using an H3 for its heading. This isn't a section of the document — it's a visual callout. Change to a styled paragraph element.

CMS Theme Fixes

Fix sitewide issues at the theme level

If Screaming Frog shows the same H1/H2 issue across every page on the site, it is almost certainly a theme issue.

Common scenario & fix

  • WordPress theme wraps the site-wide header logo text in an H1 — every page gets two H1s
  • Fix: in the theme template file (or via CMS theme settings), change the site title tag from H1 to a styled span or div
  • The site title in the header does not need to be an H1

After any theme change: re-crawl to confirm the issue is resolved sitewide before logging it as done.

Note the theme fix in the Zoho comment so it's clear the change applied across all pages simultaneously.

Verify & Log

Re-crawl and verify

After all fixes, re-crawl the site.

Pass criteria

  • H1 "Missing" count is zero for indexable pages
  • H1 "Multiple" count is zero
  • No skipped levels remain

Export the post-fix H1 and H2 reports and save alongside the pre-fix exports.

Log in Zoho: number of pages fixed, whether a theme-level fix was applied, time logged.

Standards

Completion checklist

  • Zero missing H1s on indexable pages
  • Zero pages with multiple H1s
  • No skipped levels (H1→H3 without H2, etc.)
  • H1 on each page contains the target keyword from the keyword map
  • H1 and meta title are distinct (not identical)
  • Theme-level fixes noted in Zoho so it's clear the change is sitewide
  • Pre- and post-fix exports saved to client Drive folder

Mistakes

Common mistakes to avoid

Mistake What goes wrong Correct approach
Fixing H1s page-by-page when the cause is a theme template You spend 4 hours editing individual pages when one template change would fix all of them simultaneously. Check Screaming Frog first — if the same issue appears on every page, it's a theme fix.
Making the H1 identical to the meta title They should both contain the keyword but serve different purposes. Identical H1 and title is a missed opportunity — the H1 is for the page visitor, the title is for the search result. Write each independently. Same keyword, different phrasing.
Adding heading levels just to avoid skipping If there's no meaningful sub-section, don't invent a heading to fill the gap. Fix the level of the existing heading (promote H3 to H2) rather than adding an empty intermediate heading.
Leaving decorative H-tags as-is because "they're minor" Over a 50-page site, 20 decorative H3s dilute the heading structure and confuse both screen readers and search engines. Convert decorative heading tags to styled <p> or <span> elements.
Not re-crawling after fixes CMS page builders sometimes revert changes or apply a template override that cancels your edit. Always re-crawl after fixes and compare the post-fix report to the pre-fix report.