Web Development
SEO & Search
Googlebot Grows Up: JavaScript SEO After the Evergreen Announcement
For years, every JavaScript SEO conversation we hosted carried an asterisk the size of a browser version. Googlebot rendered pages with Chrome 41, a browser released in 2015. Every JavaScript feature shipped since (modern syntax, newer APIs, the observers current frameworks assume) either needed transpiling and polyfills or silently vanished from Google’s view of the page, taking the content with it.
Diagnosing ‘why doesn’t Google see this content’ meant keeping a mental model of a four-year-old browser’s limits. The gap between what developers built and what the crawler saw widened with every framework release.
At I/O this month, the asterisk died. Google announced that Googlebot now runs an evergreen Chromium, permanently current with the stable release, updated continuously from here on. The feature-support mystery category is over. What Googlebot can render is now, and will remain, what current Chrome can render. This is good news, and the engineering behind it deserves respect. Our response is the one all good news gets: recalibration, not celebration. The structural realities the asterisk hid are still standing, and they were always the binding constraints.
What is solved, and what structurally is not
Solved: the silent-failure tier. Content invisible because a framework leaned on post-2015 features. Polyfill bundles maintained solely for the crawler. The debugging sessions that ended at ‘Chrome 41 doesn’t support that.’ Retired. The mobile-friendly test and URL inspection tools now show renders matching modern reality, which alone improves every diagnostic conversation.
Not solved, because these were never version problems: rendering still queues. Crawling HTML is cheap. Executing JavaScript at web scale is not, and Google processes them separately. Pages are crawled, then wait for rendering resources. The two-wave indexing pattern persists. Server-delivered content indexes promptly on the first pass. Client-rendered content indexes when the rendering queue gets to it, a delay running from hours to days-plus depending on site standing and crawl economics.
For evergreen content, eventual consistency is fine. For the time-sensitive tier (news, events, product launches) ‘eventually’ is a real cost. That is exactly the content institutions most want indexed fast. And crawl-budget economics still tax script-heavy sites. Rendering spends more crawl resource per page, which large sites pay in coverage and freshness. The summary we use with clients: the failure mode moved from ‘routinely’ to ‘rarely.’ That is real progress that changes no architecture decisions, because the decisions were never about Chrome 41. They were about physics. Shipping content as HTML is fast and certain. Shipping it as instructions to build HTML is slower and probabilistic. That was true last month and remains true, just with better glasses on the inspector.
The decision table, updated
SEO-critical content: server rendering or pre-rendering, still. The program pages, articles, product and service content whose discovery pays your bills should arrive as HTML in the first wave. The evergreen announcement lowers the penalty for lapses without changing the winning play.
Authenticated and deeply interactive layers: client-render freely. The portal, the configurator, the dashboard. No crawler equity at stake, and the framework earns its box.
The middle tier, where judgment lives: interactive-but-indexable features like searchable directories and filterable catalogs want hybrid treatment. Crawlable HTML foundations, real URLs per state, content present at load, with client-side enhancement layered on. That is progressive enhancement doing its oldest job under its newest justification.
The meta-framework convergence, noted approvingly: the tooling maturing around exactly this split (the Next.js and Nuxt tier, Gatsby’s pre-rendering) is the framework world conceding the physics. Server-render the document, hydrate the application. The industry reached the conclusion. The tooling is the paperwork.
The verification kit, refreshed
The practical layer for script-heavy builds, because the diagnostic toolkit improved alongside the crawler. URL inspection in Search Console now renders with the evergreen engine. ‘View crawled page’ against your critical templates is the ground-truth check: does the content exist in the rendered HTML Google holds? It belongs in the launch checklist for any JavaScript-dependent feature, alongside the performance budget’s gates.
The two-wave question gets tested empirically. Publish, then watch indexing latency on time-sensitive content. If announcements take days to appear, the rendering queue is taxing you, and the fix is architectural. Move that content tier to server delivery. It is not a settings hunt.
The mobile-parity check still applies. The evergreen engine renders what it receives, and content hidden from mobile remains absent. Log-file analysis, for larger sites, shows the crawl-render economics directly: pages fetched versus rendered, and where the budget actually goes. None of this is exotic. All of it is the difference between asserting your JavaScript site is indexed and knowing it. Teams that install the checks now will never write the emergency ticket this genre used to generate quarterly.
Five years, read as one motion
The crawler’s capability climbed steadily. The 2014 ‘we render JavaScript now’ announcement. The incremental honesty about its limits. This month’s evergreen commitment. At every stage, the industry’s tempting conclusion (‘the crawler handles it now, architecture no longer matters’) was wrong for the same reason. Capability was never the constraint. Economics were, and remain.
Google can render anything and cannot render everything promptly. So the sites that spend the crawler’s resources efficiently, content as HTML, scripts as enhancement, keep collecting the freshness and coverage returns. The sites that spend lavishly keep paying in latency, at every capability level.
That structure, capability rises, economics govern, is worth filing beyond SEO. It is the shape of every rendering, computing, and now machine-learning resource this industry allocates. The question is never only ‘can the system do it’ but ‘what does it cost the system, and who gets served first.’ Hold the line on the decision table. It just got easier to hold, with better tools and fewer asterisks. And retire the Chrome 41 mental model with honors. It taught a generation of developers that the crawler is a client with constraints, which was the durable lesson all along.