Search Central LiveDeep Dive Europe 2026

Knowledge base v2.13.0 · Community edition · data through 2 October 2026

Day 2 · Thursday 1 October 2026 · 10:40

Lightning session D: Rendering and JavaScript

Speakers Erin Sparling, Sören Bendig, Rebecca Yu, Natalia Venditto

Lightning talkCoverageTranscriptSlides

Four parts: a short Google opener by Erin Sparling (Partner Technology Manager, Google), then community talks by Sören Bendig (CEO, Audisto) on rendering blind spots, Rebecca Yu (SEO Manager, JAKALA) on debugging JavaScript rendering, and Natalia Venditto (Principal Software Engineer, Adobe) on Web Fragments.

Shown on screen 31

SlideConsistent with docsD2-C112

Google renders pages in order to index what users see: its commitment to reflecting the user experience means understanding what people see when a page loads in a browser and surfacing that in Search.

“Rendering Pages to Index What Users See”

Wording checked against the slide or recording

Speaker Erin SparlingEvidence slide photo, transcript

Things

Used byglossary term Rendering

SlideConsistent with docsD2-C127

A Google pipeline diagram ran from the crawl queue to the crawler, then through HTML parsing to processing, which passes pages to rendering and gets them back, and then to the index; rendering fetches its JavaScript and CSS through the crawler.

Speaker Erin SparlingEvidence slide photo, transcript

  • Extends D1-C063 Day 1: The crawl pipeline runs from a crawl queue to a scheduler to the crawler, which fetches from the internet and…
SlideD2-C137

The first rendering blind spot a community speaker showed was content changes: text, images and recommendations that differ between the raw HTML and the rendered page, illustrated by a shop page whose rendered version had a whole extra section.

Speaker Sören BendigEvidence slide photo, transcript

Things

Used byrequirement DEV-REN-07

SlideConfirmed by docsD2-C167

The diagram from Google's JavaScript SEO basics page shows a URL going from the crawl queue to the crawler, the crawled HTML going to processing, then the render queue and the renderer, whose rendered HTML returns to processing before the page reaches the index.

Speaker Rebecca YuEvidence slide photo, transcript

  • Extends D1-C063 Day 1: The crawl pipeline runs from a crawl queue to a scheduler to the crawler, which fetches from the internet and…
SlideConfirmed by docsD2-C168

In Google's processing step, links are extracted from the HTML Google already has, before rendering, and the URLs found go back to the crawl queue.

Speaker Rebecca YuEvidence slide photo, transcript

Things
  • Extends D1-C040 Day 1: URL discovery works through links: a homepage links to section pages, which link to further pages.
  • Extends D2-C048 Day 2: Links extracted during processing are sent back to the crawl queue, where scheduling starts again for the…
SlideNot in docsD2-C171

A community speaker's slide put the usual wait in Google's render queue at seconds to a couple of minutes per page.

“Usually from seconds to a couple minutes.”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo

SlideConsistent with docsD2-C174

Whatever is in the DOM at the moment Google's rendering finishes is what likely gets indexed.

“Whatever is in the DOM at that moment is what likely gets indexed.”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo, transcript

Things
  • Repeated by D2-C262 Day 2: Content that is not in the final DOM after rendering cannot be seen by Google, so it cannot be indexed.
SlideConfirmed by docsD2-C184

Google follows links in <a href> elements; a link that only runs an onclick handler, or a hash pseudo-link such as href=#/products, may be invisible to Google.

Speaker Rebecca YuEvidence slide photo, transcript

Used byrequirement DEV-URL-02

  • Extends D1-C115 Day 1: Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the…
  • Extends D2-C040 Day 2: Google cannot extract a link from an a element that only has an onclick handler, because Googlebot does not…
SlideConfirmed by docsD2-C185

The crawlable pattern for single-page app navigation is a real URL in the href, such as <a href=/products>, combined with History API routing (window.history.pushState) instead of hash routes.

Speaker Rebecca YuEvidence slide photo

Used byrequirement DEV-URL-03

  • Repeated by D2-C285 Day 2: Google recommends the History API to give single-page apps clean URLs instead of fragment-based routes.
  • Extended by D2-C288 Day 2: With the History API, a single-page app can use real links and attach event listeners that intercept the…
SlideConsistent with docsD2-C187

A market or language selector built as a button works for users but leaves the whole cluster of alternate-language pages without crawlable links, so the cluster is orphaned for Google.

“The nav works perfectly for users, and the entire alternate-language cluster is orphaned.”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo

Used byrequirement DEV-INT-06

  • Extends D1-C115 Day 1: Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the…
SlideConfirmed by docsD2-C195

Content that loads only after a user action such as a click or a scroll is not in the DOM while Google renders the page, so Google cannot index it.

Speaker Rebecca YuEvidence slide photo, transcript

Used byrequirement DEV-REN-02

  • Extends D1-C115 Day 1: Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the…
  • Repeated by D2-C268 Day 2: Content that loads only when a user clicks an element is not supported in the way Google renders pages for…
SlideConsistent with docsD2-C196

For rendering, what matters is whether content is present in the DOM, not whether it is visible on screen: hidden content can be indexed, absent content cannot.

“Not visible versus hidden. Present versus absent in the DOM.”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo

Things

Used byrequirement DEV-REN-02

SlideConsistent with docsD2-C197

Lazy loading triggered by a scroll event listener, such as window.addEventListener('scroll', loadMoreProducts), never runs for Googlebot because Googlebot does not scroll.

“Googlebot doesn't scroll. Never runs.”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo, transcript

Used byrequirement DEV-REN-03glossary term Lazy loading

  • Extends D1-C114 Day 1: A Google panelist called pagination one of the trickiest things in web development and said switching to…
  • Repeated by D2-C271 Day 2: Google does not scroll a page when it renders it for indexing, so content that infinite scroll loads on…
SlideConsistent with docsD2-C199

An Intersection Observer fires when the observed element enters the viewport, and the viewport Google renders with is tall, so content lazy-loaded this way can load during rendering.

“Fires on viewport entry. Viewport is tall.”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo

Used byrequirement DEV-REN-03

  • Extended by D2-C272 Day 2: Instead of scrolling, Google renders a page in a very tall viewport, around 10,000 pixels high.
  • Repeated by D2-C274 Day 2: Content loaded as elements enter the viewport, for example with an Intersection Observer, does load when…
SlideConfirmed by docsD2-C201

Tab or accordion content fetched from an API only when a user clicks the tab, as in tab.onclick = () => fetch('/api/specs'), does not exist for Google until someone clicks.

“Doesn't exist until someone clicks”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo

Used byrequirement DEV-REN-02

  • Extends D1-C115 Day 1: Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the…
SlideConsistent with docsD2-C202

Tab and accordion content should be in the DOM from the start and only hidden with CSS or the hidden attribute; Google indexes such hidden content.

“CSS-hidden is fine. Google indexes it.”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo, transcript

Used byrequirement DEV-REN-02

  • Extended by D2-C866 Day 2: Content inside tabs, for example separate tabs for a product description and a manufacturer description…
SlideConfirmed by docsD2-C204

Blocking JavaScript or API resources in robots.txt is a classic rendering mistake: if Google's renderer cannot fetch a resource, it cannot run it.

“If the renderer can't fetch it, the renderer can't run it.”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo, transcript

Used byrequirement DEV-REN-04

  • Extends D1-C064 Day 1: The crawler has multiple tasks: fetch from the internet, ensure it doesn't break the internet, and enforce…
  • Repeated by D2-C265 Day 2: Blocked resources, one of Google's four common JavaScript indexing problems, means robots.txt disallowing the…
  • Repeated by D2-C296 Day 2: If robots.txt blocks JavaScript that client-side code needs to render, Google cannot render the content that…
SlideConsistent with docsD2-C205

Disallowing a script folder such as /static/js/ or a generic /api/ folder in robots.txt can block the endpoints that supply a page's content, leaving blank modules and missing content after rendering.

Speaker Rebecca YuEvidence slide photo, transcript

SlideConsistent with docsD2-C207

If an API folder must stay blocked in robots.txt, allow the endpoints that rendering needs, for example Disallow: /api/ together with Allow: /api/products/.

“Carve out only what rendering needs.”

Wording checked against the slide or recording

Speaker Rebecca YuEvidence slide photo, transcript

Used byrequirement DEV-REN-04

SlideD2-C223

A slide titled Orchestration approaches compared four ways to combine micro-frontends in one page (iframe, Shadow DOM, rewriting everything, and reframing with Web Fragments) on three criteria (JavaScript isolated, styles isolated, part of the page) and named the catch of each.

Speaker Natalia VendittoEvidence slide photo, transcript

SlideNot in docsD2-C224

An iframe, the long-established way to embed an app, isolates both JavaScript and styles but is not part of the page: it is walled off from the host's DOM, navigation and layout, which Natalia Venditto said brings many problems with accessibility, layout and navigation.

“Walled off from DOM, navigation, layout”

Wording checked against the slide or recording

Speaker Natalia VendittoEvidence slide photo, transcript

SlideNot in docsD2-C228

Shadow DOM isolates styles and keeps the embedded content part of the page, but it does not isolate JavaScript: the embedded code still shares the host's JavaScript globals.

“Still shares JS globals”

Wording checked against the slide or recording

Speaker Natalia VendittoEvidence slide photo, transcript

Used byglossary term Shadow DOM

SlideNot in docsD2-C229

Rewriting everything into one application keeps the result part of the page, but JavaScript and style isolation then have to be done by hand.

Speaker Natalia VendittoEvidence slide photo, transcript

SlideD2-C230

The catch the comparison slide gave for rewriting everything was that you cannot rewrite code you did not write; Natalia Venditto explained that AI cannot rewrite code already in place because it does not know its requirements, design system or other constraints.

“Can't rewrite code you didn't write”

Wording checked against the slide or recording

Speaker Natalia VendittoEvidence slide photo, transcript

SlideNot in docsD2-C231

Reframing with Web Fragments was the only approach on the comparison slide ticked for all three criteria (JavaScript isolated, styles isolated, part of the page); its stated catch is that it relies on browser patches today.

“Needs patches today”

Wording checked against the slide or recording

Speaker Natalia VendittoEvidence slide photo, transcript

SlideNot in docsD2-C242

A slide set out Web Fragments in five steps: an LLM writes the app and adds a custom element such as <web-fragment fragment-id="some-id"> to the HTML, a standalone HTTP endpoint is set up, the library is imported and initialized with initializeWebFragments(), the fragment is registered in the gateway, and step 5 is a celebration emoji.

Speaker Natalia VendittoEvidence slide photo, transcript

SlideNot in docsD2-C244

A web fragment is served from its own standalone HTTP endpoint, so the embedded app can be deployed anywhere, separately from the host page.

Speaker Natalia VendittoEvidence slide photo, transcript

Said on stage 86

StageD2-C110

Google framed rendering historically: when Google started, most of the web was plain, semantic HTML it could extract directly, but the modern web is built with JavaScript and much content is generated by JavaScript, so Google had to adapt.

Speaker Erin SparlingEvidence transcript

StageNot in docsD2-C113

Compared with other search engines and AI crawlers, Google said its effort to mimic what the user sees is essential to keeping its knowledge of the web up to date and comprehensive; it did not say what the others do.

Speaker Erin SparlingEvidence transcript

StageNot in docsD2-C115

Google described the mission of its rendering as simply executing JavaScript, while the implementation is complex, expensive and difficult.

“our mission is very simple these days: execute JavaScript”

Speaker Erin SparlingEvidence transcript

StageConsistent with docsD2-C116

AI Overviews and AI Mode are built on top of Search results: they are a different experience of the same content Google already has.

Speaker Erin SparlingEvidence transcript

Used bystory angle A-001

  • Repeats D1-C038 Day 1: AI Mode and AI Overviews use the same crawling and the same index as Search. At serving they add grounding on…
  • Extended by D2-C601 Day 2: Sites need no extra work to appear in AI Overviews and AI Mode: both work on top of the existing web results…
StageConsistent with docsD2-C117

AI Overviews and AI Mode typically do not ground their answers by reading pages live, unlike Gemini when a user asks about a specific page, Google said.

Speaker Erin SparlingEvidence transcript

Used byrequirement DEV-PRF-02

StageNot in docsD2-C118

To train Gemini models, Google renders every page just as it does for Search, so a page that renders correctly for Search also works for Gemini training, provided the site allows its content to be used for training.

“if it works for Search, it works for Gemini for training”

Speaker Erin SparlingEvidence transcript

Things

Used byrequirement DEV-IDX-11

  • Extends D1-C039 Day 1: Gemini is not part of Search, but it uses crawlers for data, shares some technologies such as tokenization…
StageNot in docsD2-C120

When a Gemini user asks about a specific web page (for example, whether it says anything about the ruby HTML tag), the page is read at that moment rather than during crawling and may be used to ground the answer, which takes extra time.

Speaker Erin SparlingEvidence transcript

Things

Used byrequirement DEV-PRF-02

  • Extends D1-C039 Day 1: Gemini is not part of Search, but it uses crawlers for data, shares some technologies such as tokenization…
StageConsistent with docsD2-C124

Google's simple solution for the extra time of live page reads is to make JavaScript-generated content render quickly and efficiently, or to use server-side rendering.

Speaker Erin SparlingEvidence transcript

Things

Used byrequirements DEV-PRF-02, DEV-REN-01

  • Extends D1-C056 Day 1: Myth: your website is no longer relevant. Google's answer: keep content crawlable, well structured, fast and…
StageConfirmed by docsD2-C126

Google renders pages with Chromium, the browser technology that also underlies Chrome, Edge and other Chromium-based browsers.

Speaker Erin SparlingEvidence transcript

Things

Used byglossary term Rendering

  • Repeats D1-C206 Day 1: Google renders JavaScript-heavy pages from their HTML, CSS and JavaScript as a browser would, using the…
StageConsistent with docsD2-C128

Although Google's pipeline diagram shows rendering as part of indexing, Google's rendering is a detached system, kept separate because rendering is time-consuming and computationally expensive.

“it shows rendering as part of indexing, but it's actually a detached system”

Speaker Erin SparlingEvidence transcript

Things
  • Extends D2-C026 Day 2: A Google pipeline slide placed processing between the crawler and the index and listed six processing steps…
StageNot in docsD2-C129

After the crawler has fetched a page, Google's rendering system executes it, checks that it loads properly and works out what it looks like at different sizes.

Speaker Erin SparlingEvidence transcript

Things
StageConsistent with docsD2-C134

Google urged sites to make sure their JavaScript content can be crawled, rendered and indexed, calling this important today and also tomorrow, as AI systems increasingly ground answers to user requests.

Speaker Erin SparlingEvidence transcript

  • Extends D1-C056 Day 1: Myth: your website is no longer relevant. Google's answer: keep content crawlable, well structured, fast and…
StageNot in docsD2-C138

Switching JavaScript off and on in the browser gives a quick first impression of which content on a page depends on rendering.

Speaker Sören BendigEvidence transcript

StageConsistent with docsD2-C139

A community speaker strongly advised putting everything you want cited into the raw, server-side rendered HTML, especially for AI systems that cannot render JavaScript yet.

“everything you want cited, include it in the raw HTML, server-side rendered”

Speaker Sören BendigEvidence transcript

Used byrequirement DEV-REN-01

  • Extends D1-C056 Day 1: Myth: your website is no longer relevant. Google's answer: keep content crawlable, well structured, fast and…
StageConsistent with docsD2-C140

In a navigation example, the main navigation was in the raw HTML and would survive a rendering failure, but the whole sub-navigation was built by JavaScript, so all of its links would be inaccessible to bots if rendering broke.

Speaker Sören BendigEvidence transcript

StageD2-C142

One site that builds its whole content by rendering also rendered its meta description with HTML tags inside it, which makes no sense and points to a flawed process.

Speaker Sören BendigEvidence transcript

Things

Used byrequirement DEV-HTM-03

  • Extended by D2-C858 Day 2: Search engines such as Google and Bing would ignore HTML tags written inside a meta description, a community…
StageConsistent with docsD2-C144

Browser console messages reveal further problems on a page, Content Security Policy violations among them; few teams analyse console messages at scale, but they should, a community speaker said.

Speaker Sören BendigEvidence transcript

Used byrequirement DEV-REN-09

StageD2-C145

On a travel site, the number of offers differed between the raw HTML and the rendered page, possibly because the two versions drew on different internal databases or applied extra filters.

Speaker Sören BendigEvidence transcript

StageD2-C146

On a retail brand's page, the rendered version promised a bigger discount for a newsletter sign-up than the non-rendered version that was served, a mismatch that can hurt customer satisfaction; the two recordings disagree on the figure the rendered page promised.

Speaker Sören BendigEvidence transcript

StageNot in docsD2-C149

A search engine's renderer does not wait forever before taking its snapshot, so content from slow internal systems or APIs can be missing and unresolved placeholders can end up in the final snapshot, a community speaker said.

Speaker Sören BendigEvidence transcript

Used byrequirement DEV-REN-06

  • Extended by D2-C259 Day 2: Erin Sparling named server-side or hybrid rendering, fallbacks and not leaving placeholders in the DOM, among…
  • Extended by D2-C263 Day 2: Content is missing from the rendered HTML either because the server does not serve it or because the content…
StageD2-C150

In one shop's example, brand names and product descriptions were rendered from a database; the brand name was missing from the meta description, and the shop sometimes appeared with unresolved placeholders and sometimes as intended.

Speaker Sören BendigEvidence transcript

StageD2-C152

Broken titles and snippets caused by unresolved placeholders may hurt business, especially for e-commerce shops and affiliate-heavy sites, a community speaker warned.

Speaker Sören BendigEvidence transcript

Things
StageNot in docsD2-C153

To catch intermittent rendering problems, archive the full HTML and the resources of each page during a site audit and analyse them yourself, a community speaker advised.

Speaker Sören BendigEvidence transcript

Things

Used byrequirement DEV-MON-05

StageNot in docsD2-C155

Content Security Policy lowers the risk of cross-site scripting and clickjacking by defining trusted hosts; a resource from a host that is not trusted is not used.

Speaker Sören BendigEvidence transcript

Used byrequirement DEV-REN-09

StageD2-C156

Content Security Policy is often misunderstood: on a page of a large German banking group, a video that should have been shown was blocked by a CSP violation, which also appeared in the browser console.

Speaker Sören BendigEvidence transcript

  • Extended by D2-C859 Day 2: A rendering failure such as a Content Security Policy blocking a video on a landing page that explains how to…
StageConfirmed by docsD2-C157

Never block a resource that a page needs for rendering with robots.txt, a community speaker said, calling this common sense.

Speaker Sören BendigEvidence transcript

StageNot in docsD2-C162

A community speaker strongly advised SEOs to use Chrome DevTools more often to understand what happens when their pages render.

Speaker Sören BendigEvidence transcript

Things
  • Extended by D2-C860 Day 2: Besides using Chrome DevTools more often, a community speaker advised checking rendering at scale with a…
StageConfirmed by docsD2-C176

To check whether JavaScript content is affected, open the URL Inspection tool in Search Console or the Rich Results Test and look for that content in the rendered HTML tab.

Speaker Rebecca YuEvidence transcript

Used byrequirement DEV-MON-02glossary terms Raw HTML and rendered HTML, URL Inspection tool

StageD2-C177

A community speaker treats the rendered HTML shown in Google's testing tools as the final source of truth, because what Google sees there is what gets indexed.

“I always treat this page as the final source of truth”

Speaker Rebecca YuEvidence transcript

StageNot in docsD2-C180

If content is missing from the rendered HTML, find the script responsible in Chrome DevTools: open the Network tab, filter by Fetch/XHR and reload the page.

Speaker Rebecca YuEvidence transcript

Things
StageNot in docsD2-C182

If the cause of missing JavaScript content is still unclear after checking the network requests, search the source code for a string related to the missing content.

Speaker Rebecca YuEvidence transcript

StageConsistent with docsD2-C186

Non-crawlable link markup, such as onclick links and hash pseudo-links, is common in single-page web apps, and sites that use faceted navigation should check their links for it.

Speaker Rebecca YuEvidence transcript

Used byrequirement DEV-URL-02glossary term Single-page app (SPA)

StageConfirmed by docsD2-C190

In single-page apps, a missing page often shows a custom 404 page while the server returns HTTP 200, because the front-end router, not the server, handles the 404.

Speaker Rebecca YuEvidence transcript

Used byrequirement DEV-ERR-02glossary term Single-page app (SPA)

  • Extends D1-C073 Day 1: A soft 404 is a page that returns a success code while its content looks like an error or an empty page. It…
  • Repeated by D2-C291 Day 2: In JavaScript single-page apps, soft 404s typically arise because the server returns the app with a 200…
StageConfirmed by docsD2-C213

A page that renders empty for Google, such as a client-side product page hit by these mistakes, is seen as thin content and ends up treated as a soft 404 even though users see a full page.

Speaker Rebecca YuEvidence transcript

Things

Used byrequirements DEV-ERR-03, DEV-REN-04

  • Extends D1-C073 Day 1: A soft 404 is a page that returns a success code while its content looks like an error or an empty page. It…
  • Extended by D2-C336 Day 2: Google listed four common causes of soft 404s: pages that look like errors but are not, thin or empty…
StageD2-C214

A community speaker summed up JavaScript rendering issues as cases where search engines cannot execute, access or trigger the code needed to display a page's core content.

“JavaScript rendering issues happen when search engines cannot execute, access or trigger the code required to display your core content.”

Speaker Rebecca YuEvidence transcript

StageConsistent with docsD2-C215

To find rendering issues, compare a page's raw source code with its rendered versions, including the rendered HTML that Google's testing tools show; the differences point to the problems.

Speaker Rebecca YuEvidence transcript

Things

Used byrequirement DEV-MON-02glossary term Raw HTML and rendered HTML

StageD2-C217

Natalia Venditto opened by saying that Gary had said earlier at the event that everyone can write a standard, and that this is what the Web Fragments work is trying to do.

Speaker Natalia VendittoEvidence transcript

  • Repeats D2-C052 Day 2: John Mueller encouraged attendees to help write a specification for robots meta tags, saying internet…
StageD2-C218

Natalia Venditto said teams are increasingly asked to integrate AI-generated content and applications into existing web applications and want to do so without breaking the host application, a situation she called a typical micro-frontend scenario.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C219

Natalia Venditto named three typical failure modes by which an embedded app can break the application hosting it: collisions in the global JavaScript scope and module registry, CSS bleed, and fate sharing.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C220

CSS bleed, as Natalia Venditto described it, means styles leak between an embedded app and its host, so that suddenly everything looks like the embedded app or the embedded app takes on the look of the host.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C221

Fate sharing means a failure in an embedded app spreads to its host, for example an unhandled exception in the embedded app that ends up breaking the host application.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C232

Web Fragments is a lightweight library that puts a hidden iframe in the host page and uses it as an isolated sandbox to run the embedded app's JavaScript, not to render the app.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C233

Web Fragments fetches the embedded app's assets from a remote endpoint through middleware that acts as a gateway.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C234

Web Fragments reframes the embedded app's DOM by placing it inside a shadow DOM in the host page, while the app's JavaScript runs in the hidden iframe.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C236

With Web Fragments the page ends up as a single document in which the host application does not know the embedded app runs inside it and the embedded app does not know it lives in another document.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C237

Web Fragments monkey-patches browser APIs to containerize the browser, recreating inside it an architecture similar to Docker containers on the back end.

“we monkey patch the browser to containerize it”

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C238

The browser APIs Web Fragments patches include document, history and location; Natalia Venditto said they are virtualized rather than hijacked, so controls work exactly as in a normal application.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C239

Web Fragments retargets dispatchEvent calls to the fragment's shadow root and resolves DOM calls such as appendChild and element lookups against the main document.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C241

Natalia Venditto said Web Fragments suits AI-generated apps because a web fragment used as a custom element sandboxes the app's rendering, avoiding collisions and CSS bleed between the app and its host in either direction.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C243

Natalia Venditto said the five Web Fragments steps are all that is needed to run a containerized application fully on the client side.

Speaker Natalia VendittoEvidence transcript

StageNot in docsD2-C246

Natalia Venditto said Web Fragments is framework-agnostic and vendor-agnostic and works the same whatever JavaScript framework the embedded app uses.

Speaker Natalia VendittoEvidence transcript

StageD2-C857

None of the rendering problems a community speaker showed from established brands' sites had been fixed promptly: some were fixed by the time of the talk and some were still live.

Speaker Sören BendigEvidence transcript

Things
StageD2-C859

A rendering failure such as a Content Security Policy blocking a video on a landing page that explains how to open a business account could have a drastic impact for a purely online business, a community speaker warned.

Speaker Sören BendigEvidence transcript

Things
  • Extends D2-C156 Day 2: Content Security Policy is often misunderstood: on a page of a large German banking group, a video that…
StageNot in docsD2-C860

Besides using Chrome DevTools more often, a community speaker advised checking rendering at scale with a modern crawler.

Speaker Sören BendigEvidence transcript

Used byrequirement DEV-MON-05

  • Extends D2-C162 Day 2: A community speaker strongly advised SEOs to use Chrome DevTools more often to understand what happens when…

What Google's documentation says 12

DocsSourceD2-C121

Google's crawler documentation defines grounding in Gemini Apps and in Grounding with Google Search on Vertex AI as providing content from the Google Search index to the model at prompt time, and sites manage whether their content is used for it with the Google-Extended robots.txt token.

Publisher Google

Used byrequirement DEV-IDX-11glossary term Grounding

  • Extends D1-C086 Day 1: Google-Extended is a control token, not a crawler with its own user agent string. It decides whether crawled…
DocsSourceD2-C122

Google says user-triggered fetchers, which fetch a URL because a user asked for it in a Google product (for example Gemini Notebook fetching URLs users add as sources, or Google-Agent acting on a user's request), generally ignore robots.txt rules.

Publisher Google

Used byrequirement DEV-IDX-11

  • Repeats D1-C273 Day 1: A community speaker pointed out that, according to Google's documentation, user-triggered fetchers, which…
  • Extends D1-C434 Day 1: User-initiated fetchers, such as a translation service fetching a page a user asked to translate, are a…
DocsSourceD2-C131

Google's JavaScript SEO guide says Googlebot sends every page with a 200 HTTP status code to the rendering queue, whether or not it contains JavaScript, unless a robots meta tag or header tells Google not to index it, and Google uses the rendered HTML to index the page.

Publisher Google Search Central

Used byrequirement DEV-REN-01glossary term Rendering

  • Extended by D3-C676 Day 3: The stage doubt that every URL gets rendered sits beside Google's JavaScript guide, which says every page…
DocsSourceD2-C169

Google's JavaScript SEO basics guide says Googlebot extracts links twice, from the HTML response before rendering and again from the rendered HTML, so links injected with JavaScript can be found if they use crawlable <a href> markup.

Publisher Google Search Central

Used byrequirement DEV-URL-01

  • Extends D1-C040 Day 1: URL discovery works through links: a homepage links to section pages, which link to further pages.
DocsSourceD2-C172

Google's JavaScript SEO basics guide says a page may wait in the render queue for a few seconds but that it can take longer, and it gives no upper limit.

“The page may stay on this queue for a few seconds, but it can take longer than that.”

Publisher Google Search Central

Used byrequirements DEV-PRF-02, DEV-REN-01glossary term Render queue

  • Extended by D3-C627 Day 3: Content that JavaScript adds to a page is typically seen by Google's indexing system within a few hours, and…
DocsSourceD2-C192

Google's JavaScript guides say that when client-side routing makes a real 404 status impractical, a single-page app can avoid soft 404s by redirecting with JavaScript to a URL whose server returns 404, or by adding a robots noindex meta tag with JavaScript.

Publisher Google Search Central

Used byrequirement DEV-ERR-02

DocsSourceD2-C200

In Google's March 2023 SEO office hours, John Mueller said Google handles infinite scroll with viewport expansion, rendering a page like a very long phone, which is not very efficient and can miss content, so pagination links are strongly recommended.

“this is done through a technique called "viewport expansion", where we render a page like a very long phone.”

Publisher Google Search Central (SEO office hours transcript, March 2023)

Things
DocsSourceD2-C206

Google says its Web Rendering Service fetches the resources a page references through Googlebot, including JavaScript, CSS and XHR requests to APIs, but not images or videos.

Publisher Search Central blog (3 December 2024), Search Central blog (31 March 2026)

Used byrequirement DEV-REN-04

DocsSourceD2-C227

Google says its systems generally try to index the content of a page embedded with an iframe as part of the page that embeds it, but this is not guaranteed because both pages are also normal HTML pages on their own.

Publisher Google Search Central (SEO office hours transcript, December 2023), Search Central blog (21 January 2022)

Used byrequirement DEV-REN-10

DocsSourceD2-C235

Google's documentation says Google supports web components and flattens shadow DOM and light DOM content when it renders a page, and that content not visible in the rendered HTML cannot be indexed.

Publisher Google Search Central

Used byrequirement DEV-REN-10glossary term Shadow DOM

Analysis by the author 21

AnalysisD2-C165

Compare the session counts that per-session-billed tools (chat, personalisation, testing, session replay) charge for with real user sessions, and load such tools only after a user interaction where they add no content that needs to be indexed.

Author Ibrahim Anjro

Used byrequirement DEV-PRF-03

AnalysisD2-C188

Hash-fragment links are a problem only where Google should follow them: product, category and language links need a real URL in an <a href>, while fragments can deliberately keep filter combinations out of the crawl, as Google's faceted navigation guide allows.

Author Ibrahim Anjro

Used byrequirement DEV-URL-08

  • Extends D1-C101 Day 1: Google's faceted navigation guide prefers prevention: disallow filter URLs in robots.txt and keep crawlable…
AnalysisD2-C189

Build market and language selectors as plain <a href> links to each alternate URL, not buttons or script handlers; otherwise the language versions have no internal links and depend on sitemaps to be found, which is slow.

Author Ibrahim Anjro

Things

Used byrequirement DEV-INT-06

  • Extends D1-C067 Day 1: A page with no internal links depends on sitemaps alone to be found, so it is discovered slowly and attracts…
AnalysisD2-C208

A robots.txt carve-out works because Google applies the most specific matching rule, so Allow: /api/products/ beats Disallow: /api/ for product endpoints only; re-test a rendered page after every robots.txt change to script or API paths.

Author Ibrahim Anjro

  • Extends D1-C081 Day 1: When matching rules to a URL, Google uses the most specific rule by path length. If rules conflict, it uses…
AnalysisD2-C222

Pages that embed third-party or AI-generated apps can share their fate, since an unhandled exception in the embedded code can break the host page; check the rendered HTML and JavaScript console output of such pages in Google's testing tools to make sure the host's own content still renders.

Author Ibrahim Anjro

Used byrequirement DEV-REN-09

AnalysisD2-C240

Because Web Fragments monkey-patches core browser APIs such as document, history and location, test pages that use it in Google's rendering (the rendered HTML in Search Console's URL Inspection tool or the Rich Results Test), not only in a normal desktop browser.

Author Ibrahim Anjro

Used byrequirement DEV-REN-10

AnalysisD2-C245

Make sure robots.txt does not block the URLs from which the browser loads a fragment's assets (the gateway paths on the host page's origin, or the endpoint's own host if assets load from there), because Google does not render JavaScript from blocked files and robots.txt rules apply per host.

Author Ibrahim Anjro

AnalysisD2-C250

Because Google flattens shadow DOM when it renders, content that Web Fragments places in a shadow root can in principle be indexed with the host page, but only if it appears in the rendered HTML; check that in URL Inspection rather than relying on a library's promise of indexability.

Author Ibrahim Anjro

Used byrequirement DEV-REN-10

  1. Stage D2-C118 Day 2 · Lightning session D: Rendering and JavaScript

    To train Gemini models, Google renders every page just as it does for Search, so a page that renders correctly for Search also works for Gemini training, provided the site allows its content to be used for training.

    extends
    Slide D1-C039 Day 1 · How Search works and where's AI?

    Gemini is not part of Search, but it uses crawlers for data, shares some technologies such as tokenization and deduping, and grounds on the Search index.

  2. Stage D2-C120 Day 2 · Lightning session D: Rendering and JavaScript

    When a Gemini user asks about a specific web page (for example, whether it says anything about the ruby HTML tag), the page is read at that moment rather than during crawling and may be used to ground the answer, which takes extra time.

    extends
    Slide D1-C039 Day 1 · How Search works and where's AI?

    Gemini is not part of Search, but it uses crawlers for data, shares some technologies such as tokenization and deduping, and grounds on the Search index.

  3. Docs D2-C121 Day 2 · Lightning session D: Rendering and JavaScript

    Google's crawler documentation defines grounding in Gemini Apps and in Grounding with Google Search on Vertex AI as providing content from the Google Search index to the model at prompt time, and sites manage whether their content is used for it with the Google-Extended robots.txt token.

    extends
    Docs D1-C086 Day 1 · How Google interprets robots.txt

    Google-Extended is a control token, not a crawler with its own user agent string. It decides whether crawled content may be used to train future Gemini models and to ground Gemini apps and Vertex AI.

  4. Docs D2-C122 Day 2 · Lightning session D: Rendering and JavaScript

    Google says user-triggered fetchers, which fetch a URL because a user asked for it in a Google product (for example Gemini Notebook fetching URLs users add as sources, or Google-Agent acting on a user's request), generally ignore robots.txt rules.

    extends
    Stage D1-C434 Day 1 · Q&A

    User-initiated fetchers, such as a translation service fetching a page a user asked to translate, are a different category from crawlers and generally do not check robots.txt, because a user asked for the fetch.

  5. Stage D2-C124 Day 2 · Lightning session D: Rendering and JavaScript

    Google's simple solution for the extra time of live page reads is to make JavaScript-generated content render quickly and efficiently, or to use server-side rendering.

    extends
    Slide D1-C056 Day 1 · How Search works and where's AI?

    Myth: your website is no longer relevant. Google's answer: keep content crawlable, well structured, fast and easy to read, for readers and for AI tools.

  6. Slide D2-C127 Day 2 · Lightning session D: Rendering and JavaScript

    A Google pipeline diagram ran from the crawl queue to the crawler, then through HTML parsing to processing, which passes pages to rendering and gets them back, and then to the index; rendering fetches its JavaScript and CSS through the crawler.

    extends
    Slide D1-C063 Day 1 · How crawling works

    The crawl pipeline runs from a crawl queue to a scheduler to the crawler, which fetches from the internet and passes the fetch reply to indexing.

  7. Stage D2-C128 Day 2 · Lightning session D: Rendering and JavaScript

    Although Google's pipeline diagram shows rendering as part of indexing, Google's rendering is a detached system, kept separate because rendering is time-consuming and computationally expensive.

    extends
    Slide D2-C026 Day 2 · How is HTML interpreted

    A Google pipeline slide placed processing between the crawler and the index and listed six processing steps: HTML parsing, rendering, deduplication, feature extraction, signal extraction and index selection.

  8. Stage D2-C134 Day 2 · Lightning session D: Rendering and JavaScript

    Google urged sites to make sure their JavaScript content can be crawled, rendered and indexed, calling this important today and also tomorrow, as AI systems increasingly ground answers to user requests.

    extends
    Slide D1-C056 Day 1 · How Search works and where's AI?

    Myth: your website is no longer relevant. Google's answer: keep content crawlable, well structured, fast and easy to read, for readers and for AI tools.

  9. Stage D2-C136 Day 2 · Lightning session D: Rendering and JavaScript

    Many SEOs still treat everything beyond the raw HTML as the developers' business, but developers often do not handle rendering problems, a community speaker warned.

    extends
    Stage D1-C121 Day 1 · session not recorded

    SEO is not only content; it has many parts.

  10. Stage D2-C139 Day 2 · Lightning session D: Rendering and JavaScript

    A community speaker strongly advised putting everything you want cited into the raw, server-side rendered HTML, especially for AI systems that cannot render JavaScript yet.

    extends
    Slide D1-C056 Day 1 · How Search works and where's AI?

    Myth: your website is no longer relevant. Google's answer: keep content crawlable, well structured, fast and easy to read, for readers and for AI tools.

  11. Slide D2-C167 Day 2 · Lightning session D: Rendering and JavaScript

    The diagram from Google's JavaScript SEO basics page shows a URL going from the crawl queue to the crawler, the crawled HTML going to processing, then the render queue and the renderer, whose rendered HTML returns to processing before the page reaches the index.

    extends
    Slide D1-C063 Day 1 · How crawling works

    The crawl pipeline runs from a crawl queue to a scheduler to the crawler, which fetches from the internet and passes the fetch reply to indexing.

  12. Slide D2-C168 Day 2 · Lightning session D: Rendering and JavaScript

    In Google's processing step, links are extracted from the HTML Google already has, before rendering, and the URLs found go back to the crawl queue.

    extends
    Slide D1-C040 Day 1 · How Search works and where's AI?

    URL discovery works through links: a homepage links to section pages, which link to further pages.

  13. Slide D2-C168 Day 2 · Lightning session D: Rendering and JavaScript

    In Google's processing step, links are extracted from the HTML Google already has, before rendering, and the URLs found go back to the crawl queue.

    extends
    Slide D2-C048 Day 2 · How is HTML interpreted

    Links extracted during processing are sent back to the crawl queue, where scheduling starts again for the newly found URLs.

  14. Docs D2-C169 Day 2 · Lightning session D: Rendering and JavaScript

    Google's JavaScript SEO basics guide says Googlebot extracts links twice, from the HTML response before rendering and again from the rendered HTML, so links injected with JavaScript can be found if they use crawlable <a href> markup.

    extends
    Slide D1-C040 Day 1 · How Search works and where's AI?

    URL discovery works through links: a homepage links to section pages, which link to further pages.

  15. Stage D2-C173 Day 2 · Lightning session D: Rendering and JavaScript

    Google's renderer is a headless Chromium that runs the page's JavaScript.

    extends
    Stage D1-C206 Day 1 · How Search works and where's AI?

    Google renders JavaScript-heavy pages from their HTML, CSS and JavaScript as a browser would, using the latest version of Chromium.

  16. Slide D2-C184 Day 2 · Lightning session D: Rendering and JavaScript

    Google follows links in <a href> elements; a link that only runs an onclick handler, or a hash pseudo-link such as href=#/products, may be invisible to Google.

    extends
    Docs D1-C115 Day 1 · session not recorded

    Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the next page, should not use page 1 as its canonical, and rel=next and rel=prev are no longer used.

  17. Slide D2-C184 Day 2 · Lightning session D: Rendering and JavaScript

    Google follows links in <a href> elements; a link that only runs an onclick handler, or a hash pseudo-link such as href=#/products, may be invisible to Google.

    extends
    Slide D2-C040 Day 2 · How is HTML interpreted

    Google cannot extract a link from an a element that only has an onclick handler, because Googlebot does not click, so the JavaScript is never triggered.

  18. Slide D2-C187 Day 2 · Lightning session D: Rendering and JavaScript

    A market or language selector built as a button works for users but leaves the whole cluster of alternate-language pages without crawlable links, so the cluster is orphaned for Google.

    extends
    Docs D1-C115 Day 1 · session not recorded

    Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the next page, should not use page 1 as its canonical, and rel=next and rel=prev are no longer used.

  19. Analysis D2-C188 Day 2 · Lightning session D: Rendering and JavaScript

    Hash-fragment links are a problem only where Google should follow them: product, category and language links need a real URL in an <a href>, while fragments can deliberately keep filter combinations out of the crawl, as Google's faceted navigation guide allows.

    extends
    Docs D1-C101 Day 1 · How Google thinks about crawl budget

    Google's faceted navigation guide prefers prevention: disallow filter URLs in robots.txt and keep crawlable only item pages plus one unfiltered listing page, or use URL fragments, which Google generally does not crawl. rel=canonical and nofollow are weaker, slower options.

  20. Analysis D2-C189 Day 2 · Lightning session D: Rendering and JavaScript

    Build market and language selectors as plain <a href> links to each alternate URL, not buttons or script handlers; otherwise the language versions have no internal links and depend on sitemaps to be found, which is slow.

    extends
    Analysis D1-C067 Day 1 · How crawling works

    A page with no internal links depends on sitemaps alone to be found, so it is discovered slowly and attracts little crawl demand.

  21. Stage D2-C190 Day 2 · Lightning session D: Rendering and JavaScript

    In single-page apps, a missing page often shows a custom 404 page while the server returns HTTP 200, because the front-end router, not the server, handles the 404.

    extends
    Docs D1-C073 Day 1 · How crawling errors affect Search

    A soft 404 is a page that returns a success code while its content looks like an error or an empty page. It is kept out of the index but continues to be crawled, wasting crawl budget.

  22. Slide D2-C195 Day 2 · Lightning session D: Rendering and JavaScript

    Content that loads only after a user action such as a click or a scroll is not in the DOM while Google renders the page, so Google cannot index it.

    extends
    Docs D1-C115 Day 1 · session not recorded

    Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the next page, should not use page 1 as its canonical, and rel=next and rel=prev are no longer used.

  23. Slide D2-C197 Day 2 · Lightning session D: Rendering and JavaScript

    Lazy loading triggered by a scroll event listener, such as window.addEventListener('scroll', loadMoreProducts), never runs for Googlebot because Googlebot does not scroll.

    extends
    Stage D1-C114 Day 1 · Q&A

    A Google panelist called pagination one of the trickiest things in web development and said switching to infinite scroll or a load-more button is risky, depending on what you want to achieve, because Googlebot does not click buttons.

  24. Slide D2-C201 Day 2 · Lightning session D: Rendering and JavaScript

    Tab or accordion content fetched from an API only when a user clicks the tab, as in tab.onclick = () => fetch('/api/specs'), does not exist for Google until someone clicks.

    extends
    Docs D1-C115 Day 1 · session not recorded

    Google's crawlers do not click buttons. Each page in a series needs its own URL and an <a href> link to the next page, should not use page 1 as its canonical, and rel=next and rel=prev are no longer used.

  25. Slide D2-C204 Day 2 · Lightning session D: Rendering and JavaScript

    Blocking JavaScript or API resources in robots.txt is a classic rendering mistake: if Google's renderer cannot fetch a resource, it cannot run it.

    extends
    Slide D1-C064 Day 1 · How crawling works

    The crawler has multiple tasks: fetch from the internet, ensure it doesn't break the internet, and enforce robots.txt policies. Fetched data is sent for indexing.

  26. Analysis D2-C208 Day 2 · Lightning session D: Rendering and JavaScript

    A robots.txt carve-out works because Google applies the most specific matching rule, so Allow: /api/products/ beats Disallow: /api/ for product endpoints only; re-test a rendered page after every robots.txt change to script or API paths.

    extends
    Docs D1-C081 Day 1 · How Google interprets robots.txt

    When matching rules to a URL, Google uses the most specific rule by path length. If rules conflict, it uses the least restrictive one.

  27. Analysis D2-C210 Day 2 · Lightning session D: Rendering and JavaScript

    An API or CDN on its own host needs its own robots.txt check: a blanket Disallow there, or a robots.txt that returns 5xx errors, can stop Google fetching the data a page renders from.

    extends
    Docs D1-C074 Day 1 · How crawling errors affect Search

    If robots.txt returns a 5xx error, Google stops crawling the site for the first 12 hours, then uses the cached copy for up to 30 days.

  28. Stage D2-C213 Day 2 · Lightning session D: Rendering and JavaScript

    A page that renders empty for Google, such as a client-side product page hit by these mistakes, is seen as thin content and ends up treated as a soft 404 even though users see a full page.

    extends
    Docs D1-C073 Day 1 · How crawling errors affect Search

    A soft 404 is a page that returns a success code while its content looks like an error or an empty page. It is kept out of the index but continues to be crawled, wasting crawl budget.

  29. Stage D2-C259 Day 2 · What is Google friendly JavaScript

    Erin Sparling named server-side or hybrid rendering, fallbacks and not leaving placeholders in the DOM, among other measures, as ways to guard against failed JavaScript rendering.

    extends
    Stage D2-C149 Day 2 · Lightning session D: Rendering and JavaScript

    A search engine's renderer does not wait forever before taking its snapshot, so content from slow internal systems or APIs can be missing and unresolved placeholders can end up in the final snapshot, a community speaker said.

  30. Stage D2-C263 Day 2 · What is Google friendly JavaScript

    Content is missing from the rendered HTML either because the server does not serve it or because the content has still not appeared after some period of time.

    extends
    Stage D2-C149 Day 2 · Lightning session D: Rendering and JavaScript

    A search engine's renderer does not wait forever before taking its snapshot, so content from slow internal systems or APIs can be missing and unresolved placeholders can end up in the final snapshot, a community speaker said.

  31. Stage D2-C272 Day 2 · What is Google friendly JavaScript

    Instead of scrolling, Google renders a page in a very tall viewport, around 10,000 pixels high.

    extends
    Slide D2-C199 Day 2 · Lightning session D: Rendering and JavaScript

    An Intersection Observer fires when the observed element enters the viewport, and the viewport Google renders with is tall, so content lazy-loaded this way can load during rendering.

  32. Stage D2-C281 Day 2 · What is Google friendly JavaScript

    Polyfills work in two directions: they patch backwards where a browser lacks support, or patch forward to build now for a feature expected in the future, as Web Fragments does.

    extends
    Stage D2-C254 Day 2 · Lightning session D: Rendering and JavaScript

    Natalia Venditto said the ShadowRealm proposal would do much of what Web Fragments does today with patches: containerizing and isolating execution.

  33. Stage D2-C288 Day 2 · What is Google friendly JavaScript

    With the History API, a single-page app can use real links and attach event listeners that intercept the click, rewrite the URL with pushState and load the new content, so Google can follow the links while users avoid full page reloads.

    extends
    Slide D2-C185 Day 2 · Lightning session D: Rendering and JavaScript

    The crawlable pattern for single-page app navigation is a real URL in the href, such as <a href=/products>, combined with History API routing (window.history.pushState) instead of hash routes.

  34. Stage D2-C292 Day 2 · What is Google friendly JavaScript

    The fix for a client-side soft 404 is to serve a real 404 error page where appropriate; how to detect URLs that do not exist depends on how the app works and where it is hosted.

    extends
    Stage D2-C191 Day 2 · Lightning session D: Rendering and JavaScript

    The fix for a client-side soft 404 is to make a missing page end with a real HTTP 404 status code instead of 200.

  35. Slide D2-C336 Day 2 · Understanding what's on a page

    Google listed four common causes of soft 404s: pages that look like errors but are not, thin or empty content, server or CMS misconfigurations, and JavaScript-dependent content that fails to load.

    extends
    Stage D2-C213 Day 2 · Lightning session D: Rendering and JavaScript

    A page that renders empty for Google, such as a client-side product page hit by these mistakes, is seen as thin content and ends up treated as a soft 404 even though users see a full page.

  36. Stage D2-C601 Day 2 · Focusing on Internationalisation and Localisation

    Sites need no extra work to appear in AI Overviews and AI Mode: both work on top of the existing web results, so what works for web results also works for the AI features.

    extends
    Stage D2-C116 Day 2 · Lightning session D: Rendering and JavaScript

    AI Overviews and AI Mode are built on top of Search results: they are a different experience of the same content Google already has.

  37. Stage D2-C866 Day 2 · Understanding what's on a page

    Content inside tabs, for example separate tabs for a product description and a manufacturer description, might be part of a page's main content.

    extends
    Slide D2-C202 Day 2 · Lightning session D: Rendering and JavaScript

    Tab and accordion content should be in the DOM from the start and only hidden with CSS or the hidden attribute; Google indexes such hidden content.

  38. Stage D3-C626 Day 3 · How long does it take to..?

    Google renders pages in two ways: immediately after crawling, or later through a queue-based process that runs elsewhere.

    extends
    Slide D2-C170 Day 2 · Lightning session D: Rendering and JavaScript

    After processing, an indexable page is placed in Google's render queue to wait for rendering.

  39. Stage D3-C627 Day 3 · How long does it take to..?

    Content that JavaScript adds to a page is typically seen by Google's indexing system within a few hours, and at worst within weeks.

    extends
    Docs D2-C172 Day 2 · Lightning session D: Rendering and JavaScript

    Google's JavaScript SEO basics guide says a page may wait in the render queue for a few seconds but that it can take longer, and it gives no upper limit.

  40. Analysis D3-C676 Day 3 · How long does it take to..?

    The stage doubt that every URL gets rendered sits beside Google's JavaScript guide, which says every page with a 200 status is queued for rendering unless a robots rule blocks indexing: queued is not the same as rendered, so do not rely on rendering for critical content.

    extends
    Docs D2-C131 Day 2 · Lightning session D: Rendering and JavaScript

    Google's JavaScript SEO guide says Googlebot sends every page with a 200 HTTP status code to the rendering queue, whether or not it contains JavaScript, unless a robots meta tag or header tells Google not to index it, and Google uses the rendered HTML to index the page.

  41. Stage D2-C116 Day 2 · Lightning session D: Rendering and JavaScript

    AI Overviews and AI Mode are built on top of Search results: they are a different experience of the same content Google already has.

    repeats
    Slide D1-C038 Day 1 · How Search works and where's AI?

    AI Mode and AI Overviews use the same crawling and the same index as Search. At serving they add grounding on the Search index and query fan-out.

  42. Docs D2-C122 Day 2 · Lightning session D: Rendering and JavaScript

    Google says user-triggered fetchers, which fetch a URL because a user asked for it in a Google product (for example Gemini Notebook fetching URLs users add as sources, or Google-Agent acting on a user's request), generally ignore robots.txt rules.

    repeats
    Stage D1-C273 Day 1 · Lightning session A: Automation and AI

    A community speaker pointed out that, according to Google's documentation, user-triggered fetchers, which fetch a page because a user asked for it, generally ignore robots.txt rules.

  43. Stage D2-C126 Day 2 · Lightning session D: Rendering and JavaScript

    Google renders pages with Chromium, the browser technology that also underlies Chrome, Edge and other Chromium-based browsers.

    repeats
    Stage D1-C206 Day 1 · How Search works and where's AI?

    Google renders JavaScript-heavy pages from their HTML, CSS and JavaScript as a browser would, using the latest version of Chromium.

  44. Stage D2-C217 Day 2 · Lightning session D: Rendering and JavaScript

    Natalia Venditto opened by saying that Gary had said earlier at the event that everyone can write a standard, and that this is what the Web Fragments work is trying to do.

    repeats
    Stage D2-C052 Day 2 · Controlling indexing

    John Mueller encouraged attendees to help write a specification for robots meta tags, saying internet standards groups are made up of ordinary people and need only passion and a willingness to join the discussions.

  45. Slide D2-C262 Day 2 · What is Google friendly JavaScript

    Content that is not in the final DOM after rendering cannot be seen by Google, so it cannot be indexed.

    repeats
    Slide D2-C174 Day 2 · Lightning session D: Rendering and JavaScript

    Whatever is in the DOM at the moment Google's rendering finishes is what likely gets indexed.

  46. Slide D2-C265 Day 2 · What is Google friendly JavaScript

    Blocked resources, one of Google's four common JavaScript indexing problems, means robots.txt disallowing the crawling of critical JavaScript files or API endpoints.

    repeats
    Slide D2-C204 Day 2 · Lightning session D: Rendering and JavaScript

    Blocking JavaScript or API resources in robots.txt is a classic rendering mistake: if Google's renderer cannot fetch a resource, it cannot run it.

  47. Stage D2-C268 Day 2 · What is Google friendly JavaScript

    Content that loads only when a user clicks an element is not supported in the way Google renders pages for indexing.

    repeats
    Slide D2-C195 Day 2 · Lightning session D: Rendering and JavaScript

    Content that loads only after a user action such as a click or a scroll is not in the DOM while Google renders the page, so Google cannot index it.

  48. Stage D2-C271 Day 2 · What is Google friendly JavaScript

    Google does not scroll a page when it renders it for indexing, so content that infinite scroll loads on scroll-depth triggers works for users but is never loaded for Google.

    repeats
    Slide D2-C197 Day 2 · Lightning session D: Rendering and JavaScript

    Lazy loading triggered by a scroll event listener, such as window.addEventListener('scroll', loadMoreProducts), never runs for Googlebot because Googlebot does not scroll.

  49. Stage D2-C274 Day 2 · What is Google friendly JavaScript

    Content loaded as elements enter the viewport, for example with an Intersection Observer, does load when Google renders a page, because Google's rendering viewport is very tall.

    repeats
    Slide D2-C199 Day 2 · Lightning session D: Rendering and JavaScript

    An Intersection Observer fires when the observed element enters the viewport, and the viewport Google renders with is tall, so content lazy-loaded this way can load during rendering.

  50. Slide D2-C285 Day 2 · What is Google friendly JavaScript

    Google recommends the History API to give single-page apps clean URLs instead of fragment-based routes.

    repeats
    Slide D2-C185 Day 2 · Lightning session D: Rendering and JavaScript

    The crawlable pattern for single-page app navigation is a real URL in the href, such as <a href=/products>, combined with History API routing (window.history.pushState) instead of hash routes.

  51. Stage D2-C291 Day 2 · What is Google friendly JavaScript

    In JavaScript single-page apps, soft 404s typically arise because the server returns the app with a 200 status for every URL, so when the app shows a 'not found' message for a URL that does not exist, no error is reported.

    repeats
    Stage D2-C190 Day 2 · Lightning session D: Rendering and JavaScript

    In single-page apps, a missing page often shows a custom 404 page while the server returns HTTP 200, because the front-end router, not the server, handles the 404.

  52. Stage D2-C296 Day 2 · What is Google friendly JavaScript

    If robots.txt blocks JavaScript that client-side code needs to render, Google cannot render the content that the JavaScript would produce.

    repeats
    Slide D2-C204 Day 2 · Lightning session D: Rendering and JavaScript

    Blocking JavaScript or API resources in robots.txt is a classic rendering mistake: if Google's renderer cannot fetch a resource, it cannot run it.