Internal links missing from raw HTML: a link graph Google discovers late
In brief
Your internal links (menu, footer, navigation) are injected by JavaScript and absent from the raw HTML: Google discovers them more slowly and AI systems that read raw HTML do not navigate your site. Render navigation server-side, with real a href tags.
What is it?
The page's internal links are injected by JavaScript, absent from the raw HTML.
Why it hurts SEO and AI
Internal linking guides Google's crawl: links invisible on the first pass slow down page discovery. AI systems that follow links in the raw HTML will not navigate your site.
When it is NOT a problem
- The main links (menu, footer, contextual links) are already in the raw HTML and only secondary links (filters, dynamic pagination) are injected via JS.
- Your XML sitemap already exposes every important URL: Google discovers them through that channel even without a link in the raw HTML.
- This is an internal app interface, not meant for crawling or indexing.
<!-- Raw HTML: empty navigation -->
<nav id="menu"></nav>
<!-- links added later by JS --><!-- Raw HTML: real links present -->
<nav id="menu">
<a href="/trail-shoes">Trail</a>
<a href="/road-shoes">Road</a>
</nav>Google and AI systems follow the a href tags in the raw HTML; an onclick or a JS router does not replace a real link.
How to fix it
- View the raw page source (Ctrl+U) and check that your menu, footer and navigation links appear there as a href tags.
- Render navigation server-side (SSR/SSG) instead of building it on client-side mount.
- Use real a tags with an href attribute, not div elements with an onclick handler.
- Re-crawl to confirm the links are 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?
Are your internal links in the source code, or only after JavaScript? Enter a URL: Seogard compares the raw HTML and the render and shows you the links Google does not see on the first pass. Free, no credit card.
- No credit card
- Result in ~30 s
What you get back
Smooth crawling and full site discovery by every machine.
Seogard catches this regression automatically — through its SSR checker.
Frequently asked questions
Does Google follow links added by JavaScript?
It may follow them on its second rendering pass, with a delay. Links present in the raw HTML are discovered immediately, on the first crawl.
Does an XML sitemap replace internal linking?
No. A sitemap helps discovery, but internal links also pass context and hierarchy between your pages, which a sitemap does not do.
Related rules
Updated July 10, 2026