{"id":31169,"date":"2026-11-10T10:39:58","date_gmt":"2026-11-10T09:39:58","guid":{"rendered":"https:\/\/www.riskinsight-wavestone.com\/?p=31169"},"modified":"2026-11-10T10:40:00","modified_gmt":"2026-11-10T09:40:00","slug":"anatomy-of-an-almost-invisible-compromise-seo-cloaking","status":"publish","type":"post","link":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/","title":{"rendered":"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p style=\"text-align: justify;\">A museum, a restaurant, a hotel, a university, a government website. Nothing connects them except one anomaly:<strong> they all show up in search results related to online gambling, even though their business has nothing whatsoever to do with it<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Their owners are not yet aware of it, but this is a sign that <strong>their website has been compromised<\/strong> and that attackers are hijacking its reputation to promote their malicious gambling platforms.<\/p>\n<p style=\"text-align: justify;\">CERT-Wavestone recently observed several cases of this kind. At first glance, nothing suggests a compromise. No defacement, no blank page on a Monday morning, no furious customer on the phone. These sites are up and running. In fact, they are running very well. Except that, on closer inspection, it turns out the attackers made a few specific changes to the source code. <strong>Changes that are invisible to visitors<\/strong>,<strong> but not to the bots and AI assistants crawling the web<\/strong>.<\/p>\n<p style=\"text-align: justify;\">\u00a0<\/p>\n\n\n\n<h2>Tell me who you are and I\u2019ll tell you who I am<\/h2>\n\n\n\n<p style=\"text-align: justify;\">Let\u2019s take one of the cases we observed recently. Looking at the source code of the compromised application, the explanation quickly became clear. In the homepage PHP file, the attacker had slipped in a few lines of code, almost negligible among the rest. Here is a pseudo-code version:<\/p>\n<figure id=\"attachment_31174\" aria-describedby=\"caption-attachment-31174\" style=\"width: 1559px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-31174\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/1-Example-of-malicious-pseudo-code.png\" alt=\"Example of malicious pseudo-code\" width=\"1559\" height=\"459\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/1-Example-of-malicious-pseudo-code.png 1559w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/1-Example-of-malicious-pseudo-code-437x129.png 437w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/1-Example-of-malicious-pseudo-code-71x21.png 71w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/1-Example-of-malicious-pseudo-code-768x226.png 768w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/1-Example-of-malicious-pseudo-code-1536x452.png 1536w\" sizes=\"auto, (max-width: 1559px) 100vw, 1559px\" \/><figcaption id=\"caption-attachment-31174\" class=\"wp-caption-text\">Example of malicious pseudo-code<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">The idea is as simple as it is effective. On every request, this small piece of code checks the <strong>User-Agent<\/strong> header of whoever is requesting the resource. If it is a search engine crawler (Googlebot, Bingbot, and the like), <strong>the server serves it an entirely different page<\/strong>, tailor-made, and then immediately stops execution. If it is a human visitor (with a standard browser <strong>User-Agent<\/strong>), the <strong>original content<\/strong> of the real site is displayed. And since humans never see the malicious version, <strong>no one suspects a thing<\/strong>.<\/p>\n<figure id=\"attachment_31176\" aria-describedby=\"caption-attachment-31176\" style=\"width: 2026px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-31176\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/2-Diagram-of-how-the-attack-works.png\" alt=\"Diagram of how the attack works\" width=\"2026\" height=\"619\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/2-Diagram-of-how-the-attack-works.png 2026w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/2-Diagram-of-how-the-attack-works-437x134.png 437w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/2-Diagram-of-how-the-attack-works-71x22.png 71w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/2-Diagram-of-how-the-attack-works-768x235.png 768w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/2-Diagram-of-how-the-attack-works-1536x469.png 1536w\" sizes=\"auto, (max-width: 2026px) 100vw, 2026px\" \/><figcaption id=\"caption-attachment-31176\" class=\"wp-caption-text\">Diagram of how the attack works<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">This technique has a name: <strong><em>cloaking<\/em><\/strong>. It consists of serving different content depending on whether the request comes from a human user or a search engine crawler. It is a well-known black-hat SEO practice, long used to <strong>circumvent search engine rules<\/strong> and <strong>manipulate rankings<\/strong>. So the attacker didn\u2019t invent anything: they simply applied an old, tried-and-tested online marketing recipe.<\/p>\n<p style=\"text-align: justify;\">The filtering can also be based on <strong>other criteria<\/strong> besides the <strong>User-agent<\/strong>, which are even harder to detect:<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>the visitor\u2019s IP address range<\/strong>: search engine crawlers use IP addresses belonging to known ranges that can be verified through reverse DNS<\/li>\n<li><strong>the request\u2019s referrer<\/strong>: to trap only users arriving from a search results page.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">There are also variants that involve no modification to the application\u2019s page code, with the branching logic placed in a web server configuration file (a <strong>.htaccess<\/strong> file containing a few <strong>RewriteCond<\/strong> directives on <strong>HTTP_USER_AGENT<\/strong> is enough).<\/p>\n<p style=\"text-align: justify;\">With these methods, even the administrator visiting their own site sees a <strong>perfectly clean<\/strong> site. Only search engines see the <strong>poisoned version<\/strong>. And it is precisely this version that ends up <strong>indexed<\/strong>, <strong>ranked<\/strong>, and <strong>distributed<\/strong> in search results worldwide.<\/p>\n<p style=\"text-align: justify;\">\u00a0<\/p>\n\n\n\n<h2>A matter of stealth<\/h2>\n\n\n\n<p style=\"text-align: justify;\">Such stealth may seem surprising. After all, why not simply <strong>redirect all visitors<\/strong> to malicious sites?<\/p>\n<p style=\"text-align: justify;\">Because that would be the <strong>best way to get caught<\/strong>: the slightest suspicious redirect would immediately alert both users and administrators of the infected site. That would run counter to the attacker\u2019s objectives. And to understand those objectives, we need to go back to what SEO cloaking really is: <strong>a malicious technique that aims to manipulate the search ranking of online content in order to push it to the top of the search results<\/strong>. And this ranking relies largely on reputation: a domain\u2019s age, its credibility and the number and quality of links pointing to it.<\/p>\n<p style=\"text-align: justify;\">By serving search engine crawlers content stuffed with <strong>keywords<\/strong> and <strong>links<\/strong> pointing to their own domains, the attacker pushes their own sites up in the results for those keywords. Then, and above all, they transfer part of the compromised <strong>domain\u2019s credibility<\/strong> to their malicious links: a link posted on the website of a trusted hotel, restaurant, or university carries infinitely more weight in the eyes of ranking algorithms than a link posted on a site created the day before. <strong>The longer the poisoning lasts, the more effective the ranking boost<\/strong>: hence the value of staying stealthy for as long as possible.<\/p>\n<p style=\"text-align: justify;\">It is a form of digital parasitism, almost elegant in its discretion: the attacker breaks nothing. They simply borrow the trust that others spent years building.<\/p>\n<p style=\"text-align: justify;\">\u00a0<\/p>\n\n\n\n<h2>A widespread infection<\/h2>\n\n\n\n<p style=\"text-align: justify;\">In our example case, while analyzing the HTML code injected into the PHP page, two terms kept coming up: <em>\u201c<strong>slot gacor<\/strong>\u201d<\/em>. An expression that probably means nothing to you at first glance.<\/p>\n<p style=\"text-align: justify;\">To understand these terms, you first need to know that online gambling has grown at a staggering pace over the past ten years or so, driven by millions of players around the world seeking thrills and potential winnings. In the jargon of this industry, one expression is widely used: \u201c<strong>slot gacor<\/strong>\u201d. Popularized within the online gambling community in <strong>Southeast Asia<\/strong>, and especially in <strong>Indonesia<\/strong>, it has become a true rallying keyword for <strong>slot machine enthusiasts<\/strong>. \u201c<strong>Gacor<\/strong>\u201d comes from local slang and, in everyday language, refers to something that works exceptionally well or consistently produces positive results. Combined with \u201c<strong>slot<\/strong>\u201d, the term refers to a machine perceived as being on a winning streak, paying out frequent and sometimes substantial winnings.<\/p>\n<p style=\"text-align: justify;\">These details may seem trivial, but they help us <strong>better understand the attacker\u2019s motivations<\/strong>, since the goal of the attack is to appear in search results when users type these keywords.<\/p>\n<p style=\"text-align: justify;\">By typing these keywords into Google, we came across a <strong>large number of results<\/strong>, leading to <strong>hundreds of domains<\/strong> that, like our initial victim, <strong>have no apparent connection to gambling<\/strong> but host the same type of malicious content:<\/p>\n<figure id=\"attachment_31178\" aria-describedby=\"caption-attachment-31178\" style=\"width: 642px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-31178\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/3-Sites-infectes-par-SEO-poisoning-13-1.png\" alt=\"Websites infected by SEO poisoning (1\/3)\" width=\"642\" height=\"477\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/3-Sites-infectes-par-SEO-poisoning-13-1.png 1016w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/3-Sites-infectes-par-SEO-poisoning-13-1-257x191.png 257w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/3-Sites-infectes-par-SEO-poisoning-13-1-52x39.png 52w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/3-Sites-infectes-par-SEO-poisoning-13-1-768x571.png 768w\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" \/><figcaption id=\"caption-attachment-31178\" class=\"wp-caption-text\">Websites infected by SEO poisoning (1\/3)<\/figcaption><\/figure>\n<figure id=\"attachment_31180\" aria-describedby=\"caption-attachment-31180\" style=\"width: 630px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-31180\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/4-Sites-infectes-par-SEO-poisoning-23-1.png\" alt=\"Websites infected by SEO poisoning (2\/3)\" width=\"630\" height=\"552\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/4-Sites-infectes-par-SEO-poisoning-23-1.png 921w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/4-Sites-infectes-par-SEO-poisoning-23-1-218x191.png 218w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/4-Sites-infectes-par-SEO-poisoning-23-1-45x39.png 45w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/4-Sites-infectes-par-SEO-poisoning-23-1-768x672.png 768w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><figcaption id=\"caption-attachment-31180\" class=\"wp-caption-text\">Websites infected by SEO poisoning (2\/3)<\/figcaption><\/figure>\n<figure id=\"attachment_31182\" aria-describedby=\"caption-attachment-31182\" style=\"width: 606px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-31182\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/5-Websites-infected-by-SEO-poisoning-.png\" alt=\"Websites infected by SEO poisoning (3\/3)\" width=\"606\" height=\"394\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/5-Websites-infected-by-SEO-poisoning-.png 1114w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/5-Websites-infected-by-SEO-poisoning--294x191.png 294w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/5-Websites-infected-by-SEO-poisoning--60x39.png 60w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/5-Websites-infected-by-SEO-poisoning--768x499.png 768w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><figcaption id=\"caption-attachment-31182\" class=\"wp-caption-text\">Websites infected by SEO poisoning (3\/3)<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">As you can see, the victim profile is <strong>heterogeneous<\/strong>: nonprofits, universities, hotels, stores, restaurants, personal blogs. Organizations whose security and monitoring resources are generally <strong>very limited<\/strong>, or even <strong>nonexistent<\/strong>. They are more vulnerable, less monitored, and offer ideal ground for a compromise whose sole purpose is to <strong>last<\/strong> <strong>without being detected<\/strong>.<\/p>\n<p style=\"text-align: justify;\">In addition, other <strong>terms from the same world<\/strong> rounded out our mapping of this type of infection:<\/p>\n<table>\n<tbody>\n<tr>\n<td>\n<ul>\n<li>bandar slot<\/li>\n<li>slot777<\/li>\n<li>slot deposit pulsa<\/li>\n<li>togel slot<\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li>agen slot<\/li>\n<li>slot gampang menang<\/li>\n<li>slot maxwin<\/li>\n<li>jackpot slot<\/li>\n<\/ul>\n<\/td>\n<td>\n<ul>\n<li>slot88<\/li>\n<li>mahjong slot<\/li>\n<li>daftar slot<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: center;\"><em>Other terms identified during the investigations<\/em><\/p>\n<p style=\"text-align: justify;\">This list suggests that other keywords could be used to spot compromised sites. The terms we identified all belong to a <strong>subcategory<\/strong> of the <strong>gambling<\/strong> world, but it is a safe bet that other categories of vocabulary would uncover many more compromises.<\/p>\n<p style=\"text-align: justify;\">\u00a0<\/p>\n\n\n\n<h2>Cloaking, one technique among many<\/h2>\n\n\n\n<p style=\"text-align: justify;\">The case we handled illustrates just one branch of a much larger tree. SEO poisoning actually encompasses a whole range of techniques that share the same goal (hijacking search engine ranking mechanisms) but differ in their means and their purpose.<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Cloaking<\/strong>, which we have just described: two versions of the content, one for bots, one for humans.<\/li>\n<li><strong>Conditional redirection<\/strong>: the site remains intact, but any visitor arriving from a Google results page is redirected to the attacker\u2019s platform. Direct access to the domain, on the other hand, triggers nothing (enough to fool an administrator testing their own site).<\/li>\n<li><strong>Hidden link and text injection<\/strong> (<em>spamdexing<\/em>): links are added to the footer, comments, or existing articles, then hidden with CSS (display:none, text the same color as the background, off-screen positioning). Here, there is only one version of the page: it is its actual content that gets polluted.<\/li>\n<li><strong>Doorway pages<\/strong>: rather than modifying existing pages, the attacker generates hundreds of new ones, often placed in a rarely monitored directory (<em>\/wp-content\/uploads\/<\/em>, for example), sometimes accompanied by a rogue sitemap to speed up their indexing.<\/li>\n<li><strong>Parasite SEO<\/strong>: without even compromising a server, the attacker exploits open areas of legitimate platforms (forums, comment sections, free subdomains, public document repositories) to host their content and benefit from the host domain\u2019s reputation.<\/li>\n<li><strong>SEO poisoning for malware distribution<\/strong>: the most offensive variant, where the ranked content is not a gambling platform but a fake download site. By ranking for very specific queries (software utilities, administrative document templates, niche legal questions), families such as Gootloader or SolarMarker lead victims to download the malware themselves.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">In our cloaking case, the purpose is purely financial. The aim is not to infect visitors to the compromised site, but to capture search traffic and redirect it to betting platforms. This largely explains the care taken to remain undetected.<\/p>\n<p style=\"text-align: justify;\">\u00a0<\/p>\n\n\n\n<h2>How does the attacker get in?<\/h2>\n\n\n\n<p style=\"text-align: justify;\">To insert lines of code into a PHP file, you first need to be able to write to the server. Cloaking is not an intrusion vector; it is a payload. Upstream, there is always an intrusion chain and it is not necessarily sophisticated.<\/p>\n<p style=\"text-align: justify;\">The vectors most frequently observed in this type of attack:<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>A vulnerable application component:<\/strong> mainstream CMSs (WordPress first and foremost, but also Joomla, Drupal, PrestaShop, Moodle) rely on an ecosystem of extensions and themes whose development quality and security maintenance are not guaranteed. A published vulnerability, an unapplied patch, and exploitation can become trivial. This entry point deserves all the more attention since these CMSs mostly rely on PHP, which has recently been hit by critical vulnerabilities.<\/li>\n<li><strong>Insufficiently controlled file uploads:<\/strong> Contact form with attachments, photo gallery, r\u00e9sum\u00e9 upload area: as soon as the check is based on the declared extension rather than the file\u2019s actual type, and the destination directory allows code execution, uploading a <em>webshell<\/em> gives the attacker persistent write access to the entire directory tree.<\/li>\n<li><strong>Remote code execution (RCE):<\/strong> Whether it stems from insecure deserialization, local file inclusion combined with log poisoning, or command injection, it immediately provides the required level of access.<\/li>\n<li><strong>An exposed administration interface:<\/strong> CMS console, phpMyAdmin, hosting panel, deployment interface: if it is accessible from the Internet with no IP address restriction or second factor, it is only as strong as the password protecting it.<\/li>\n<li><strong>And many others<\/strong><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Whatever the vector, the next step is the same: <strong>establishing persistence that will survive a site update<\/strong>. It is this persistence, more than the injection itself, that explains why so many &#8220;<strong>cleaned&#8221;<\/strong> sites end up reinfected a few days later.<\/p>\n<p style=\"text-align: justify;\">\u00a0<\/p>\n\n\n\n<h2>Detection and remediation<\/h2>\n\n\n\n<p style=\"text-align: justify;\">What makes this compromise particularly interesting is that, under certain conditions, it can be carried out <strong>without triggering a single alert in security tools<\/strong>. No abnormal traffic, no malicious binary executed, no known signature: just a few extra lines of code in a source file.<\/p>\n<figure id=\"attachment_31184\" aria-describedby=\"caption-attachment-31184\" style=\"width: 1777px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-31184\" src=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/6-Example-of-a-WordPress-blog-compromise.png\" alt=\"Example of a WordPress blog compromise\" width=\"1777\" height=\"587\" srcset=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/6-Example-of-a-WordPress-blog-compromise.png 1777w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/6-Example-of-a-WordPress-blog-compromise-437x144.png 437w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/6-Example-of-a-WordPress-blog-compromise-71x23.png 71w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/6-Example-of-a-WordPress-blog-compromise-768x254.png 768w, https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/6-Example-of-a-WordPress-blog-compromise-1536x507.png 1536w\" sizes=\"auto, (max-width: 1777px) 100vw, 1777px\" \/><figcaption id=\"caption-attachment-31184\" class=\"wp-caption-text\">Example of a WordPress blog compromise<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">There is no <strong>universal method<\/strong> for identifying whether a page is a victim of SEO cloaking. However, one simple method is to query the site while successively presenting the <strong>User-Agents of the various search engine crawlers<\/strong>, then compare the result with that of a <strong>standard browser<\/strong>. Any content discrepancy can be a <strong>potential sign of compromise<\/strong>. If both versions are identical, the technique is probably not present.<\/p>\n<p style=\"text-align: justify;\">Here is an example request to test a site as a standard browser:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 20px;\">\n<tbody>\n<tr style=\"height: 20px;\">\n<td style=\"width: 100%; background-color: #e0e0e0; border-color: #000000; height: 20px;\"><code>curl -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/126.0.0.0 Safari\/537.36\" https:\/\/example.com\/ -o human.html<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">The second one replays exactly the same request, posing as Googlebot:<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; background-color: #e0e0e0; border-color: #000000;\"><code>curl -A \"Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\"\u00a0 https:\/\/example.com\/ -o googlebot.html<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">All that remains is to compare the two responses:<\/p>\n<table style=\"border-collapse: collapse; width: 100%;\">\n<tbody>\n<tr>\n<td style=\"width: 100%; background-color: #e0e0e0; border-color: #000000;\"><code>diff human.html googlebot.html<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\">On a clean site, <em>diff<\/em> returns nothing, or only minor variations (CSRF token, timestamp, session ID). On a site affected by cloaking, the difference is usually obvious: two entirely different documents, often of very different sizes and with different entropy. The comparison can be repeated with the user-agents of other search engine crawlers (Bingbot, DuckDuckBot, YandexBot, etc.).<\/p>\n<p style=\"text-align: justify;\">Other good practices can help detect the compromise of a domain more quickly:<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>monitor the integrity of application files in production<\/strong>, in order to detect any modification of the source code, including in web server configuration files<\/li>\n<li><strong>analyze, through a simple search such as<\/strong> <em>site:mydomain.tld<\/em>, what search engines have actually indexed from your domain<\/li>\n<li><strong>check search engines\u2019 webmaster tools, <\/strong>which report the appearance of unknown pages, spikes in incongruous keywords, and any manual actions to downrank the site.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Finally, a note that applies to remediation: <strong>restoring the modified files is not enough<\/strong>. Without identifying the initial intrusion vector and removing the persistence mechanisms, reinfection is only a matter of time.<\/p>\n<p style=\"text-align: justify;\">The order of operations also matters. Start by<strong> removing everything the attacker left behind<\/strong>: injected code, and any added extensions, accounts, and files. <strong>Next, rotate all secrets<\/strong> (CMS administration, database, FTP\/SSH, etc.), then <strong>invalidate all open sessions<\/strong>. Finally, <strong>update every outdated component<\/strong>: CMS, themes, extensions.<\/p>\n<p style=\"text-align: justify;\">If the extent of the compromise cannot be established with certainty, <strong>reinstalling<\/strong> or <strong>restoring<\/strong> from a <strong>backup predating the intrusion<\/strong> remain the safest options. On one condition: the necessary hardening must be applied before the site goes back online. Otherwise, it will be compromised again in the same way.<\/p>\n<p>\u00a0<\/p>\n\n\n\n<p style=\"text-align: justify;\">This type of attack illustrates a reality that is sometimes forgotten: an attack is not always meant to make noise or cause damage. Here, <strong>stealth is the goal !<\/strong> The longer the compromise goes undetected, the more it pays off for the attacker.<\/p>\n<p style=\"text-align: justify;\">SEO poisoning was initially aimed solely at <strong>search engines<\/strong>. But as AI agents browse the web on behalf of their users, we should expect this <strong>strategy to evolve<\/strong> to target them as well. The mechanism is the same: only the list of User-Agents changes. The stakes, however, are no longer the same. Content crafted for a search engine gains a few places in a ranking. Content crafted for an AI agent becomes an <strong>answer<\/strong>, passed on to the user with the <strong>endorsement of the legitimate domain<\/strong> being consulted, without the user ever having seen the page.<\/p>\n<p style=\"text-align: justify;\">Monitoring a website should not stop at what humans see. Every now and then, we also need to ask what our friends the bots and AI agents see. <strong>Because one website can hide another<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A museum, a restaurant, a hotel, a university, a government website. Nothing connects them except one anomaly: they all show up in search results related to online gambling, even though their business has nothing whatsoever to do with it. Their&#8230;<\/p>\n","protected":false},"author":1573,"featured_media":31154,"comment_status":"open","ping_status":"closed","sticky":false,"template":"page-templates\/tmpl-one.php","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2777,3922,3273],"tags":[5209,5211,3480,3487,4818,2772,5219,3422,4012,5223,5216,5218,5132,5221,5222,5224,5225,5212,5220,5214,5215,5210,5213,5226],"coauthors":[4876],"class_list":["post-31169","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cybersecurity-digital-trust","category-deep-dive-en","category-ethical-hacking-indicent-response-en","tag-agen-slot","tag-bandar-slot","tag-cert-en","tag-cert-w-en","tag-compromission","tag-cybersecurity","tag-daftar-slot","tag-detection-en-2","tag-incident-response","tag-indexing","tag-jackpot-slot","tag-mahjong-slot","tag-remediation","tag-search-engine","tag-seo","tag-seo-cloaking","tag-seo-poisoning","tag-slot-deposit-pulsa","tag-slot-gacor","tag-slot-gampang-menang","tag-slot-maxwin","tag-slot777","tag-togel-slot","tag-user-agent"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking - RiskInsight<\/title>\n<meta name=\"description\" content=\"SEO cloaking: how attackers alter the code of legitimate websites to promote gambling platforms in search results while staying invisible to visitors.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking - RiskInsight\" \/>\n<meta property=\"og:description\" content=\"SEO cloaking: how attackers alter the code of legitimate websites to promote gambling platforms in search results while staying invisible to visitors.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/\" \/>\n<meta property=\"og:site_name\" content=\"RiskInsight\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-10T09:39:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-10T09:40:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/Cover.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1116\" \/>\n\t<meta property=\"og:image:height\" content=\"744\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Evenson Jeunesse\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Evenson Jeunesse\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/\"},\"author\":{\"name\":\"Evenson Jeunesse\",\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/#\\\/schema\\\/person\\\/a5b119ee593e1ff5413508d6fa66648b\"},\"headline\":\"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking\",\"datePublished\":\"2026-11-10T09:39:58+00:00\",\"dateModified\":\"2026-11-10T09:40:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/\"},\"wordCount\":2363,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/Cover.png\",\"keywords\":[\"agen slot\",\"bandar slot\",\"CERT\",\"CERT-W\",\"Compromission\",\"cybersecurity\",\"daftar slot\",\"detection\",\"Incident response\",\"indexing\",\"jackpot slot\",\"mahjong slot\",\"Remediation\",\"search engine\",\"SEO\",\"SEO cloaking\",\"SEO poisoning\",\"slot deposit pulsa\",\"slot gacor\",\"slot gampang menang\",\"slot maxwin\",\"slot777\",\"togel slot\",\"User-Agent\"],\"articleSection\":[\"Cybersecurity &amp; Digital Trust\",\"Deep-dive\",\"Ethical Hacking &amp; Incident Response\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/\",\"url\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/\",\"name\":\"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking - RiskInsight\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/Cover.png\",\"datePublished\":\"2026-11-10T09:39:58+00:00\",\"dateModified\":\"2026-11-10T09:40:00+00:00\",\"description\":\"SEO cloaking: how attackers alter the code of legitimate websites to promote gambling platforms in search results while staying invisible to visitors.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/Cover.png\",\"contentUrl\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/Cover.png\",\"width\":1116,\"height\":744},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/2026\\\/11\\\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/\",\"name\":\"RiskInsight\",\"description\":\"The cybersecurity &amp; digital trust blog by Wavestone&#039;s consultants\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/#organization\",\"name\":\"Wavestone\",\"url\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png\",\"contentUrl\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png\",\"width\":50,\"height\":50,\"caption\":\"Wavestone\"},\"image\":{\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/#\\\/schema\\\/person\\\/a5b119ee593e1ff5413508d6fa66648b\",\"name\":\"Evenson Jeunesse\",\"url\":\"https:\\\/\\\/www.riskinsight-wavestone.com\\\/en\\\/author\\\/evenson-jeunesse\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking - RiskInsight","description":"SEO cloaking: how attackers alter the code of legitimate websites to promote gambling platforms in search results while staying invisible to visitors.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/","og_locale":"en_US","og_type":"article","og_title":"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking - RiskInsight","og_description":"SEO cloaking: how attackers alter the code of legitimate websites to promote gambling platforms in search results while staying invisible to visitors.","og_url":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/","og_site_name":"RiskInsight","article_published_time":"2026-11-10T09:39:58+00:00","article_modified_time":"2026-11-10T09:40:00+00:00","og_image":[{"width":1116,"height":744,"url":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/Cover.png","type":"image\/png"}],"author":"Evenson Jeunesse","twitter_misc":{"Written by":"Evenson Jeunesse","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/#article","isPartOf":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/"},"author":{"name":"Evenson Jeunesse","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/a5b119ee593e1ff5413508d6fa66648b"},"headline":"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking","datePublished":"2026-11-10T09:39:58+00:00","dateModified":"2026-11-10T09:40:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/"},"wordCount":2363,"commentCount":0,"publisher":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#organization"},"image":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/#primaryimage"},"thumbnailUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/Cover.png","keywords":["agen slot","bandar slot","CERT","CERT-W","Compromission","cybersecurity","daftar slot","detection","Incident response","indexing","jackpot slot","mahjong slot","Remediation","search engine","SEO","SEO cloaking","SEO poisoning","slot deposit pulsa","slot gacor","slot gampang menang","slot maxwin","slot777","togel slot","User-Agent"],"articleSection":["Cybersecurity &amp; Digital Trust","Deep-dive","Ethical Hacking &amp; Incident Response"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/","url":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/","name":"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking - RiskInsight","isPartOf":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/#primaryimage"},"image":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/#primaryimage"},"thumbnailUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/Cover.png","datePublished":"2026-11-10T09:39:58+00:00","dateModified":"2026-11-10T09:40:00+00:00","description":"SEO cloaking: how attackers alter the code of legitimate websites to promote gambling platforms in search results while staying invisible to visitors.","breadcrumb":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/#primaryimage","url":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/Cover.png","contentUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2026\/11\/Cover.png","width":1116,"height":744},{"@type":"BreadcrumbList","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/2026\/11\/anatomy-of-an-almost-invisible-compromise-seo-cloaking\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.riskinsight-wavestone.com\/en\/"},{"@type":"ListItem","position":2,"name":"Anatomy of an \u201cAlmost\u201d Invisible Compromise: SEO Cloaking"}]},{"@type":"WebSite","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#website","url":"https:\/\/www.riskinsight-wavestone.com\/en\/","name":"RiskInsight","description":"The cybersecurity &amp; digital trust blog by Wavestone&#039;s consultants","publisher":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.riskinsight-wavestone.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#organization","name":"Wavestone","url":"https:\/\/www.riskinsight-wavestone.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png","contentUrl":"https:\/\/www.riskinsight-wavestone.com\/wp-content\/uploads\/2021\/08\/Monogramme\u2013W\u2013NEGA-RGB-50x50-1.png","width":50,"height":50,"caption":"Wavestone"},"image":{"@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.riskinsight-wavestone.com\/en\/#\/schema\/person\/a5b119ee593e1ff5413508d6fa66648b","name":"Evenson Jeunesse","url":"https:\/\/www.riskinsight-wavestone.com\/en\/author\/evenson-jeunesse\/"}]}},"_links":{"self":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts\/31169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/users\/1573"}],"replies":[{"embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/comments?post=31169"}],"version-history":[{"count":9,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts\/31169\/revisions"}],"predecessor-version":[{"id":31201,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/posts\/31169\/revisions\/31201"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/media\/31154"}],"wp:attachment":[{"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/media?parent=31169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/categories?post=31169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/tags?post=31169"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.riskinsight-wavestone.com\/en\/wp-json\/wp\/v2\/coauthors?post=31169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}