Go-Live Clearance

On-page SEO · Heading structure

H1 Tag Checker

The <h1> tag tells search engines and screen readers: this is the primary topic of this page. Missing or muddled H1s cost you rankings and accessibility score. Paste your URL and we check for missing, empty, or problematic H1 tags, then stamp CLEARED / HOLD / DENIED.

H1 issues we catch

These are common on JS-heavy SPA shells, template-based sites, and pages where the logo image replaced the heading.

  • No <h1> found on the page

    Without a clear H1, crawlers and users lack a primary topic anchor. Common on React/Vue shells that render headings client-side, or templates that use a logo image instead of text.

  • Empty <h1></h1> tags

    The tag exists but has no text content — often a hydration bug or a template variable that resolves to an empty string. Same SEO impact as missing entirely.

  • H1 rendered as an image

    Some templates use <h1><img src='logo.png'></h1>. Search engines can't read the image text. Use a text H1 and visually style it instead.

  • Client-side rendered H1 not in initial HTML

    If the H1 only appears after JavaScript hydration, crawlers that don't execute JS see an empty page. SSR or SSG solves this.

  • Multiple H1 tags with competing topics

    Modern HTML permits more than one H1, but repeated page-level headings often signal a template problem. Keep one unambiguous primary topic unless the document structure genuinely requires otherwise.

Copy-paste H1 fixes

One clear, descriptive H1 per page — rendered in the initial HTML, not injected by JS.

Next.js page component

export default function Page() {
  return (
    <main>
      <h1>Your product does X for Y</h1>
    </main>
  )
}

Plain HTML

<main>
  <h1>Your product does X for Y</h1>
  <p>Supporting content goes here.</p>
</main>

Server-rendered template (Thymeleaf)

<main>
  <h1 th:text="${heroHeadline}">Your product does X for Y</h1>
</main>

Provide heroHeadline from the homepage controller.

Still check by hand

  • Exactly one <h1> per page — not zero, not multiple
  • H1 must contain visible text (not just an image)
  • H1 should appear in the initial server-rendered HTML
  • Use H2-H6 for sub-sections, don't skip heading levels

Related