Back to notes

July 27, 2026 · 6 min read

JavaScript SEO Still Breaks Crawlers in 2026, Here's Proof

Everyone assumes modern crawlers render JavaScript perfectly now. We found a client's critical content invisible to search engines for months, from a rendering gap most people think is a solved problem.

SEOTechnical SEO

The common wisdom is that Googlebot renders JavaScript well enough now that client-side rendering concerns are mostly a thing of the past. I believed a version of that too, until we found a client whose primary product descriptions — rendered client-side via a React component that fetched data after initial page load — simply weren't in Google's index at all, for a site that had been live for eight months.

Where the rendering actually broke

Googlebot does render JavaScript, using a headless Chromium instance, but rendering happens on a second, deferred pass after initial crawl, and it isn't unlimited or instant — Google's own documentation calls this the 'render queue,' and pages with a slow or failing render can sit in it far longer than people assume, or fail silently. In this client's case, the product data fetch depended on an API call with a timeout that occasionally failed under Googlebot's rendering conditions specifically, meaning the content that loaded fine for a human visitor on a real browser sometimes never loaded at all during Google's render pass.

Googlebot rendering JavaScript 'well enough most of the time' is not the same claim as 'reliably enough for your most important content,' and the gap between those two claims is where real traffic gets lost.

How we actually diagnosed and fixed it

  • Used Search Console's URL Inspection tool's rendered HTML view to directly compare what Googlebot's render pass actually saw against what a real browser rendered — the product descriptions were simply missing from Google's version.
  • Found the API dependency timing out intermittently specifically under the headless rendering environment's resource constraints, not under normal browser conditions.
  • Moved the critical product description content to server-side rendering so it was present in the initial HTML response, removing any dependency on the render queue succeeding at all.
  • Kept client-side rendering for genuinely non-critical interactive elements, where an occasional render failure wouldn't cost indexed content.

Within three weeks of shipping server-side rendering for the product descriptions, those pages started appearing in search results for terms they'd never ranked for in eight months live. 'Modern crawlers handle JavaScript fine' is true as a generalization and false often enough, in exactly the cases that matter most, that I treat any critical content as a server-side rendering requirement by default now rather than an exception.