[{"data":1,"prerenderedAt":549},["ShallowReactive",2],{"blog-content-cloaking-en":3},{"id":4,"title":5,"excerpt":6,"content":7,"coverImage":493,"meta":501,"site":505,"status":523,"slug":524,"author":525,"category":535,"publishDate":18,"featured":139,"updatedAt":544,"createdAt":545,"contentHtml":546,"previewUrl":547,"localeSlugs":548},509,"Content Cloaking Explained: How It Differs from Domain and IP Cloaking (2026)","Content cloaking means serving crawlers a different page body than users at the same URL. Here is how it differs from domain cloaking and IP delivery, how detection works, and the one test that resolves the edge cases.",{"root":8},{"children":9,"direction":18,"format":15,"indent":13,"type":492,"version":17},[10,21,39,43,48,52,60,65,188,199,203,207,245,253,261,265,269,275,281,287,300,304,308,338,342,346,350,356,362,368,379,387,391,395,423,427,447,451,459,472,476,480,488],{"children":11,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":20},[12],{"detail":13,"format":13,"mode":14,"style":15,"text":5,"type":16,"version":17},0,"normal","","text",1,null,"heading","h1",{"children":22,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[23,25,27,29,32,34,36],{"detail":13,"format":13,"mode":14,"style":15,"text":24,"type":16,"version":17},"\"Content cloaking\" is the oldest and most literal member of the cloaking family: a server returns ",{"detail":13,"format":17,"mode":14,"style":15,"text":26,"type":16,"version":17},"one version of the page body to search engine crawlers and a different version to human visitors",{"detail":13,"format":13,"mode":14,"style":15,"text":28,"type":16,"version":17},", while the URL stays the same. Everything else in the category — domain cloaking, IP delivery, user-agent branching — is a variation on ",{"detail":13,"format":30,"mode":14,"style":15,"text":31,"type":16,"version":17},2,"what",{"detail":13,"format":13,"mode":14,"style":15,"text":33,"type":16,"version":17}," triggers the swap. Content cloaking is about ",{"detail":13,"format":30,"mode":14,"style":15,"text":35,"type":16,"version":17},"what gets swapped",{"detail":13,"format":13,"mode":14,"style":15,"text":37,"type":16,"version":17},": the content itself.","paragraph",{"children":40,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[41],{"detail":13,"format":13,"mode":14,"style":15,"text":42,"type":16,"version":17},"This guide covers what the term actually means, how search engines and ad platforms define it, where the line sits between content cloaking and the legitimate techniques it resembles, and what to do instead when the underlying business need is real.",{"children":44,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":47},[45],{"detail":13,"format":13,"mode":14,"style":15,"text":46,"type":16,"version":17},"What content cloaking means","h2",{"children":49,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[50],{"detail":13,"format":13,"mode":14,"style":15,"text":51,"type":16,"version":17},"The mechanic is simple. A request arrives. The server inspects something about it — the user agent string, the IP block, the referrer, a JavaScript challenge result — and decides which body to render. A crawler gets a keyword-dense, text-heavy document. A human gets something else entirely: a different offer, a different layout, sometimes a different topic.",{"children":53,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[54,56,58],{"detail":13,"format":13,"mode":14,"style":15,"text":55,"type":16,"version":17},"Google's Search Essentials treats this as a spam policy violation, and the definition hinges on ",{"detail":13,"format":17,"mode":14,"style":15,"text":57,"type":16,"version":17},"intent to deceive the ranking system",{"detail":13,"format":13,"mode":14,"style":15,"text":59,"type":16,"version":17},", not on the technical act of varying a response. That distinction matters more than most write-ups admit, because varying a response is what every modern website does.",{"children":61,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":64},[62],{"detail":13,"format":13,"mode":14,"style":15,"text":63,"type":16,"version":17},"The three cloaking variants, side by side","h3",{"children":66,"direction":18,"format":15,"indent":13,"type":187,"version":17},[67,95,124,161],{"children":68,"direction":18,"format":15,"indent":13,"type":94,"version":17},[69,76,82,88],{"children":70,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":17,"rowSpan":17},[71],{"children":72,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[73],{"detail":13,"format":13,"mode":14,"style":15,"text":74,"type":16,"version":17}," Variant ","tablecell",{"children":77,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":17,"rowSpan":17},[78],{"children":79,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[80],{"detail":13,"format":13,"mode":14,"style":15,"text":81,"type":16,"version":17}," What triggers the swap ",{"children":83,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":17,"rowSpan":17},[84],{"children":85,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[86],{"detail":13,"format":13,"mode":14,"style":15,"text":87,"type":16,"version":17}," What differs between versions ",{"children":89,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":17,"rowSpan":17},[90],{"children":91,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[92],{"detail":13,"format":13,"mode":14,"style":15,"text":93,"type":16,"version":17}," Where it shows up ","tablerow",{"children":96,"direction":18,"format":15,"indent":13,"type":94,"version":17},[97,106,112,118],{"children":98,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[99],{"children":100,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[101,103,105],{"detail":13,"format":13,"mode":14,"style":15,"text":102,"type":16,"version":17}," ",{"detail":13,"format":17,"mode":14,"style":15,"text":104,"type":16,"version":17},"Content cloaking",{"detail":13,"format":13,"mode":14,"style":15,"text":102,"type":16,"version":17},{"children":107,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[108],{"children":109,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[110],{"detail":13,"format":13,"mode":14,"style":15,"text":111,"type":16,"version":17}," User agent, IP, referrer, JS challenge ",{"children":113,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[114],{"children":115,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[116],{"detail":13,"format":13,"mode":14,"style":15,"text":117,"type":16,"version":17}," The page body itself ",{"children":119,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[120],{"children":121,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[122],{"detail":13,"format":13,"mode":14,"style":15,"text":123,"type":16,"version":17}," Classic search spam ",{"children":125,"direction":18,"format":15,"indent":13,"type":94,"version":17},[126,143,149,155],{"children":127,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[128],{"children":129,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[130,131,142],{"detail":13,"format":13,"mode":14,"style":15,"text":102,"type":16,"version":17},{"children":132,"direction":18,"format":15,"indent":13,"type":135,"version":136,"fields":137,"id":141},[133],{"detail":13,"format":13,"mode":14,"style":15,"text":134,"type":16,"version":17},"Domain cloaking","link",3,{"linkType":138,"newTab":139,"url":140},"custom",false,"/resources/blog/domain-cloaking/","6a8afb1485a5cd00c8606274",{"detail":13,"format":13,"mode":14,"style":15,"text":102,"type":16,"version":17},{"children":144,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[145],{"children":146,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[147],{"detail":13,"format":13,"mode":14,"style":15,"text":148,"type":16,"version":17}," DNS / framing layer ",{"children":150,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[151],{"children":152,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[153],{"detail":13,"format":13,"mode":14,"style":15,"text":154,"type":16,"version":17}," The URL shown in the address bar ",{"children":156,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[157],{"children":158,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[159],{"detail":13,"format":13,"mode":14,"style":15,"text":160,"type":16,"version":17}," Affiliate and white-label setups ",{"children":162,"direction":18,"format":15,"indent":13,"type":94,"version":17},[163,169,175,181],{"children":164,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[165],{"children":166,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[167],{"detail":13,"format":13,"mode":14,"style":15,"text":168,"type":16,"version":17}," IP delivery ",{"children":170,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[171],{"children":172,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[173],{"detail":13,"format":13,"mode":14,"style":15,"text":174,"type":16,"version":17}," IP block or geo lookup ",{"children":176,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[177],{"children":178,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[179],{"detail":13,"format":13,"mode":14,"style":15,"text":180,"type":16,"version":17}," Usually region, language, or price ",{"children":182,"direction":18,"format":15,"indent":13,"type":75,"version":17,"backgroundColor":18,"colSpan":17,"headerState":13,"rowSpan":17},[183],{"children":184,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[185],{"detail":13,"format":13,"mode":14,"style":15,"text":186,"type":16,"version":17}," Both legitimate and abusive ","table",{"children":189,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[190,192,194,196,197],{"detail":13,"format":13,"mode":14,"style":15,"text":191,"type":16,"version":17},"Domain cloaking hides ",{"detail":13,"format":30,"mode":14,"style":15,"text":193,"type":16,"version":17},"where",{"detail":13,"format":13,"mode":14,"style":15,"text":195,"type":16,"version":17}," the content lives. Content cloaking changes ",{"detail":13,"format":30,"mode":14,"style":15,"text":31,"type":16,"version":17},{"detail":13,"format":13,"mode":14,"style":15,"text":198,"type":16,"version":17}," the content is. IP delivery is a trigger mechanism that either variant can use — which is why it appears in both compliant and non-compliant setups, and why \"we use IP-based routing\" tells you almost nothing on its own.",{"children":200,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":47},[201],{"detail":13,"format":13,"mode":14,"style":15,"text":202,"type":16,"version":17},"Why the definition is harder than it looks",{"children":204,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[205],{"detail":13,"format":13,"mode":14,"style":15,"text":206,"type":16,"version":17},"Here is the uncomfortable part: the technical description of content cloaking — \"return different bodies to different requesters\" — also describes a large share of the normal web.",{"children":208,"direction":18,"format":15,"indent":13,"type":242,"version":17,"listType":243,"start":17,"tag":244},[209,216,222,228,235],{"children":210,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":17},[211,213],{"detail":13,"format":17,"mode":14,"style":15,"text":212,"type":16,"version":17},"Localisation.",{"detail":13,"format":13,"mode":14,"style":15,"text":214,"type":16,"version":17}," A visitor in Germany sees German copy and EUR prices; a crawler from a US IP sees English and USD.","listitem",{"children":217,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":30},[218,220],{"detail":13,"format":17,"mode":14,"style":15,"text":219,"type":16,"version":17},"Personalisation.",{"detail":13,"format":13,"mode":14,"style":15,"text":221,"type":16,"version":17}," Logged-in users see a dashboard; everyone else sees a marketing page.",{"children":223,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":136},[224,226],{"detail":13,"format":17,"mode":14,"style":15,"text":225,"type":16,"version":17},"A/B testing.",{"detail":13,"format":13,"mode":14,"style":15,"text":227,"type":16,"version":17}," Half the traffic gets variant B for two weeks.",{"children":229,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":234},[230,232],{"detail":13,"format":17,"mode":14,"style":15,"text":231,"type":16,"version":17},"Paywalls and metering.",{"detail":13,"format":13,"mode":14,"style":15,"text":233,"type":16,"version":17}," Googlebot gets the full article under a structured-data arrangement; a reader on their fourth free article gets a wall.",4,{"children":236,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":241},[237,239],{"detail":13,"format":17,"mode":14,"style":15,"text":238,"type":16,"version":17},"Dynamic rendering.",{"detail":13,"format":13,"mode":14,"style":15,"text":240,"type":16,"version":17}," A JavaScript-heavy app serves pre-rendered HTML to crawlers because they struggle with client-side hydration.",5,"list","bullet","ul",{"children":246,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[247,249,251],{"detail":13,"format":13,"mode":14,"style":15,"text":248,"type":16,"version":17},"None of these are treated as cloaking, and Google has documented most of them as acceptable. What separates them from the policy violation is not the mechanism. It is whether ",{"detail":13,"format":17,"mode":14,"style":15,"text":250,"type":16,"version":17},"the crawler's version is a fair representation of what a user will get",{"detail":13,"format":13,"mode":14,"style":15,"text":252,"type":16,"version":17},".",{"children":254,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[255,257,259],{"detail":13,"format":13,"mode":14,"style":15,"text":256,"type":16,"version":17},"That single test — ",{"detail":13,"format":30,"mode":14,"style":15,"text":258,"type":16,"version":17},"would a human arriving from this search result recognise the page the crawler indexed?",{"detail":13,"format":13,"mode":14,"style":15,"text":260,"type":16,"version":17}," — resolves nearly every edge case. A German-language page and its English counterpart both honestly describe the same product. A keyword-stuffed article swapped for an unrelated offer page does not.",{"children":262,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":47},[263],{"detail":13,"format":13,"mode":14,"style":15,"text":264,"type":16,"version":17},"How detection actually works",{"children":266,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[267],{"detail":13,"format":13,"mode":14,"style":15,"text":268,"type":16,"version":17},"Platforms do not have to guess. Three signal classes catch content cloaking, and they operate independently:",{"children":270,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":17,"textStyle":15},[271,273],{"detail":13,"format":17,"mode":14,"style":15,"text":272,"type":16,"version":17},"1. Fetch-as-user comparison.",{"detail":13,"format":13,"mode":14,"style":15,"text":274,"type":16,"version":17}," Search engines and ad reviewers request the same URL from residential IP ranges, mobile user agents, and headless browsers that render JavaScript, then diff the results against the indexed version. This is the primary method, and it has become much cheaper to run at scale than it was five years ago.",{"children":276,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":17,"textStyle":15},[277,279],{"detail":13,"format":17,"mode":14,"style":15,"text":278,"type":16,"version":17},"2. Behavioural signals.",{"detail":13,"format":13,"mode":14,"style":15,"text":280,"type":16,"version":17}," Short dwell time, immediate back-navigation, and a click-through rate that collapses after the first days of ranking all indicate the landing experience does not match the snippet. These signals do not prove cloaking, but they select which URLs get a manual look.",{"children":282,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":17,"textStyle":15},[283,285],{"detail":13,"format":17,"mode":14,"style":15,"text":284,"type":16,"version":17},"3. Reports and manual review.",{"detail":13,"format":13,"mode":14,"style":15,"text":286,"type":16,"version":17}," Competitors report. So do users. A manual action is often the first visible consequence, and it typically arrives long after the automated systems have already flagged the pattern.",{"children":288,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[289,291,298],{"detail":13,"format":13,"mode":14,"style":15,"text":290,"type":16,"version":17},"The practical consequence: a setup that \"works\" for weeks is not evidence that it went undetected. Detection and enforcement are decoupled in time. ",{"children":292,"direction":18,"format":15,"indent":13,"type":135,"version":136,"fields":295,"id":297},[293],{"detail":13,"format":13,"mode":14,"style":15,"text":294,"type":16,"version":17},"Affiliate de-cloaking",{"linkType":138,"newTab":139,"url":296},"/resources/blog/affiliate-de-cloaking/","6a8afb1485a5cd00c8606275",{"detail":13,"format":13,"mode":14,"style":15,"text":299,"type":16,"version":17}," walks through how cloaked links get unwound in the affiliate context specifically.",{"children":301,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":47},[302],{"detail":13,"format":13,"mode":14,"style":15,"text":303,"type":16,"version":17},"What happens when it is caught",{"children":305,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[306],{"detail":13,"format":13,"mode":14,"style":15,"text":307,"type":16,"version":17},"Enforcement is not proportional to the size of the deception, and it is rarely limited to the offending page:",{"children":309,"direction":18,"format":15,"indent":13,"type":242,"version":17,"listType":243,"start":17,"tag":244},[310,316,326,332],{"children":311,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":17},[312,314],{"detail":13,"format":17,"mode":14,"style":15,"text":313,"type":16,"version":17},"Search:",{"detail":13,"format":13,"mode":14,"style":15,"text":315,"type":16,"version":17}," a manual action for spam policy violation, typically site-wide. Recovery requires removing the mechanism, filing a reconsideration request, and waiting — often measured in months, sometimes with no return to previous rankings.",{"children":317,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":30},[318,320,322,324],{"detail":13,"format":17,"mode":14,"style":15,"text":319,"type":16,"version":17},"Ad platforms:",{"detail":13,"format":13,"mode":14,"style":15,"text":321,"type":16,"version":17}," ad account suspension, and increasingly a ",{"detail":13,"format":17,"mode":14,"style":15,"text":323,"type":16,"version":17},"business-entity-level",{"detail":13,"format":13,"mode":14,"style":15,"text":325,"type":16,"version":17}," ban that follows the payment method, the domain, and the people attached to it. Fresh accounts on the same infrastructure do not survive.",{"children":327,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":136},[328,330],{"detail":13,"format":17,"mode":14,"style":15,"text":329,"type":16,"version":17},"Affiliate networks:",{"detail":13,"format":13,"mode":14,"style":15,"text":331,"type":16,"version":17}," commission clawbacks and removal from the programme, usually with the merchant recovering already-paid commissions.",{"children":333,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":234},[334,336],{"detail":13,"format":17,"mode":14,"style":15,"text":335,"type":16,"version":17},"Domains:",{"detail":13,"format":13,"mode":14,"style":15,"text":337,"type":16,"version":17}," in the worst cases, the domain itself becomes unusable for future campaigns — reputation attaches to the host, not just the account.",{"children":339,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[340],{"detail":13,"format":13,"mode":14,"style":15,"text":341,"type":16,"version":17},"The asymmetry is the point. Weeks of upside, and a downside that can end the asset permanently.",{"children":343,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":47},[344],{"detail":13,"format":13,"mode":14,"style":15,"text":345,"type":16,"version":17},"When the need behind it is legitimate",{"children":347,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[348],{"detail":13,"format":13,"mode":14,"style":15,"text":349,"type":16,"version":17},"Most teams that end up researching content cloaking are not trying to deceive anyone. They have a real problem that the technique appears to solve:",{"children":351,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":17,"textStyle":15},[352,354],{"detail":13,"format":17,"mode":14,"style":15,"text":353,"type":16,"version":17},"\"Our landing page is fine, but review keeps rejecting it.\"",{"detail":13,"format":13,"mode":14,"style":15,"text":355,"type":16,"version":17}," This is usually a policy-mapping problem, not a detection problem — some element of the page (a claim, a testimonial, a form field, a disclosure that is missing) maps to a rule. Fixing the element resolves it permanently; hiding the page from review does not.",{"children":357,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":17,"textStyle":15},[358,360],{"detail":13,"format":17,"mode":14,"style":15,"text":359,"type":16,"version":17},"\"We need different pages for different traffic sources.\"",{"detail":13,"format":13,"mode":14,"style":15,"text":361,"type":16,"version":17}," That is what separate URLs are for. Distinct landing pages per campaign, per geo, per audience — each one indexable and each one honest — achieve the same segmentation with none of the exposure.",{"children":363,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":17,"textStyle":15},[364,366],{"detail":13,"format":17,"mode":14,"style":15,"text":365,"type":16,"version":17},"\"Competitors are scraping our funnel.\"",{"detail":13,"format":13,"mode":14,"style":15,"text":367,"type":16,"version":17}," A genuine problem, and one with genuine answers: rate limiting, bot management, and authentication on the sensitive steps. None of these require showing crawlers a different article.",{"children":369,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":17,"textStyle":15},[370,372,374,377],{"detail":13,"format":17,"mode":14,"style":15,"text":371,"type":16,"version":17},"\"We serve different regions different offers.\"",{"detail":13,"format":13,"mode":14,"style":15,"text":373,"type":16,"version":17}," Standard geo-routing with ",{"detail":13,"format":375,"mode":14,"style":15,"text":376,"type":16,"version":17},16,"hreflang",{"detail":13,"format":13,"mode":14,"style":15,"text":378,"type":16,"version":17}," and self-referencing canonicals. Well-documented, universally accepted, and it does not depend on the crawler being wrong about what is on the page.",{"children":380,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[381,383,385],{"detail":13,"format":13,"mode":14,"style":15,"text":382,"type":16,"version":17},"The pattern across all four: the legitimate version of the need is solved by ",{"detail":13,"format":17,"mode":14,"style":15,"text":384,"type":16,"version":17},"segmentation that survives inspection",{"detail":13,"format":13,"mode":14,"style":15,"text":386,"type":16,"version":17},". If your routing logic would embarrass you in a review screenshot, that is the signal — not the traffic numbers.",{"children":388,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":47},[389],{"detail":13,"format":13,"mode":14,"style":15,"text":390,"type":16,"version":17},"A decision checklist before you route anything",{"children":392,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[393],{"detail":13,"format":13,"mode":14,"style":15,"text":394,"type":16,"version":17},"Run a proposed setup through these five questions. A \"no\" on any of them is worth stopping for:",{"children":396,"direction":18,"format":15,"indent":13,"type":242,"version":17,"listType":421,"start":17,"tag":422},[397,401,405,413,417],{"children":398,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":17},[399],{"detail":13,"format":17,"mode":14,"style":15,"text":400,"type":16,"version":17},"Would a reviewer seeing both versions side by side consider them the same offer?",{"children":402,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":30},[403],{"detail":13,"format":17,"mode":14,"style":15,"text":404,"type":16,"version":17},"Is the version the crawler indexes something a real user can actually reach?",{"children":406,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":136},[407,409,411],{"detail":13,"format":17,"mode":14,"style":15,"text":408,"type":16,"version":17},"Does the routing depend on the platform ",{"detail":13,"format":136,"mode":14,"style":15,"text":410,"type":16,"version":17},"not",{"detail":13,"format":17,"mode":14,"style":15,"text":412,"type":16,"version":17}," knowing about it?",{"children":414,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":234},[415],{"detail":13,"format":17,"mode":14,"style":15,"text":416,"type":16,"version":17},"If this were documented publicly on your site, would the setup still work?",{"children":418,"direction":18,"format":15,"indent":13,"type":215,"version":17,"value":241},[419],{"detail":13,"format":17,"mode":14,"style":15,"text":420,"type":16,"version":17},"Is there a version of this that uses separate URLs instead?","number","ol",{"children":424,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[425],{"detail":13,"format":13,"mode":14,"style":15,"text":426,"type":16,"version":17},"Question three is the sharpest. Localisation, personalisation, and dynamic rendering all survive full disclosure. Content cloaking does not — its entire value proposition is that one party has incomplete information.",{"children":428,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[429,436,438,445],{"children":430,"direction":18,"format":15,"indent":13,"type":135,"version":136,"fields":433,"id":435},[431],{"detail":13,"format":13,"mode":14,"style":15,"text":432,"type":16,"version":17},"When Not to Use Cloaking",{"linkType":138,"newTab":139,"url":434},"/resources/blog/when-not-to-use-cloaking/","6a8afb1485a5cd00c8606276",{"detail":13,"format":13,"mode":14,"style":15,"text":437,"type":16,"version":17}," covers five scenarios where the technique backfires even on its own terms, and ",{"children":439,"direction":18,"format":15,"indent":13,"type":135,"version":136,"fields":442,"id":444},[440],{"detail":13,"format":13,"mode":14,"style":15,"text":441,"type":16,"version":17},"What Is Website Cloaking",{"linkType":138,"newTab":139,"url":443},"/resources/blog/what-is-website-cloaking/","6a8afb1485a5cd00c8606277",{"detail":13,"format":13,"mode":14,"style":15,"text":446,"type":16,"version":17}," gives the wider category overview.",{"children":448,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":47},[449],{"detail":13,"format":13,"mode":14,"style":15,"text":450,"type":16,"version":17},"Where compliant traffic filtering fits",{"children":452,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[453,455,457],{"detail":13,"format":13,"mode":14,"style":15,"text":454,"type":16,"version":17},"There is a legitimate middle layer that gets confused with content cloaking: filtering traffic for ",{"detail":13,"format":17,"mode":14,"style":15,"text":456,"type":16,"version":17},"quality and fraud",{"detail":13,"format":13,"mode":14,"style":15,"text":458,"type":16,"version":17}," rather than for identity. Blocking known data-centre bot traffic, deduplicating clicks, routing returning customers past an acquisition funnel they have already completed — these operate on the same request-inspection primitives, but they do not depend on showing a reviewer a different offer.",{"children":460,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[461,463,470],{"detail":13,"format":13,"mode":14,"style":15,"text":462,"type":16,"version":17},"DeepClick's ",{"children":464,"direction":18,"format":15,"indent":13,"type":135,"version":136,"fields":467,"id":469},[465],{"detail":13,"format":13,"mode":14,"style":15,"text":466,"type":16,"version":17},"Shield",{"linkType":138,"newTab":139,"url":468},"/product/shield","6a8afb1485a5cd00c8606278",{"detail":13,"format":13,"mode":14,"style":15,"text":471,"type":16,"version":17}," sits in that layer: rule-based routing with a full audit trail, built so that every routing decision can be explained and reviewed rather than hidden. The design constraint is deliberate — a routing system you cannot show a platform is a liability with a delayed fuse.",{"children":473,"direction":18,"format":15,"indent":13,"type":19,"version":17,"tag":47},[474],{"detail":13,"format":13,"mode":14,"style":15,"text":475,"type":16,"version":17},"The short version",{"children":477,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[478],{"detail":13,"format":13,"mode":14,"style":15,"text":479,"type":16,"version":17},"Content cloaking means serving a materially different page body to crawlers than to users at the same URL, with the aim of ranking for something the page does not deliver. It is distinct from domain cloaking (which hides the URL) and from IP delivery (which is a trigger, not a category).",{"children":481,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[482,484,486],{"detail":13,"format":13,"mode":14,"style":15,"text":483,"type":16,"version":17},"The test that resolves the edge cases is not technical: ",{"detail":13,"format":17,"mode":14,"style":15,"text":485,"type":16,"version":17},"would a human arriving from that search result recognise the page the crawler indexed?",{"detail":13,"format":13,"mode":14,"style":15,"text":487,"type":16,"version":17}," Localisation, personalisation, A/B tests, and dynamic rendering all pass. Swapping the content for something unrelated does not.",{"children":489,"direction":18,"format":15,"indent":13,"type":38,"version":17,"textFormat":13,"textStyle":15},[490],{"detail":13,"format":13,"mode":14,"style":15,"text":491,"type":16,"version":17},"And the enforcement asymmetry is what should drive the decision — detection is now cheap, enforcement is slow but entity-wide, and the assets it burns are usually worth more than the campaign that risked them.","root",{"id":494,"alt":495,"updatedAt":496,"createdAt":496,"url":497,"thumbnailURL":18,"filename":498,"mimeType":499,"filesize":500,"width":18,"height":18},1011,"内容斗篷示意：同一个 URL 分裂成爬虫版与用户版两个页面","2026-08-23T13:52:07.870Z","https://cms-r2.deepclick.com/cover-content-cloaking-f61b2543ba9b.jpg","cover-content-cloaking-f61b2543ba9b.jpg","application/octet-stream",235063,{"title":502,"description":503,"image":504},"Content Cloaking: Definition, Detection, and the Compliance Line (2026)","What content cloaking actually is, how it differs from domain cloaking and IP delivery, how platforms detect it, and what to do when the business need behind it is legitimate.",{"id":494,"alt":495,"updatedAt":496,"createdAt":496,"url":497,"thumbnailURL":18,"filename":498,"mimeType":499,"filesize":500,"width":18,"height":18},{"id":17,"key":506,"name":507,"prodHost":508,"testHost":509,"blogPath":510,"docPath":511,"zhPrefix":512,"deployHookTest":513,"deployHookProd":514,"brandAuthor":515,"brandKit":519,"enabled":520,"updatedAt":521,"createdAt":522},"deepclick","DeepClick","https://deepclick.com","https://www-test-deepclick.qiliangjia.one","/resources/blog/{slug}","/docs/{slug}","/zh-CN","https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/60a9adef-153b-4c89-8d07-7118e91e9522","https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/05323321-f694-4ce8-a5af-173c507b8bae",{"id":30,"name":507,"avatar":516,"updatedAt":517,"createdAt":518},25,"2026-04-22T08:09:35.299Z","2026-04-22T06:42:49.116Z",{"logoLight":18,"logoDark":18,"primaryColor":18,"accentColor":18,"tagline":18,"wechatName":18,"xhsHandle":18,"wechatQr":18},true,"2026-08-19T05:39:28.840Z","2026-07-14T06:26:38.962Z","published","content-cloaking",{"id":241,"name":526,"avatar":527,"updatedAt":534,"createdAt":534},"Mara Lindqvist",{"id":528,"alt":529,"updatedAt":530,"createdAt":530,"url":531,"thumbnailURL":18,"filename":532,"mimeType":499,"filesize":533,"width":18,"height":18},923,"Mara Lindqvist — SEO & content strategist","2026-07-27T07:17:15.590Z","https://cms-r2.deepclick.com/gpt_1785136338870_0-0c5adc97a65e.png","gpt_1785136338870_0-0c5adc97a65e.png",2203214,"2026-07-27T07:17:17.300Z",{"id":536,"site":537,"titleZh":539,"titleEn":540,"slug":541,"order":241,"updatedAt":542,"createdAt":543},7,{"id":17,"key":506,"name":507,"prodHost":508,"testHost":509,"blogPath":510,"docPath":511,"zhPrefix":512,"deployHookTest":513,"deployHookProd":514,"brandAuthor":30,"brandKit":538,"enabled":520,"updatedAt":521,"createdAt":522},{"logoLight":18,"logoDark":18,"primaryColor":18,"accentColor":18,"tagline":18,"wechatName":18,"xhsHandle":18,"wechatQr":18},"技术导航","Tech Guides","tech-guides","2026-04-27T08:37:10.576Z","2026-04-23T02:59:13.436Z","2026-08-23T13:52:47.715Z","2026-08-23T13:52:21.967Z","\u003Cdiv class=\"payload-richtext\">\u003Ch1>Content Cloaking Explained: How It Differs from Domain and IP Cloaking (2026)\u003C/h1>\u003Cp>&quot;Content cloaking&quot; is the oldest and most literal member of the cloaking family: a server returns \u003Cstrong>one version of the page body to search engine crawlers and a different version to human visitors\u003C/strong>, while the URL stays the same. Everything else in the category — domain cloaking, IP delivery, user-agent branching — is a variation on \u003Cem>what\u003C/em> triggers the swap. Content cloaking is about \u003Cem>what gets swapped\u003C/em>: the content itself.\u003C/p>\u003Cp>This guide covers what the term actually means, how search engines and ad platforms define it, where the line sits between content cloaking and the legitimate techniques it resembles, and what to do instead when the underlying business need is real.\u003C/p>\u003Ch2>What content cloaking means\u003C/h2>\u003Cp>The mechanic is simple. A request arrives. The server inspects something about it — the user agent string, the IP block, the referrer, a JavaScript challenge result — and decides which body to render. A crawler gets a keyword-dense, text-heavy document. A human gets something else entirely: a different offer, a different layout, sometimes a different topic.\u003C/p>\u003Cp>Google&#39;s Search Essentials treats this as a spam policy violation, and the definition hinges on \u003Cstrong>intent to deceive the ranking system\u003C/strong>, not on the technical act of varying a response. That distinction matters more than most write-ups admit, because varying a response is what every modern website does.\u003C/p>\u003Ch3>The three cloaking variants, side by side\u003C/h3>\u003Cdiv class=\"lexical-table-container\">\n        \u003Ctable class=\"lexical-table\" style=\"border-collapse: collapse;\">\n          \u003Ctbody>\u003Ctr class=\"lexical-table-row\">\n        \u003Cth\n        class=\"lexical-table-cell lexical-table-cell-header-1\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> Variant \u003C/p>\n      \u003C/th>\n    \u003Cth\n        class=\"lexical-table-cell lexical-table-cell-header-1\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> What triggers the swap \u003C/p>\n      \u003C/th>\n    \u003Cth\n        class=\"lexical-table-cell lexical-table-cell-header-1\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> What differs between versions \u003C/p>\n      \u003C/th>\n    \u003Cth\n        class=\"lexical-table-cell lexical-table-cell-header-1\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> Where it shows up \u003C/p>\n      \u003C/th>\n    \n      \u003C/tr>\u003Ctr class=\"lexical-table-row\">\n        \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> \u003Cstrong>Content cloaking\u003C/strong> \u003C/p>\n      \u003C/td>\n    \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> User agent, IP, referrer, JS challenge \u003C/p>\n      \u003C/td>\n    \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> The page body itself \u003C/p>\n      \u003C/td>\n    \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> Classic search spam \u003C/p>\n      \u003C/td>\n    \n      \u003C/tr>\u003Ctr class=\"lexical-table-row\">\n        \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> \u003Ca href=\"/resources/blog/domain-cloaking/\">Domain cloaking\u003C/a> \u003C/p>\n      \u003C/td>\n    \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> DNS / framing layer \u003C/p>\n      \u003C/td>\n    \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> The URL shown in the address bar \u003C/p>\n      \u003C/td>\n    \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> Affiliate and white-label setups \u003C/p>\n      \u003C/td>\n    \n      \u003C/tr>\u003Ctr class=\"lexical-table-row\">\n        \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> IP delivery \u003C/p>\n      \u003C/td>\n    \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> IP block or geo lookup \u003C/p>\n      \u003C/td>\n    \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> Usually region, language, or price \u003C/p>\n      \u003C/td>\n    \u003Ctd\n        class=\"lexical-table-cell lexical-table-cell-header-0\"\n        \n        \n        style=\"border: 1px solid #ccc; padding: 8px;\"\n      >\n        \u003Cp> Both legitimate and abusive \u003C/p>\n      \u003C/td>\n    \n      \u003C/tr>\u003C/tbody>\n        \u003C/table>\n      \u003C/div>\u003Cp>Domain cloaking hides \u003Cem>where\u003C/em> the content lives. Content cloaking changes \u003Cem>what\u003C/em> the content is. IP delivery is a trigger mechanism that either variant can use — which is why it appears in both compliant and non-compliant setups, and why &quot;we use IP-based routing&quot; tells you almost nothing on its own.\u003C/p>\u003Ch2>Why the definition is harder than it looks\u003C/h2>\u003Cp>Here is the uncomfortable part: the technical description of content cloaking — &quot;return different bodies to different requesters&quot; — also describes a large share of the normal web.\u003C/p>\u003Cul class=\"list-bullet\">\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"1\"\n        >\u003Cstrong>Localisation.\u003C/strong> A visitor in Germany sees German copy and EUR prices; a crawler from a US IP sees English and USD.\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"2\"\n        >\u003Cstrong>Personalisation.\u003C/strong> Logged-in users see a dashboard; everyone else sees a marketing page.\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"3\"\n        >\u003Cstrong>A/B testing.\u003C/strong> Half the traffic gets variant B for two weeks.\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"4\"\n        >\u003Cstrong>Paywalls and metering.\u003C/strong> Googlebot gets the full article under a structured-data arrangement; a reader on their fourth free article gets a wall.\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"5\"\n        >\u003Cstrong>Dynamic rendering.\u003C/strong> A JavaScript-heavy app serves pre-rendered HTML to crawlers because they struggle with client-side hydration.\u003C/li>\u003C/ul>\u003Cp>None of these are treated as cloaking, and Google has documented most of them as acceptable. What separates them from the policy violation is not the mechanism. It is whether \u003Cstrong>the crawler&#39;s version is a fair representation of what a user will get\u003C/strong>.\u003C/p>\u003Cp>That single test — \u003Cem>would a human arriving from this search result recognise the page the crawler indexed?\u003C/em> — resolves nearly every edge case. A German-language page and its English counterpart both honestly describe the same product. A keyword-stuffed article swapped for an unrelated offer page does not.\u003C/p>\u003Ch2>How detection actually works\u003C/h2>\u003Cp>Platforms do not have to guess. Three signal classes catch content cloaking, and they operate independently:\u003C/p>\u003Cp>\u003Cstrong>1. Fetch-as-user comparison.\u003C/strong> Search engines and ad reviewers request the same URL from residential IP ranges, mobile user agents, and headless browsers that render JavaScript, then diff the results against the indexed version. This is the primary method, and it has become much cheaper to run at scale than it was five years ago.\u003C/p>\u003Cp>\u003Cstrong>2. Behavioural signals.\u003C/strong> Short dwell time, immediate back-navigation, and a click-through rate that collapses after the first days of ranking all indicate the landing experience does not match the snippet. These signals do not prove cloaking, but they select which URLs get a manual look.\u003C/p>\u003Cp>\u003Cstrong>3. Reports and manual review.\u003C/strong> Competitors report. So do users. A manual action is often the first visible consequence, and it typically arrives long after the automated systems have already flagged the pattern.\u003C/p>\u003Cp>The practical consequence: a setup that &quot;works&quot; for weeks is not evidence that it went undetected. Detection and enforcement are decoupled in time. \u003Ca href=\"/resources/blog/affiliate-de-cloaking/\">Affiliate de-cloaking\u003C/a> walks through how cloaked links get unwound in the affiliate context specifically.\u003C/p>\u003Ch2>What happens when it is caught\u003C/h2>\u003Cp>Enforcement is not proportional to the size of the deception, and it is rarely limited to the offending page:\u003C/p>\u003Cul class=\"list-bullet\">\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"1\"\n        >\u003Cstrong>Search:\u003C/strong> a manual action for spam policy violation, typically site-wide. Recovery requires removing the mechanism, filing a reconsideration request, and waiting — often measured in months, sometimes with no return to previous rankings.\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"2\"\n        >\u003Cstrong>Ad platforms:\u003C/strong> ad account suspension, and increasingly a \u003Cstrong>business-entity-level\u003C/strong> ban that follows the payment method, the domain, and the people attached to it. Fresh accounts on the same infrastructure do not survive.\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"3\"\n        >\u003Cstrong>Affiliate networks:\u003C/strong> commission clawbacks and removal from the programme, usually with the merchant recovering already-paid commissions.\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"4\"\n        >\u003Cstrong>Domains:\u003C/strong> in the worst cases, the domain itself becomes unusable for future campaigns — reputation attaches to the host, not just the account.\u003C/li>\u003C/ul>\u003Cp>The asymmetry is the point. Weeks of upside, and a downside that can end the asset permanently.\u003C/p>\u003Ch2>When the need behind it is legitimate\u003C/h2>\u003Cp>Most teams that end up researching content cloaking are not trying to deceive anyone. They have a real problem that the technique appears to solve:\u003C/p>\u003Cp>\u003Cstrong>&quot;Our landing page is fine, but review keeps rejecting it.&quot;\u003C/strong> This is usually a policy-mapping problem, not a detection problem — some element of the page (a claim, a testimonial, a form field, a disclosure that is missing) maps to a rule. Fixing the element resolves it permanently; hiding the page from review does not.\u003C/p>\u003Cp>\u003Cstrong>&quot;We need different pages for different traffic sources.&quot;\u003C/strong> That is what separate URLs are for. Distinct landing pages per campaign, per geo, per audience — each one indexable and each one honest — achieve the same segmentation with none of the exposure.\u003C/p>\u003Cp>\u003Cstrong>&quot;Competitors are scraping our funnel.&quot;\u003C/strong> A genuine problem, and one with genuine answers: rate limiting, bot management, and authentication on the sensitive steps. None of these require showing crawlers a different article.\u003C/p>\u003Cp>\u003Cstrong>&quot;We serve different regions different offers.&quot;\u003C/strong> Standard geo-routing with \u003Ccode>hreflang\u003C/code> and self-referencing canonicals. Well-documented, universally accepted, and it does not depend on the crawler being wrong about what is on the page.\u003C/p>\u003Cp>The pattern across all four: the legitimate version of the need is solved by \u003Cstrong>segmentation that survives inspection\u003C/strong>. If your routing logic would embarrass you in a review screenshot, that is the signal — not the traffic numbers.\u003C/p>\u003Ch2>A decision checklist before you route anything\u003C/h2>\u003Cp>Run a proposed setup through these five questions. A &quot;no&quot; on any of them is worth stopping for:\u003C/p>\u003Col class=\"list-number\">\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"1\"\n        >\u003Cstrong>Would a reviewer seeing both versions side by side consider them the same offer?\u003C/strong>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"2\"\n        >\u003Cstrong>Is the version the crawler indexes something a real user can actually reach?\u003C/strong>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"3\"\n        >\u003Cstrong>Does the routing depend on the platform \u003C/strong>\u003Cem>\u003Cstrong>not\u003C/strong>\u003C/em>\u003Cstrong> knowing about it?\u003C/strong>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"4\"\n        >\u003Cstrong>If this were documented publicly on your site, would the setup still work?\u003C/strong>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"5\"\n        >\u003Cstrong>Is there a version of this that uses separate URLs instead?\u003C/strong>\u003C/li>\u003C/ol>\u003Cp>Question three is the sharpest. Localisation, personalisation, and dynamic rendering all survive full disclosure. Content cloaking does not — its entire value proposition is that one party has incomplete information.\u003C/p>\u003Cp>\u003Ca href=\"/resources/blog/when-not-to-use-cloaking/\">When Not to Use Cloaking\u003C/a> covers five scenarios where the technique backfires even on its own terms, and \u003Ca href=\"/resources/blog/what-is-website-cloaking/\">What Is Website Cloaking\u003C/a> gives the wider category overview.\u003C/p>\u003Ch2>Where compliant traffic filtering fits\u003C/h2>\u003Cp>There is a legitimate middle layer that gets confused with content cloaking: filtering traffic for \u003Cstrong>quality and fraud\u003C/strong> rather than for identity. Blocking known data-centre bot traffic, deduplicating clicks, routing returning customers past an acquisition funnel they have already completed — these operate on the same request-inspection primitives, but they do not depend on showing a reviewer a different offer.\u003C/p>\u003Cp>DeepClick&#39;s \u003Ca href=\"/product/shield\">Shield\u003C/a> sits in that layer: rule-based routing with a full audit trail, built so that every routing decision can be explained and reviewed rather than hidden. The design constraint is deliberate — a routing system you cannot show a platform is a liability with a delayed fuse.\u003C/p>\u003Ch2>The short version\u003C/h2>\u003Cp>Content cloaking means serving a materially different page body to crawlers than to users at the same URL, with the aim of ranking for something the page does not deliver. It is distinct from domain cloaking (which hides the URL) and from IP delivery (which is a trigger, not a category).\u003C/p>\u003Cp>The test that resolves the edge cases is not technical: \u003Cstrong>would a human arriving from that search result recognise the page the crawler indexed?\u003C/strong> Localisation, personalisation, A/B tests, and dynamic rendering all pass. Swapping the content for something unrelated does not.\u003C/p>\u003Cp>And the enforcement asymmetry is what should drive the decision — detection is now cheap, enforcement is slow but entity-wide, and the assets it burns are usually worth more than the campaign that risked them.\u003C/p>\u003C/div>","https://deepclick.com/resources/blog/content-cloaking",{"en":524,"zh-CN":524},1787493536018]