javascript content not indexed

The page is indexed, but the part that matters is missing from search results — the product description, the specifications, the reviews. The page exists; its content does not, as far as search engines are concerned.

This is almost always a rendering problem, and it is diagnosable in a couple of minutes.

Establish what is actually received

Three views of the same page, and the differences between them are the diagnosis:

  • View source — the initial HTML the server sent.
  • Inspect element — the DOM after your browser executed everything.
  • URL Inspection in Search Console — what Google actually rendered.

If content appears in the second but not the first, it is JavaScript-dependent. If it appears in the second but not the third, rendering is failing for Google specifically — which is the more serious finding. See rendered HTML SEO audit.

Why content fails to render

It requires an interaction

Content behind a tab, an accordion, a “read more” toggle or a modal that loads on click. Crawlers do not click. If the content is only fetched on interaction, it is never fetched.

Content merely hidden by CSS but present in the DOM is fine. The distinction is whether it exists before the interaction.

It depends on scrolling

Lazy-loaded content triggered by scroll position. Crawlers do not scroll in the way a person does. See lazy loading and SEO.

A resource is blocked

If the JavaScript or API endpoint that produces the content is disallowed in robots.txt, rendering cannot complete. This is a common and easily missed cause. See robots.txt.

The request fails or times out

Content fetched from an API that is slow, rate-limited or erroring during rendering. It works when you test it and fails under crawl conditions.

It renders too late

Rendering does not wait indefinitely. Content arriving after several chained requests may not be captured.

Fixing it

  • Put critical content in the initial HTML. Server-side rendering or static generation removes the entire problem. See SSR vs CSR.
  • Render content that is hidden, rather than fetching it on interaction. Tabs and accordions are fine if the content is in the DOM.
  • Unblock rendering resources in robots.txt.
  • Reduce dependency chains so content does not require several sequential requests.
  • Do not rely on the sitemap to compensate — it affects discovery, not rendering.

Frequently asked questions

Does hidden content count?

Content in the DOM but visually hidden is generally indexed. Content not in the DOM until an interaction is not.

How long does Google wait to render?

There is no published figure, and rendering is queued separately from crawling, so JavaScript-dependent content is always processed later than server-rendered content.

Why does it work in my browser?

Your browser has a fast connection, a warm cache and unlimited patience. Rendering at scale has none of those.

Is React or Vue a problem?

Not inherently — how they render is what matters. See React SEO.

Consulting CTA

If your content is not appearing in search despite the page being indexed, book an SEO consultation.