Cloaking Detection

Cloaking checker tools: what a URL checker can and cannot verify

By the ROAS365 team 2026-10-10 8 min read

A cloaking checker tool fetches a URL from several vantage points and reports whether the responses differ. That sounds simple, and the report often looks definitive. It is not. This guide explains what a checker actually fetches, which differences are meaningful, where it raises false alarms and misses real ones, and how advertisers, affiliate managers and compliance teams can use one as part of a landing-page self-audit without over-reading the result.

TL;DR
  • A checker compares responses to the same URL across user agents, IP types and sometimes JavaScript execution. It detects differences, not intent.
  • Legitimate personalization such as language, currency, consent banners, same-URL A/B tests and regional pricing also produces differences. A “difference found” result is the start of a review, not a verdict.
  • A checker cannot reproduce what an ad platform’s own systems observe from their own infrastructure, so a clean result does not guarantee a clean policy outcome.
  • Use checkers for recurring self-audits of your own and partner landing pages, keep dated reports, and pair them with server-log review.

What a cloaking checker actually does

At its core, a checker is a fetcher with several identities. It requests the same URL as a desktop browser, as a mobile browser, with a search-engine crawler user agent, and sometimes from a datacenter IP and a residential IP. It then compares the responses: status codes, redirect chains, final URL, page title, main text and, in better tools, a rendered screenshot taken after JavaScript has run.

The output is a diff. Some tools summarize it as a score or a pass/fail label, but underneath there is always a comparison between two or more fetches. Understanding that is the key to reading the report correctly: the tool knows that responses differed, it does not know why. Our guide on how to check if a page is cloaking covers the manual version of the same comparison.

The signals a checker compares

SignalWhat the checker fetchesWhat it cannot see
User agentSame URL with browser and crawler UA stringsWhether a server treats a self-declared crawler UA differently from a verified crawler IP
IP typeDatacenter, residential and sometimes mobile-carrier exitsThe exact IP ranges a specific ad platform uses for its own checks
Redirect chainEach hop, its status code and the final destinationHops that trigger only after a client-side event, timer or interaction
Rendered contentDOM or screenshot after JavaScript, if supportedContent that loads only after scroll, consent, or a cookie set on a prior visit
GeographyFetches from a handful of countriesThe full set of regions your ads actually serve in

The redirect-chain row deserves attention. Many flagged differences come from tracking links and affiliate redirects rather than from the landing page itself. Our redirect chain analysis article shows how to separate hop-level behavior from page-level behavior before drawing any conclusion.

What a checker cannot verify

Reading false positives and false negatives

False positives are the common case. Language and currency switching, cookie-consent banners that render differently by region, same-URL A/B tests, dynamic inventory and pricing, and bot-mitigation challenge pages shown to datacenter IPs all produce differences that a checker flags. None of these is a policy problem on its own, provided the substantive content and the offer are the same for every visitor. The de-cloaking false positives article walks through the most frequent cases.

False negatives are quieter and more dangerous. A page that keys off signals the checker does not vary, such as a specific referrer, a click-ID parameter, a device fingerprint or a timing window, will look consistent to the tool. If you are auditing a partner, a clean result should raise the question “what did this tool not vary?” rather than close the file.

A practical reading rule: treat “difference found” as “open a manual review”, and treat “no difference” as “no difference across the dimensions this tool tested”. Neither label is a verdict.

A self-audit workflow for your own and partner pages

  1. Define the baseline. Record the intended behavior of the page: which language and currency variants exist, which A/B variants are live, which regions are served, which consent flows apply. Differences inside that baseline are expected.
  2. Run from more than one vantage point, at more than one time. At minimum: launch day, mid-campaign, and after any partner or CMS change.
  3. Export and date every report. If a platform later asks about the destination, a dated trail of your own checks is useful context.
  4. Reconcile flagged differences against the baseline. Anything outside it goes to a human review of both versions side by side.
  5. Cross-check with server logs. Log the user agent, IP class and response served for crawler-identified requests, and compare against what the checker observed. Our guide to testing routing-tool accuracy describes several of these tests.
  6. For partner pages, agree the baseline in writing and re-run on a schedule. See partner page compliance monitoring for a monitoring cadence.

Choosing a checker: the questions that matter

Our cloaking tools comparison evaluates routing and verification tools on related criteria. Whatever you pick, prefer a tool that shows its evidence over one that only gives a label.

Frequently asked questions

What is a cloaking checker tool?

A service that requests the same URL under different identities, such as browser and crawler user agents, datacenter and residential IPs and sometimes several countries, and reports whether the responses differ in status, redirects, content or rendering.

If a checker says my page is clean, is my ad destination compliant?

No. A clean result means no difference was found across the dimensions that tool varied. Ad platforms evaluate with their own infrastructure and against their published destination requirements. Treat the checker as one input in your own diligence, not as approval.

Why does a checker flag my page when I only use language and currency switching?

Because the tool detects differences, not intent. Localization, consent banners and same-URL A/B tests all produce differences. Document them as your expected baseline and review anything that falls outside it.

How often should I check partner landing pages?

At launch, after any change the partner reports, and on a fixed schedule during the campaign. Keep dated exports so you can show what you observed and when.

Can a checker replace server-log review?

No. The checker shows the outside view; your logs show what your server actually served to each request class. You need both to explain a difference.

One URL, the same page for every visitor

Same landing-page URL for every visitor — language and region adaptation in-page, in-page A/B testing, and identification and filtering of invalid traffic. No hidden content, no misleading redirects.