Skip to content
regensbot
DEV-URL-03Must3 of 11 in URL

Route single-page apps with the History API and real paths, not # fragments

Level
Must

Required: the site is not ready to launch without it.

Documentation

Documented

At least one cited Google document states or supports it.

Covered

Automatic

Decided automatically once Regensbot renders your pages.

Why it matters

A fragment (the part of a URL after #) exists only in the browser and is often ignored by crawlers, so hash-routed views are not separate pages for Google. Google recommends the History API for clean URLs, and moving from hash routes to real paths keeps the same client-side behaviour.

How to meet it

Run the router in history mode. Render links as <a href="/path">, intercept the click, call history.pushState and handle popstate. Configure the server or hosting rewrites so a direct request to every valid path returns 200 with the page, ideally server-rendered, and unknown paths return 404 (DEV-ERR-02). Real paths also work as deep links on Android, iOS and desktop.

How to test it

Open a deep URL directly in a fresh browser session and with curl: it returns 200 and the right content. The rendered HTML in URL Inspection contains no href="#/..." routes.

How Regensbot covers it

AutomaticNeedsRendering in headless Chromium

Decided automatically once Regensbot renders your pages.

Headless Chromium renders the page on an isolated render service, and the raw and the rendered HTML run through the same parsers.

How verdicts workWhat you connect

Sources

Google documents02

  1. 01Understand the JavaScript SEO basicsGoogle Search Central (opens in a new tab)
  2. 02Fix Search-related JavaScript problemsGoogle Search Central (opens in a new tab)

Claims in the knowledge base06

  1. D2-C185ConfirmedLightning session D: Rendering and JavaScriptShown on screen
  2. D2-C284ConfirmedWhat is Google friendly JavaScriptShown on screen
  3. D2-C285ConfirmedWhat is Google friendly JavaScriptShown on screen
  4. D2-C288ConfirmedWhat is Google friendly JavaScriptSaid on stage
  5. D2-C286ConsistentWhat is Google friendly JavaScriptSaid on stage
  6. D2-C289UndocumentedWhat is Google friendly JavaScriptSaid on stage

Claim IDs refer to the Search Central Live 2026 knowledge base. The knowledge base (opens in a new tab)

Confirmed
Google's documentation states the same thing.
Consistent
Google's documentation supports it without stating it.
Undocumented
Said or shown at the event, not in the documentation.

Audit

Check it on your site.

One audit checks a URL against all 138 requirements and returns one finding for each, with its source. One URL decides 66; for each of the others, the finding says which source to connect.