Technical SEO · Guide

Rendering: is the content really there when Google looks?

Rendering is the step where a page’s code is run to produce the content and links Google can use. If key content depends on scripts, the gap between what the server sends and what a browser shows becomes an SEO question.

Talk to an SEO specialist More on Technical SEO

JavaScript SEO

Google Search runs JavaScript with an evergreen version of Chromium, and processes JavaScript web apps in three phases: crawling, rendering and indexing. Googlebot checks robots.txt, fetches the URL, and queues pages with a 200 status for rendering unless a robots meta tag or header says not to index them. The page may wait in that queue for a few seconds or longer, and a headless Chromium then renders it. Google also notes that server-side or pre-rendering remains a good idea because not all bots can run JavaScript (Understand JavaScript SEO Basics).

Google’s troubleshooting guide lists the traps. The rendering service does not keep cookies, Local Storage or Session Storage across page loads. Googlebot declines permission requests such as camera access. URL fragments cannot be relied on to load different views, so single-page apps should use the History API. Error pages that return 200 can be indexed as soft 404s, so a real error status, or a redirect to one, is needed (Fix Search-Related JavaScript Problems). Lazy-loaded content must load when it enters the viewport, because Google Search does not interact with your page by scrolling or clicking (Fix Lazy-Loaded Website Content).

We cover JavaScript SEO as part of technical SEO. On the technical SEO page it sits under the question of whether the content is really there: JavaScript, lazy loading and blocked resources.

Source: Google Search Central: Understand JavaScript SEO Basics

Rendered versus raw HTML

Raw HTML is what the server returns in response to a request. Rendered HTML is what exists after scripts have run. For a classic or server-side rendered page the two are close. Some JavaScript sites use an app shell, where the initial HTML does not contain the content and Google must execute JavaScript to see it (Understand JavaScript SEO Basics). Google parses the rendered HTML for links again, queues what it finds for crawling, and uses the rendered HTML to index the page, so anything that only appears after scripts run depends on rendering succeeding.

Differences matter most for signals that must be unambiguous. Google says the canonical URL is best set in the HTML source, and that JavaScript should not change it to something else. If the canonical can only be set by script, it should be left out of the original HTML (How to Specify a Canonical). The same care applies to anchor text inserted by JavaScript, which Google advises checking in the rendered HTML with the URL Inspection tool (SEO Link Best Practices for Google).

The URL Inspection tool lets you compare the two. A live test shows the raw HTML returned, the HTTP headers, a screenshot of the rendered page, JavaScript console output and the page resources loaded. We cover rendered versus raw HTML as part of technical SEO. When we build, the principle on our web development page is content in the HTML, with JavaScript kept minimal.

Source: Google Search Console Help: URL Inspection tool

Technical diagnostics

Diagnosis starts with Google’s own evidence. URL Inspection reports discovery, crawl and indexing status for a URL, and the Crawl Stats report shows response codes and host status across a property. The status code itself is a signal: 2xx content may be considered for indexing but is not guaranteed to be indexed, 4xx URLs are not indexed and indexed ones are removed over time, and 5xx and 429 responses make Googlebot slow down (How HTTP Status Codes Affect Google’s Crawlers). Google follows up to 10 redirect hops, and treats a 301 as a strong signal and a 302 as a weak one for which URL should be processed.

Mobile parity is a further check. Google uses the mobile version of a site’s content for indexing and ranking, so it recommends using the same robots meta tags on mobile and desktop, not lazy-loading primary content on user interaction, not blocking resources the mobile pages need, and keeping the content equivalent (Mobile-first Indexing Best Practices). A noindex on the mobile page can stop the page being indexed.

We cover technical diagnostics as part of technical SEO, and our approach to it is stated plainly on the site: locate the actual fault, not the symptom the tool reported.

Source: Google Search Central: How HTTP Status Codes Affect Google’s Crawlers

Performance, as one input among many

Core Web Vitals measure real-world loading performance (Largest Contentful Paint), responsiveness (Interaction to Next Paint) and visual stability (Cumulative Layout Shift). Google recommends aiming for LCP within 2.5 seconds, INP under 200 milliseconds and CLS under 0.1, and says its core ranking systems seek to reward a good page experience (Understanding Core Web Vitals and Google search results).

Google also puts the weight in context. There is no single page experience signal, and good Core Web Vitals reports do not guarantee top rankings. Google says it always seeks to show the most relevant content, even where page experience is sub-par, and that chasing a perfect score purely for SEO may not be the best use of time (Understanding Google Page Experience). Speed has a separate crawling effect: if a site responds quickly and consistently, Google can raise the crawl capacity limit, and slow responses or server errors lower it (Crawl Budget Management).

We cover performance as part of technical SEO, deliberately as one input among many. Our technical SEO FAQ says performance matters but is one input, and that most serious technical problems sit in crawling, indexing, rendering and architecture. Where performance work means development, it falls under ongoing development.

Source: Google Search Central: Understanding Google Page Experience

What Cultured Digital covers: Rendering

JavaScript SEO, rendered versus raw HTML, technical diagnostics, and performance as one input among many make up the rendering group of our technical SEO work. We find what is actually suppressing organic performance, then help fix it, with your developers or on our own.

We write findings as specifications developers can build and test, and stay involved through QA. We do not promise rankings or traffic numbers: we set out the opportunity and the evidence, and measure against it.

Built by us

Tools built by Cultured Digital: Rendering

Two tools we built relate to parts of this work.

Screenshot of the Link Signals website: "Your site links to hundreds of places. Who owns them now?", with an example page showing a hidden link that visitors cannot see but search engines can. Tool · Live Link Signals Reads every outbound link on a website, shows where each one leads today, and flags links that no longer belong. View tool →

Detects script-written links as well as hidden and cloaked links; as stated, links built only while scripts run may be missed.

Screenshot of the SEO Ops website: "Run your SEO agency from WordPress", with a diagram of clients, strategies, tasks, reports, crawl data, approvals and client portal inside WordPress. Tool · Live SEO Ops A WordPress plugin that keeps SEO clients, strategies, tasks, crawl data, reports, approvals and a client portal in one system. Built with: WordPress plugin (WordPress 6.5+, PHP 8.1+), runs on your own WordPress install View tool →

Imports Screaming Frog crawl data for technical analysis and holds recommendations as tasks.

Questions

Rendering: questions answered.

Can Google index content that depends on JavaScript?

Yes. Google Search runs JavaScript with an evergreen version of Chromium. Rendering happens after crawling and can take longer than a few seconds, and Google still describes server-side or pre-rendering as a good idea because not all bots can run JavaScript.

How can I see what Google sees on a page?

The URL Inspection tool in Search Console shows the raw HTML returned, HTTP headers, JavaScript console output and loaded resources, and a live test also provides a screenshot of the rendered page.

Can I rely on URL fragments for different views in a single-page app?

No. Google says URL fragments cannot be relied on to load different content, and recommends the History API instead.

Are good Core Web Vitals enough to rank well?

No. Google says good results in Core Web Vitals reports do not guarantee top rankings, that there is no single page experience signal, and that there is more to page experience than those scores.

Is the content really there for Google?

Tell us what the site is built on and what is not showing up. We will say how we would investigate it.

Talk to an SEO specialist