Disallow Humans (Bad Cloaking)

No Comments
Disallow humans (bad cloaking)

AI Summary

Cloaking means showing search engines one version of a page and human visitors another version at the same URL. Google treats a material difference between what Googlebot fetches and what a real user sees as a spam-policy violation, so the technique risks a manual action or full removal from search.

  • Cloaking is defined by intent to deceive plus a material content difference, not by any single technique.
  • robots.txt only governs crawlers, so you cannot “disallow humans”: feeding bots one page while blocking or redirecting people is still cloaking.
  • Responsive design, equivalent dynamic serving, and declared paywalls are not cloaking, because the underlying content matches.
  • Google’s live URL Inspection test renders the page as Googlebot, which is how most mismatches surface in seconds.
Diagram of cloaking: a server checks the user-agent and ip, serves googlebot a clean keyword-rich page, serves humans a different page, and google detects the mismatch as a spam-policy violation.
Cloaking serves crawlers and human visitors different content from one URL; Google compares the two copies and treats a material mismatch as a spam-policy violation.

The title of the case study this page points to, “Disallow Humans,” is a joke with a serious core. You cannot write a robots.txt rule that hides a page from people while showing it to Googlebot, and every clumsy attempt to do something like it lands in the same bucket: cloaking. Cloaking is the practice of serving search engines different content, or a different URL, than you serve to the humans who click through from the results. It is one of the oldest spam techniques on the web, and it remains one of the fastest ways to get a page or a whole domain removed from Google.

This walkthrough covers what actually counts as cloaking, the bright line that separates it from legitimate content variation like responsive design and geo-redirects, exactly how Google detects a mismatch, and what recovery looks like if a site is already caught. The underlying rule has not moved in years, even as rendering has improved: what Googlebot sees and what a signed-out visitor sees must be materially the same.

This SEO case study documents a successful optimization initiative, providing actionable insights for practitioners. The documented approach demonstrates how strategic SEO implementation drives measurable results.

Initial Situation

Understanding the starting point is essential context for evaluating any case study. This documentation covers the initial challenges, competitive position, and business objectives that shaped the SEO strategy.

Strategy and Approach

The strategic approach combined multiple SEO disciplines to address identified opportunities. Key decisions around prioritization and resource allocation provide a template for similar initiatives.

Implementation

Moving from strategy to execution required specific technical implementations, content development, and process changes. This case study documents the practical steps that translated strategy into action.

Results and Learnings

The outcomes demonstrate effectiveness through measurable improvements in rankings, traffic, and business metrics. Analysis of successes and challenges provides learning value for practitioners.

Case studies like this contribute to the SEO knowledge base, helping practitioners learn from documented real-world experiences.

What cloaking actually is

Cloaking has two ingredients, and both have to be present. The first is a material difference between the content served to a crawler and the content served to a user. The second is the intent to gain a ranking or click advantage from that difference. A page that detects Googlebot by user-agent string or by IP range, then swaps in keyword-stuffed copy, hides a redirect, or replaces an article with an affiliate landing page, satisfies both. So does the reverse trick some sites try: showing a rich, indexable article to the crawler while gating real visitors behind an interstitial, a login wall with no structured-data declaration, or an unrelated offer.

The detection surface is usually one of two signals. User-agent sniffing keys on the crawler’s reported identity, and IP-based cloaking keys on Google’s published crawler address ranges. Both are trivially reversible by Google, because the crawler can request the same URL from a different user-agent and a different network and compare the responses.

Why you cannot “disallow humans” and still rank

robots.txt is a set of instructions for automated crawlers. It has no mechanism to identify a human, and honoring it is voluntary even for bots. There is no User-agent: humans token. So the moment you try to give people a different experience than the crawler while keeping the crawler’s version in the index, you have stopped using robots.txt and started cloaking. The full syntax and every real directive live in the complete robots.txt reference, and none of them separate people from bots.

This matters because the intent behind cloaking is nearly always to rank for something the real page does not deliver. Google’s answer is simple and old: it evaluates the page as a user would experience it. If the indexed version and the lived version diverge in a way that would change a searcher’s decision, the indexed version is the fiction, and the fiction is what gets penalized.

Cloaking versus legitimate content variation

Plenty of sites serve slightly different bytes to different requests without cloaking. The deciding question is always the same: would a reasonable user feel deceived if they saw what Googlebot was shown? The table sorts the common cases.

TechniqueCloaking?Why
Detect Googlebot, swap in keyword-rich copy or a redirectYesMaterial difference plus intent to mislead the crawler
Responsive design (one HTML payload, CSS adapts by viewport)NoEvery request receives the same content
Dynamic serving of mobile and desktop HTML with Vary: User-AgentNoLayout differs but the content is equivalent for all clients
Geo-redirect users by IP; Googlebot (a US client) sees the US pageNo, if consistentGoogle is treated as any US visitor would be; do not special-case the crawler
Declared paywall using isAccessibleForFree and flexible samplingNoThe difference is disclosed through an approved program
Show text to Googlebot, an image-only or empty shell to usersYesIndexed content the visitor never receives
Hide sections behind a “read more” toggle in the same HTMLNoThe content ships in the response; it is only visually collapsed

The safe patterns share one trait: the content Google indexes is the content a person actually gets. For the grey-area cases, our notes on the Vary header and caching and on geo IP blocking cover how to vary responses without crossing into cloaking.

How Google detects the mismatch

You do not need Google’s internal tooling to reproduce its detection. Three checks catch almost every cloaked page, and they are the same three an auditor runs.

1. Fetch as a bot and as a browser, then diff. Request the URL with a Googlebot user-agent and again as a normal client, and compare the HTML that comes back:

curl -s -A "Googlebot" https://example.com/page > bot.html
curl -s https://example.com/page > user.html

If bot.html and user.html carry different main content, you have found cloaking by user-agent. Repeat from a non-Google IP to catch IP-based variants.

2. Run the live URL Inspection test in Search Console. The live test renders the page exactly as Googlebot does and shows the resulting HTML and screenshot. Compare that screenshot to what you see in an incognito browser. Any content that appears for the crawler but not the human, or the reverse, is the smoking gun.

3. Read the rendered DOM, not just view-source. Some cloaking hides in JavaScript that behaves differently for the crawler. Open the rendered HTML from URL Inspection and confirm the main content matches the user experience.

Signal Google can useHow you reproduce it
Different response to Googlebot user-agentcurl with and without -A "Googlebot", then diff
Different response to Google crawler IP rangesRequest from a Google Cloud IP versus a residential IP
Rendered content differs from raw HTMLURL Inspection live test, View crawled page → rendered HTML
User reports and spam reportsManual review comparing indexed snippet to the live page

Consequences and recovery

Cloaking is listed directly in Google’s spam policies. The outcomes range from an algorithmic demotion to a manual action labelled “Cloaking and sneaky redirects,” which appears in the Search Console Manual Actions report and can suppress a single template, a directory, or the entire domain. Recovery is not a negotiation. You remove every path where the crawler and the user diverge, confirm parity with the three checks above, and only then file a reconsideration request that documents exactly what changed. Sites that try to keep a “lighter” version of the trick almost always get re-flagged, because the same diff that caught them the first time still returns a mismatch.

The practical takeaway is the one the source case study makes with humor: stop trying to outguess the crawler. Serve one honest page, make it genuinely good, and let responsive design and declared programs handle the legitimate reasons a response might vary. If you want the formal definition and the policy text, see the cloaking entry in our technical SEO glossary.

FAQ

What is cloaking in SEO?

Cloaking is showing search engines different content or a different URL than you show to human visitors at the same address, in order to influence rankings. It is defined by a material difference plus the intent to deceive, and Google classifies it as a spam-policy violation.

Is cloaking against Google’s guidelines?

Yes. Cloaking is named explicitly in Google’s spam policies. Depending on scope it can trigger an algorithmic demotion or a manual action called “Cloaking and sneaky redirects” that removes affected pages from search.

Is dynamic serving or responsive design considered cloaking?

No, as long as the content is equivalent. Responsive design sends one HTML payload that adapts with CSS, and dynamic serving sends device-specific HTML with a Vary: User-Agent header. Neither hides content from users that the crawler is shown, so neither is cloaking.

How does Google detect cloaking?

Google can request a URL as Googlebot and again as an ordinary client, from different IP ranges, and compare the responses. It also renders the page and compares that to the raw HTML. You can reproduce all of this with curl and the live URL Inspection test in Search Console.

What happens if a site gets caught cloaking?

Expect a ranking demotion or a manual action. To recover you must remove every case where the crawler and the user receive materially different content, verify parity, and file a reconsideration request that explains the fix. Partial cleanups usually get re-flagged.

Can I block human visitors with robots.txt?

No. robots.txt only addresses automated crawlers and has no way to identify a person, so there is no method to “disallow humans.” Trying to give people a different page than the crawler while keeping the crawler’s version indexed is itself cloaking.

Not sure whether your site serves crawlers and users the same page?

A technical audit fetches your key templates as Googlebot and as a user, then flags any material mismatch before it costs you rankings.

Request an Advanced SEO Audit

Source: https://ohgm.co.uk/bad-cloaking/

Claude Vincent is a technical SEO consultant focused on crawlability, rendering, and AI-search visibility. He writes the field guides and case studies at SEO ProCheck, with a bias toward the durable, unglamorous work that decides whether search engines and AI answer engines can actually read and cite a site.

About SEO ProCheck

Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.

Work With Me

Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.

Subscribe to our newsletter!

More from our blog