[{"data":1,"prerenderedAt":866},["ShallowReactive",2],{"blog-search-engine-cloaking-software-en":3},{"id":4,"title":5,"excerpt":6,"content":7,"coverImage":828,"meta":838,"status":842,"slug":843,"author":844,"category":855,"publishDate":860,"featured":44,"updatedAt":861,"createdAt":862,"contentHtml":863,"previewUrl":864,"localeSlugs":865},94,"Search Engine Cloaking Software: 2026 Reality Check","How search engine cloaking software evolved from a 2000s SEO trick to a high-risk tactic Google detects in days, and where legitimate personalization ends.",{"root":8},{"type":9,"format":10,"indent":11,"version":12,"direction":13,"children":14},"root","",0,1,"ltr",[15,23,28,32,36,52,56,61,74,82,86,90,94,98,110,114,118,122,126,130,134,174,186,190,194,214,218,222,390,394,398,402,640,648,660,664,668,694,698,710,714,718,744,748,760,764,768,772,776,780,784,792,796,800,804,808,812,816,820,824],{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":18},"heading","h2",[19],{"type":20,"text":21,"format":11,"detail":11,"mode":22,"style":10,"version":12},"text","What \"search engine cloaking software\" actually means","normal",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":25},"paragraph",[26],{"type":20,"text":27,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Search engine cloaking software is any tool that shows one version of a web page to a search engine crawler and a different version to a human visitor. The split is usually triggered by user-agent string, source IP range, reverse DNS lookup, or behavioral signals such as mouse movement and scroll depth. For two decades it has lived in the gray zone of SEO, and for most of that time it actually worked.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":29},[30],{"type":20,"text":31,"format":11,"detail":11,"mode":22,"style":10,"version":12},"It does not work the same way anymore. The cat-and-mouse game between SEO operators and Google's web spam team has tilted hard toward the defender since roughly 2018, and again in 2024 when Google rolled out ML-based behavioral fingerprinting in the SpamBrain stack. The lifespan of an SEO cloaking campaign that would have lasted six months in 2012 is now measured in days, sometimes hours.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":33},[34],{"type":20,"text":35,"format":11,"detail":11,"mode":22,"style":10,"version":12},"This article walks through how we got here, what the technology actually does under the hood, where Google's policy lines sit in 2026, and — most importantly — the boundary between black-hat SEO cloaking and the legitimate personalization that modern technical SEO genuinely allows.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":37},[38,40,50],{"type":20,"text":39,"format":11,"detail":11,"mode":22,"style":10,"version":12},"If you want the broader picture of how the technology is used outside search, our pillar on ",{"type":41,"fields":42,"format":10,"indent":11,"version":46,"direction":13,"children":47},"link",{"url":43,"newTab":44,"linkType":45},"/resources/blog/what-is-website-cloaking",false,"custom",3,[48],{"type":20,"text":49,"format":11,"detail":11,"mode":22,"style":10,"version":12},"website cloaking",{"type":20,"text":51,"format":11,"detail":11,"mode":22,"style":10,"version":12}," covers the full landscape.",{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":53},[54],{"type":20,"text":55,"format":11,"detail":11,"mode":22,"style":10,"version":12},"A short history: from .htaccess tricks to ML fingerprints",{"type":16,"tag":57,"format":10,"indent":11,"version":12,"direction":13,"children":58},"h3",[59],{"type":20,"text":60,"format":11,"detail":11,"mode":22,"style":10,"version":12},"2003-2008: the golden era",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":62},[63,65,68,70,72],{"type":20,"text":64,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Early SEO cloaking software was almost embarrassingly simple. An Apache ",{"type":20,"text":66,"format":67,"detail":11,"mode":22,"style":10,"version":12},".htaccess",16,{"type":20,"text":69,"format":11,"detail":11,"mode":22,"style":10,"version":12}," rule or a PHP script checked the ",{"type":20,"text":71,"format":67,"detail":11,"mode":22,"style":10,"version":12},"User-Agent",{"type":20,"text":73,"format":11,"detail":11,"mode":22,"style":10,"version":12}," header. If the string contained \"Googlebot,\" the script served a keyword-stuffed text page packed with H1s, exact-match anchors, and reciprocal links. Everyone else saw a thin affiliate landing page, a doorway page, or in the worst cases a parked domain dressed up as content.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":75},[76,78,80],{"type":20,"text":77,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Google's primary defense was a manual review team and the original ",{"type":20,"text":79,"format":67,"detail":11,"mode":22,"style":10,"version":12},"fetch as Googlebot",{"type":20,"text":81,"format":11,"detail":11,"mode":22,"style":10,"version":12}," tool inside Webmaster Tools. The detection gap was wide enough that mid-tier affiliates ran the same cloak for a year or more.",{"type":16,"tag":57,"format":10,"indent":11,"version":12,"direction":13,"children":83},[84],{"type":20,"text":85,"format":11,"detail":11,"mode":22,"style":10,"version":12},"2009-2015: IP-based cloaking and the Panda era",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":87},[88],{"type":20,"text":89,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Once user-agent spoofing became trivially easy to detect (Google began crawling from undisclosed IP ranges and cross-checking responses), the industry moved to IP-based cloaking. Vendors sold and resold lists of Googlebot IP ranges. Software like the now-defunct Fantomaster and a handful of private PHP frameworks managed the lists.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":91},[92],{"type":20,"text":93,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Then came Panda (2011) and Penguin (2012). These were not anti-cloaking updates per se — they targeted thin content and unnatural link profiles — but they punished the exact kind of doorway pages that cloaking software was used to serve. Many cloaking operations collapsed not because the cloak was detected, but because the destination it pointed to became worthless.",{"type":16,"tag":57,"format":10,"indent":11,"version":12,"direction":13,"children":95},[96],{"type":20,"text":97,"format":11,"detail":11,"mode":22,"style":10,"version":12},"2016-2023: JavaScript rendering and behavioral signals",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":99},[100,102,104,106,108],{"type":20,"text":101,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Google's switch to a Chromium-based rendering pipeline (the \"evergreen Googlebot\" announced in 2019) was a quiet earthquake. Suddenly the crawler executed JavaScript the same way a real browser did. Server-side cloaking still worked, but the new generation of client-side cloaks — show different DOM after ",{"type":20,"text":103,"format":67,"detail":11,"mode":22,"style":10,"version":12},"DOMContentLoaded",{"type":20,"text":105,"format":11,"detail":11,"mode":22,"style":10,"version":12},", hide content based on ",{"type":20,"text":107,"format":67,"detail":11,"mode":22,"style":10,"version":12},"navigator.webdriver",{"type":20,"text":109,"format":11,"detail":11,"mode":22,"style":10,"version":12},", lazy-load the real page only on real scroll — became the standard.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":111},[112],{"type":20,"text":113,"format":11,"detail":11,"mode":22,"style":10,"version":12},"In parallel, Google's SpamBrain (announced 2018, rolled out broadly in 2021) started using machine learning to score pages on behavioral consistency. The question shifted from \"is this server lying about its content?\" to \"does this page behave the way its content predicts it should?\"",{"type":16,"tag":57,"format":10,"indent":11,"version":12,"direction":13,"children":115},[116],{"type":20,"text":117,"format":11,"detail":11,"mode":22,"style":10,"version":12},"2024-2026: behavioral fingerprinting",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":119},[120],{"type":20,"text":121,"format":11,"detail":11,"mode":22,"style":10,"version":12},"The current generation of detection does not need to catch the cloak in the act. SpamBrain pulls signals from Chrome usage data, Search Console crawl logs, third-party reputation feeds, and user behavior on the SERP itself. If a page ranks for a term but every visitor bounces in under three seconds, or if the page Google rendered for indexing diverges semantically from the page real Chrome users report seeing, the page gets flagged for human review or demoted algorithmically.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":123},[124],{"type":20,"text":125,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Cloaking software that worked in 2022 frequently does not in 2026, not because Google identified the cloak technique, but because the downstream behavioral signals exposed the lie.",{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":127},[128],{"type":20,"text":129,"format":11,"detail":11,"mode":22,"style":10,"version":12},"How SEO cloaking software actually works",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":131},[132],{"type":20,"text":133,"format":11,"detail":11,"mode":22,"style":10,"version":12},"A working SEO cloak in 2026 needs to handle four layers simultaneously, which is why so few of the legacy tools still function:",{"type":135,"listType":136,"start":12,"tag":137,"format":10,"indent":11,"version":12,"direction":13,"children":138},"list","number","ol",[139,148,157,165],{"type":140,"value":12,"format":10,"indent":11,"version":12,"direction":13,"children":141},"listitem",[142],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":143},[144,146],{"type":20,"text":145,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Request fingerprinting",{"type":20,"text":147,"format":11,"detail":11,"mode":22,"style":10,"version":12},": Validate the visitor is Googlebot via reverse DNS plus forward-confirmed reverse DNS lookup (FCrDNS) — IP lists alone are no longer reliable because Google rotates ranges. Header order, TLS JA3 fingerprint, and HTTP/2 frame patterns are now part of the check.",{"type":140,"value":149,"format":10,"indent":11,"version":12,"direction":13,"children":150},2,[151],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":152},[153,155],{"type":20,"text":154,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Rendering parity",{"type":20,"text":156,"format":11,"detail":11,"mode":22,"style":10,"version":12},": The crawler-facing page must render under headless Chromium with the same Core Web Vitals profile a real page would. A static HTML dump no longer passes.",{"type":140,"value":46,"format":10,"indent":11,"version":12,"direction":13,"children":158},[159],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":160},[161,163],{"type":20,"text":162,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Content drift",{"type":20,"text":164,"format":11,"detail":11,"mode":22,"style":10,"version":12},": The cloaked content has to remain semantically consistent with the user-facing content. SpamBrain's text embeddings will catch a page that talks about \"personal finance\" to the crawler and \"regulated verticals\" to the user, even if the visible HTML is structured similarly.",{"type":140,"value":166,"format":10,"indent":11,"version":12,"direction":13,"children":167},4,[168],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":169},[170,172],{"type":20,"text":171,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Behavioral mimicry",{"type":20,"text":173,"format":11,"detail":11,"mode":22,"style":10,"version":12},": The real-user version must produce engagement signals (dwell time, scroll depth, internal clicks) that match what a page on that topic should produce. Otherwise the SERP CTR and dwell metrics give it away within days.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":175},[176,178,184],{"type":20,"text":177,"format":11,"detail":11,"mode":22,"style":10,"version":12},"This is, in practical terms, an arms race the cloaker cannot win cheaply. Compare this with our breakdown of ",{"type":41,"fields":179,"format":10,"indent":11,"version":46,"direction":13,"children":181},{"url":180,"newTab":44,"linkType":45},"/resources/blog/server-side-vs-client-side-cloaking",[182],{"type":20,"text":183,"format":11,"detail":11,"mode":22,"style":10,"version":12},"server-side vs client-side cloaking",{"type":20,"text":185,"format":11,"detail":11,"mode":22,"style":10,"version":12}," to see why the server-side approach is the only one still standing technically — but the policy risk is identical regardless.",{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":187},[188],{"type":20,"text":189,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Google's policy red line, plainly stated",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":191},[192],{"type":20,"text":193,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Google's official Search guidelines define cloaking as \"presenting different content to search engines than to users\" and classify it as a spam policy violation. The 2023 rewrite of the policy added two important clarifications that most older guides miss:",{"type":135,"listType":195,"start":12,"tag":196,"format":10,"indent":11,"version":12,"direction":13,"children":197},"bullet","ul",[198,206],{"type":140,"value":12,"format":10,"indent":11,"version":12,"direction":13,"children":199},[200],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":201},[202,204],{"type":20,"text":203,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Intent matters less than effect.",{"type":20,"text":205,"format":11,"detail":11,"mode":22,"style":10,"version":12}," The policy applies whether or not the operator intended to deceive the crawler. If the served content materially differs in topic, value, or commercial intent, it is cloaking.",{"type":140,"value":149,"format":10,"indent":11,"version":12,"direction":13,"children":207},[208],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":209},[210,212],{"type":20,"text":211,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Personalization is explicitly allowed",{"type":20,"text":213,"format":11,"detail":11,"mode":22,"style":10,"version":12},", but only when the variations serve the same underlying user need. Showing a logged-in user their dashboard while showing the crawler a marketing description of the dashboard is fine. Showing the crawler a how-to article while showing real users an offer page for a different product is not.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":215},[216],{"type":20,"text":217,"format":11,"detail":11,"mode":22,"style":10,"version":12},"The penalty for a confirmed cloaking violation is removal from the index. There is no algorithmic demotion intermediate step in 2026 for verified cloaking — once a manual reviewer confirms it, the domain is gone, and recovery via reconsideration request typically takes 30 to 90 days even on a clean reapplication.",{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":219},[220],{"type":20,"text":221,"format":11,"detail":11,"mode":22,"style":10,"version":12},"2010 vs 2026: how detection actually changed",{"type":223,"direction":224,"format":10,"indent":11,"version":12,"colWidths":225,"children":227},"table",null,[226,226,226],280,[228,250,270,290,310,330,350,370],{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":230},"tablerow",[231,238,244],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":12,"children":233},"tablecell",[234],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":235},[236],{"type":20,"text":237,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Detection layer",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":12,"children":239},[240],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":241},[242],{"type":20,"text":243,"format":11,"detail":11,"mode":22,"style":10,"version":12},"2010 capability",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":12,"children":245},[246],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":247},[248],{"type":20,"text":249,"format":11,"detail":11,"mode":22,"style":10,"version":12},"2026 capability",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":251},[252,258,264],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":253},[254],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":255},[256],{"type":20,"text":257,"format":11,"detail":11,"mode":22,"style":10,"version":12},"User-agent verification",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":259},[260],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":261},[262],{"type":20,"text":263,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Manual sampling",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":265},[266],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":267},[268],{"type":20,"text":269,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Real-time FCrDNS + JA3 fingerprint",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":271},[272,278,284],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":273},[274],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":275},[276],{"type":20,"text":277,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Rendering",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":279},[280],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":281},[282],{"type":20,"text":283,"format":11,"detail":11,"mode":22,"style":10,"version":12},"HTML-only fetch",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":285},[286],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":287},[288],{"type":20,"text":289,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Full evergreen Chromium with JS execution",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":291},[292,298,304],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":293},[294],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":295},[296],{"type":20,"text":297,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Content comparison",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":299},[300],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":301},[302],{"type":20,"text":303,"format":11,"detail":11,"mode":22,"style":10,"version":12},"String diff",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":305},[306],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":307},[308],{"type":20,"text":309,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Semantic embedding diff via SpamBrain",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":311},[312,318,324],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":313},[314],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":315},[316],{"type":20,"text":317,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Behavioral signals",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":319},[320],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":321},[322],{"type":20,"text":323,"format":11,"detail":11,"mode":22,"style":10,"version":12},"None",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":325},[326],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":327},[328],{"type":20,"text":329,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Chrome UX Report + SERP dwell + click data",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":331},[332,338,344],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":333},[334],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":335},[336],{"type":20,"text":337,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Detection latency",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":339},[340],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":341},[342],{"type":20,"text":343,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Weeks to months",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":345},[346],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":347},[348],{"type":20,"text":349,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Hours to days for high-volume keywords",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":351},[352,358,364],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":353},[354],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":355},[356],{"type":20,"text":357,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Penalty",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":359},[360],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":361},[362],{"type":20,"text":363,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Algorithmic demotion",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":365},[366],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":367},[368],{"type":20,"text":369,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Index removal + reconsideration backlog",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":371},[372,378,384],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":373},[374],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":375},[376],{"type":20,"text":377,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Reversal cost",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":379},[380],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":381},[382],{"type":20,"text":383,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Low (re-rank possible)",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":385},[386],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":387},[388],{"type":20,"text":389,"format":11,"detail":11,"mode":22,"style":10,"version":12},"High (domain reputation often unrecoverable)",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":391},[392],{"type":20,"text":393,"format":11,"detail":11,"mode":22,"style":10,"version":12},"The shift from \"can we catch the cloak in the act?\" to \"does the page behave the way it claims to?\" is the single most important change. It means an undetectable cloak is no longer enough — the downstream user behavior has to be consistent with what Google's models predict for the topic.",{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":395},[396],{"type":20,"text":397,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Black-hat SEO cloaking vs legitimate technical personalization",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":399},[400],{"type":20,"text":401,"format":11,"detail":11,"mode":22,"style":10,"version":12},"This is where the article needs to be precise. Not every difference between what a crawler sees and what a user sees is cloaking. The distinction is intent and equivalence of value, and there are well-established patterns that Google explicitly endorses.",{"type":223,"direction":224,"format":10,"indent":11,"version":12,"colWidths":403,"children":405},[404,404,404,404],210,[406,432,458,484,510,536,562,588,614],{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":407},[408,414,420,426],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":12,"children":409},[410],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":411},[412],{"type":20,"text":413,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Practice",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":12,"children":415},[416],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":417},[418],{"type":20,"text":419,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Crawler sees",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":12,"children":421},[422],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":423},[424],{"type":20,"text":425,"format":11,"detail":11,"mode":22,"style":10,"version":12},"User sees",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":12,"children":427},[428],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":429},[430],{"type":20,"text":431,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Cloaking?",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":433},[434,440,446,452],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":435},[436],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":437},[438],{"type":20,"text":439,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Geo-redirecting based on accept-language",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":441},[442],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":443},[444],{"type":20,"text":445,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Default locale page",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":447},[448],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":449},[450],{"type":20,"text":451,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Localized page",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":453},[454],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":455},[456],{"type":20,"text":457,"format":11,"detail":11,"mode":22,"style":10,"version":12},"No — same content, different language",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":459},[460,466,472,478],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":461},[462],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":463},[464],{"type":20,"text":465,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Paywalled article with structured data",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":467},[468],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":469},[470],{"type":20,"text":471,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Full article via Flexible Sampling",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":473},[474],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":475},[476],{"type":20,"text":477,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Truncated preview",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":479},[480],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":481},[482],{"type":20,"text":483,"format":11,"detail":11,"mode":22,"style":10,"version":12},"No — Google's own program",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":485},[486,492,498,504],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":487},[488],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":489},[490],{"type":20,"text":491,"format":11,"detail":11,"mode":22,"style":10,"version":12},"A/B test with rel=\"canonical\"",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":493},[494],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":495},[496],{"type":20,"text":497,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Canonical variant",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":499},[500],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":501},[502],{"type":20,"text":503,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Test variant",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":505},[506],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":507},[508],{"type":20,"text":509,"format":11,"detail":11,"mode":22,"style":10,"version":12},"No — within Google's guidelines",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":511},[512,518,524,530],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":513},[514],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":515},[516],{"type":20,"text":517,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Logged-in dashboard",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":519},[520],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":521},[522],{"type":20,"text":523,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Marketing description",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":525},[526],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":527},[528],{"type":20,"text":529,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Personal dashboard",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":531},[532],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":533},[534],{"type":20,"text":535,"format":11,"detail":11,"mode":22,"style":10,"version":12},"No — same user need, different state",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":537},[538,544,550,556],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":539},[540],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":541},[542],{"type":20,"text":543,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Dynamic rendering for JS-heavy SPA",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":545},[546],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":547},[548],{"type":20,"text":549,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Pre-rendered HTML",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":551},[552],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":553},[554],{"type":20,"text":555,"format":11,"detail":11,"mode":22,"style":10,"version":12},"React app",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":557},[558],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":559},[560],{"type":20,"text":561,"format":11,"detail":11,"mode":22,"style":10,"version":12},"No — deprecated but still tolerated",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":563},[564,570,576,582],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":565},[566],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":567},[568],{"type":20,"text":569,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Different topic by user-agent",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":571},[572],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":573},[574],{"type":20,"text":575,"format":11,"detail":11,"mode":22,"style":10,"version":12},"\"How to grow tomatoes\"",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":577},[578],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":579},[580],{"type":20,"text":581,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Offer page for unrelated product",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":583},[584],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":585},[586],{"type":20,"text":587,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Yes — classic cloaking",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":589},[590,596,602,608],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":591},[592],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":593},[594],{"type":20,"text":595,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Different commercial intent by IP",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":597},[598],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":599},[600],{"type":20,"text":601,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Informational article",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":603},[604],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":605},[606],{"type":20,"text":607,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Aggressive sales funnel",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":609},[610],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":611},[612],{"type":20,"text":613,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Yes — intent mismatch",{"type":229,"direction":224,"format":10,"indent":11,"version":12,"children":615},[616,622,628,634],{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":617},[618],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":619},[620],{"type":20,"text":621,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Hidden text only for crawler",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":623},[624],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":625},[626],{"type":20,"text":627,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Keyword-stuffed div",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":629},[630],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":631},[632],{"type":20,"text":633,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Clean design",{"type":232,"direction":224,"format":10,"indent":11,"version":12,"backgroundColor":224,"colSpan":12,"rowSpan":12,"headerState":11,"children":635},[636],{"type":24,"direction":224,"format":10,"indent":11,"version":12,"textFormat":11,"textStyle":10,"children":637},[638],{"type":20,"text":639,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Yes — content drift",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":641},[642,644,646],{"type":20,"text":643,"format":11,"detail":11,"mode":22,"style":10,"version":12},"The judgment heuristic Google's spam team applies internally, which has been repeatedly stated by John Mueller and Gary Illyes in public Q&As, is the ",{"type":20,"text":645,"format":12,"detail":11,"mode":22,"style":10,"version":12},"\"would the user feel deceived?\" test",{"type":20,"text":647,"format":11,"detail":11,"mode":22,"style":10,"version":12},". If a user clicks a SERP result expecting what the snippet promised, and the page they land on serves a fundamentally different purpose, the underlying mechanism was cloaking — regardless of how it was implemented.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":649},[650,652,658],{"type":20,"text":651,"format":11,"detail":11,"mode":22,"style":10,"version":12},"For traffic-acquisition use cases where the page genuinely needs to behave differently across segments without crossing into cloaking, ",{"type":41,"fields":653,"format":10,"indent":11,"version":46,"direction":13,"children":655},{"url":654,"newTab":44,"linkType":45},"/resources/blog/cloaking-vs-smart-landing-pages",[656],{"type":20,"text":657,"format":11,"detail":11,"mode":22,"style":10,"version":12},"smart landing pages",{"type":20,"text":659,"format":11,"detail":11,"mode":22,"style":10,"version":12}," are the modern alternative. They personalize within a single declared intent rather than swapping intent entirely.",{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":661},[662],{"type":20,"text":663,"format":11,"detail":11,"mode":22,"style":10,"version":12},"When SEO cloaking software still gets used (and why most of it fails)",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":665},[666],{"type":20,"text":667,"format":11,"detail":11,"mode":22,"style":10,"version":12},"There is still a market for SEO cloaking software, mostly concentrated in regulated verticals where the operators have decided the risk-reward math works out. The math usually doesn't, but the calculation goes something like:",{"type":135,"listType":195,"start":12,"tag":196,"format":10,"indent":11,"version":12,"direction":13,"children":669},[670,676,682,688],{"type":140,"value":12,"format":10,"indent":11,"version":12,"direction":13,"children":671},[672],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":673},[674],{"type":20,"text":675,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Domain cost: low. Burner domains are cheap.",{"type":140,"value":149,"format":10,"indent":11,"version":12,"direction":13,"children":677},[678],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":679},[680],{"type":20,"text":681,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Setup time: low. A modern cloaking stack ships as a Cloudflare Worker or a Node.js middleware.",{"type":140,"value":46,"format":10,"indent":11,"version":12,"direction":13,"children":683},[684],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":685},[686],{"type":20,"text":687,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Expected lifetime: days to weeks before SpamBrain or a manual reviewer kills it.",{"type":140,"value":166,"format":10,"indent":11,"version":12,"direction":13,"children":689},[690],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":691},[692],{"type":20,"text":693,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Revenue extraction: front-loaded into the first 72 hours of ranking.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":695},[696],{"type":20,"text":697,"format":11,"detail":11,"mode":22,"style":10,"version":12},"This is the \"burn and churn\" model, and it is fundamentally different from how legitimate sites use SEO. Anyone reading this for a long-lived brand should treat that model as actively dangerous, because the operational debt — burned domains, blacklisted ad accounts, payment processor flags — compounds.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":699},[700,702,708],{"type":20,"text":701,"format":11,"detail":11,"mode":22,"style":10,"version":12},"For a deeper comparison of the actual tools on the market in this space, see our ",{"type":41,"fields":703,"format":10,"indent":11,"version":46,"direction":13,"children":705},{"url":704,"newTab":44,"linkType":45},"/resources/blog/cloaking-tools-compared-2026",[706],{"type":20,"text":707,"format":11,"detail":11,"mode":22,"style":10,"version":12},"cloaking tools compared 2026",{"type":20,"text":709,"format":11,"detail":11,"mode":22,"style":10,"version":12}," review.",{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":711},[712],{"type":20,"text":713,"format":11,"detail":11,"mode":22,"style":10,"version":12},"When is it SEO personalization, and when is it the red line?",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":715},[716],{"type":20,"text":717,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Three practical tests we recommend before shipping any segmentation logic:",{"type":135,"listType":136,"start":12,"tag":137,"format":10,"indent":11,"version":12,"direction":13,"children":719},[720,728,736],{"type":140,"value":12,"format":10,"indent":11,"version":12,"direction":13,"children":721},[722],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":723},[724,726],{"type":20,"text":725,"format":12,"detail":11,"mode":22,"style":10,"version":12},"The intent test",{"type":20,"text":727,"format":11,"detail":11,"mode":22,"style":10,"version":12},": Does each variant satisfy the same underlying search intent? If a user from a SERP click on \"best running shoes\" can reasonably accomplish their goal on every variant, you're fine. If one variant pivots to a different product or different commercial action, you're cloaking.",{"type":140,"value":149,"format":10,"indent":11,"version":12,"direction":13,"children":729},[730],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":731},[732,734],{"type":20,"text":733,"format":12,"detail":11,"mode":22,"style":10,"version":12},"The disclosure test",{"type":20,"text":735,"format":11,"detail":11,"mode":22,"style":10,"version":12},": Could you describe what each segment sees in a single sentence of help-center copy, without the description sounding evasive? If the segmentation is hard to explain honestly, it's probably not honest.",{"type":140,"value":46,"format":10,"indent":11,"version":12,"direction":13,"children":737},[738],{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":739},[740,742],{"type":20,"text":741,"format":12,"detail":11,"mode":22,"style":10,"version":12},"The crawler-parity test",{"type":20,"text":743,"format":11,"detail":11,"mode":22,"style":10,"version":12},": If Google's crawler were authenticated as a logged-in user in your highest-value segment, would the page it sees be a fair representation of what that segment gets? If yes, you're personalizing. If the crawler is being served a categorically different page from any real user, you're cloaking.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":745},[746],{"type":20,"text":747,"format":11,"detail":11,"mode":22,"style":10,"version":12},"If any of the three fails, the implementation needs to change before launch. Detection latency in 2026 means \"we'll fix it if we get caught\" is no longer a viable plan — by the time a manual action arrives, the domain reputation cost typically exceeds the entire upside of the campaign.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":749},[750,752,758],{"type":20,"text":751,"format":11,"detail":11,"mode":22,"style":10,"version":12},"For a clean checklist of conditions under which any form of cloaking is the wrong choice for a project, see ",{"type":41,"fields":753,"format":10,"indent":11,"version":46,"direction":13,"children":755},{"url":754,"newTab":44,"linkType":45},"/resources/blog/when-not-to-use-cloaking",[756],{"type":20,"text":757,"format":11,"detail":11,"mode":22,"style":10,"version":12},"when not to use cloaking",{"type":20,"text":759,"format":11,"detail":11,"mode":22,"style":10,"version":12},".",{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":761},[762],{"type":20,"text":763,"format":11,"detail":11,"mode":22,"style":10,"version":12},"FAQ",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":765},[766],{"type":20,"text":767,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Is SEO cloaking software illegal?",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":769},[770],{"type":20,"text":771,"format":11,"detail":11,"mode":22,"style":10,"version":12},"In most jurisdictions, no — cloaking itself is not a criminal matter. It is a violation of Google's Search policies, which results in removal from the index. In regulated verticals it can intersect with separate consumer-protection laws, but the cloaking mechanism on its own is a platform-policy issue, not a legal one.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":773},[774],{"type":20,"text":775,"format":12,"detail":11,"mode":22,"style":10,"version":12},"How long does a modern SEO cloak actually last?",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":777},[778],{"type":20,"text":779,"format":11,"detail":11,"mode":22,"style":10,"version":12},"For competitive commercial keywords, typically 3 to 21 days. For long-tail informational queries with low search volume, sometimes 60 to 90 days. The variance is driven by how quickly user behavioral signals reach SpamBrain's confidence threshold, which scales with the page's traffic.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":781},[782],{"type":20,"text":783,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Can I cloak my A/B tests?",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":785},[786,788,790],{"type":20,"text":787,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Yes, but follow Google's official guidance: use ",{"type":20,"text":789,"format":67,"detail":11,"mode":22,"style":10,"version":12},"rel=\"canonical\"",{"type":20,"text":791,"format":11,"detail":11,"mode":22,"style":10,"version":12}," to point variants at the control URL, ensure variants serve the same user intent, and don't run tests longer than necessary. A/B testing inside these rails is explicitly not cloaking.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":793},[794],{"type":20,"text":795,"format":12,"detail":11,"mode":22,"style":10,"version":12},"What about showing different prices to crawlers vs users?",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":797},[798],{"type":20,"text":799,"format":11,"detail":11,"mode":22,"style":10,"version":12},"This is a gray area. If the price difference reflects real personalization that any real user in that segment would also see, it's allowable. If the crawler is shown an artificially low price to drive ranking on price-sensitive queries while real users see a higher price, that's cloaking by commercial intent.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":801},[802],{"type":20,"text":803,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Does dynamic rendering count as cloaking?",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":805},[806],{"type":20,"text":807,"format":11,"detail":11,"mode":22,"style":10,"version":12},"No, provided the pre-rendered HTML is a faithful representation of the JavaScript app. Google deprecated active recommendation of dynamic rendering in 2022 but still tolerates it. The risk is implementation drift over time, where the pre-rendered version slowly diverges from the live app.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":809},[810],{"type":20,"text":811,"format":12,"detail":11,"mode":22,"style":10,"version":12},"Is cloaking detection done by humans or AI?",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":813},[814],{"type":20,"text":815,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Both. SpamBrain handles initial classification at scale and applies algorithmic suppression. Confirmed cloaking penalties — the kind that result in index removal rather than ranking adjustment — still go through a human reviewer in Google's web spam team before action.",{"type":16,"tag":17,"format":10,"indent":11,"version":12,"direction":13,"children":817},[818],{"type":20,"text":819,"format":11,"detail":11,"mode":22,"style":10,"version":12},"The honest summary",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":821},[822],{"type":20,"text":823,"format":11,"detail":11,"mode":22,"style":10,"version":12},"Search engine cloaking software exists, still works for very short windows on a narrow set of use cases, and is the wrong investment for almost any business that intends to operate for more than a quarter. The technical surface area has narrowed, Google's detection has shifted from mechanism-based to behavior-based, and the penalty has hardened from demotion to removal.",{"type":24,"format":10,"indent":11,"version":12,"direction":13,"children":825},[826],{"type":20,"text":827,"format":11,"detail":11,"mode":22,"style":10,"version":12},"The legitimate adjacent practice — personalizing within a single declared search intent, A/B testing inside Google's published rails, and using smart landing pages for traffic acquisition — captures most of what operators were trying to get out of cloaking in the first place, without the cliff-edge risk. The judgment call is whether each segment satisfies the same user need or whether the segmentation pivots intent. Pass that test honestly and the work is durable. Fail it and the question is only when the index removal lands, not whether.",{"id":829,"alt":830,"updatedAt":831,"createdAt":831,"url":832,"thumbnailURL":224,"filename":833,"mimeType":834,"filesize":835,"width":836,"height":837},300,"SEO cloaking history and 2026 detection · 搜索引擎斗篷演化时间线","2026-06-10T02:41:51.168Z","https://cms-r2.deepclick.com/hero-cloaking-seo-abe9ae274145.png","hero-cloaking-seo-abe9ae274145.png","image/png",656490,1600,900,{"title":839,"description":840,"image":841},"Search Engine Cloaking Software in 2026: What Still Works","Search engine cloaking software promises rankings, but Google now uses ML behavior fingerprints. Learn the history, red lines, and lawful alternatives.",{"id":829,"alt":830,"updatedAt":831,"createdAt":831,"url":832,"thumbnailURL":224,"filename":833,"mimeType":834,"filesize":835,"width":836,"height":837},"published","search-engine-cloaking-software",{"id":149,"name":845,"avatar":846,"updatedAt":853,"createdAt":854},"DeepClick",{"id":847,"alt":845,"updatedAt":848,"createdAt":848,"url":849,"thumbnailURL":224,"filename":850,"mimeType":834,"filesize":851,"width":852,"height":852},25,"2026-04-22T08:09:22.606Z","https://cms-r2.deepclick.com/头像-白.png","头像-白.png",26626,1024,"2026-04-22T08:09:35.299Z","2026-04-22T06:42:49.116Z",{"id":46,"titleZh":856,"titleEn":857,"slug":858,"order":149,"updatedAt":859,"createdAt":859},"行业信息","Industry Info","industry-info","2026-04-22T03:32:29.529Z","2026-06-10T02:43:57.782Z","2026-06-10T02:44:04.139Z","2026-06-09T07:53:09.447Z","\u003Cdiv class=\"payload-richtext\">\u003Ch2>What &quot;search engine cloaking software&quot; actually means\u003C/h2>\u003Cp>Search engine cloaking software is any tool that shows one version of a web page to a search engine crawler and a different version to a human visitor. The split is usually triggered by user-agent string, source IP range, reverse DNS lookup, or behavioral signals such as mouse movement and scroll depth. For two decades it has lived in the gray zone of SEO, and for most of that time it actually worked.\u003C/p>\u003Cp>It does not work the same way anymore. The cat-and-mouse game between SEO operators and Google&#39;s web spam team has tilted hard toward the defender since roughly 2018, and again in 2024 when Google rolled out ML-based behavioral fingerprinting in the SpamBrain stack. The lifespan of an SEO cloaking campaign that would have lasted six months in 2012 is now measured in days, sometimes hours.\u003C/p>\u003Cp>This article walks through how we got here, what the technology actually does under the hood, where Google&#39;s policy lines sit in 2026, and — most importantly — the boundary between black-hat SEO cloaking and the legitimate personalization that modern technical SEO genuinely allows.\u003C/p>\u003Cp>If you want the broader picture of how the technology is used outside search, our pillar on \u003Ca href=\"/resources/blog/what-is-website-cloaking\">website cloaking\u003C/a> covers the full landscape.\u003C/p>\u003Ch2>A short history: from .htaccess tricks to ML fingerprints\u003C/h2>\u003Ch3>2003-2008: the golden era\u003C/h3>\u003Cp>Early SEO cloaking software was almost embarrassingly simple. An Apache \u003Ccode>.htaccess\u003C/code> rule or a PHP script checked the \u003Ccode>User-Agent\u003C/code> header. If the string contained &quot;Googlebot,&quot; the script served a keyword-stuffed text page packed with H1s, exact-match anchors, and reciprocal links. Everyone else saw a thin affiliate landing page, a doorway page, or in the worst cases a parked domain dressed up as content.\u003C/p>\u003Cp>Google&#39;s primary defense was a manual review team and the original \u003Ccode>fetch as Googlebot\u003C/code> tool inside Webmaster Tools. The detection gap was wide enough that mid-tier affiliates ran the same cloak for a year or more.\u003C/p>\u003Ch3>2009-2015: IP-based cloaking and the Panda era\u003C/h3>\u003Cp>Once user-agent spoofing became trivially easy to detect (Google began crawling from undisclosed IP ranges and cross-checking responses), the industry moved to IP-based cloaking. Vendors sold and resold lists of Googlebot IP ranges. Software like the now-defunct Fantomaster and a handful of private PHP frameworks managed the lists.\u003C/p>\u003Cp>Then came Panda (2011) and Penguin (2012). These were not anti-cloaking updates per se — they targeted thin content and unnatural link profiles — but they punished the exact kind of doorway pages that cloaking software was used to serve. Many cloaking operations collapsed not because the cloak was detected, but because the destination it pointed to became worthless.\u003C/p>\u003Ch3>2016-2023: JavaScript rendering and behavioral signals\u003C/h3>\u003Cp>Google&#39;s switch to a Chromium-based rendering pipeline (the &quot;evergreen Googlebot&quot; announced in 2019) was a quiet earthquake. Suddenly the crawler executed JavaScript the same way a real browser did. Server-side cloaking still worked, but the new generation of client-side cloaks — show different DOM after \u003Ccode>DOMContentLoaded\u003C/code>, hide content based on \u003Ccode>navigator.webdriver\u003C/code>, lazy-load the real page only on real scroll — became the standard.\u003C/p>\u003Cp>In parallel, Google&#39;s SpamBrain (announced 2018, rolled out broadly in 2021) started using machine learning to score pages on behavioral consistency. The question shifted from &quot;is this server lying about its content?&quot; to &quot;does this page behave the way its content predicts it should?&quot;\u003C/p>\u003Ch3>2024-2026: behavioral fingerprinting\u003C/h3>\u003Cp>The current generation of detection does not need to catch the cloak in the act. SpamBrain pulls signals from Chrome usage data, Search Console crawl logs, third-party reputation feeds, and user behavior on the SERP itself. If a page ranks for a term but every visitor bounces in under three seconds, or if the page Google rendered for indexing diverges semantically from the page real Chrome users report seeing, the page gets flagged for human review or demoted algorithmically.\u003C/p>\u003Cp>Cloaking software that worked in 2022 frequently does not in 2026, not because Google identified the cloak technique, but because the downstream behavioral signals exposed the lie.\u003C/p>\u003Ch2>How SEO cloaking software actually works\u003C/h2>\u003Cp>A working SEO cloak in 2026 needs to handle four layers simultaneously, which is why so few of the legacy tools still function:\u003C/p>\u003Col class=\"list-number\">\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"1\"\n        >\u003Cp>\u003Cstrong>Request fingerprinting\u003C/strong>: Validate the visitor is Googlebot via reverse DNS plus forward-confirmed reverse DNS lookup (FCrDNS) — IP lists alone are no longer reliable because Google rotates ranges. Header order, TLS JA3 fingerprint, and HTTP/2 frame patterns are now part of the check.\u003C/p>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"2\"\n        >\u003Cp>\u003Cstrong>Rendering parity\u003C/strong>: The crawler-facing page must render under headless Chromium with the same Core Web Vitals profile a real page would. A static HTML dump no longer passes.\u003C/p>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"3\"\n        >\u003Cp>\u003Cstrong>Content drift\u003C/strong>: The cloaked content has to remain semantically consistent with the user-facing content. SpamBrain&#39;s text embeddings will catch a page that talks about &quot;personal finance&quot; to the crawler and &quot;regulated verticals&quot; to the user, even if the visible HTML is structured similarly.\u003C/p>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"4\"\n        >\u003Cp>\u003Cstrong>Behavioral mimicry\u003C/strong>: The real-user version must produce engagement signals (dwell time, scroll depth, internal clicks) that match what a page on that topic should produce. Otherwise the SERP CTR and dwell metrics give it away within days.\u003C/p>\u003C/li>\u003C/ol>\u003Cp>This is, in practical terms, an arms race the cloaker cannot win cheaply. Compare this with our breakdown of \u003Ca href=\"/resources/blog/server-side-vs-client-side-cloaking\">server-side vs client-side cloaking\u003C/a> to see why the server-side approach is the only one still standing technically — but the policy risk is identical regardless.\u003C/p>\u003Ch2>Google&#39;s policy red line, plainly stated\u003C/h2>\u003Cp>Google&#39;s official Search guidelines define cloaking as &quot;presenting different content to search engines than to users&quot; and classify it as a spam policy violation. The 2023 rewrite of the policy added two important clarifications that most older guides miss:\u003C/p>\u003Cul class=\"list-bullet\">\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"1\"\n        >\u003Cp>\u003Cstrong>Intent matters less than effect.\u003C/strong> The policy applies whether or not the operator intended to deceive the crawler. If the served content materially differs in topic, value, or commercial intent, it is cloaking.\u003C/p>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"2\"\n        >\u003Cp>\u003Cstrong>Personalization is explicitly allowed\u003C/strong>, but only when the variations serve the same underlying user need. Showing a logged-in user their dashboard while showing the crawler a marketing description of the dashboard is fine. Showing the crawler a how-to article while showing real users an offer page for a different product is not.\u003C/p>\u003C/li>\u003C/ul>\u003Cp>The penalty for a confirmed cloaking violation is removal from the index. There is no algorithmic demotion intermediate step in 2026 for verified cloaking — once a manual reviewer confirms it, the domain is gone, and recovery via reconsideration request typically takes 30 to 90 days even on a clean reapplication.\u003C/p>\u003Ch2>2010 vs 2026: how detection actually changed\u003C/h2>\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>Detection layer\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>2010 capability\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>2026 capability\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>User-agent verification\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>Manual sampling\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>Real-time FCrDNS + JA3 fingerprint\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>Rendering\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>HTML-only fetch\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>Full evergreen Chromium with JS execution\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>Content comparison\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>String diff\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>Semantic embedding diff via SpamBrain\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>Behavioral signals\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>None\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>Chrome UX Report + SERP dwell + click data\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>Detection latency\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>Weeks to months\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>Hours to days for high-volume keywords\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>Penalty\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>Algorithmic demotion\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>Index removal + reconsideration backlog\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>Reversal cost\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>Low (re-rank possible)\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>High (domain reputation often unrecoverable)\u003C/p>\n      \u003C/td>\n    \n      \u003C/tr>\u003C/tbody>\n        \u003C/table>\n      \u003C/div>\u003Cp>The shift from &quot;can we catch the cloak in the act?&quot; to &quot;does the page behave the way it claims to?&quot; is the single most important change. It means an undetectable cloak is no longer enough — the downstream user behavior has to be consistent with what Google&#39;s models predict for the topic.\u003C/p>\u003Ch2>Black-hat SEO cloaking vs legitimate technical personalization\u003C/h2>\u003Cp>This is where the article needs to be precise. Not every difference between what a crawler sees and what a user sees is cloaking. The distinction is intent and equivalence of value, and there are well-established patterns that Google explicitly endorses.\u003C/p>\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>Practice\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>Crawler sees\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>User sees\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>Cloaking?\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>Geo-redirecting based on accept-language\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>Default locale page\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>Localized page\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>No — same content, different language\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>Paywalled article with structured data\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>Full article via Flexible Sampling\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>Truncated preview\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>No — Google&#39;s own program\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>A/B test with rel=&quot;canonical&quot;\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>Canonical variant\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>Test variant\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>No — within Google&#39;s guidelines\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>Logged-in dashboard\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>Marketing description\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>Personal dashboard\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>No — same user need, different state\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>Dynamic rendering for JS-heavy SPA\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>Pre-rendered HTML\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>React app\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>No — deprecated but still tolerated\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>Different topic by user-agent\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>&quot;How to grow tomatoes&quot;\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>Offer page for unrelated product\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>Yes — classic cloaking\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>Different commercial intent by IP\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>Informational article\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>Aggressive sales funnel\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>Yes — intent mismatch\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>Hidden text only for crawler\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>Keyword-stuffed div\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>Clean design\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>Yes — content drift\u003C/p>\n      \u003C/td>\n    \n      \u003C/tr>\u003C/tbody>\n        \u003C/table>\n      \u003C/div>\u003Cp>The judgment heuristic Google&#39;s spam team applies internally, which has been repeatedly stated by John Mueller and Gary Illyes in public Q&amp;As, is the \u003Cstrong>&quot;would the user feel deceived?&quot; test\u003C/strong>. If a user clicks a SERP result expecting what the snippet promised, and the page they land on serves a fundamentally different purpose, the underlying mechanism was cloaking — regardless of how it was implemented.\u003C/p>\u003Cp>For traffic-acquisition use cases where the page genuinely needs to behave differently across segments without crossing into cloaking, \u003Ca href=\"/resources/blog/cloaking-vs-smart-landing-pages\">smart landing pages\u003C/a> are the modern alternative. They personalize within a single declared intent rather than swapping intent entirely.\u003C/p>\u003Ch2>When SEO cloaking software still gets used (and why most of it fails)\u003C/h2>\u003Cp>There is still a market for SEO cloaking software, mostly concentrated in regulated verticals where the operators have decided the risk-reward math works out. The math usually doesn&#39;t, but the calculation goes something like:\u003C/p>\u003Cul class=\"list-bullet\">\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"1\"\n        >\u003Cp>Domain cost: low. Burner domains are cheap.\u003C/p>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"2\"\n        >\u003Cp>Setup time: low. A modern cloaking stack ships as a Cloudflare Worker or a Node.js middleware.\u003C/p>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"3\"\n        >\u003Cp>Expected lifetime: days to weeks before SpamBrain or a manual reviewer kills it.\u003C/p>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"4\"\n        >\u003Cp>Revenue extraction: front-loaded into the first 72 hours of ranking.\u003C/p>\u003C/li>\u003C/ul>\u003Cp>This is the &quot;burn and churn&quot; model, and it is fundamentally different from how legitimate sites use SEO. Anyone reading this for a long-lived brand should treat that model as actively dangerous, because the operational debt — burned domains, blacklisted ad accounts, payment processor flags — compounds.\u003C/p>\u003Cp>For a deeper comparison of the actual tools on the market in this space, see our \u003Ca href=\"/resources/blog/cloaking-tools-compared-2026\">cloaking tools compared 2026\u003C/a> review.\u003C/p>\u003Ch2>When is it SEO personalization, and when is it the red line?\u003C/h2>\u003Cp>Three practical tests we recommend before shipping any segmentation logic:\u003C/p>\u003Col class=\"list-number\">\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"1\"\n        >\u003Cp>\u003Cstrong>The intent test\u003C/strong>: Does each variant satisfy the same underlying search intent? If a user from a SERP click on &quot;best running shoes&quot; can reasonably accomplish their goal on every variant, you&#39;re fine. If one variant pivots to a different product or different commercial action, you&#39;re cloaking.\u003C/p>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"2\"\n        >\u003Cp>\u003Cstrong>The disclosure test\u003C/strong>: Could you describe what each segment sees in a single sentence of help-center copy, without the description sounding evasive? If the segmentation is hard to explain honestly, it&#39;s probably not honest.\u003C/p>\u003C/li>\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"3\"\n        >\u003Cp>\u003Cstrong>The crawler-parity test\u003C/strong>: If Google&#39;s crawler were authenticated as a logged-in user in your highest-value segment, would the page it sees be a fair representation of what that segment gets? If yes, you&#39;re personalizing. If the crawler is being served a categorically different page from any real user, you&#39;re cloaking.\u003C/p>\u003C/li>\u003C/ol>\u003Cp>If any of the three fails, the implementation needs to change before launch. Detection latency in 2026 means &quot;we&#39;ll fix it if we get caught&quot; is no longer a viable plan — by the time a manual action arrives, the domain reputation cost typically exceeds the entire upside of the campaign.\u003C/p>\u003Cp>For a clean checklist of conditions under which any form of cloaking is the wrong choice for a project, see \u003Ca href=\"/resources/blog/when-not-to-use-cloaking\">when not to use cloaking\u003C/a>.\u003C/p>\u003Ch2>FAQ\u003C/h2>\u003Cp>\u003Cstrong>Is SEO cloaking software illegal?\u003C/strong>\u003C/p>\u003Cp>In most jurisdictions, no — cloaking itself is not a criminal matter. It is a violation of Google&#39;s Search policies, which results in removal from the index. In regulated verticals it can intersect with separate consumer-protection laws, but the cloaking mechanism on its own is a platform-policy issue, not a legal one.\u003C/p>\u003Cp>\u003Cstrong>How long does a modern SEO cloak actually last?\u003C/strong>\u003C/p>\u003Cp>For competitive commercial keywords, typically 3 to 21 days. For long-tail informational queries with low search volume, sometimes 60 to 90 days. The variance is driven by how quickly user behavioral signals reach SpamBrain&#39;s confidence threshold, which scales with the page&#39;s traffic.\u003C/p>\u003Cp>\u003Cstrong>Can I cloak my A/B tests?\u003C/strong>\u003C/p>\u003Cp>Yes, but follow Google&#39;s official guidance: use \u003Ccode>rel=&quot;canonical&quot;\u003C/code> to point variants at the control URL, ensure variants serve the same user intent, and don&#39;t run tests longer than necessary. A/B testing inside these rails is explicitly not cloaking.\u003C/p>\u003Cp>\u003Cstrong>What about showing different prices to crawlers vs users?\u003C/strong>\u003C/p>\u003Cp>This is a gray area. If the price difference reflects real personalization that any real user in that segment would also see, it&#39;s allowable. If the crawler is shown an artificially low price to drive ranking on price-sensitive queries while real users see a higher price, that&#39;s cloaking by commercial intent.\u003C/p>\u003Cp>\u003Cstrong>Does dynamic rendering count as cloaking?\u003C/strong>\u003C/p>\u003Cp>No, provided the pre-rendered HTML is a faithful representation of the JavaScript app. Google deprecated active recommendation of dynamic rendering in 2022 but still tolerates it. The risk is implementation drift over time, where the pre-rendered version slowly diverges from the live app.\u003C/p>\u003Cp>\u003Cstrong>Is cloaking detection done by humans or AI?\u003C/strong>\u003C/p>\u003Cp>Both. SpamBrain handles initial classification at scale and applies algorithmic suppression. Confirmed cloaking penalties — the kind that result in index removal rather than ranking adjustment — still go through a human reviewer in Google&#39;s web spam team before action.\u003C/p>\u003Ch2>The honest summary\u003C/h2>\u003Cp>Search engine cloaking software exists, still works for very short windows on a narrow set of use cases, and is the wrong investment for almost any business that intends to operate for more than a quarter. The technical surface area has narrowed, Google&#39;s detection has shifted from mechanism-based to behavior-based, and the penalty has hardened from demotion to removal.\u003C/p>\u003Cp>The legitimate adjacent practice — personalizing within a single declared search intent, A/B testing inside Google&#39;s published rails, and using smart landing pages for traffic acquisition — captures most of what operators were trying to get out of cloaking in the first place, without the cliff-edge risk. The judgment call is whether each segment satisfies the same user need or whether the segmentation pivots intent. Pass that test honestly and the work is durable. Fail it and the question is only when the index removal lands, not whether.\u003C/p>\u003C/div>","https://deepclick.com/resources/blog/search-engine-cloaking-software",{"en":843},1781059724915]