JavaScript SEO Basics 2027: How Google Crawls and Renders Your Pages

technical reference

Good to see you, sir. JavaScript SEO is the work of making sure Google can find, run and understand pages that build themselves in the browser. Google can run JavaScript, but a few habits still stop it seeing your content or your links. This guide lists them, with the fix for each.

  • three processing phases
  • link and URL rules
  • testing steps
phase 1Crawl

Googlebot checks robots.txt, then fetches the URL

phase 2Render

pages with a 200 status queue for rendering in Chromium

phase 3Index

the rendered HTML is what gets stored

// the three phases are from Google Search Central, JavaScript SEO basics. Short captions are my own wording.

the short answer

Can Google Read JavaScript Pages?

Yes. Google says Search runs JavaScript with an evergreen version of Chromium. But server-side or pre-rendering is still a great idea, according to Google.

JavaScript is code that runs in the visitor’s browser. Many modern sites use it to build the page after it loads, so the first HTML a crawler gets can be almost empty. If Google never runs the code, the page stays empty to Google too.

Evergreen simply means the Chromium browser Google uses stays up to date. So “Google can’t run JavaScript” is an old myth. The real risks are smaller and more practical, and they are listed below. For the general process, see how Google Search works.

how it works

The Three Phases in Plain Words

Google processes JavaScript apps in three main phases: crawling, rendering and indexing. A problem in any phase can hide your content.

  • Crawling. Googlebot checks robots.txt before it fetches anything. Google says it won’t render JavaScript from blocked files or on blocked pages.
  • Rendering. Googlebot queues all pages with a 200 status code for rendering. Pages with other statuses, such as 404, may skip it.
  • Indexing. Google indexes what it sees after rendering. Only content visible in the rendered HTML can be indexed.

So when someone says “my content is there in the browser”, the question is: is it there in the rendered HTML Google sees? That is a different question, and you can test it below.

the rules

What to Do and What to Avoid

These are Google’s main points for JavaScript sites, with my plain-English notes.

TopicDo thisWhy
LinksUse anchor elements with an hrefGoogle says it can only discover links that are a elements with an href attribute
URLsUse the History API for page changesGoogle says not to use fragments to load different page content
TitlesSet unique titles and descriptionsJavaScript may set them, and they help users pick results
CanonicalPut it in the HTMLA JavaScript canonical must match the HTML one and be the only one
Robots metaAvoid noindex in the original code on pages you want indexedGoogle may skip rendering when it sees noindex
Status codesReturn real codes, such as 404Single-page apps can redirect to a 404 URL or inject noindex on error views

// source: Google Search Central, JavaScript SEO basics. The “Do this” column is my summary.

Links deserve a second look. Google says it is fine to use JavaScript to inject links into the page, as long as they follow crawlable-link practices. A button with an onclick event that changes the page is not a crawlable link. Make it an anchor with a real address. My robots meta tag guide covers the noindex rule in detail.

step by step

How to Make a JavaScript Site Crawlable

Seven steps, in the order I would check them.

  1. Confirm nothing is blocked. Make sure robots.txt doesn’t block the scripts or pages you need.
  2. Check the rendered HTML. Use the URL Inspection tool to view what Google rendered. Compare it with what you see in your browser.
  3. Fix the links. Every navigation link should be an anchor with an href, including menus and pagination.
  4. Give each view its own URL. Use the History API, not fragments.
  5. Set titles, descriptions and canonicals. Keep them in the HTML where you can.
  6. Handle errors properly. Return a real 404 where you can. Otherwise follow Google’s single-page app options: a JavaScript redirect to a 404 URL, or a noindex tag on error views.
  7. Consider server-side rendering. Google says it is still a great idea. It also helps other crawlers.

Two smaller notes from Google’s page. Googlebot caches aggressively and its rendering service may ignore caching headers, so use content fingerprinting in file names to avoid stale scripts. And follow Google’s lazy-loading guidelines so images and content still get indexed.

common mistakes

Mistakes That Hide Content

Five problems cause most JavaScript SEO trouble.

Blocking scripts in robots.txt

Google won’t render JavaScript from blocked files. Unblock them.

Click-only navigation

If a menu needs a click handler and has no href, Google can’t follow it. Use anchors.

Hash URLs for pages

Fragment-based routing is ignored for page content. Switch to the History API.

Soft 404s in an app

An app that shows “not found” with a 200 status confuses Google. Return a 404 or add noindex on that view.

A sixth one is noindex in the original HTML, “to be removed by JavaScript later”. Google warns that when it sees noindex it may skip rendering and JavaScript execution. So the page may never reach the step where your script removes it. If you want a quick refresher, the noindex tag explained shows safe use.

verify it

How to Test What Google Sees

Test the rendered HTML, not just the page in your browser.

  1. Open the URL Inspection tool and inspect the page. Check the rendered HTML for your main text and links.
  2. Run the Rich Results Test on the same address. Google names it, with URL Inspection, as a way to verify rendered output.
  3. Search for a distinctive sentence from the page, in quotes, a few weeks after it goes live. It is a rough check, not proof.
  4. Check Search Console for indexing problems on key templates.

If this sounds like a lot, it is a good fit for my technical SEO service. A cheap SEO service for small business can include a rendering check, and I’ll explain the findings in plain English.

faq

Questions People Ask Me

Can Google crawl JavaScript websites?

Yes. Google says Search runs JavaScript with an evergreen version of Chromium, and processes JavaScript apps in three phases: crawling, rendering and indexing.

Do I need server-side rendering?

Not always, but Google says server-side or pre-rendering is still a great idea.

What kind of link can Google follow?

Google says it can only discover links that are anchor elements with an href attribute. Injecting them with JavaScript is fine if they follow that rule.

Should I use hash URLs for pages in my app?

No. Google says not to use fragments to load different page content. Use the History API.

Can JavaScript change my noindex tag?

It can fail. Google says when it sees noindex it may skip rendering and JavaScript execution, so keep noindex out of the original HTML of pages you want indexed.

site built with JavaScript?

Send Me the URL. I’ll Check What Google Sees.

Rendering checks are quick work for a cheap SEO expert who is also a developer. One WhatsApp message is enough.

sources

Sources and Last Check

// last checked 11 Nov 2026. The seven-step order and the plain-English notes are my own.