JS-only H1: why AI systems don't see your main title
In brief
Your H1 is empty in the raw HTML the server sends and only appears after JavaScript runs: Google captures it only on its second rendering pass, with a delay, and generative engines almost never see it. Render the H1 server-side (SSR) so it is read on the very first crawl.
What is it?
The H1 is missing from the raw HTML sent by your server, but present after JavaScript loads.
Why it hurts SEO and AI
Google indexes the raw HTML first: your main title is only seen on the second rendering pass, with a delay of 24 hours to several weeks. Generative engines (ChatGPT, Perplexity, Claude) read almost exclusively the raw HTML — to them, this page has no title.
When it is NOT a problem
- The page is intentionally client-rendered and not meant to be indexed or cited.
- The H1 is present in the raw HTML and only a secondary subtitle is injected with JavaScript.
- You are on the very first crawl of a new page: Seogard does not alert without a baseline.
<!-- HTML returned by the server -->
<div id="app"></div>
<!-- the H1 appears after JavaScript hydration --><!-- HTML returned by the server -->
<main>
<h1>Men's trail running shoes</h1>
</main>On the left, the H1 depends on JavaScript; on the right, it is already in the raw HTML that Google and AI read first.
How to fix it
- View the page's real source (Ctrl+U, not the inspector) and look for the H1 tag.
- If the H1 is missing or empty, find the component that renders it client-side only.
- Render the H1 server-side (SSR or pre-render) so it sits in the response HTML.
- Re-crawl to confirm the H1 is present in the raw HTML.
This scan checks what is missing from the raw HTML but appears in the JavaScript render
Is this issue on your site?
Is your H1 in the raw HTML or only added by JavaScript? Enter a URL: Seogard compares what your server returns with what the browser renders. Free, no credit card.
- No credit card
- Result in ~30 s
What you get back
Google captures your title signal on the first crawl, and LLMs have a title to understand and cite the page.
Seogard catches this regression automatically — through its SSR checker.
Frequently asked questions
Does Google eventually see my JavaScript-injected H1?
Yes, on its second rendering pass, but with a variable delay: seconds at the median, much longer for crawl-budget-starved pages (raw HTML stays faster to crawl than JavaScript). Generative engines like ChatGPT or Perplexity almost never run it.
How do I know if my H1 is server-rendered?
View the source (Ctrl+U) without running JavaScript: if the H1 is already there and filled, it is server-rendered and readable by every engine on the first crawl.
Related rules
Updated July 10, 2026