Skip to main content

Cloaking Checker

Third-party service

Fetch a live URL as Googlebot and as a regular browser and diff what each gets back — title, meta description, robots, canonical, h1s, structured data, hreflang, word count — to catch cloaking, whether it's deliberate or an accidental side effect of bot-detection or paywall middleware.

Input

Fetched twice server-side — once as Googlebot, once as a regular desktop browser.

Output

Cloaking risk issues
SeverityFieldIssue
No data yet
Googlebot vs. browser
FieldGooglebotBrowserMatch
No data yet
Was this helpful?

Guides

What the Cloaking Checker does

Enter a live URL and this tool fetches it twice server-side — once with Google's real Googlebot user agent, once with a regular desktop browser user agent — and diffs what each version returns: title tag, meta description, robots directive, canonical URL, h1 headings, schema.org structured data, hreflang tags, and an approximate word count. Cloaking is when the crawler that decides how a page ranks sees different content than a real visitor — whether that's a deliberate black-hat SEO trick or an accidental side effect of bot-detection, paywall, or geo-targeting middleware treating Googlebot's UA specially.

How to use it

  1. Enter the full URL of the page you want to check.
  2. Click Compare Googlebot vs browser. The page is fetched twice server-side (cross-origin HTML can't be read from the browser, and spoofing a crawler's User-Agent isn't something client-side JavaScript can do).
  3. Review the Cloaking risk issues table for anything to fix, and the Googlebot vs. browser table for the full side-by-side comparison.

What gets flagged

  • Title, meta robots, canonical URL (error) — these directly control what ranks and under what URL. A mismatch here is the most consequential kind of gap, and the one search engines are most likely to penalize as cloaking.
  • Meta description, h1 content, structured data types (warning) — these shape how the page is understood and displayed, not whether it ranks at all.
  • hreflang count, image count, word count (info/warning) — secondary signals; a large word-count gap (>15%) is flagged as a warning since it often means content is being selectively hidden from or shown to the crawler.

Why this happens

Most sites serve byte-identical HTML regardless of User-Agent, so a gap usually means "no cloaking risk found." The gaps this tool catches show up on sites doing UA-sniffing: a bot-detection or ad-fraud layer that serves a stripped-down page to anything matching a crawler string, a paywall that shows Googlebot the full article to get indexed while gating real visitors, or a geo/locale redirect that only fires for non-bot traffic. All three read the same way to Google: the ranked content isn't the content people actually see.

Scope

Both fetches read the raw HTML response — there's no headless browser rendering either side, so JavaScript-injected content that differs between the two after the initial HTML load won't show up here. For a different UA pair — Googlebot Smartphone vs Desktop, to catch mobile-first-index parity gaps instead — see Mobile-First Index Checker. For an Accept-Language-driven diff instead of a User-Agent one, see Locale Cloaking Checker.

Privacy

The URL is fetched by our server only to compare the two responses and isn't stored. Requests to private or local network addresses are blocked.

cloaking checkerseogooglebottechnical seocrawlingblack hat seo

Use it from code

From 3 credits per call

REST API

curl -X POST https://api.iotools.cloud/v1/tool/cloaking-checker \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `cloaking-checker` tool (Cloaking Checker) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.