Rendering
Pre-rendering Tester
Find out whether a pre-rendering service, CDN rule or server setting sends crawlers a different page from the one people see.
- Fetched live by our server
- Nothing stored
The tool
Enter a URL and pick the two visitors to compare.
Loading the tool…
The URL you enter is sent to our server, which requests that page from the public internet and returns the response to your browser for analysis. We do not store the URL or the response, and we do not add either to analytics. Requests come from our server, not from your device or from the crawlers being simulated, so a site that blocks data-centre addresses or verifies crawlers by IP may answer differently.
What this tool checks
- HTTP status, redirects and final URL for each profile
- Title, meta description, canonical and robots directives
- H1 and the full H1 to H3 heading set
- Main content word count and a content similarity score
- Internal links, images and alt text
- JSON-LD structured data types and hreflang annotations
- Vary, caching and CDN headers that explain why responses differ
How to read the results
- Read the similarity score first. Near 100% means both visitors received essentially the same content.
- Work through findings marked High: a different status, canonical or robots directive changes how the page is indexed.
- Use the headers table to see why. Vary: User-Agent, a pre-render header or different cache status usually points to the system responsible.
- Export the comparison to share with whoever runs the pre-rendering or CDN configuration.
About this tool
Why compare two visitors?
Pre-rendering services, edge workers and some caching setups decide what HTML to return based on the user agent. A crawler might get a fully rendered snapshot while a browser gets an empty shell that JavaScript fills in. Done well, both contain the same content and the same signals. Done badly, crawlers get a stale snapshot, a different canonical, a missing noindex, or an error page that nobody notices because people never see it.
This tool requests the same URL twice, once per profile, and compares the parts that decide indexing and ranking. It is the quickest way to catch a misconfigured pre-render cache, a firewall that challenges bots, or a server that redirects crawlers somewhere unexpected.
Dynamic rendering and what Google says about it
Google describes dynamic rendering as a workaround rather than a long-term solution and recommends server-side rendering, static rendering or hydration instead. It is not treated as cloaking as long as the content is similar. Cloaking means showing crawlers substantially different content from users with the intent to manipulate rankings, which this tool cannot judge. What it can show is whether the responses differ, where, and by how much.
Reading the comparison
Status and final URL
If one profile gets a 200 and the other a 403, 429 or 503, a bot-protection layer is probably challenging that user agent. If the final URLs differ, one profile is being redirected, often to a country or device version.
Canonical and robots
These must match. A pre-rendered copy with a different canonical points Google to another URL, and a noindex left in a snapshot removes the page from search even though people can see it.
Content similarity
The score compares overlapping three-word sequences of the main content. Small differences from dates, counters or rotating promotions are normal. A score well below 90% means whole sections differ, which is worth explaining.
Headers
Vary: User-Agent tells caches that the response depends on the user agent. Headers such as x-prerender, a cache status or a different server value usually identify which layer answered.
Choosing profiles
The default compares Googlebot Smartphone with Chrome on Android, which is the pairing that matters most for mobile-first indexing. Compare an AI crawler such as GPTBot or ClaudeBot with Chrome to see whether AI systems are blocked or served something different, or use a custom user agent to test a specific rule.
Fixing what you find
If crawlers get a stale snapshot, shorten the pre-render cache lifetime or purge it when content changes. If a firewall challenges crawlers, allow verified crawler traffic rather than whitelisting the user agent string, which anyone can copy. If the canonical or robots tag differs, generate it from the same source for every visitor. The long-term fix Google recommends is to stop serving crawlers something different at all, by rendering the page on the server for everyone.
Limits and honest caveats
- Different HTML for crawlers is not automatically cloaking. Dynamic rendering that serves crawlers a pre-rendered copy of the same content is a legitimate, if no longer recommended, workaround.
- Our requests come from our server. Sites that verify Googlebot by reverse DNS or IP range will not send their crawler version to this tool.
- Both requests are raw HTTP fetches. JavaScript is not executed, so content a browser builds later is not compared. Use Fetch & Render for that.
- Personalised content, A/B tests and rotating elements can produce differences between any two requests, including two identical ones.
What people use it for
- Checking that a pre-rendering service returns an up-to-date snapshot
- Finding a firewall or bot-protection rule that blocks search or AI crawlers
- Confirming that Googlebot and visitors get the same canonical and robots tags
- Diagnosing different redirects for crawlers and browsers
- Producing evidence for a developer or CDN provider to act on
Documentation and references
Questions
Questions about this tool
The things clients actually want to know — costs, timelines, ownership and what happens after launch.
No. Differences can come from personalisation, caching or legitimate dynamic rendering. Cloaking is about intent to mislead, which a comparison cannot prove. Treat differences as something to explain.
Your site may only serve its crawler version to verified Googlebot traffic, checked by reverse DNS. Our server is not Google, so it receives the visitor version.
No. Both profiles are raw HTTP requests. To compare raw and rendered HTML, use Fetch & Render.
The overlap of three-word sequences in the main content of the two responses. Identical content scores 100%.
Yes. Pick any two profiles, or use a custom user agent for either side.
Documentation last reviewed: by the Best Web Developer engineering team.
Free strategy session
Let’s build something worth finding.
Tell us where you want the business to be in twelve months. We will come back with a costed plan, a realistic timeline, and the numbers we expect to move — no obligation, no jargon.
- 30-minute call, no pitch deck
- Fixed-price proposal in 48 hours
- You own everything we build
Talk to a developer
Not a sales team
- Response time
- Within 1 business hour
- Where we work
- UK, USA & the Gulf
- Contracts
- No lock-in, monthly rolling
- Working since
- 2023