{"id":162,"date":"2026-03-05T11:33:28","date_gmt":"2026-03-05T09:33:28","guid":{"rendered":"https:\/\/paulkahn.fr\/blog\/?p=162"},"modified":"2026-03-25T18:02:06","modified_gmt":"2026-03-25T16:02:06","slug":"inspecter-page-auditeur-seo","status":"publish","type":"post","link":"https:\/\/paulkahn.fr\/blog\/inspecter-page-auditeur-seo\/","title":{"rendered":"Inspecter une page comme un auditeur SEO : 11 r\u00e9flexes \u00e0 ma\u00eetriser"},"content":{"rendered":"<h1>Inspecter une page comme un auditeur SEO : 11 r\u00e9flexes \u00e0 ma\u00eetriser<\/h1>\n<p>La plupart des r\u00e9f\u00e9renceurs savent v\u00e9rifier une balise title ou une meta description. C&rsquo;est le b.a.-ba. Mais un v\u00e9ritable audit SEO technique va beaucoup plus loin : il faut savoir lire les headers HTTP, d\u00e9coder du Base64, d\u00e9tecter du cloaking, et fouiller les recoins du code source que personne ne regarde.<\/p>\n<p>J&rsquo;ai r\u00e9cemment travaill\u00e9 sur un challenge SEO technique con\u00e7u par <strong>Astrak Agency<\/strong>. Le principe : une page web dans laquelle 20 mots-cl\u00e9s sont dissimul\u00e9s dans des \u00e9l\u00e9ments techniques (meta tags, headers HTTP, JavaScript, fichiers CSS, donn\u00e9es structur\u00e9es, cloaking serveur&#8230;). Chaque mot-cl\u00e9 correspond \u00e0 une comp\u00e9tence pr\u00e9cise d&rsquo;audit technique.<\/p>\n<p>Ce type d&rsquo;exercice rappelle une r\u00e9alit\u00e9 que beaucoup de SEO oublient : <strong>tout ce qui est visible \u00e0 l&rsquo;\u00e9cran ne repr\u00e9sente qu&rsquo;une fraction de la page<\/strong>. Le reste se trouve dans les headers, le JavaScript, les fichiers li\u00e9s, et parfois dans ce que le serveur choisit de montrer selon qui visite.<\/p>\n<p>Voici les 11 r\u00e9flexes que j&rsquo;en tire pour inspecter une page comme un auditeur SEO. Que vous soyez webmaster, SEO junior ou d\u00e9veloppeur qui se lance dans le r\u00e9f\u00e9rencement, ces v\u00e9rifications devraient devenir automatiques.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"702\" src=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/audit-seo-inspection-hero-1024x702.png\" alt=\"Audit SEO technique inspection page DevTools\" class=\"wp-image-166\" srcset=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/audit-seo-inspection-hero-1024x702.png 1024w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/audit-seo-inspection-hero-300x206.png 300w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/audit-seo-inspection-hero-768x526.png 768w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/audit-seo-inspection-hero-1536x1053.png 1536w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/audit-seo-inspection-hero.png 1716w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<div class=\"wp-block-group has-ark-main-color has-text-color has-background has-link-color is-layout-constrained wp-block-group-is-layout-constrained\" style=\"background-color: #3055ff; padding: var(--wp--preset--spacing--40);\">\n<h2 class=\"wp-block-heading has-ast-global-color-5-color has-text-color has-link-color\">\u00c0 retenir en bref<\/h2>\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<ul class=\"wp-block-list\">\n<li class=\"has-ast-global-color-5-color has-text-color has-link-color\"><strong>Ctrl+U \u2260 F12<\/strong> : le code source brut montre le HTML envoy\u00e9 par le serveur, avant toute ex\u00e9cution JavaScript.<\/li>\n<li class=\"has-ast-global-color-5-color has-text-color has-link-color\">Un <strong>x-robots-tag: noindex<\/strong> dans les headers HTTP bloque l&rsquo;indexation m\u00eame si la balise meta robots dit \u00ab\u00a0index, follow\u00a0\u00bb.<\/li>\n<li class=\"has-ast-global-color-5-color has-text-color has-link-color\">Les <strong>headers Sec-Fetch<\/strong> permettent aux serveurs de distinguer un vrai navigateur d&rsquo;un outil de crawl, m\u00eame avec un User-Agent identique.<\/li>\n<li class=\"has-ast-global-color-5-color has-text-color has-link-color\">Les crawlers IA (GPTBot, ClaudeBot, PerplexityBot) sont une <strong>3e cat\u00e9gorie de visiteurs<\/strong> \u00e0 tester en audit, en plus des humains et de Googlebot.<\/li>\n<li class=\"has-ast-global-color-5-color has-text-color has-link-color\">Savoir <strong>d\u00e9coder du Base64<\/strong> avec atob() dans la Console suffit pour lire la majorit\u00e9 des contenus encod\u00e9s.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<h2>1. Lire le code source brut (Ctrl+U)<\/h2>\n<p>C&rsquo;est le r\u00e9flexe le plus basique, et pourtant beaucoup de r\u00e9f\u00e9renceurs ne le font pas correctement. Il y a une diff\u00e9rence majeure entre <strong>le code source brut<\/strong> (Ctrl+U) et <strong>le DOM inspect\u00e9<\/strong> (F12 &gt; Elements).<\/p>\n<ul>\n<li><strong>Ctrl+U<\/strong> affiche le HTML tel que le serveur l&rsquo;a envoy\u00e9, avant toute ex\u00e9cution JavaScript.<\/li>\n<li><strong>F12 &gt; Elements<\/strong> affiche le DOM apr\u00e8s ex\u00e9cution du JavaScript : des \u00e9l\u00e9ments ont pu \u00eatre ajout\u00e9s, modifi\u00e9s ou supprim\u00e9s.<\/li>\n<\/ul>\n<p>Cette distinction est critique. Si votre contenu est g\u00e9n\u00e9r\u00e9 par du JavaScript (React, Vue, Angular), Ctrl+U montrera une page quasi vide. C&rsquo;est exactement ce que voit Googlebot au premier crawl, avant le rendering.<\/p>\n<p>Dans le code source brut, voici ce qu&rsquo;il faut v\u00e9rifier syst\u00e9matiquement :<\/p>\n<ul>\n<li>La balise <code>&lt;title&gt;<\/code> : contient-elle le mot-cl\u00e9 cible ? Est-elle unique ?<\/li>\n<li>La <code>&lt;meta name=\"description\"&gt;<\/code> : est-elle pr\u00e9sente et pertinente ?<\/li>\n<li>La <code>&lt;link rel=\"canonical\"&gt;<\/code> : pointe-t-elle vers la bonne URL ?<\/li>\n<li>Les <code>&lt;link rel=\"alternate\" hreflang=\"...\"&gt;<\/code> : les versions linguistiques sont-elles d\u00e9clar\u00e9es ?<\/li>\n<li>Les balises Open Graph (<code>og:title<\/code>, <code>og:description<\/code>, <code>og:image<\/code>)<\/li>\n<li>Le bloc <code>&lt;script type=\"application\/ld+json\"&gt;<\/code> : les donn\u00e9es structur\u00e9es sont-elles valides ?<\/li>\n<\/ul>\n<h3>Les data-attributes : un angle mort courant<\/h3>\n<p>Les attributs <code>data-*<\/code> sont des attributs HTML personnalis\u00e9s utilis\u00e9s par le JavaScript pour stocker des donn\u00e9es. En audit, on les survole souvent. Pourtant, ils peuvent contenir des informations significatives, y compris du contenu encod\u00e9 en Base64.<\/p>\n<pre><code>&lt;!-- Exemple : contenu cach\u00e9 en Base64 dans un data-attribute --&gt;\n&lt;div data-tracking=\"aGVsaW90cm9wZQ==\" style=\"display:none\"&gt;&lt;\/div&gt;\n\n&lt;!-- Pour d\u00e9coder, ouvrir la Console (F12) et taper : --&gt;\natob('aGVsaW90cm9wZQ==')\n\/\/ R\u00e9sultat : \"heliotrope\"<\/code><\/pre>\n<p>En SEO, les data-attributes sont partout : Google Tag Manager, scripts de tracking, A\/B testing. Savoir les lire permet de comprendre ce que la page transmet aux outils tiers.<\/p>\n<h2>2. Inspecter les headers HTTP de la r\u00e9ponse<\/h2>\n<p>Le code source HTML n&rsquo;est qu&rsquo;une partie de la r\u00e9ponse du serveur. <strong>Les headers HTTP contiennent des directives invisibles dans le HTML<\/strong> et sont souvent n\u00e9glig\u00e9s en audit SEO technique.<\/p>\n<h3>Comment voir les headers<\/h3>\n<ol>\n<li>Ouvrir les DevTools (<strong>F12<\/strong>)<\/li>\n<li>Aller dans l&rsquo;onglet <strong>Network<\/strong> (R\u00e9seau)<\/li>\n<li>Recharger la page<\/li>\n<li>Cliquer sur la premi\u00e8re requ\u00eate (le document HTML)<\/li>\n<li>Lire les <strong>Response Headers<\/strong><\/li>\n<\/ol>\n<h3>Ce qu&rsquo;on cherche dans les headers<\/h3>\n<table style=\"width: 100%; border-collapse: collapse; margin: 20px 0;\">\n<thead>\n<tr>\n<th style=\"border: 1px solid #ddd; padding: 8px 12px; text-align: left;\">Header<\/th>\n<th style=\"border: 1px solid #ddd; padding: 8px 12px; text-align: left;\">Quoi v\u00e9rifier<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\"><code>x-robots-tag<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\">Directives pour les crawlers (noindex, nofollow, noai&#8230;). \u00c9quivalent HTTP de la balise meta robots, mais invisible dans le HTML.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\"><code>link<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\">Canonical et hreflang peuvent \u00eatre d\u00e9clar\u00e9s ici (alternative au HTML).<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\"><code>content-type<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\">Le type MIME et l&rsquo;encodage. Un <code>text\/html; charset=utf-8<\/code> est attendu.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\"><code>cache-control<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\">Les directives de cache impactent le crawl budget et la fra\u00eecheur index\u00e9e.<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\"><code>strict-transport-security<\/code><\/td>\n<td style=\"border: 1px solid #ddd; padding: 8px 12px;\">HSTS force le HTTPS. Bonne pratique de s\u00e9curit\u00e9.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Le pi\u00e8ge classique : un <code>x-robots-tag: noindex<\/code> dans les headers bloque l&rsquo;indexation <strong>m\u00eame si la balise meta robots dans le HTML dit \u00ab\u00a0index, follow\u00a0\u00bb<\/strong>. Les headers HTTP sont prioritaires. C&rsquo;est un pi\u00e8ge fr\u00e9quent apr\u00e8s une migration : le serveur de staging envoyait un noindex en header, et personne ne l&rsquo;a retir\u00e9 en production.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"674\" src=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/headers-http-devtools-1024x674.jpg\" alt=\"Headers HTTP dans DevTools onglet Network\" class=\"wp-image-167\" srcset=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/headers-http-devtools-1024x674.jpg 1024w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/headers-http-devtools-300x197.jpg 300w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/headers-http-devtools-768x505.jpg 768w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/headers-http-devtools-1536x1010.jpg 1536w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/headers-http-devtools.jpg 1704w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<h2>3. Surveiller la Console JavaScript<\/h2>\n<p>La Console du navigateur (F12 > Console) affiche les messages g\u00e9n\u00e9r\u00e9s par le JavaScript de la page. En audit technique, on y cherche trois choses :<\/p>\n<ul>\n<li><strong>Des erreurs JavaScript<\/strong> (en rouge) : elles peuvent bloquer le rendering de contenu.<\/li>\n<li><strong>Des warnings<\/strong> : ressources bloqu\u00e9es, mixed content, APIs d\u00e9pr\u00e9ci\u00e9es.<\/li>\n<li><strong>Des messages de debug<\/strong> : les d\u00e9veloppeurs laissent parfois des <code>console.log()<\/code> en production qui r\u00e9v\u00e8lent des informations internes.<\/li>\n<\/ul>\n<p>Pourquoi c&rsquo;est important pour le SEO ? Googlebot utilise un navigateur Chrome pour le rendering. Les erreurs JavaScript visibles dans la Console sont les m\u00eames erreurs que Googlebot rencontre. Une erreur qui emp\u00eache le chargement du contenu principal = contenu invisible pour Google.<\/p>\n<p>Mon r\u00e9flexe : apr\u00e8s chaque chargement de page en audit, regarder la Console pendant 3 secondes. C&rsquo;est le temps qu&rsquo;il faut pour rep\u00e9rer un message rouge. \u00c7a ne co\u00fbte rien et \u00e7a peut r\u00e9v\u00e9ler un probl\u00e8me critique.<\/p>\n<h2>4. Explorer le stockage navigateur (cookies, localStorage)<\/h2>\n<p>Le navigateur stocke des donn\u00e9es c\u00f4t\u00e9 client via deux m\u00e9canismes principaux : les <strong>cookies<\/strong> et le <strong>localStorage<\/strong>. Pour y acc\u00e9der : F12 > onglet <strong>Application<\/strong> (Chrome) ou <strong>Stockage<\/strong> (Firefox).<\/p>\n<ul>\n<li><strong>Cookies<\/strong> : donn\u00e9es envoy\u00e9es au serveur \u00e0 chaque requ\u00eate. Impactent le consentement RGPD, les sessions, le tracking.<\/li>\n<li><strong>Local Storage<\/strong> : donn\u00e9es persistantes c\u00f4t\u00e9 client uniquement. Utilis\u00e9es pour les pr\u00e9f\u00e9rences, l&rsquo;A\/B testing, le tracking client-side.<\/li>\n<li><strong>Session Storage<\/strong> : comme le localStorage mais effac\u00e9 \u00e0 la fermeture de l&rsquo;onglet.<\/li>\n<\/ul>\n<h3>Pourquoi c&rsquo;est important en SEO<\/h3>\n<p>Un bandeau RGPD mal impl\u00e9ment\u00e9 peut bloquer le chargement du contenu principal si le consentement n&rsquo;est pas donn\u00e9. Probl\u00e8me : Googlebot ne donne pas son consentement. Le contenu reste invisible.<\/p>\n<p>L&rsquo;A\/B testing pose un probl\u00e8me similaire. Si le JavaScript stocke une variante A\/B dans le localStorage et modifie le contenu en cons\u00e9quence, Googlebot peut voir une version diff\u00e9rente de celle que voit l&rsquo;utilisateur. C&rsquo;est un cas de cloaking involontaire.<\/p>\n<h2>5. Suivre les fichiers li\u00e9s (CSS, JS, fichiers annexes)<\/h2>\n<p>Une page HTML ne vit pas seule. Elle charge des fichiers CSS, JavaScript, des images, des polices. <strong>Chacun de ces fichiers peut contenir des informations utiles pour l&rsquo;audit.<\/strong><\/p>\n<h3>Les fichiers CSS<\/h3>\n<p>On pense rarement \u00e0 lire le contenu brut d&rsquo;un fichier CSS. Pourtant :<\/p>\n<ul>\n<li>Des <strong>commentaires de debug<\/strong> peuvent mentionner des environnements (staging, preprod), des noms de d\u00e9veloppeurs, ou des r\u00e9f\u00e9rences internes.<\/li>\n<li>Des r\u00e8gles CSS avec <code>display: none<\/code> ou <code>position: absolute; left: -9999px<\/code> cachent des \u00e9l\u00e9ments. Google les d\u00e9tecte et les d\u00e9valorise.<\/li>\n<li>La taille et la structure du CSS impactent le LCP (Largest Contentful Paint).<\/li>\n<\/ul>\n<h3>Les fichiers JavaScript<\/h3>\n<p>Le JavaScript est le territoire le plus riche pour un auditeur technique :<\/p>\n<ul>\n<li>Des contenus g\u00e9n\u00e9r\u00e9s dynamiquement (que Googlebot doit ex\u00e9cuter pour voir).<\/li>\n<li>Des redirections JavaScript (moins fiables que les 301 serveur pour le SEO).<\/li>\n<li>Des appels API qui chargent le contenu principal (risque de rendering tardif).<\/li>\n<li>Des scripts de tracking qui r\u00e9v\u00e8lent la stack technique du site.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"646\" src=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/fichiers-lies-audit-seo-1024x646.jpg\" alt=\"Fichiers li\u00e9s page web audit SEO CSS JavaScript\" class=\"wp-image-168\" srcset=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/fichiers-lies-audit-seo-1024x646.jpg 1024w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/fichiers-lies-audit-seo-300x189.jpg 300w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/fichiers-lies-audit-seo-768x484.jpg 768w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/fichiers-lies-audit-seo.jpg 1478w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<h2>6. Tester le directory listing<\/h2>\n<p>Le <strong>directory listing<\/strong> est une fonctionnalit\u00e9 de serveur Apache qui affiche la liste de tous les fichiers d&rsquo;un r\u00e9pertoire quand il n&rsquo;y a pas de fichier index.html. Pour le tester : naviguez vers un r\u00e9pertoire connu (ex: <code>\/img\/<\/code>, <code>\/uploads\/<\/code>, <code>\/css\/<\/code>) et voyez si le serveur affiche une liste de fichiers.<\/p>\n<p>Trois probl\u00e8mes si c&rsquo;est actif :<\/p>\n<ul>\n<li><strong>S\u00e9curit\u00e9<\/strong> : des fichiers sensibles (backups, configs, fichiers temporaires) peuvent \u00eatre expos\u00e9s.<\/li>\n<li><strong>SEO<\/strong> : les pages de listing peuvent \u00eatre index\u00e9es par Google (thin content, aucune valeur ajout\u00e9e).<\/li>\n<li><strong>D\u00e9couverte<\/strong> : le listing r\u00e9v\u00e8le des fichiers non r\u00e9f\u00e9renc\u00e9s dans le HTML (images orphelines, pages de test, assets non utilis\u00e9s).<\/li>\n<\/ul>\n<p>En audit, testez au moins les r\u00e9pertoires <code>\/uploads\/<\/code>, <code>\/wp-content\/uploads\/<\/code>, <code>\/img\/<\/code>, <code>\/images\/<\/code>, <code>\/assets\/<\/code>. Si le listing est actif, recommandez de le d\u00e9sactiver avec <code>Options -Indexes<\/code> dans le <code>.htaccess<\/code>.<\/p>\n<h2>7. Lire le robots.txt (vraiment)<\/h2>\n<p>Tout le monde sait qu&rsquo;il faut v\u00e9rifier le robots.txt. Peu de SEO le <strong>lisent vraiment<\/strong> ligne par ligne.<\/p>\n<p>Au-del\u00e0 des <code>Disallow<\/code> classiques, le robots.txt peut r\u00e9v\u00e9ler :<\/p>\n<ul>\n<li><strong>Des r\u00e9pertoires \u00ab\u00a0secrets\u00a0\u00bb<\/strong> : un <code>Disallow: \/staging\/<\/code> ou <code>Disallow: \/beta\/<\/code> r\u00e9v\u00e8le l&rsquo;existence d&rsquo;environnements de test.<\/li>\n<li><strong>Des r\u00e8gles trop larges<\/strong> : un <code>Disallow: \/tag\/<\/code> pens\u00e9 pour bloquer les taxonomies WordPress peut accidentellement bloquer un article dont le slug contient \u00ab\u00a0tag\u00a0\u00bb.<\/li>\n<li><strong>Le blocage des crawlers IA<\/strong> : de plus en plus de sites bloquent GPTBot, ClaudeBot, PerplexityBot, ce qui les rend invisibles pour les <a href=\"https:\/\/paulkahn.fr\/blog\/ai-overviews-seo-2026\/\">r\u00e9ponses AI Overviews<\/a>.<\/li>\n<li><strong>Le chemin du sitemap<\/strong> : la directive <code>Sitemap:<\/code> en bas du fichier est un point de d\u00e9part pour l&rsquo;audit de la structure.<\/li>\n<\/ul>\n<pre><code># Exemple de robots.txt r\u00e9v\u00e9lateur\nUser-agent: GPTBot\nDisallow: \/\n\nUser-agent: ClaudeBot\nDisallow: \/\n\nUser-agent: *\nDisallow: \/admin\/\nDisallow: \/staging\/        # environnement de test expos\u00e9\nDisallow: \/nebula\/          # r\u00e9pertoire suspect \u00e0 investiguer\nAllow: \/\n\nSitemap: https:\/\/example.com\/sitemap.xml<\/code><\/pre>\n<p>Point d&rsquo;attention en 2026 : Anthropic a segment\u00e9 ses crawlers en 3 bots distincts (<code>ClaudeBot<\/code>, <code>Claude-User<\/code>, <code>Claude-SearchBot<\/code>). On peut bloquer l&rsquo;entra\u00eenement tout en autorisant la visibilit\u00e9 dans les r\u00e9ponses IA. C&rsquo;est un arbitrage strat\u00e9gique que de plus en plus de clients me demandent de trancher \u00e0 Tours et ailleurs.<\/p>\n<h2>8. Tester le cloaking par User-Agent<\/h2>\n<p>Le <strong>cloaking<\/strong> consiste \u00e0 servir un contenu diff\u00e9rent selon le visiteur. C&rsquo;est une violation des Google Search Essentials qui peut entra\u00eener une action manuelle (p\u00e9nalit\u00e9).<\/p>\n<p>Mais le cloaking peut aussi \u00eatre <strong>involontaire<\/strong>. Des plugins de s\u00e9curit\u00e9 WordPress, des WAF (Cloudflare, Sucuri), ou des configurations serveur peuvent servir un contenu d\u00e9grad\u00e9 aux bots sans que le propri\u00e9taire du site le sache.<\/p>\n<h3>Comment tester<\/h3>\n<p><strong>M\u00e9thode 1 : extension navigateur.<\/strong> Installez \u00ab\u00a0User-Agent Switcher and Manager\u00a0\u00bb (Chrome\/Firefox), changez l&rsquo;UA en Googlebot, et rechargez la page.<\/p>\n<p><strong>M\u00e9thode 2 : ligne de commande.<\/strong><\/p>\n<pre><code># Voir la page comme Googlebot\ncurl -A \"Googlebot\/2.1 (+http:\/\/www.google.com\/bot.html)\" https:\/\/example.com\/\n\n# Voir la page comme GPTBot (crawler OpenAI)\ncurl -A \"Mozilla\/5.0 AppleWebKit\/537.36 +https:\/\/openai.com\/gptbot\" https:\/\/example.com\/<\/code><\/pre>\n<p><strong>M\u00e9thode 3 : Google Search Console.<\/strong> L&rsquo;outil \u00ab\u00a0Inspection d&rsquo;URL\u00a0\u00bb montre exactement ce que Googlebot voit. C&rsquo;est la r\u00e9f\u00e9rence.<\/p>\n<h3>Quoi comparer<\/h3>\n<table style=\"width:100%;border-collapse:collapse;margin:20px 0;\">\n<thead>\n<tr>\n<th style=\"border:1px solid #ddd;padding:8px 12px;text-align:left;\">\u00c9l\u00e9ment<\/th>\n<th style=\"border:1px solid #ddd;padding:8px 12px;text-align:left;\">Navigateur<\/th>\n<th style=\"border:1px solid #ddd;padding:8px 12px;text-align:left;\">Googlebot<\/th>\n<th style=\"border:1px solid #ddd;padding:8px 12px;text-align:left;\">Diagnostic<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">Title<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">\u00ab\u00a0Mon titre SEO\u00a0\u00bb<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">\u00ab\u00a0Mon titre SEO\u00a0\u00bb<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">OK<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">Title<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">\u00ab\u00a0Mon titre SEO\u00a0\u00bb<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">\u00ab\u00a0Access denied\u00a0\u00bb<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">Cloaking<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">Contenu principal<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">Article complet<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">Page vide<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">Rendering JS bloqu\u00e9<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">Code HTTP<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">200<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">403<\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">Blocage bot<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Certains serveurs bloquent sp\u00e9cifiquement les crawlers IA (GPTBot, ClaudeBot, PerplexityBot) avec des messages \u00ab\u00a0Acc\u00e8s refus\u00e9\u00a0\u00bb tout en servant le contenu normal \u00e0 Googlebot. Ce n&rsquo;est pas du cloaking au sens Google (pas de p\u00e9nalit\u00e9), mais \u00e7a rend le site invisible pour les r\u00e9ponses IA. Un probl\u00e8me croissant que j&rsquo;observe chez mes clients en Indre-et-Loire comme au niveau national.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/cloaking-comparaison-bots-1024x538.jpg\" alt=\"\" class=\"wp-image-169\" srcset=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/cloaking-comparaison-bots-1024x538.jpg 1024w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/cloaking-comparaison-bots-300x158.jpg 300w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/cloaking-comparaison-bots-768x404.jpg 768w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/cloaking-comparaison-bots.jpg 1105w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<h2>9. Comprendre les headers Sec-Fetch (d\u00e9tection de bot avanc\u00e9e)<\/h2>\n<p>C&rsquo;est probablement la le\u00e7on la plus surprenante, et la moins connue en SEO.<\/p>\n<p>Les navigateurs modernes envoient automatiquement des <strong>headers Sec-Fetch-*<\/strong> \u00e0 chaque requ\u00eate. Ces headers indiquent au serveur <em>comment<\/em> la requ\u00eate a \u00e9t\u00e9 d\u00e9clench\u00e9e :<\/p>\n<table style=\"width:100%;border-collapse:collapse;margin:20px 0;\">\n<thead>\n<tr>\n<th style=\"border:1px solid #ddd;padding:8px 12px;text-align:left;\">Header<\/th>\n<th style=\"border:1px solid #ddd;padding:8px 12px;text-align:left;\">Valeur navigateur<\/th>\n<th style=\"border:1px solid #ddd;padding:8px 12px;text-align:left;\">Signification<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\"><code>Sec-Fetch-Dest<\/code><\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\"><code>document<\/code><\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">La requ\u00eate vise un document HTML<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\"><code>Sec-Fetch-Mode<\/code><\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\"><code>navigate<\/code><\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">L&rsquo;utilisateur navigue vers la page<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\"><code>Sec-Fetch-Site<\/code><\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\"><code>none<\/code><\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">La requ\u00eate vient de la barre d&rsquo;adresse (pas d&rsquo;un lien)<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\"><code>Sec-Fetch-User<\/code><\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\"><code>?1<\/code><\/td>\n<td style=\"border:1px solid #ddd;padding:8px 12px;\">La requ\u00eate est d\u00e9clench\u00e9e par un humain<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Les outils de crawl SEO (Screaming Frog, Sitebulb) et les commandes curl n&rsquo;envoient PAS ces headers.<\/strong> Un serveur qui les v\u00e9rifie peut donc distinguer un vrai navigateur d&rsquo;un outil de crawl, m\u00eame si le User-Agent est identique.<\/p>\n<p>Concr\u00e8tement : vous pouvez envoyer un <code>curl<\/code> avec un User-Agent Chrome parfait, le serveur le d\u00e9tectera quand m\u00eame comme un bot si les headers Sec-Fetch sont absents.<\/p>\n<pre><code># curl avec UA Chrome MAIS sans Sec-Fetch = d\u00e9tect\u00e9 comme bot\ncurl -A \"Mozilla\/5.0 (Windows NT 10.0; Win64; x64) Chrome\/131.0.0.0\" https:\/\/example.com\/\n\n# curl avec UA Chrome ET Sec-Fetch = vu comme un vrai navigateur\ncurl https:\/\/example.com\/ \\\n  -H \"User-Agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64) Chrome\/131.0.0.0\" \\\n  -H \"Sec-Fetch-Dest: document\" \\\n  -H \"Sec-Fetch-Mode: navigate\" \\\n  -H \"Sec-Fetch-Site: none\" \\\n  -H \"Sec-Fetch-User: ?1\"<\/code><\/pre>\n<p>Si vous soup\u00e7onnez un cloaking mais que le test avec un User-Agent modifi\u00e9 ne r\u00e9v\u00e8le rien, essayez avec les headers Sec-Fetch. C&rsquo;est aussi la raison pour laquelle <strong>certains sites semblent fonctionner dans le navigateur mais pas dans Screaming Frog<\/strong>.<\/p>\n<h2>10. Savoir d\u00e9coder (Base64, binaire, char codes)<\/h2>\n<p>Un auditeur SEO technique doit savoir reconna\u00eetre et d\u00e9coder les encodages courants. Pas besoin d&rsquo;\u00eatre d\u00e9veloppeur : la Console du navigateur suffit.<\/p>\n<h3>Base64<\/h3>\n<p>Reconnaissable aux caract\u00e8res <code>A-Z<\/code>, <code>a-z<\/code>, <code>0-9<\/code>, <code>+<\/code>, <code>\/<\/code> et souvent un <code>=<\/code> ou <code>==<\/code> \u00e0 la fin.<\/p>\n<pre><code>\/\/ Dans la Console (F12) :\natob('aGVsaW90cm9wZQ==')\n\/\/ R\u00e9sultat : \"heliotrope\"<\/code><\/pre>\n<p>O\u00f9 le trouver en audit : data-attributes, payloads de tracking, cookies, URL encod\u00e9es.<\/p>\n<h3>Char codes (codes ASCII)<\/h3>\n<p>Un tableau de nombres qui repr\u00e9sentent des lettres : <code>[109, 111, 114, 115, 101]<\/code>.<\/p>\n<pre><code>\/\/ Dans la Console :\n[109, 111, 114, 115, 101].map(c =&gt; String.fromCharCode(c)).join('')\n\/\/ R\u00e9sultat : \"morse\"<\/code><\/pre>\n<p>O\u00f9 le trouver en audit : scripts JavaScript obfusqu\u00e9s, configurations de tracking, param\u00e8tres URL.<\/p>\n<h3>Binaire<\/h3>\n<p>Des suites de 0 et 1 group\u00e9es par 8 : <code>01101000 01101001<\/code>.<\/p>\n<pre><code>\/\/ Dans la Console :\n'01101000 01101001'.split(' ').map(b =&gt; String.fromCharCode(parseInt(b, 2))).join('')\n\/\/ R\u00e9sultat : \"hi\"<\/code><\/pre>\n<p>Plus rare en pratique, mais \u00e7a peut appara\u00eetre dans des configurations serveur ou du contenu obfusqu\u00e9.<\/p>\n<h2>11. V\u00e9rifier HTTP vs HTTPS<\/h2>\n<p>En 2026, HTTPS est la norme. Mais il est toujours utile de tester ce qui se passe quand on acc\u00e8de \u00e0 une page en <strong>HTTP<\/strong> (sans le \u00ab\u00a0s\u00a0\u00bb) :<\/p>\n<ul>\n<li><strong>Redirection 301 vers HTTPS<\/strong> : c&rsquo;est le comportement attendu. V\u00e9rifiez qu&rsquo;elle est bien en 301 (pas 302).<\/li>\n<li><strong>R\u00e9ponse 200 en HTTP<\/strong> : la page r\u00e9pond sans rediriger = <strong>DUST<\/strong> (Duplicate URL Same Text). Le contenu existe en double.<\/li>\n<li><strong>Contenu diff\u00e9rent<\/strong> : le serveur peut servir un contenu diff\u00e9rent en HTTP vs HTTPS. Cas rare mais r\u00e9el.<\/li>\n<li><strong>HSTS<\/strong> : le header <code>Strict-Transport-Security<\/code> force le navigateur \u00e0 utiliser HTTPS m\u00eame si l&rsquo;utilisateur tape HTTP.<\/li>\n<\/ul>\n<p>Test rapide : <code>curl -I http:\/\/example.com\/<\/code>. Si la r\u00e9ponse est un <code>301<\/code> vers <code>https:\/\/<\/code>, c&rsquo;est correct. Si c&rsquo;est un <code>200<\/code>, il y a un probl\u00e8me de duplicate.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"532\" src=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/checklist-11-reflexes-audit-seo-1024x532.png\" alt=\"\" class=\"wp-image-170\" srcset=\"https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/checklist-11-reflexes-audit-seo-1024x532.png 1024w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/checklist-11-reflexes-audit-seo-300x156.png 300w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/checklist-11-reflexes-audit-seo-768x399.png 768w, https:\/\/paulkahn.fr\/blog\/wp-content\/uploads\/2026\/03\/checklist-11-reflexes-audit-seo.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n<h2>Ce que \u00e7a change pour l&rsquo;audit SEO en 2026<\/h2>\n<p>Ce challenge met en lumi\u00e8re trois \u00e9volutions importantes pour le m\u00e9tier.<\/p>\n<h3>La d\u00e9tection de bot est plus sophistiqu\u00e9e<\/h3>\n<p>Les serveurs ne se contentent plus de v\u00e9rifier le User-Agent. Les headers Sec-Fetch, la d\u00e9tection de navigateur headless (<code>navigator.webdriver<\/code>), et les signatures de requ\u00eates permettent de distinguer un humain d&rsquo;un outil avec une pr\u00e9cision croissante. Pour un auditeur, cela signifie que <strong>les r\u00e9sultats de Screaming Frog ou Sitebulb ne repr\u00e9sentent pas toujours ce que Googlebot ou un utilisateur voit r\u00e9ellement<\/strong>.<\/p>\n<h3>Les crawlers IA sont un nouveau param\u00e8tre<\/h3>\n<p>Avec GPTBot, ClaudeBot, PerplexityBot et leurs variantes, il y a d\u00e9sormais une troisi\u00e8me cat\u00e9gorie de visiteurs \u00e0 prendre en compte. Un site peut \u00eatre parfaitement index\u00e9 par Google mais totalement invisible pour les r\u00e9ponses de ChatGPT ou Perplexity. L&rsquo;audit technique doit d\u00e9sormais inclure un <strong>test d&rsquo;accessibilit\u00e9 IA<\/strong>. J&rsquo;ai d\u00e9taill\u00e9 ce sujet dans mon guide complet sur les AI Overviews.<\/p>\n<h3>L&rsquo;inspection manuelle reste irrempla\u00e7able<\/h3>\n<p>Les outils automatis\u00e9s (Screaming Frog, Sitebulb, Semrush) sont indispensables pour l&rsquo;analyse \u00e0 grande \u00e9chelle. Mais pour comprendre <em>ce qui se passe r\u00e9ellement<\/em> sur une page sp\u00e9cifique, rien ne remplace l&rsquo;inspection manuelle : Ctrl+U, F12, curl. C&rsquo;est la diff\u00e9rence entre <a href=\"https:\/\/paulkahn.fr\/blog\/tendances-seo-2026\/\">un audit SEO<\/a> superficiel et un audit qui trouve les vrais probl\u00e8mes.<\/p>\n<p>Un bon auditeur SEO ne se contente pas de lire ce qui est visible. Il lit ce que le serveur envoie, ce que le JavaScript g\u00e9n\u00e8re, ce que les headers d\u00e9clarent, et ce que les fichiers li\u00e9s contiennent. La page que l&rsquo;utilisateur voit n&rsquo;est que la partie \u00e9merg\u00e9e de l&rsquo;iceberg.<\/p>\n<h2>Questions fr\u00e9quentes<\/h2>\n\n<div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Quelle est la diff\u00e9rence entre Ctrl+U et F12 pour un audit SEO ?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Ctrl+U affiche le code source brut envoy\u00e9 par le serveur, avant toute ex\u00e9cution JavaScript. F12 &gt; Elements affiche le DOM apr\u00e8s ex\u00e9cution du JS : des \u00e9l\u00e9ments ont pu \u00eatre ajout\u00e9s ou modifi\u00e9s. Pour un audit SEO, Ctrl+U montre ce que Googlebot voit au premier crawl, tandis que F12 montre le r\u00e9sultat apr\u00e8s rendering.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-2\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Comment d\u00e9tecter du cloaking sur un site web ?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Trois m\u00e9thodes : (1) utiliser une extension User-Agent Switcher pour visiter la page en tant que Googlebot, (2) utiliser curl en ligne de commande avec le User-Agent Googlebot, (3) utiliser l&rsquo;outil Inspection d&rsquo;URL de Google Search Console qui montre exactement ce que Google voit. Comparez le titre, le contenu et le code HTTP entre navigateur et bot.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-3\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Pourquoi un site fonctionne dans le navigateur mais pas dans Screaming Frog ?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Le serveur v\u00e9rifie probablement les headers Sec-Fetch. Les navigateurs envoient automatiquement ces headers (Sec-Fetch-Dest, Sec-Fetch-Mode, etc.) mais les outils de crawl comme Screaming Frog ne les envoient pas. Le serveur d\u00e9tecte donc le crawl comme un bot et peut bloquer l&rsquo;acc\u00e8s ou servir un contenu diff\u00e9rent.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-4\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Comment d\u00e9coder du Base64 trouv\u00e9 dans le code source ?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Ouvrez la Console du navigateur (F12 &gt; Console) et tapez atob(&lsquo;votre_chaine_base64&rsquo;). Le r\u00e9sultat d\u00e9cod\u00e9 s&rsquo;affiche imm\u00e9diatement. Le Base64 se reconna\u00eet aux caract\u00e8res A-Z, a-z, 0-9, +, \/ et souvent un = ou == \u00e0 la fin.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<h2>Besoin d&rsquo;un audit SEO technique de votre site ?<\/h2>\n<p>Ces 11 r\u00e9flexes sont ceux que j&rsquo;applique syst\u00e9matiquement quand j&rsquo;audite un site pour mes clients \u00e0 Tours et en Indre-et-Loire. Un audit technique complet va encore plus loin : analyse de crawl \u00e0 grande \u00e9chelle, v\u00e9rification des Core Web Vitals, audit du maillage interne, analyse des logs serveur.<\/p>\n<p>Si vous voulez savoir ce que Google voit r\u00e9ellement sur votre site (et ce qu&rsquo;il ne voit pas), <strong><a href=\"https:\/\/paulkahn.fr\/\">contactez-moi pour un diagnostic gratuit<\/a><\/strong>. Je vous montre les probl\u00e8mes concrets et les actions prioritaires pour les corriger.<\/p>","protected":false},"excerpt":{"rendered":"<p>Ma\u00eetrisez les 11 r\u00e9flexes d&rsquo;un auditeur SEO technique : headers HTTP, cloaking, Sec-Fetch, Base64&#8230; Guide pratique avec exemples concrets tir\u00e9s d&rsquo;un challenge r\u00e9el.<\/p>\n","protected":false},"author":1,"featured_media":165,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[10,7],"tags":[],"class_list":["post-162","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technique","category-seo"],"_links":{"self":[{"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/posts\/162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/comments?post=162"}],"version-history":[{"count":5,"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/posts\/162\/revisions"}],"predecessor-version":[{"id":222,"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/posts\/162\/revisions\/222"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/media\/165"}],"wp:attachment":[{"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/media?parent=162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/categories?post=162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/paulkahn.fr\/blog\/wp-json\/wp\/v2\/tags?post=162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}