CrawlCheck
Vos optionsNous corrigeons $100 une fois · Watch $29 / mois
  1. L’analyse gratuite$0

    Votre note, votre score et chaque problème trouvé. Le plus important est expliqué en entier.

    Vous êtes ici · C · 81/100

  2. Nous corrigeons pour vous$100 une fois

    Nous corrigeons chaque problème sur votre site, puis nous le réanalysons pour le prouver. Trente jours de surveillance inclus.

    Faire corriger

    Carte, puis nous commençons. Un site par commande.

  3. Watch$29 / mois

    Nous vérifions 3 sites deux fois par jour et montrons chaque problème avec sa preuve, depuis combien de temps il est ouvert et quand il a été corrigé.

    Démarrer l’essai de 30 jours

    Sans carte. Ou acheter Watch · plusieurs sites

Payer ne change jamais votre note.

Résultat de l’analyse

denverpost.com

2026-11-12 · il y a 16 heureswordpressid aasc46z1wvpublic

81
Cnote

Les assistants IA comme ChatGPT peuvent lire votre site, mais trouvent peu de choses à citer dans vos pages.

À corriger d’abord

les règles de robots.txt ne s’appliquent pas aux agents nommés

Ce constat retient la note. Corrigez-le et la note remonte d’elle-même.

Corrigez-le pour moi Le surveiller, 30 jours gratuits

Visibilité IA 81/100. Un moteur peut atteindre et lire ce site. Ce qui reste, c’est de lui donner quelque chose de précis à dire.

Plafonné à C Le score seul donnerait une note plus élevée ; un constat de gravité moyenne fixe la lettre. Corrigez-le et la note remonte d’elle-même.

Ce que cela ne prouve pas

Voici ce que les robots reçoivent du site aujourd’hui — atteindre, lire, citer — mesuré depuis le propre réseau de CrawlCheck. Cela ne montre pas si un moteur cite le site, où il se classe, ni quel trafic ou quels prospects en découlent, et une sonde d’identité de robot n’est pas une récupération depuis les adresses vérifiées de cet opérateur. Ce qu’un chiffre peut dire, et ce qu’il ne peut pas dire

11

constats

19/33

sections conformes

+19

points disponibles

63%

des 38 sites de l’ensemble de référence éditeurs ont obtenu un score inférieur

24

analyses enregistrées

🔒 Analyse gratuite : certaines parties de ce rapport sont verrouillées

La note, le score, chaque constat nommé et le premier en entier sont gratuits. Une offre payante débloque :

  • le détail, la correction et les preuves derrière 10 des 11 constats (chaque constat est nommé ; le premier est affiché en entier)
  • 40 lignes de marge - ce que vaut chaque correction en points
  • 11 sections qui suivent le site dans le temps

Démarrer l’essai de 30 jours Watch, 30 jours, sans carte.Ce que fait chaque section verrouillée

En bref

The website's robots.txt rules do not apply to all agents as intended. Specifically, 3 named User-agent groups with 3 agents do not repeat certain Disallow rules that the `*` group carries. As a result, a crawler will only obey its own most-specific group and ignore the `*` group entirely.

Summary written from this scan’s findings, every sentence checked against one of them. How CrawlCheck reads

En clair

  • 19 des 33 sections notées sont conformes. 7 sont à améliorer, 7 sont en échec. Les 8 autres sections, sur 41 au total, sont mesurées à titre informatif et jamais notées.
  • 11 constats, dont 4 jugés graves. À corriger d’abord : les règles de robots.txt ne s’appliquent pas aux agents nommés — affiché en entier ci-dessous, gratuitement. Les 10 autres sont nommés ci-dessous ; leurs preuves et les étapes de correction s’ouvrent avec Watch. L’un d’eux maintient la note à C. Ce que cela coûte.
  • Corrigez les 41 mesures en échec de la liste de corrections et le score passe à 100. Maintenant 81, soit un gain de 19 points.
  • Chaque moteur de réponse nommé a reçu la page. OAI-SearchBot, Claude-SearchBot, PerplexityBot, ChatGPT-User, Claude-User, Perplexity-User, Googlebot, Googlebot Smartphone, Bingbot, Applebot. Disallowed by policy in robots.txt: Yahoo Slurp, ChatGPT search index, ChatGPT live fetch, Claude search index, Claude live fetch, Perplexity index, Perplexity live fetch, Le Chat live fetch (a choice, not a defect).
  • Down 2 points since the previous scan. Moyenne de section maintenue à 80 pendant 1 analyse depuis le 2026-11-12. Voir ce qui a changé.

Commencez ici

Les trois constats qui pèsent le plus sur la note. Ouvrez-en un pour voir ce qui a été observé et comment le corriger.

Les trois étapes, dans l’ordre où un moteur aborde un site

Chaque étape conditionne la suivante : un moteur qui ne peut pas atteindre une page ne la lit jamais, et un moteur qui ne peut pas la lire ne la cite jamais.

79

Étape 1 · 40 % du score

Atteindre

Un robot de moteur de réponse nommé peut-il seulement récupérer vos pages ?

Au moins un moteur de réponse a été refusé, soumis à une vérification ou a reçu moins qu’un navigateur.

83

Étape 2 · 30 % du score

Lire

Une fois qu’il a les octets, peut-il trouver les mots ?

Le contenu est noyé dans le balisage, ou les fichiers qui guident un robot sont absents.

83

Étape 3 · 30 % du score

Citer

Existe-t-il un fait précis qu’il peut énoncer et attribuer ?

Un assistant devrait paraphraser votre page au lieu de citer un fait.

L’étape à corriger en premier est atteindre, la plus basse des trois.

Comment ce site se situe

Classé par rapport à 36 sites de la même cohorte (wordpress/publisher). Ce corpus est composé de sites que des personnes ont choisi d’analyser, pas du web, donc un rang ici est une comparaison, pas un verdict.

Score de visibilité IA (la note affichée)vous 81 · médiane 80
56e
Moyenne des sections (pondérée)vous 80 · médiane 81
41e
Ratio de contenu (% de texte visible)vous 4.4 · médiane 3.4
69e
Couverture en @id stables (%)vous 33.3 · médiane 84.6
8e
Ressources bloquant le renduvous 27 · médiane 10.5
19e
Taille de la page livrée (KB)vous 306 · médiane 182
14e

Centile : la part des sites comparables que celui-ci dépasse. Les métriques où moins vaut mieux (taille de page, blocage du rendu) sont déjà inversées.

Moyenne de la section sur 22 analyses avec cette version du score · stable à 81 depuis le 2026-11-12
0501002026-10-23 00:17 · 83/100 · 10 constats2026-10-24 00:17 · 82/100 · 10 constats2026-10-25 00:17 · 82/100 · 10 constats2026-10-26 00:17 · 82/100 · 10 constats2026-10-27 00:17 · 83/100 · 10 constats2026-10-28 00:18 · 83/100 · 10 constats2026-10-29 00:18 · 82/100 · 10 constats2026-10-30 00:17 · 82/100 · 10 constats2026-10-31 00:17 · 82/100 · 10 constats2026-11-01 00:17 · 82/100 · 10 constats2026-11-02 00:17 · 81/100 · 10 constats2026-11-03 00:17 · 83/100 · 11 constats2026-11-04 00:17 · 83/100 · 11 constats2026-11-05 00:17 · 83/100 · 11 constats2026-11-06 00:17 · 83/100 · 11 constats2026-11-07 00:17 · 83/100 · 11 constats2026-11-07 01:02 · 83/100 · 11 constats2026-11-08 00:17 · 83/100 · 12 constats2026-11-09 00:17 · 83/100 · 11 constats2026-11-10 00:17 · 83/100 · 11 constats2026-11-11 00:17 · 83/100 · 11 constats2026-11-12 00:17 · 81/100 · 11 constats

La suite

Chaque étape s’appuie sur le même enregistrement signé. Commencez là où vous en êtes.

  1. 01CorrigerCorriger ce qui fait baisser la noteÉtapes adaptées à votre plateforme, vérifiées par une nouvelle analyse.
  2. 02WatchLe surveiller chaque jourGratuit pendant 30 jours. Les changements et les nouveaux constats arrivent dans votre boîte de réception.
  3. 03RevendiquerProuver que le domaine vous appartientUn enregistrement DNS ou une balise meta. Chaque réponse signée concernant le site indique ensuite que le contrôle est prouvé.
  4. 04Vue agentVoir ce qu’on dit aux agentsLa réponse signée que reçoit tout agent avant de lire, de citer, de se connecter ou d’effectuer une transaction.
  5. 05DévelopperInterroger depuis votre propre codeUn appel avant que votre agent n’agisse : npm, PyPI ou HTTPS simple.

Ce qu’il faut corriger

11 constats sur ce site, dont 4 jugés graves. Chacun est nommé ci-dessous ; le premier est affiché en entier, gratuitement. Ce que nous avons vu, pourquoi chacun compte, comment le corriger et les octets qui le prouvent sont ce qu’achète une licence — ou nous mettons en œuvre toute la liste pour vous.

4 Moyenne 2 Faible 5 Remarque

1les règles de robots.txt ne s’appliquent pas aux agents nommés3 groupes User-agent nommés (3 agents) ne reprennent pas 8 des règles Disallow que porte le groupe `*`. Un robot n’obéit qu’à son groupe le plus spécifique et ignore `MoyenneRéglageConfirmed

première mesure 2026-09-10 · il y a 63 jours · le nombre de jours mesurés pendant lesquels il a persisté, et s’il a déjà été résolu puis est réapparu, s’affiche avec Watch — gratuit pendant 30 jours.

Ce que nous avons vu

3 named User-agent groups (3 agents) do not repeat 8 of the Disallow rules the `*` group carries. A crawler obeys only its own most-specific group and ignores `*` entirely, so those rules do not apply to any of the named agents. Worst group: `amazonadbot` bypasses /wp-admin/, /cgi-bin/, /wp-includes/, /xmlrpc.php, /wp-content/plugins/, /wp-content/cache/, /trackback/, /comments/. /robots.txt

Pourquoi c’est important

Un robot ne lit que le groupe User-agent qui lui correspond le mieux et ignore tous les autres groupes, y compris `*`. Nommer un agent et ne lui donner que `Allow: /` supprime donc toutes vos règles Disallow de `*` pour cet agent. Le fichier s’analyse toujours et l’agent atteint toujours votre page d’accueil, donc c’est invisible à l’inspection — mais les chemins que vous vouliez tenir à l’écart de la recherche sont ouverts, et les moteurs de recherche les exploreront et pourront les indexer.

Comment le corriger

Chaque groupe User-agent qui nomme un robot doit répéter les règles Disallow que vous voulez appliquer. Un groupe nommé sans règles signifie « tout autoriser » pour ce robot.

Réglage : un paramètre du serveur, du CDN, du DNS ou d’une extension — sans code ni rédaction

Sous WordPress (détecté)

  1. WordPress sert un robots.txt virtuel. Modifiez-le dans votre extension SEO : Yoast SEO → Outils → Éditeur de fichiers ; Rank Math → Réglages généraux → Modifier robots.txt ; All in One SEO → Outils → Éditeur de Robots.txt.
  2. Un vrai fichier robots.txt à la racine du site (le dossier contenant wp-config.php) prime sur toutes les extensions. S’il existe, modifiez plutôt ce fichier, via le gestionnaire de fichiers de l'hébergeur ou en SFTP.
  3. Gardez un groupe par robot : un robot qui a son propre groupe User-agent ignore entièrement le groupe *, répétez donc les lignes Disallow dont il a encore besoin.

Toutes les corrections WordPress

Paste this

Each crawler obeys only its own group, so a named group must repeat the rules you want. The corrected file below copies them in for you.

The whole corrected robots.txt for www.denverpost.com · built from the live file, every change listed at the top.

Fix it with a coding agent

Paste into Claude Code, Cursor or Codex, opened on the code that serves this site.

Show prompt
You are working in the codebase (or server/CDN configuration) that serves denverpost.com. A crawler audit found the problem below. Fix it at the source, keep the change as small as possible, and do not change anything a visitor sees unless the fix requires it.

Finding: robots.txt rules do not apply to named agents (ROBOTS_RULES_SHADOWED, medium severity)
Page: https://denverpost.com/robots.txt
What was measured: 3 named User-agent groups (3 agents) do not repeat 8 of the Disallow rules the `*` group carries. A crawler obeys only its own most-specific group and ignores `*` entirely, so those rules do not apply to any of the named agents. Worst group: `amazonadbot` bypasses /wp-admin/, /cgi-bin/, /wp-includes/, /xmlrpc.php, /wp-content/plugins/, /wp-content/cache/, /trackback/, /comments/.
Why it matters: A crawler reads only the User-agent group that matches it best and ignores every other group, including `*`. Naming an agent and giving it only `Allow: /` therefore deletes all of your `*` Disallow rules for that agent. The file still parses and the agent still reaches your homepage, so this is invisible on inspection — but the paths you meant to keep out of search are open, and search engines will crawl and may index them.
How to fix it: Every User-agent group that names a crawler must repeat the Disallow rules you want applied. A named group with no rules means 'allow everything' for that crawler.
Detected platform: WordPress. Make the change where this platform controls it.
Rule and examples: https://crawlcheck.io/rules/ROBOTS_RULES_SHADOWED
Full report (markdown): https://crawlcheck.io/r/aasc46z1wv.md

When you are done:
1. Tell me which files or settings you changed and why.
2. If the fix is a server, CDN or cache setting you cannot change from the code, say exactly where it is set.
3. After deploying, re-scan at https://crawlcheck.io/?url=denverpost.com . The fix counts when ROBOTS_RULES_SHADOWED is gone from the new report.
Pourquoi cette décision
RègleROBOTS_RULES_SHADOWED · pack de règles sv34 · périmètre core
Évalué2026-11-12 00:17:42 UTC
Décisiond1:ab6db3d568fdb2282e23 · constat f1:cbfcabeaf2c8fae39c15 résoudre soit sur /api/graph/<id> avec une clé
Observateurbuild crawlcheck-worker be1e3120 · audit v4

Ce sur quoi il repose

IdentitéStatutOctetssha256Conservé
lu : /robots.txt2004 567ff800a4d427dalready_held

25 de plus dans le manifeste.

Artefacts : manifest:4098c6573755bdd21d4644c5f14f0df51d807dbfc2d86dd1a7ffd32afab1005b

Effet sur la note Plafonne la lettre à C avec 3 autres constats de gravité moyenne ; la lettre ne remonte que lorsque tous ont disparu. Ne retire aucun point.

Règle ROBOTS_RULES_SHADOWED selon les règles de notation v34 · empreinte ROBOTS_RULES_SHADOWED|/robots.txt · persisting (seen in 47 of 48 readings)

Vérifier la correction Réanalysez après la modification. Ce constat est levé lorsque ROBOTS_RULES_SHADOWED n’est plus signalé sur /robots.txt ; s’il revient après avoir été levé, il est marqué comme une régression, pas comme un nouveau constat.

ROBOTS_RULES_SHADOWED · transcription complète

2Deux fiches d’entreprise sur cette page revendiquent la même identité🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve se trouvent dans le rapport sous licence.Moyenne
3La page d'accueil dépend de fichiers que le propre robots.txt du site interdit/robots.txt🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve se trouvent dans le rapport sous licence.Moyenne
4Presque rien de ce qu’une machine reçoit de cette page n’est du texte lisible🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve se trouvent dans le rapport sous licence.Moyenne
5Le sitemap n’indique pas quand quoi que ce soit a changé/sitemap.xml🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve figurent dans le rapport sous licence.Faible
6Les coordonnées publiées ne se trouvent pas dans le pays indiqué par l’adresse🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve se trouvent dans le rapport sous licence.Faible
7La page d’accueil est atteinte via une chaîne de redirections🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve figurent dans le rapport sous licence.Remarque
8Pas de llms.txt/llms.txt🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve se trouvent dans le rapport sous licence.Remarque
9Les fichiers machine coûtent plus cher que la page🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve se trouvent dans le rapport sous licence.Remarque
10Private files or live keys are readable by anyone (advisory: not in the grade yet)🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve se trouvent dans le rapport sous licence.Remarque
114 fiches externes portent ce numéro de téléphone et le site ne renvoie jamais vers elles🔒 Ce que nous avons vu, pourquoi c’est important, la correction et les octets de preuve se trouvent dans le rapport sous licence.Remarque

Ouvrir les 10 autres

Ce que nous avons vu, pourquoi c’est important, comment le corriger, et les octets de preuve de chaque constat — sur ce rapport et à chaque nouvelle analyse. À partir de 29 $ par mois.

Débloquer les constats

Ou faites-les corriger

Nous mettons en œuvre la liste sur votre site et remesurons, avec un avant et un après scellés. Un site, 100 $ en une fois.

Faire corriger — $100

Sites like yours that fixed the same problem

Matched on WordPress. A fix counts once two readings confirm it; sites are not named. Read from the technology record of 2026-11-11.

serves no /llms.txt

12 sites on a stack like yours have made this fix (Published llms.txt); 12 still hold it. 102 on any stack.

  • similar site A (WordPress + Amazon CloudFront + WP Engine; shares platform): fixed 2026-11-10, still fixed today
  • similar site B (WordPress + Cloudflare + Cloudflare Bot Management; shares platform): fixed 2026-11-04, still fixed today
  • similar site C (WordPress + Fastly; shares platform): fixed 2026-10-31, still fixed today

serves no /agents.md (optional)

5 sites on a stack like yours have made this fix (Published agents.md); 4 still hold it. 21 on any stack.

  • similar site A (WordPress + Cloudflare; shares platform): fixed 2026-11-09, still fixed today
  • similar site B (WordPress + Cloudflare + Cloudflare Bot Management; shares platform): fixed 2026-11-04, still fixed today
  • similar site C (WordPress + Cloudflare + Cloudflare Bot Management; shares platform): fixed 2026-10-31, still fixed today

blocks PerplexityBot in robots.txt (optional: only a problem if the block is not deliberate)

4 sites on a stack like yours have made this fix (Unblocked PerplexityBot in robots.txt); 4 still hold it. 10 on any stack.

  • similar site A (WordPress + Amazon CloudFront + Netlify; shares platform): fixed 2026-11-06, still fixed today
  • similar site B (WordPress + Fastly + Pantheon; shares platform): fixed 2026-10-31, still fixed today
  • similar site C (WordPress + Cloudflare + SiteGround + Cloudflare Bot Management; shares platform): fixed 2026-10-31, still fixed today

blocks ChatGPT-User in robots.txt (optional: only a problem if the block is not deliberate)

2 sites on a stack like yours have made this fix (Unblocked ChatGPT-User in robots.txt); 2 still hold it. 7 on any stack.

  • similar site A (WordPress + Amazon CloudFront + Netlify; shares platform): fixed 2026-11-06, still fixed today
  • similar site B (WordPress + Fastly + Pantheon; shares platform): fixed 2026-10-31, still fixed today

The signed answer lists every match.

Plus de détails — calcul de la marge, priorités et regroupements

Ce qui a été servi à chaque robot

18 requêtes pour la même URL, depuis une seule adresse CrawlCheck, le 2026-11-12 à 00:17 UTC : chaque robot nommé, un navigateur mobile et un client anonyme. Le robots.txt est ce que le site demande ; le statut et le nombre de mots sont ce que son serveur a réellement envoyé.

Demandé en tant queRobots.txtRéponse du serveurMotsIdentique au navigateur
Client anonyme (témoin)—2002 099100%référence
GPTBotinterdit2002 099100%interdit mais servi
ClaudeBotinterdit2002 099100%interdit mais servi
OAI-SearchBotinterdit2002 099100%interdit mais servi
Claude-SearchBotinterdit2002 099100%interdit mais servi
PerplexityBotinterdit2002 099100%interdit mais servi
ChatGPT-Userinterdit2002 099100%interdit mais servi
Claude-Userinterdit2002 099100%interdit mais servi
Perplexity-Userinterdit2002 099100%interdit mais servi
Googlebotautorisé2002 099100%même page
Googlebot Smartphonenon listé2002 099100%même page
Navigateur mobile (témoin)—2002 099100%référence
Bingbotautorisé2002 099100%même page
Applebotinterdit2002 099100%interdit mais servi
Amazonbotinterdit2002 099100%interdit mais servi
Bytespiderinterdit4299—bloqué par le serveur
Meta-ExternalAgentinterdit4035—bloqué par le serveur
CCBotinterdit2002 099100%interdit mais servi

19

conformes

7

à améliorer

7

en échec

8

à titre informatif

Des sections, pas des contrôles individuels : 41 au total, 33 notées. Une section notée qui n’a pas pu être lue est comptée à part et jamais comme conforme ; les sections informatives sont mesurées et jamais notées.

Quels robots sont autorisés

74 des 115 robots nommés sont autorisés par le robots.txt sur / ; 41 sont interdits. Robots.txt est une demande ; la périphérie réseau décide. Lorsque cette analyse a aussi récupéré la page en tant que ce robot, la pastille indique ce qu’a fait la périphérie réseau.

Moteurs de réponse 7/17 autorisés

The crawlers behind ChatGPT, Claude, Perplexity and Google’s AI answers, and the fetchers that read a page live when a person asks (ChatGPT-User, Claude-User, Perplexity-User)

✗Index de recherche ChatGPTA✗Récupération en direct ChatGPTA✗Index de recherche Claude✗Récupération en direct ClaudeA✗Index PerplexityD✗Récupération en direct Perplexity✓Agent de recherche Gemini✗Récupération en direct Le Chat✗Assistant IA DuckDuckGo✗You.com✓Phind✓Kagi✓Récupération Microsoft Copilot✗Récupération en direct Meta AI✓Récupération en direct Amazon pour les questions Alexa✓Agent Google déclenché par l’utilisateur, agit sur le webA✓Récupération d’URL fournies par l’utilisateur pour Gemini Notebook

Moteurs de recherche 17/24 autorisés

Google, Bing, Apple et le reste de la recherche classique

✓Robot d’images Google✓Google News✓Robot de vidéos Google✓Google Shopping✓Google AdSense✓Livraison push Google✓Aperçu de page Bing✓Ancien robot Microsoft✗Yahoo Slurp✓Yandex (jeton générique)✓Coc Coc✓Google Search et AI OverviewsA✓Index Bing et CopilotD✗Apple et SiriD✗AmazonD✓DuckDuckGoB✗YandexA✗BaiduB✓SeznamA✓Neeva✗Huawei Petal✗Éligibilité à la recherche Amazon, distincte d’Amazonbot✓Index de recherche Mistral pour Vibe✓Index de recherche Exa AI, signé Web Bot Auth

Robots d’entraînement 22/46 autorisés

Collectent des pages pour entraîner des modèles. Les bloquer tout en autorisant les moteurs de réponse est une politique cohérente, pas un défaut

Tout afficher (46)
✓Magpie AI✓Corpus d’images img2dataset✓Awario RSS✓Awario smart✓Turnitin✗Internet Archive✓Internet Archive (ancien)✗Index web Meta✗Webz.io omgili✗Corpus d’entraînement Cohere✗Huawei PanGu✗Allen Institute Dolma✓FriendlyCrawler ML✗Velen✓MyCentral AI✓DeepSeek✗NICT ICC✓Récupération Google hors rechercheA✓Création d’agents Vertex AI✗Entraînement et index OpenAIB✗Entraînement AnthropicD✗Ancien agent Anthropic✗Ancien agent Anthropic✗Entraînement et ancrage Gemini✗Entraînement Apple✗Common CrawlA✗ByteDance✗Entraînement Meta AI✗Meta (ancien)✓Cohere✗Graphe de connaissances Diffbot✗Webz.io✓Imagesift✗Timpi✗Allen Institute✓Framework de scraping générique✓Corpus IA Semrush✗Corpus publicitaire Apple✓TikTok✓QuillBot✗Webz.io étendu✓ProRata✓Awario✓Collecte d’entraînement Mistral✓Robot commun de Google, URL d’images publiques✓Robot commun de Google, URL de vidéos publiques

Opt-out record: the date each crawler was closed or opened here, from every reading on record, each with sealed proof.

The letter beside a crawler is its conduct grade: how that crawler really behaved, from requests verified against its operator’s published addresses. A read the rules and obeyed them; F reached a path the rules forbid.

Certains groupes nommés ne déclarent aucune règle propre, ce qui signifie « tout autoriser » pour ce robot, quelles que soient les règles générales. Ces pastilles sont signalées.

Vu depuis un second réseau

The same identities fetched from a second network 49.8 hours before this scan: Cloudways managed hosting, AS20473 The Constant Company, LLC, California. 2 identities were answered differently on the two networks (marked).

IdentitéCette analyse (réseau de CrawlCheck)Second réseauMême statut
Client anonyme200 · 2 099 mots200 · 2 216 mots✓
GPTBot200 · 2 099 mots200 · 2 216 mots✓
ClaudeBot200 · 2 099 mots429differs
OAI-SearchBot200 · 2 099 mots200 · 2 216 mots✓
Claude-SearchBot200 · 2 099 mots200 · 2 216 mots✓
PerplexityBot200 · 2 099 mots200 · 2 216 mots✓
ChatGPT-User200 · 2 099 mots200 · 2 216 mots✓
Claude-User200 · 2 099 mots200 · 2 216 mots✓
Perplexity-User200 · 2 099 mots200 · 2 216 mots✓
Googlebot200 · 2 099 mots200 · 2 216 mots✓
Googlebot Smartphone200 · 2 099 mots200 · 2 216 mots✓
Navigateur mobile200 · 2 099 mots200 · 2 216 mots✓
Navigateur mobile (témoin)—200 · 2 216 mots—
Bingbot200 · 2 099 mots200 · 2 216 mots✓
Applebot200 · 2 099 mots200 · 2 216 mots✓
Amazonbot200 · 2 099 mots200 · 2 216 mots✓
Bytespider429403differs
Meta-ExternalAgent403403✓
CCBot200 · 2 099 mots200 · 2 216 mots✓

Le second réseau n’est le réseau d’aucun opérateur de robot : il indique si un résultat dépend de l’origine de la requête, pas la façon dont le vrai robot de l’entreprise nommée est traité. Chaque observation est signée ; la liste des observateurs se trouve sur /.well-known/crawlcheck-observers.json et la comparaison complète sur /api/corroboration.

Where the refusal happens

2 identities were refused from CrawlCheck’s network.

IdentitéFrom CrawlCheck’s networkFrom a person’s own connectionOù
Bytespiderthrottled (HTTP 429)non lunot named by the refusal
Meta-ExternalAgentrefused HTTP 403non lunot named by the refusal

The right-hand column is the one measurement this server cannot make: whether the same request is served from a home or office connection. The free CrawlCheck extension fills it: install it, open denverpost.com and press Two vantages; the next report shows the result for 14 days.

Site owner? One skip rule tells a refusal in front of the server from one on the server itself. Full comparison: Loupe des agents.

Comment les robots parcourent ce site

5 of 18 identities reach the page. 11 are turned away by the site’s own robots rules — a policy, not a fault. 2 are refused at the edge before any rule applies, for a request carrying the name from our address — an edge that admits crawlers by their published IP ranges may still let the real one through. Missing: entitymap.json, llms.txt. Of the 15 others that got through, 1 received exactly the browser’s bytes, 14 the same text in different bytes.

QUI A DEMANDÉEDGEFICHIERS RÉCUPÉRÉSDERIVEDPROCESSEDENGINEClient anonyme✓GPTBot⊘ClaudeBot⊘OAI-SearchBot⊘Claude-SearchBot⊘PerplexityBot⊘ChatGPT-User⊘Claude-User⊘Perplexity-User⊘Googlebot✓Googlebot Smartphone✓Navigateur mobile✓Bingbot✓Applebot⊘Amazonbot⊘Bytespider✗Meta-ExternalAgent✗CCBot⊘entitymap.json (JSON) — absentllms.txt (texte) — absentHTML de la page — ouvertrobots.txt (text/plain) — ouvertsitemap (XML) — ouvertnom, téléphone, adresse — ouverttexte de réponse — non mesuréentités déclarées — absentesnœuds typés — ouvertdemande de contact — ouverteidentité à corroborer — ouvertJSON-LD intégré — ouvertformulaires et liens d’appel — ouvertstexte visible — ouvertunités citables — ouvertrègles par user-agent — ouvertEdgedécision4 corps de réponse distincts servis aux identités ayant obtenu une réponse, par SHA-2564 versionsservirobots.txt — présent · 4.5 KB · sha256 ff800a4d427d901b5b4b8e6c08e0ec5132808d483171e0fa53d3c855b55f00e3 · conservérobots.txtprésent · 4.5 KBsitemap — présent · 868 KB · sha256 493fa919e7c8a1490849b4693b6a56fdc01f5b923ac8b66c631fcddb6f97d215 · conservésitemapprésent · 868 KBllms.txt — missing · 404 · sha256 3557f1559e468e7d4a4b649f985a9142c3bb90935cc46833e1b53c64e363f228 · keptllms.txtabsent · 404entitymap.json — missing · 404 · sha256 928fb366b5d8e4791552be46d9b3739f9a98ed3fc30897059d7e1ef3e3042871 · keptentitymap.jsonabsent · 404HTML de la page — présent · 306.7 KB · sha256 3a6447883d90b34647c5a10a041e3737e332c3baf40e5ee7fd8426504f505c3a · conservéHTML de la pageprésent · 306.7 KBJSON-LD — présentJSON-LDprésentIdentité déclarée (NAP) — présenteIdentité (NAP)présentTexte citable — présentTexte citableprésentParcours de demande — présentParcours de demandeprésentrésolution du robots.txtrègles robotsAnalyse et graphe d’entitésGraphe d’entitésCorroboration du nom, de l’adresse et du téléphoneContrôle NAPExtraction de citationsExtraction de citationsDemande (formulaire ou appel)DemandeSortie du moteur de réponse — non mesuréeMoteursortie nonmesuréeEVIDENCEchaque réponse ci-dessus, conservée par condensé et scelléeOctets conservés — 13 objets distincts, 2.8 MB, chacun stocké sous son propre SHA-256Octets conservés26 sur 26 réponsesManifest — sha256 4098c6573755bdd21d4644c5f14f0df51d807dbfc2d86dd1a7ffd32afab1005b: chaque réponse ci-dessus, listée par empreinteManifeste4098c6573755…Condensé de l’enregistrement — le hash du manifeste fait partie du condensé de cet enregistrementCondensé de l’enregistrementb0e6d0e6517e…Racine du jour — le jour est scellé après sa clôture (UTC) ; cette empreinte est déjà enregistréeRacine du jourscellé après le 11-12Bitcoin — la racine est envoyée aux calendriers OpenTimestamps au scellement ; un bloc Bitcoin suit, généralement en quelques heuresBitcoinaprès le scellement

Qui a demandé

  • Client anonymeatteint la page · même texte, octets différents
  • GPTBotrefusé par les règles robots du site · même texte, octets différents
  • ClaudeBotrefusé par les règles robots du site · même texte, octets différents
  • OAI-SearchBotrefusé par les règles robots du site · même texte, octets différents
  • Claude-SearchBotrefusé par les règles robots du site · même texte, octets différents
  • PerplexityBotrefusé par les règles robots du site · même texte, octets différents
  • ChatGPT-Userrefusé par les règles robots du site · même texte, octets différents
  • Claude-Userrefusé par les règles robots du site · même texte, octets différents
  • Perplexity-Userrefusé par les règles robots du site · même texte, octets différents
  • Googlebotatteint la page · même texte, octets différents
  • Googlebot Smartphonereaches the page · identical bytes
  • Navigateur mobileatteint la page
  • Bingbotatteint la page · même texte, octets différents
  • Applebotrefusé par les règles robots du site · même texte, octets différents
  • Amazonbotrefusé par les règles robots du site · même texte, octets différents
  • Bytespiderrefusé en périphérie (HTTP 429) à notre requête
  • Meta-ExternalAgentrefusé en périphérie (HTTP 403) à notre requête
  • CCBotrefusé par les règles robots du site · même texte, octets différents

Fichiers récupérés

  • robots.txtprésent · 4.5 KB
  • sitemapprésent · 868 KB
  • llms.txtmissing
  • entitymap.jsonmissing
  • HTML de la pageprésent · 306.7 KB

Dérivé

  • JSON-LDprésent
  • Texte citableprésent
  • Parcours de demandeprésent
  • Identité déclarée (NAP)présente

Sortie du moteur de réponse — non mesurée. Aucun serveur ne peut observer ce que dit un moteur.

Preuve

  • Octets conservés26 réponses sur 26
  • Manifeste4098c6573755…
  • Empreinte de l’enregistrementb0e6d0e6517e…
  • Racine du jourscellée après 11-12
  • Bitcoinaprès le scellement

✓ atteint · ⊘ refusé par les propres règles du site · ✗ rupture technique · cadre en pointillés = absent ou non mesuré. Tiré des propres récupérations de cette analyse ; rien n’est estimé ici. Récupéré le 2026-11-12 à 00:17 UTC par la version de worker be1e3120 selon les règles de notation v34. Chaque identité a été envoyée par CrawlCheck depuis son propre réseau : ✓ signifie que notre requête sous ce nom est passée, pas que le crawler de l’entreprise l’a fait. Le flux en JSON.

Ce que chaque identité a reçu — 26 réponses capturées, 26 conservées comme preuves
Qui a demandéHTTPTailleComparé à un navigateurConservé comme preuve
Client anonyme200306.7 KBmême texte, octets différentsconservé · 11ba378b
GPTBot200306.7 KBmême texte, octets différentsconservé · 11ba378b
ClaudeBot200306.7 KBmême texte, octets différentsconservé · f767f94a
OAI-SearchBot200306.7 KBmême texte, octets différentsconservé · f767f94a
Claude-SearchBot200306.7 KBmême texte, octets différentsconservé · 11ba378b
PerplexityBot200306.7 KBmême texte, octets différentsconservé · f767f94a
ChatGPT-User200306.7 KBmême texte, octets différentsconservé · f767f94a
Claude-User200306.7 KBmême texte, octets différentsconservé · f767f94a
Perplexity-User200306.7 KBmême texte, octets différentsconservé · 11ba378b
Googlebot200306.7 KBmême texte, octets différentsconservé · 11ba378b
Googlebot Smartphone200306.7 KBoctets identiquesconservé · 3a644788
Navigateur mobile200306.7 KBla référenceconservé · 3a644788
Navigateur mobile (témoin)200306.7 KBoctets identiquesconservé · 3a644788
Bingbot200306.7 KBmême texte, octets différentsconservé · f767f94a
Applebot200306.7 KBmême texte, octets différentsconservé · 11ba378b
Amazonbot200306.7 KBmême texte, octets différentsconservé · 1378a569
Bytespider429162 Brefusé (HTTP 429)conservé · 413d294f
Meta-ExternalAgent403146 Brefusé (HTTP 403)conservé · 32f2fa94
CCBot200306.7 KBmême texte, octets différentsconservé · 11ba378b
Récupération CrawlCheck (page d’accueil)200306.7 KB—conservé · dc318faa
Fichiers récupérés par CrawlCheck
/robots.txt2004.5 KB—conservé · ff800a4d
/sitemap.xml200868 KB—conservé · 493fa919
/sitemap_index.xml40493 KB—conservé · fa12fd3c
/wp-sitemap.xml200146.1 KB—conservé · a196f657
/llms.txt40493 KB—conservé · 3557f155
/entitymap.json40493 KB—conservé · 928fb366

Les tailles correspondent à chaque corps de réponse tel que la requête l’a renvoyé : compression de transfert retirée, avant tout décodage du texte. Un lien « conservé » recalcule le hash de la copie stockée dans notre worker et indique si elle correspond toujours à son condensé ; les octets eux-mêmes ne sont pas republiés.

La chaîne de découverte se rompt à llms.txt : tout ce qui suit n’est accessible qu’en devinant le chemin conventionnel. Lignes concernées.

Où vont les octets

Sur les 313 548 octets décompressés que livre la page d’accueil, 4.4% sont du texte qu’un lecteur ou un modèle peut réellement utiliser. L’essentiel de ce qu’un robot télécharge ici n’est pas des mots.

  • Texte lisible 4.4% · 13 731 B
  • Balisage & attributs 65.1% · 204 197 B
  • Données structurées (JSON-LD) 0.7% · 2 238 B
  • CSS en ligne 14.8% · 46 455 B
  • JavaScript en ligne 14% · 43 837 B
  • SVG en ligne 0.1% · 372 B
  • Commentaires HTML 0.9% · 2 718 B

Les blocs les plus lourds, un par un, pour que la correction soit une recherche et non une chasse :

  • CSS en ligne · 44 440 o (14,2 %) — sans nomcommence par @import url(https://fonts.googleapis.com/css2?family=Inter:ital,opsz,w
  • JavaScript en ligne · 14 517 B (4.6%) — #digisubs-social-login-js-aftercommence par (function () { var logPrefix = '[digisubs-social-login]'; var readyTim
  • JavaScript en ligne · 4 739 B (1.5%) — #mng-ad-free-7day-js-aftercommence par ( function () { const config = window.mngAdFree7DayConfig; if ( ! conf

Toutes les sections

25 sur 41 comptent dans la note. Le gris signifie mesuré et volontairement non pondéré - cela ne compte pour rien plutôt que pour zéro, et chaque carte grise explique pourquoi. Ouvrez n’importe quelle section pour voir les lignes derrière : ce qui a été mesuré, sa valeur actuelle et la plage conforme.

Fichiers machine67robots.txt, llms.txt, sitemap et le graphe d’entités : présents, lisibles et servis avec le bon type notéSurfaces pour agents—Normes émergentes (agents.md, catalogue d’API, carte MCP). Mesuré à titre informatif uniquement non noté : ce sont des standards publiés à des stades d’adoption très différents, et plusieurs ne s’appliquent pas à toutes les entreprisesServeur & hébergement80Ce que la périphérie réseau et l’origine nous ont indiqué : état du cache, compression, le logiciel derrière la page notéDonnées structurées55Le graphe d’entités JSON-LD : @id stables, nœuds reliés, qualifications et établissements déclarés notéDonnées liées100Si les données structurées s’analysent comme un RDF correct et que rien ne reste en suspens notéAuteurs & signaux de confiance57Personnes nommées, articles datés, une organisation avec ses coordonnées : les indicateurs qu’un moteur utilise pour la confiance notéStructure d’accessibilité96Langue, texte alternatif, contrôles étiquetés et un seul repère principal, lus depuis le HTML livré notéCorroboration de l’entité100Si les liens d’identité que le site déclare pointent en retour vers lui, et si une fiche Wikidata nomme ce domaine notéEntités du contenu—Éléments nommés dans le texte de la page qu’un graphe de connaissances reconnaît. Mesuré, non noté non noté : la lecture est fiable mais la règle de notation n’est pas arrêtée, et une règle susceptible de changer ne doit pas faire bouger une noteContenu citable67Si les phrases qu’un moteur de réponse reprendrait sont sur la page sous une forme qu’il peut prendre : une accroche qui définit, des paragraphes factuels courts, des questions avec réponse, peu d’ouvertures à la première personne notéCarte de la zone desservie—Chaque lieu déclaré par le schema, placé sur une même carte autour du centre et du rayon déclarés : lesquels ont une page, lesquels tombent hors du cercle. Mesuré, pas noté non noté : une zone desservie déclarée ne peut être juste ou fausse que par rapport à des faits que cette analyse ne peut pas voirSite entier—Jusqu’à 60 pages déclarées, lues une fois par jour après une analyse : non-200, pages minces ou surtout composées de code, JSON-LD manquant, canonique ailleurs, noindex, h1 manquant ou en double, orphelines, pages non déclarées, titres en double, ainsi que la médiane des mots, de la part de texte et du temps de réponse. Chaque décompte est gratuit ; Watch nomme les pages. Mesuré, non noté non noté : la note reste ancrée sur la page d’accueil pour être comparable d’un site et d’un jour à l’autreFraîcheur—Chaque date que le site publie à son propre sujet : lastmod du sitemap, Last-Modified, dateModified, éléments datés, et les endroits où ils divergent. Mesuré, non noté non noté : chaque date ici a été publiée par le site, cela rapporte donc ce qu’il affirme plutôt que ce qui est vrai. Calibré le 2026-09-16 sur 114 enregistrements : la seule ligne que portent la plupart des sites (un sitemap qui déclare lastmod, 68 %) n’est pas un défaut quand elle manque, et les lignes qui seraient des défauts (tous les lastmod datés du même jour, 8 % ; sitemap et dateModified en désaccord de plus d’un mois, 2 %) ne peuvent être mesurées que sur trop peu de sites pour peserGaspillage d’exploration100Récupérations qui ne produisent aucune nouvelle page : variantes de paramètres et de casse, liens http, URL déclarées redirigées ou disparues, pages canoniques ailleurs et noindex notéSujet de la page100De quelle entité commerciale traite la page et comment chaque autre entité commerciale présente y est liée : chaîne, filiale, service, ou non déclarée notéIntentions locales—Quels types d’intention Google Maps le site s’attribue, et lesquels ont une page liée depuis la page d’accueil. Mesuré, non noté non noté : le vocabulaire des intentions est fait de noms reconstitués sans poids, et une intention revendiquée sans page est une décision de contenu, pas un défaut ; rapporté jusqu’à ce que le corpus montre comment il se répartitParcours de conversion—Lien téléphonique, formulaire et appel à l’action sur la page, et s’ils se situent avant la ligne de flottaison. Mesuré, non noté non noté : savoir si un visiteur peut agir relève d’un jugement commercial, et la note porte sur ce qu’une machine reçoitAutorisations des robots33Ce que robots.txt autorise réellement à chaque robot d’IA et de recherche nommé notéVitesse44La rapidité avec laquelle la page a répondu à notre requête, plus les données terrain de vrais visiteurs quand Google en dispose notéPoids de page & texte20Combien des octets livrés sont des mots lisibles, et quelle part est du balisage, des scripts et du style notéChaîne des fichiers machine100robots.txt nomme le sitemap, llms.txt renvoie plus loin, le graphe d’entités renvoie à l’accueil : la chaîne qu’un robot suit notéCohérence des affirmations100Nom, téléphone, ville et années d’activité concordent entre les données structurées et la page visible notéInstructions pour les agents100Texte destiné aux agents IA plutôt qu’aux personnes : présent, visible et non masqué notéCe que reçoit chaque robot88Chaque robot nommé a récupéré la page ; il s’agit de savoir s’ils ont tous reçu la même chose notéMobile100Viewport, zoom, icônes et manifeste : un téléphone reçoit-il une page utilisable notéPrésence locale & NAP86Adresse postale, coordonnées géographiques, horaires, téléphone, et les fiches d’annuaires que le site lui-même déclare notéWhat AI looks for—The facts an AI model weighs when it picks a business, ordered by how far each moved its ranking in CrawlCheck's tests, and whether the homepage shows each one. Measured, not scored not scored: the effects come from one model ranking fictional businesses, and a fact a business does not have should never be added to please a modelTrust and reputation—Red flags an agent should check before it cites or calls a business: the phone number in FTC unwanted-call complaints, malware or phishing listing, domain age and registration, parked or for-sale pages and redirects to another organisation. Measured, not scored. not scored: these are signals to check, not proof: a complaint can come from someone spoofing the number, and a young domain can be an honest new businessClaims and their evidence—Each fact the site states about itself beside every outside source that confirms or contradicts it. Measured, not scored. not scored: a source that cannot be read is not evidence against a claim, and a listing can lag a real change, so this reports what agrees rather than grading itSite safety—Malware or phishing listing, HTTPS and certificate, each security header graded, forms and where they send data, cookies, the http:// redirect, libraries with published advisories, sampled login, contact and checkout pages, changes since the last read, insecure resources, exposed versions, email forgery protection and domain registration. Measured, not scored. not scored: only a malware or phishing listing changes what AI systems do with a site, and the rest is protection rather than a property of what a machine is servedExposed files and secrets89Backups, environment files, repository folders, debug logs and keys reachable on the live host notéAI rights and consent—What the site declares AI may do with its pages, per use, which signal decided it, and where signals disagree. Measured, not scored non noté : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une notePrice transparency—Whether the page states what the work costs, in text and in markup, and whether the two agree. Measured, not scored non noté : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une noteThird-party dependencies—Every outside host the page loads, grouped, and the ones that hold the page until they answer. Measured, not scored non noté : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une noteLanguage and region—Declared language, hreflang alternates and the region the page serves. Measured, not scored non noté : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une noteWhere AI already cites this site—Answer-engine arrivals and citations this site has already received. Measured, not scored non noté : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une notePages d’erreur100A missing page answers 404 with a real page, not a 200 soft 404 or a blank; the error page is not a dead end notéSitemap100Un sitemap existe, se résout et déclare les pages vers lesquelles la page d’accueil renvoie notéLiens internes100Les ancres portent des mots, les cibles se résolvent, et le graphe de liens n’est pas surtout fait de répétitions notéNommage des URL80Hôtes et chemins en minuscules, aucun doublon ne différant que par la casse, fichiers machine correctement orthographiés notéSignaux d’image80Texte alternatif, dimensions déclarées, chargement différé, formats modernes, priorité de l’image principale et image de l’entité dans le JSON-LD. noté

🔒 Verrouillé dans l’analyse gratuite : 11 sections

Ces sections exigent un historique conservé dans le temps, ou une connexion que seul le propriétaire du site peut établir ; elles sont donc listées par titre, sans données. Watch ouvre les dix premières ; la dernière relève de Studio.

L’historiqueÂge des constats, dates de première détection et de clôture, retour éventuel d’un défaut - chaque mesure en série datée, chaque jour scellé WatchReçus de modificationL’avant et l’après entre deux dates quelconques, sous forme d’artefact qu’un tiers vérifie sur sa propre machine WatchQuelles pagesNon-200, pages minces, sans JSON-LD, canonique ailleurs, noindex, orphelines, non déclarées et titres en double - nommées, sur jusqu’à 60 pages déclarées WatchLe parcours de 300 pagesLe graphe de liens et chaque page qu’il contient, à la demande, par domaine WatchSuivi des citationsUne fois par jour, on pose aux moteurs les questions auxquelles vos pages répondent ; une première citation, une place perdue, des faits erronés affirmés WatchArrivées et prospectsSource du premier et du dernier contact pour chaque prospect, assistants IA nommés comme tels, référent manquant signalé comme inconnu WatchSéries Search ConsoleClics et impressions par propriété et par jour, lus à côté de l’historique des analyses WatchSéries Business ProfileImpressions, demandes d’itinéraire et clics vers le site depuis la fiche associée au site WatchAnnuaires et liens entrantsQuels annuaires répertorient l’entreprise et sous quel nom, et qui fait un lien vers le site WatchYouTubeUne chaîne vérifiée en entier par rapport aux champs d’ancrage vidéo, et si le site présente ses vidéos avec le schéma VideoObject WatchIdentity GuardQuels robots d’IA vérifiés ont réellement atteint le serveur, lu depuis le site lui-même - vérifiés, falsifiés, invérifiables Studio

Ce que le site déclare à son propre sujet

Les faits qu’un moteur de réponse pourrait répéter sur cette entreprise, tirés uniquement de ce que cette analyse a récupéré, avec l’endroit où chacun a été trouvé. Tout ce qui est absent est [non déclaré] : un moteur interrogé à ce sujet devrait deviner.

FaitDéclaré commeTrouvé dansConcordanceVu pour la première fois
NomThe Denver Post2026-09-19
Téléphone(303) 954-1010données structurées uniquementnon affiché aux lecteurs2026-09-19
Adresse5990 Washington St., Denver, CO, 802162026-09-19
Point sur la carte39.7392, 104.9903données structuréesinverser le signe de la longitude la place aux États-Unis - un signe moins manquant2026-09-19
Horaires d’ouverturedéclarédonnées structurées2026-09-19
Type d’entrepriseLocalBusinessdonnées structurées2026-09-19
Profils liés3 (Facebook, X, LinkedIn)liens sur le site3 sur 3 renvoient vers le site

Tout ce qui a été mesuré d’autre

Mesuré à titre informatif, non noté

Surfaces pour agents—Normes émergentes (agents.md, catalogue d’API, carte MCP). Mesuré à titre informatif uniquementEntités du contenu—Éléments nommés dans le texte de la page qu’un graphe de connaissances reconnaît. Mesuré, non notéCarte de la zone desservie—Chaque lieu déclaré par le schema, placé sur une même carte autour du centre et du rayon déclarés : lesquels ont une page, lesquels tombent hors du cercle. Mesuré, pas notéSite entier—Jusqu’à 60 pages déclarées, lues une fois par jour après une analyse : non-200, pages minces ou surtout composées de code, JSON-LD manquant, canonique ailleurs, noindex, h1 manquant ou en double, orphelines, pages non déclarées, titres en double, ainsi que la médiane des mots, de la part de texte et du temps de réponse. Chaque décompte est gratuit ; Watch nomme les pages. Mesuré, non notéFraîcheur—Chaque date que le site publie à son propre sujet : lastmod du sitemap, Last-Modified, dateModified, éléments datés, et les endroits où ils divergent. Mesuré, non notéIntentions locales—Quels types d’intention Google Maps le site s’attribue, et lesquels ont une page liée depuis la page d’accueil. Mesuré, non notéParcours de conversion—Lien téléphonique, formulaire et appel à l’action sur la page, et s’ils se situent avant la ligne de flottaison. Mesuré, non notéWhat AI looks for0The facts an AI model weighs when it picks a business, ordered by how far each moved its ranking in CrawlCheck's tests, and whether the homepage shows each one. Measured, not scoredTrust and reputation88Red flags an agent should check before it cites or calls a business: the phone number in FTC unwanted-call complaints, malware or phishing listing, domain age and registration, parked or for-sale pages and redirects to another organisation. Measured, not scored.Claims and their evidence100Each fact the site states about itself beside every outside source that confirms or contradicts it. Measured, not scored.Site safety79Malware or phishing listing, HTTPS and certificate, each security header graded, forms and where they send data, cookies, the http:// redirect, libraries with published advisories, sampled login, contact and checkout pages, changes since the last read, insecure resources, exposed versions, email forgery protection and domain registration. Measured, not scored.AI rights and consent100What the site declares AI may do with its pages, per use, which signal decided it, and where signals disagree. Measured, not scoredPrice transparency67Whether the page states what the work costs, in text and in markup, and whether the two agree. Measured, not scoredThird-party dependencies33Every outside host the page loads, grouped, and the ones that hold the page until they answer. Measured, not scoredLanguage and region100Declared language, hreflang alternates and the region the page serves. Measured, not scoredWhere AI already cites this site—Answer-engine arrivals and citations this site has already received. Measured, not scored

Détail de la section

Chaque ligne : la mesure, sa valeur actuelle, la plage conforme, et si ce site s’y trouve. n/a signifie que la donnée n’a pas pu être mesurée et que la ligne est exclue, pas en échec.

Couche machine — 67/100
Score de la section 67 / 100
MesureActuellementOptimal
robots.txt
un robot qui ne peut pas lire le robots.txt considère souvent que tout est interdit
200 · 4567B200, text/plain, 100–4 000 B✓ Réussi
Sitemap XML
sans lui, un robot recense le site uniquement en suivant les liens
en ligne200, XML valide, à un chemin nommé par le robots.txt✓ Réussi
llms.txt
rapporté, pas noté. Certains agents le récupèrent et sa publication ne coûte rien, donc la ligne reste. Il n’est pas noté parce que rien de ce que nous avons mesuré, ni rien de ce que nous avons lu, ne relie sa présence à une citation ou à un classement — une étude portant sur environ 300 000 domaines n’a trouvé aucune corrélation, et retirer la variable a rendu le modèle plus précis, pas moins. Noter un fichier dont nous ne pouvons pas démontrer l’effet lui donnerait un prix pour nos clients sur notre seule parole
absent (404)200, text/plain, 2 000–50 000 BSignalé
security.txt
reported, not scored. Expires is required by RFC 9116; an expired file tells a researcher its contact may be stale
absent (404)a Contact and a future Expires, served as text/plain (RFC 9116)Signalé
entitymap.json
couche d’entités lisible par machine ; facultative, mais c’est le signal d’identité le plus fort disponible
absent (404)200, application/json✗ Échoué
À quel point ce que publie ce site est rare
les chiffres d’adoption sont des agrégats tiers lus en août 2026 et comptent les sites de cet index plutôt que le web entier ; ils servent à mesurer l’opportunité, pas à noter le site
llms.txt — environ 70 200 sites en publient un ; celui-ci n’en fait pas partie. entitymap.json — absent, et aucun chiffre d’adoption tiers n’existe pour ce fichier. à titre de comparaison, environ 677 748 sites publient quoi que ce soit conçu pour les agents, et environ 107 200 interdisent désormais purement et simplement GPTBot : une politique IA est donc courante, alors qu’une carte du site lisible par machine ne l’est pas.publier ce que presque personne ne publie, et le garder exactSignalé
Accord entre hôtes
un robot qui résout www ne doit pas recevoir une autre couche machine
les hôtes concordent0 fichiers divergents✓ Réussi
Served whatever the Accept header
crawlers ask for machine files with Accept: */* or a text type, not text/html
same answer to Accept: */*every live file answers Accept: */*✓ Réussi
Coût d’un fichier manquant
chaque fichier absent facture au robot une page HTML 404 complète
3 fichier(s) manquant(s) renvoient >20 KB de HTMLun fichier machine manquant devrait renvoyer un 404 léger, pas une page complète✗ Échoué

Hôtes et URL

/robots.txtwww.denverpost.com : 200 · 4 567 B en ligne
denverpost.com : 301 → https://www.denverpost.com/robots.txt
/llms.txtwww.denverpost.com : 404 · 95 230 B de HTML (pas le fichier)
denverpost.com : 301 → https://www.denverpost.com/llms.txt
/entitymap.jsonwww.denverpost.com : 404 · 95 247 B de HTML (pas le fichier)
denverpost.com : 301 → https://www.denverpost.com/entitymap.json
/sitemap.xmlwww.denverpost.com : 200 · 888 839 B en ligne
denverpost.com : 200 · 888 839 B en ligne
/sitemap_index.xmlwww.denverpost.com : 404 · 95 255 B de HTML (pas le fichier)
denverpost.com : 301 → https://www.denverpost.com/sitemap_index.xml

Analysé sur www.denverpost.com. denverpost.com fait une redirection 301 vers www.denverpost.com, c’est donc l’hôte qu’un robot finit par lire. Sondé sans suivre les redirections, donc un 200 ici signifie que le fichier est servi à cette URL exacte — une redirection suivie signalerait un fichier qui se trouve ailleurs. L’hôte denverpost.com sert sa propre couche machine. Un robot qui résout ce nom d’hôte lit ces fichiers-là, pas ceux de www.denverpost.com.

Serveur et hébergement — 80/100
Score de la section 80 / 100
MesureActuellementOptimal
Compression
notre récupération décompresse le corps et supprime l’en-tête content-encoding avant que nous puissions le lire — c’est notre limite, pas un constat sur le site. Vérifiez-le dans l’onglet réseau d’un navigateur, ou avec curl --compressed -I
non visible d’icibr de préférence, gzip acceptableNon mesuré
Edge / CDN
absorbe la charge des robots et garde les fichiers machine rapides
aucun détectéun CDN devant l’origine✗ Échoué
HTTP/3 advertised
HTTP/3 runs over QUIC (UDP datagrams) and recovers faster on lossy mobile networks; crawlers still fetch over HTTP/1.1 and HTTP/2, so this is not scored. Whether the QUIC handshake itself completes cannot be tested from a server fetch. An ech= key in the same DNS record is Encrypted Client Hello (RFC 9849, published in DNS per RFC 9848), which hides the site name from the network.
nonh3 in the Alt-Svc header or the DNS HTTPS recordSignalé
Post-quantum key exchange
Hybrid key exchange protects today’s traffic against later decryption by a quantum computer (harvest now, decrypt later). Browsers offer it by default; most CDNs agree it. Measured weekly from outside by offering only that group; not scored. The share across measured sites is at /data/tls-posture.
not in the weekly probe sample (2026-11-09)X25519MLKEM768 agreed (RFC 10024)Signalé
État du cache
DYNAMIC signifie que chaque passage de robot atteint l’origine. Affiché, non noté : les lignes de vitesse ci-dessous notent ce que cela coûte, et noter aussi le mécanisme le compterait deux fois
4 sur 5 fichiers machine DYNAMICHIT ou MISS sur les fichiers machine ; DYNAMIC est le réglage par défaut de Cloudflare pour .txt et .xmlSignalé
Divulgation de version
une version publique du CMS indique à un attaquant exactement quelles failles essayer
non divulguéeaucune version de générateur dans le HTML✓ Réussi
Divulgation de l’environnement d’exécution
même raison que ci-dessus
non divulguéeaucun en-tête x-powered-by✓ Réussi
Vary
détermine si une copie en cache est réutilisée correctement
accept-encodingAccept-Encoding au minimum✓ Réussi
Strict-Transport-Security
max-age 365 jours, sous-domaines inclus · hstspreload.org : inconnu. Affiché, non noté : HSTS ne change rien à ce que reçoivent les robots
max-age=31536000;includeSubdomainsmax-age avec includeSubDomains ; preload seulement si c’est vouluSignalé
Balises de vérification webmaster
balises meta uniquement — les vérifications par DNS ou par fichier ne laissent rien dans le HTML, donc une balise absente ne prouve pas l’absence d’inscription. Affiché, non noté
Google aucune balise visible · balise Bing présente · Yandex aucune balise visibleBing au minimum : son index alimente la recherche ChatGPT et CopilotSignalé
Rendu côté client
framework présent, HTML livré avec du texte. Mesuré sur les octets envoyés par le serveur, pas sur une vue rendue
bundle de scripts, aucun framework connu · 2099 mots livréstexte présent dans le HTML livré✓ Réussi
ApplicationWordPress
détecté à partir du HTML livré, pas d’un en-tête qui peut être supprimé
Varie selonaccept-encoding
une réponse qui varie peut être mise en cache différemment selon le client
Schema et graphe d’entités — 55/100
Score de la section 55 / 100
MesureActuellementOptimal
Nœuds d’entité
sans schema, le site n’a aucune identité déclarée
3au moins 3 nœuds typés✓ Réussi
Couverture en @id stables
sans @id, chaque page déclare une entité entièrement nouvelle et sans lien
33.3%80–100%✗ Échoué
Liens de qualification
la forme lisible par machine de ce qui qualifie cette entreprise ; un éditeur, une boutique ou un SaaS n’y sont pas tenus
0au moins 1 (licence, adhésion ou distinction) pour un service local ou professionnel✗ Échoué
Établissements sans adresse postale
une entreprise à zone desservie l’omet légitimement — non noté dans un sens ou dans l’autre
00 pour une entreprise avec locaux ; attendu pour une zone de service✓ Réussi
Déclarations sameAs
sameAs affirme une identité ; une cible ERRONÉE affirme donc que l’entreprise est autre chose. Un grand nombre de profils corrects n’est pas un défaut ; une seule cible qui ne renvoie pas ici en est un.
3 (3 corroborés, 0 sans lien retour, 0 morts)au moins 2, aucun mort, au moins un qui renvoie ici✓ Réussi
sameAs pointant vers un lieu
un lien de carte dans sameAs affirme que l’entreprise EST cet emplacement
10✗ Échoué
Nombre de H1
pratique courante, pas une règle Google : Google indique qu’une page avec plusieurs titres h1 ne pose pas de problème. Un seul h1 qui nomme le sujet donne tout de même aux lecteurs et aux moteurs de réponse le plan le plus clair, il est donc conservé comme vérification de bonne pratique
21 (pratique courante)✗ Échoué
Niveaux de titres sautés
un niveau sauté casse le plan du document qu’un analyseur construit
00✓ Réussi
Canonique
sans elle, les doublons se concurrencent
présenteprésente sur chaque page✓ Réussi
Méta-description
pratique courante, pas une règle Google : Google ne fixe aucune limite de longueur et tronque les extraits pour les adapter à l’écran, en les réécrivant souvent. Au-delà d’environ 160 caractères, la fin est généralement coupée ; en dessous de 50, elle se lit comme une étiquette, pas comme une description. 95 caractères, c’est bien
157 caractères50–160 caractères (pratique courante)✓ Réussi
Largeur du titre dans les résultats de recherche
display, not ranking: Google measures a title by width, not characters, shows about 600 px of it on desktop and ends the rest with an ellipsis (it may also rewrite the title). Cut off: “weather, entertainment.”. Put the words that matter first.
765 px — shows as “The Denver Post – Colorado breaking news, sports, business, ...”jusqu’à environ 600 px (Google sur ordinateur, Arial 20 px)✗ Échoué
sameAs · 3 profilesdeclared relations · 0facebook.com/denverpostlinks backx.com/denverpostlinks backlinkedin.com/company/denver-post-…links backnone declared (owns, brand, founder, subOrganization …)LocalBusinessThe Denver Postrobots.txtpublishedsitemap.xmlpublishedsitemap_index.xmlHTTP 404wp-sitemap.xmlpublishedllms.txtHTTP 404machine files read on this scan
The entity graph as this site’s own structured data declares it: The Denver Post in the middle, 3 sameAs profiles (3 confirmed to link back), 0 declared relations. A profile that links back is evidence an assistant can check; one that does not is only a claim.
Entités déclarées3 nœuds, 2 types distincts
Identité stable1 sur 3 portent un @id (33,3 %)
Sans @id, un nœud ne peut être ni référencé ni fusionné — chaque page redéclare une nouvelle entité sans lien.
Liens de qualification0
Licences, adhésions et récompenses exprimées comme liens du graphe plutôt qu’en prose.
Liens thématiques0
Un nombre élevé avec des valeurs génériques signifie généralement que le graphe sert à stocker des mots-clés.
Établissements1 déclarés, 0 sans adresse postale
Déclarations sameAs3 au total · 1 liens de carte · 0 résolus vers cette entité · 1 résolus vers un lieu
sameAs affirme une identité. Un lien de carte pointant vers une ville affirme que l’entreprise est cette ville. Aucun validateur ne le signale — cela n’apparaît que si les cibles sont résolues.
Structure du document2 h1 · 129 titres · 0 sauts de niveau · canonique présente · meta description de 157 caractères
Surface RDF et données liées — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
Blocs JSON-LD analysables
un bloc non analysable n’apporte aucun triplet et ressemble, pour un validateur qui compte les balises, à des données structurées bien présentes
2 sur 2chaque bloc✓ Réussi
@context est schema.org
un graphe dans un autre vocabulaire est du RDF valide qu’aucun résolveur de moteur de réponse n’est conçu pour lire
2 sur 2chaque bloc✓ Réussi
Triplets déclarés (approximatif)
la taille de ce que reçoit réellement un lecteur de données liées ; une seule Organization avec un nom et une URL représente trois déclarations
68au moins 20 sur une page d’accueil✓ Réussi
Références @id orphelines
une référence à un @id qu’aucun nœud ne déclare est une déclaration sur rien ; le résolveur abandonne le lien et l’entité perd cette relation
00✓ Réussi
Nœuds de premier niveau portant une IRI de sujet
un nœud racine ou @graph sans @id est un sujet anonyme qu’aucune autre page ni aucun autre site ne peut référencer ; les valeurs imbriquées (une adresse, une offre, un élément de liste) n’y sont pas tenues
0 sur 2 (12 nœuds au total)chaque entité déclarée par la page — affiché ; la section schema note la couverture en @idSignalé
RDFa et Microdata
Des sérialisations secondaires lues par certains analyseurs, et un second endroit où les faits peuvent diverger. Non noté tant que JSON-LD est présent ; quand une page ne déclare aucun nœud JSON-LD, ses Microdata et RDFa schema.org sont lus comme son graphe et chaque contrôle d’entité s’y applique
ni RDFa, ni Microdata, 23 meta Open Graphfacultatif ; une seule sérialisation tenue exacte vaut mieux que trois qui divergentSignalé
Négociation de contenu RDF
Un client compatible RDF a envoyé Accept: text/turtle. Presque aucun site commercial ne répond par un graphe et l’absence n’est pas un défaut ; un site qui le fait donne à la machine les mêmes faits en un dixième des octets. Non noté
text/html servi (HTTP 200), Vary: Acceptfacultatif : text/turtle ou application/ld+json pour un client qui le demandeSignalé
Représentation RDF alternative liée
Indique à un client de données liées où se trouve le graphe sans négociation. Non noté
aucunefacultatif : <link rel=alternate type=text/turtle> ou un en-tête LinkSignalé
Identifiants de nœuds vides (_:)
Un label _: est local à un document et change d’une sérialisation à l’autre ; rien sur une autre page ou un autre site ne peut y faire référence. Affiché, pas noté
aucuneaucun : chaque entité reçoit un IRI persistantSignalé
Entreprise déclarée sous deux @id
Deux nœuds portant le même nom et des @id différents sont deux sujets pour un lecteur de graphe ; le #organization d'une extension à côté du /#org d'un thème divise une entreprise en deux. Affiché, pas noté
aucuneun seul @id par entreprise, réutilisé partoutSignalé
Convention des @id locaux
Les identifiants à dièse et à chemin sont tous deux valides ; les mélanger pour un même type d’entité est la façon dont apparaissent les sujets en double. Affiché, pas noté
aucun @id localune seule convention sur tout le siteSignalé
Même adresse orthographiée de deux façons
/café/ et /caf%C3%A9/ sont la même page pour un navigateur et deux IRI différents pour un graphe ; la dérive de l’encodage-pourcent divise le nœud. Affiché, pas noté
aucuneune seule orthographe exacte à l’octet près par ressourceSignalé
IRI hors forme Unicode NFC
Les formes composée et décomposée d’un même caractère diffèrent octet par octet, si bien qu’un même identifiant écrit deux fois peut ne pas correspondre à lui-même. Affiché, pas noté
aucun sur 6NFC partoutSignalé
Noms de domaine internationaux non encodés
Les analyseurs qui attendent un hôte ASCII peuvent rejeter ou réencoder un hôte Unicode différemment de la forme canonique. Affiché, pas noté
aucunela forme xn-- (Punycode) dans les données structuréesSignalé
Forme de l’identifiant Wikidata
Les deux renvoient au même élément. Les mélanger est sans conséquence pour Wikidata et coûte une étape de normalisation à un lecteur qui compare des chaînes. Affiché, pas noté
aucun sameAs Wikidatal’une ou l’autre ; /entity/Q… est l’IRI du concept, /wiki/Q… la page qui le décritSignalé
Profils sameAs qui répondent
Lu à partir des récupérations de corroboration d’entité (jusqu’à six profils par analyse) ; un profil mort est une revendication d’identité qui ne pointe vers rien. Noté là-bas, affiché ici
3 ont répondu, 0 morts, 0 invérifiableschaque profil déclaré répondSignalé

JSON-LD est une sérialisation RDF, donc chaque bloc schema ci-dessus est déjà un graphe de triplets. Cette section le lit comme un seul graphe : 68 déclarations sur 0 sujets identifiés, 1 référence entre eux, aucune en suspens. Le nombre de triplets est approximatif : chaque valeur de propriété compte pour une déclaration et chaque @type pour une de plus ; les objets imbriqués sans @id sont comptés comme des valeurs, pas développés. Poids 0.8 dans la note globale, en dessous de la section schema qu’elle recoupe.

Signaux d’auteur et de confiance (indicateurs E-E-A-T) — 57/100
Score de la section 57 / 100
MesureActuellementOptimal
Une personne nommée est déclarée
un évaluateur qui cherche qui est derrière trouve une réponse lisible par machine ou rien ; un site sans nœud Person est anonyme pour un résolveur
aucuneau moins 1 nœud Person avec un nom✗ Échoué
La personne porte des propriétés d’expertise
jobTitle, hasCredential, alumniOf, memberOf, knowsAbout ou award : les déclarations qui disent POURQUOI cette personne est qualifiée, sous une forme qu’un lecteur peut vérifier
—chaque personne nomméeNon mesuré
La personne est corroborée ailleurs (sameAs)
une personne qui n’existe que sur ce site est une affirmation ; une personne dont les profils renvoient ici est un fait que d’autres affirment aussi
—chaque personne nomméeNon mesuré
La personne a sa propre page
la page sur laquelle arrive un évaluateur pour juger l’expérience ; sans elle, la personne n’est qu’un nom dans une balise script
—une url ou un mainEntityOfPage pour chacuneNon mesuré
Les articles nomment un auteur typé
un author sous forme de chaîne est une étiquette ; un author sous forme d’objet Person ou Organization est une entité qui peut porter l’expertise ci-dessus
aucun nœud Article sur cette pagechaque articleSignalé
Les articles portent datePublished et dateModified
la fraîcheur est lue dans dateModified ; un article avec seulement une date de publication paraît jamais mis à jour
—les deux sur chaque articleNon mesuré
L’Organization déclare qui la dirige
relie l’entité de l’entreprise aux entités des personnes ; sans ce lien, les deux graphes ne se rejoignent jamais
0 sur 2founder, employee ou member sur l’organisation✗ Échoué
L’Organization déclare foundingDate
la seule affirmation derrière chaque compteur « années d’expérience » qu’un lecteur peut vérifier auprès d’un registre
1 sur 2sur l’organisation principale✓ Réussi
Moyen de contact déclaré dans le schema
une entreprise qui ne peut être jointe par aucun canal indiqué est invérifiable par définition
1 sur 2telephone, email ou contactPoint✓ Réussi
Page À propos liée depuis la page d’accueil
la page qu’un évaluateur ouvre en premier ; si la page d’accueil n’y renvoie pas, la plupart des lecteurs ne la trouvent jamais
nonliée✗ Échoué
Page de contact ou contact direct liés
un moyen de contact dans le HTML livré, pas seulement dans une image de pied de page ou un widget qui s’affiche plus tard
ouiliée✓ Réussi
Politique de confidentialité ou conditions liées
le signal de confiance le moins cher de la liste, et celui que les petits sites omettent le plus souvent
ouiliée✓ Réussi
Les notes portent une valeur et un nombre
une note sans nombre d’avis est un chiffre que personne ne peut évaluer ; un nombre sans avis derrière a la forme d’une note fabriquée
aucun aggregateRatingratingValue avec reviewCount ou ratingCountSignalé
Références sortantes
Les citations vers l’extérieur font partie de la lecture de l’autorité, et un décompte ne peut pas dire si elles sont bonnes. Non noté
19 hôtes externes liés (hors réseaux sociaux) : checkout.denverpost.com, accuweather.com, enewspaper.denverpost.comcitez ce sur quoi le contenu s’appuie ; il n’y a pas de bon nombreSignalé

Ce que cela peut dire, et ce que cela ne peut pas dire. E-E-A-T est un jugement qu’un évaluateur porte sur l’expérience, l’expertise, l’autorité et la fiabilité ; il ne circule pas sur le réseau et CrawlCheck ne prétend pas le noter. Chaque ligne ci-dessus est une déclaration lisible par machine qu’un site fait et qu’un lecteur pourrait utiliser comme preuve à l’appui de ce jugement, mesurée à partir de la page d’accueil livrée et de son JSON-LD. Une ligne entièrement réussie ne crée pas l’expertise, et une ligne d’échecs ne la réfute pas ; ce qu’elles décident, c’est si une machine qui lit ce site peut seulement trouver la preuve. Poids 1.0 dans la note globale, le même que la charge utile : ce que mesurent ces lignes, c’est si la preuve est trouvable par une machine, et c’est la partie que CrawlCheck peut garantir.

Structure d’accessibilité (d’après le HTML livré) — 96/100
Score de la section 96 / 100
MesureActuellementOptimal
Langue du document déclarée
un lecteur d’écran en tire sa voix et sa prononciation ; sans elle, chaque mot est lu dans la langue par défaut de l’utilisateur
lang=en-USun attribut lang valide sur <html> (3.1.1)✓ Réussi
La page a un titre
la première chose annoncée à l’ouverture d’une page, et l’intitulé de chaque onglet et favori
89 caractèresun <title> non vide qui nomme la page (2.4.2)✓ Réussi
Les images portent un attribut alt
un attribut alt manquant fait annoncer le nom du fichier ; alt="" marque une image comme décorative et c’est correct
44 sur 44chaque image (alt="" pour la décoration)✓ Réussi
Les champs de formulaire ont un nom
un champ sans nom est annoncé comme "texte modifiable" ; un placeholder n’est pas une étiquette, il disparaît à la première frappe
1 sur 2 (manquant : checkbox)un <label for>, un label englobant, un aria-label ou un title sur chacun✗ Échoué
Les boutons ont un nom accessible
un bouton composé d’une seule icône et sans nom est annoncé comme "bouton" et rien d’autre
3 sur 3du texte, un aria-label ou une image avec alt dans chacun✓ Réussi
Les cadres ont un titre
un cadre sans titre est un trou dans l’ordre de lecture que l’utilisateur ne peut ni identifier ni sauter volontairement
aucun cadreun title sur chaque iframeSignalé
Un seul repère principal
la zone vers laquelle un lecteur saute pour le contenu ; en avoir deux est aussi inutilisable que de n’en avoir aucun
unexactement un <main> ou role=main✓ Réussi
Un moyen de passer la navigation
sans cela, chaque page commence par une tabulation à travers tout le menu
lien d’évitementun lien d’évitement, ou des repères nav et main✓ Réussi
Aucun id en double
4.1.1 Analyse syntaxique est obsolète (errata du W3C, 2023), donc un id en double n’est pas à lui seul un échec ; un id par lequel passe une étiquette ou un lien d’évitement l’envoie vers le mauvais élément
0chaque id utilisé par une étiquette, une description ou un #lien est unique✓ Réussi
1.1.1 Les boutons-images et zones de carte sont nommés
une image utilisée comme commande est annoncée par son nom de fichier ou pas du tout
aucun sur la pagealt sur chaque <input type=image> et chaque <area> liéSignalé
1.1.1 Les images SVG ont un nom
role=img promet une image avec une alternative textuelle ; sans elle, le lecteur dit "image" et rien d’autre. Une icône dans un bouton ou un lien nommé n’est pas soumise à cette règle
aucun svg avec role=imgun <title> ou aria-label sur chaque svg marqué role=imgSignalé
1.1.1 Le texte alt n’est ni un nom de fichier ni un texte de substitution
échec WCAG F30 : un alt qui est un nom de fichier ou le mot "image" est lu à voix haute et n’apprend rien à l’auditeur
aucuneun alt qui décrit l’image, jamais "IMG_1234.jpg" ou "image"✓ Réussi
2.4.4 Les liens ont un nom accessible
un lien composé uniquement d’une icône et sans nom est annoncé par son URL ou comme "lien" ; l’utilisateur ne peut pas savoir où il mène
357 sur 357du texte, un aria-label ou une image avec alt dans chaque lien✓ Réussi
4.1.2 Les commandes personnalisées ont un nom
un div transformé en bouton par role=button est annoncé comme "bouton" sans indication de ce qu’il fait
2 sur 2un nom sur chaque élément doté d’un rôle de widget (role=button, tab, checkbox...)✓ Réussi
2.5.3 L’étiquette visible fait partie du nom
un utilisateur de commande vocale prononce les mots affichés ; si aria-label les remplace par d’autres mots, la commande ne correspond à rien
5 sur 5chaque mot visible d’un lien ou d’un bouton présent dans son aria-label✓ Réussi
1.3.1 Les titres ne sont pas vides
un titre vide est annoncé comme "titre de niveau 2" et casse le plan par lequel les lecteurs naviguent
129 sur 129du texte dans chaque h1-h6✓ Réussi
1.3.1 Les tableaux de données ont des cellules d’en-tête
sans cellules d’en-tête, un lecteur annonce chaque valeur sans nom de colonne, si bien qu’un tableau de prix devient une liste de nombres
aucun tableau de données<th> (ou scope/headers) dans chaque tableau de donnéesSignalé
1.3.1 Les boutons radio sont groupés
la question à laquelle répond un ensemble d’options se perd quand les options ne sont pas groupées ; le lecteur entend "Oui, bouton radio" sans la question
aucun groupe de boutons radioun <fieldset> ou role=radiogroup autour de chaque ensembleSignalé
1.3.5 Les champs de données personnelles déclarent leur finalité
le jeton permet aux navigateurs de remplir le champ et aux aides techniques de le marquer d’une icône familière ; un jeton invalide (échec F107) ne fait ni l’un ni l’autre
aucun champ nom, e-mail, téléphone ou adresseun jeton autocomplete valide sur chaque champ demandant les coordonnées propres à l'internauteSignalé
2.2.1 Pas d’actualisation minutée
une page qui se recharge ou redirige selon une minuterie retire le contenu avant qu’un lecteur lent ait terminé (échecs F40/F41)
aucunepas de <meta http-equiv=refresh> avec délai✓ Réussi
2.2.2 Pas de contenu en mouvement sans arrêt possible
un texte qui défile tout seul et ne peut être mis en pause est illisible pour de nombreux utilisateurs et distrayant pour les autres
aucuneaucun marquee✓ Réussi
1.4.2 Pas de son qui démarre tout seul
un son qui démarre de lui-même couvre le lecteur d’écran que l’utilisateur écoute
aucun média en lecture automatiqueaudio ou vidéo en lecture automatique sans le son, ou avec des commandes✓ Réussi
1.2.2 Les vidéos à regarder ont une piste de sous-titres
les visiteurs sourds et malentendants ne tirent rien de la bande sonore sans sous-titres
aucune vidéo native avec commandesune <track> de sous-titres (non noté : des sous-titres incrustés dans l’image ne peuvent pas être lus depuis le balisage)Signalé
2.1.1 Cibles cliquables accessibles au clavier
un onclick sur un div ne peut être atteint avec Tab ni déclenché avec Entrée, si bien que les utilisateurs de clavier et de contacteur ne peuvent pas s’en servir
aucunechaque élément cliquable peut recevoir le focus✓ Réussi
3.2.1/3.2.2 Pas de changement de contexte au focus ou à la saisie
un select qui navigue dès que sa valeur change renvoie les utilisateurs de clavier ailleurs alors qu’ils sont encore en train de choisir (échec F37)
aucunenavigation uniquement sur une soumission explicite✓ Réussi
4.1.2 Rien de focalisable n’est masqué aux lecteurs
le focus clavier arrive sur un élément que le lecteur d’écran dit absent, et l’utilisateur n’entend que du silence
aucuneaucun aria-hidden sur un lien, un bouton ou un champ✓ Réussi
4.1.2 Les rôles ARIA sont valides
un rôle inconnu est ignoré, et l’élément est annoncé comme ce qu’il est réellement
aucunechaque rôle est un rôle WAI-ARIA 1.2✓ Réussi
4.1.2 Les attributs ARIA existent
un attribut mal orthographié (aria-labeledby) ne fait rien ; le nom ou l’état qu’il devait définir n’est jamais exposé
aucunechaque attribut aria-* défini dans WAI-ARIA 1.2✓ Réussi
1.3.1 Les références d’étiquette et de description se résolvent
une étiquette dont le for ne pointe vers aucun id n’étiquette rien ; le champ pour lequel elle a été écrite reste sans nom
aucunechaque id de for, aria-labelledby, aria-describedby et headers est présent✓ Réussi
2.4.1 Le lien d’évitement atteint sa cible
un lien d’évitement vers un id manquant ne déplace le focus nulle part, et l’utilisateur parcourt tout de même tout le menu avec Tab
cible présentele #id qu’un lien d’évitement nomme existe sur la page✓ Réussi
3.1.2 La langue des passages est valide
une balise invalide est ignorée, si bien qu’une citation en français sur une page en anglais est lue avec une prononciation anglaise
aucunedes balises BCP 47 (en, fr-CA) sur chaque attribut lang✓ Réussi
2.4.3 Pas de tabindex positif
un tabindex positif place un élément en tête de l’ordre de tabulation, généralement avant le contenu auquel il appartient
aucunetabindex 0 ou -1 uniquement (non noté : un ordre peut tout de même avoir du sens)Signalé

De quoi il s’agit. Lu par rapport au texte complet des WCAG 2.1 : sur ses 78 critères de succès, 21 peuvent être tranchés, en partie, à partir du document renvoyé par le serveur, et chacun est vérifié ici. 4 autres sont mesurés dans d’autres sections (zoom, formulation des liens, ordre des titres, un sitemap). Le contraste, la redistribution, la visibilité du focus, les pièges au clavier et le mouvement nécessitent une page rendue (27 critères) ; l’exactitude des sous-titres, l’ordre de lecture et la clarté de la formulation nécessitent une personne (26). Aucun de ces points n’est revendiqué. Une page qui réussit chaque ligne ici n’est pas pour autant conforme, et ceci n’est pas une déclaration de conformité. Chaque ligne ne compte un échec que lorsque le balisage le tranche : une icône dans un bouton nommé n’est pas un échec 1.1.1, et un id en double n’échoue que si quelque chose passe par lui. Poids 0.8 dans le total, à l’étape Lecture.

Les 78 critères de succès des WCAG 2.1 et où en est chacun
CritèreNiveauCrawlCheck
1.1.1 Contenu non textuelAMesuré dans cette section
1.2.1 Contenu seulement audio ou vidéo (pré-enregistré)ANécessite une personne
1.2.2 Sous-titres (pré-enregistrés)AMesuré dans cette section
1.2.3 Audio-description ou version de remplacement pour un média temporel (pré-enregistré)ANécessite une personne
1.2.4 Sous-titres (en direct)AANécessite une personne
1.2.5 Audio-description (pré-enregistrée)AANécessite une personne
1.2.6 Langue des signes (pré-enregistrée)AAANécessite une personne
1.2.7 Audio-description étendue (pré-enregistrée)AAANécessite une personne
1.2.8 Version de remplacement pour un média temporel (pré-enregistré)AAANécessite une personne
1.2.9 Seulement audio (en direct)AAANécessite une personne
1.3.1 Information et relationsAMesuré dans cette section
1.3.2 Ordre séquentiel logiqueANécessite une personne
1.3.3 Caractéristiques sensoriellesANécessite une personne
1.3.4 OrientationAANécessite une page rendue
1.3.5 Identifier la finalité des champsAAMesuré dans cette section
1.3.6 Identifier la finalitéAAANécessite une personne
1.4.1 Utilisation de la couleurANécessite une page rendue
1.4.2 Contrôle du sonAMesuré dans cette section
1.4.3 Contraste (minimum)AANécessite une page rendue
1.4.4 Redimensionnement du texteAAMesuré dans une autre section de ce rapport
1.4.5 Texte sous forme d’imageAANécessite une personne
1.4.6 Contraste (amélioré)AAANécessite une page rendue
1.4.7 Arrière-plan sonore de faible volume ou absentAAANécessite une personne
1.4.8 Présentation visuelleAAANécessite une page rendue
1.4.9 Texte sous forme d’image (sans exception)AAANécessite une personne
1.4.10 RedistributionAANécessite une page rendue
1.4.11 Contraste du contenu non textuelAANécessite une page rendue
1.4.12 Espacement du texteAANécessite une page rendue
1.4.13 Contenu au survol ou au focusAANécessite une page rendue
2.1.1 ClavierAMesuré dans cette section
2.1.2 Pas de piège au clavierANécessite une page rendue
2.1.3 Clavier (pas d’exception)AAANécessite une page rendue
2.1.4 Raccourcis clavier utilisant des caractèresANécessite une page rendue
2.2.1 Réglage du délaiAMesuré dans cette section
2.2.2 Mettre en pause, arrêter, masquerAMesuré dans cette section
2.2.3 Pas de délai d’exécutionAAANécessite une personne
2.2.4 InterruptionsAAANécessite une personne
2.2.5 Nouvelle authentificationAAANécessite une personne
2.2.6 Délais d’expirationAAANécessite une personne
2.3.1 Pas plus de trois flashs ou sous le seuil critiqueANécessite une page rendue
2.3.2 Trois flashsAAANécessite une page rendue
2.3.3 Animation résultant d’interactionsAAANécessite une page rendue
2.4.1 Contourner des blocsAMesuré dans cette section
2.4.2 Titre de pageAMesuré dans cette section
2.4.3 Parcours du focusANécessite une page rendue
2.4.4 Fonction du lien (selon le contexte)AMesuré dans cette section
2.4.5 Accès multiplesAAMesuré dans une autre section de ce rapport
2.4.6 En-têtes et étiquettesAAMesuré dans cette section
2.4.7 Visibilité du focusAANécessite une page rendue
2.4.8 LocalisationAAANécessite une personne
2.4.9 Fonction du lien (lien uniquement)AAAMesuré dans une autre section de ce rapport
2.4.10 En-têtes de sectionAAAMesuré dans une autre section de ce rapport
2.5.1 Gestes pour le contrôle du pointeurANécessite une page rendue
2.5.2 Annulation de l’action du pointeurANécessite une page rendue
2.5.3 Étiquette dans le nomAMesuré dans cette section
2.5.4 Activation par le mouvementANécessite une page rendue
2.5.5 Taille de la cibleAAANécessite une page rendue
2.5.6 Mécanismes d’entrée concurrentsAAANécessite une page rendue
3.1.1 Langue de la pageAMesuré dans cette section
3.1.2 Langue d’un passageAAMesuré dans cette section
3.1.3 Mots raresAAANécessite une personne
3.1.4 AbréviationsAAANécessite une personne
3.1.5 Niveau de lectureAAANécessite une personne
3.1.6 PrononciationAAANécessite une personne
3.2.1 Au focusAMesuré dans cette section
3.2.2 À la saisieAMesuré dans cette section
3.2.3 Navigation cohérenteAANécessite une page rendue
3.2.4 Identification cohérenteAANécessite une page rendue
3.2.5 Changement à la demandeAAAMesuré dans cette section
3.3.1 Identification des erreursANécessite une page rendue
3.3.2 Étiquettes ou instructionsAMesuré dans cette section
3.3.3 Suggestion après une erreurAANécessite une page rendue
3.3.4 Prévention des erreurs (juridiques, financières, de données)AANécessite une personne
3.3.5 AideAAANécessite une personne
3.3.6 Prévention des erreurs (toutes)AAANécessite une personne
4.1.1 Analyse syntaxique (obsolète, toujours satisfait pour le HTML selon l’errata du W3C)AMesuré dans cette section
4.1.2 Nom, rôle et valeurAMesuré dans cette section
4.1.3 Messages d’étatAANécessite une page rendue
Corroboration de l’entité — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
Revendication d’identité — facebook.com
la page cible renvoie vers denverpost.com
corroborécorroboré✓ Réussi
Revendication d’identité — x.com
la page cible renvoie vers denverpost.com
corroborécorroboré✓ Réussi
Revendication d’identité — linkedin.com
la page cible renvoie vers denverpost.com
corroborécorroboré✓ Réussi
Wikidata Q2668654
le signal d’identité tiers le plus fort qu’une machine puisse lire
le site officiel correspond à ce domaineP856 nomme ce domaineSignalé

3 corroborés · 0 sans réciprocité · 0 invérifiables · 0 morts. Un lien sameAs est une REVENDICATION d’identité, et une revendication d’identité peut être réciproque — la cible pointe en retour vers ce domaine ou non. Les plateformes qui refusent les lecteurs depuis un datacenter sont comptées comme invérifiables, jamais comme des échecs : la revendication ne peut être ni confirmée ni mise en cause d’ici, et prétendre le contraire fabriquerait des constats. Les revendications corroborées réussissent, celles sans réciprocité et mortes échouent, et celles invérifiables ou seulement déclarées sont exclues du score — ainsi une page de profil qui bloque les lecteurs ne peut jamais coûter un point, alors qu’un lien mort ou qui ne mentionne jamais ce site, si.

Contenu citable — 67/100
Score de la section 67 / 100
MesureActuellementOptimal
Le paragraphe d’introduction définit le sujet
le premier paragraphe est celui qui est le plus souvent repris en entier ; si c’est un slogan, le moteur doit assembler la réponse à partir de fragments. Le fait de nommer le sujet est affiché, non noté
ne la nomme pas, aucun verbe définitoireune première phrase qui dit ce que c’est (corpus : 30 % des pages d’accueil le font)✗ Échoué
Paragraphes qu’un moteur peut citer en entier
un paragraphe autonome de 15-70 mots contenant un fait est l’unité qu’extraient les moteurs de réponse ; un paragraphe de 200 mots est résumé à la place, et le résumé est le leur
8 sur 12 (67 %)au moins 25 % (médiane du corpus 29 %)✓ Réussi
Titres en forme de question avec une réponse dessous
la forme qu’a une requête quand elle arrive ; une page qui porte déjà la question et une réponse courte est citée dans cet ordre. N’en avoir aucun n’est pas noté
aucun titre sous forme de questionau moins la moitié, là où des titres en forme de question existentSignalé
Le balisage FAQ correspond au texte visible
un balisage FAQ pour un texte que le visiteur ne voit pas est une affirmation sans rien derrière ; les moteurs qui comparent les deux ignorent le balisage
aucune FAQPagechaque question déclarée lisible sur la pageSignalé
Les titres portent un id
un titre avec un id est une adresse stable pour un passage ; sans cela, une citation ne peut pointer que vers la page entière
0 sur 29un id sur chacun, pour qu’un passage puisse être cité par fragment (non noté : médiane du corpus 0 %)Signalé
Longueur des phrases
les citations sont courtes ; une phrase de 40 mots est paraphrasée, et la paraphrase porte la formulation du moteur, pas la vôtre
médiane de 15 mots, 67 % sous 26une médiane de 22 mots ou moins (médiane du corpus 15)Signalé
Phrases contenant un fait vérifiable
8-30 mots avec un nombre, une date ou un nom, à la troisième personne : la phrase qu’un moteur peut vous attribuer sans la modifier
2 sur 3 (67 %)au moins 15 % (médiane du corpus 20 %)Signalé
Paragraphes qui commencent à la première personne
"Nous proposons" doit être réécrit avant de pouvoir être cité à votre sujet ; "Acme propose" non
0 sur 12 (0 %)un tiers ou moins (corpus p90 24 %)✓ Réussi
Tableaux avec une ligne d’en-tête et au moins deux lignes de données
un tableau est la seule structure que tous les extracteurs lisent de la même façon ; les mêmes faits en prose sont réassemblés différemment par chaque moteur
0un par ensemble de faits comparables (non noté : rare sur les pages d’accueil)Signalé
Une date de mise à jour ou de publication visible
les moteurs évaluent la fraîcheur à partir du texte autant que du schema ; une date que le lecteur voit est celle en laquelle il a confiance
aucun trouvéune ligne datée dans le texte (non noté : 4 % des pages d’accueil en ont une)Signalé

Phrases qu’un moteur pourrait reprendre telles quelles :

  • “Sign up for Newsletters and Alerts Sign Up Democrat Eileen Laubacher declares victory over Rep.”
  • “Lauren Boebert in Colorado's 4th Congressional District Democrat Eileen Laubacher declares victory over Rep.”

L’accroche, telle que livrée : “Sign up for Newsletters and Alerts Sign Up”

Ce que cela note, et ce que ce n’est pas. Ces lignes lisent le HTML livré pour y trouver la forme d’un texte citable : rien ici ne juge si le texte est bon, vrai ou souhaité. Les comptes proviennent des paragraphes du corps et des éléments de liste, navigation, en-tête, pied de page et formulaires retirés ; une page qui en a moins de cinq n’est pas notée ici. Les seuils ont été fixés à partir d’un passage sur un corpus de 176 pages d’accueil et chaque ligne indique le chiffre du corpus par rapport auquel elle a été fixée. Poids 0.8 dans la note globale et partie de l’étape Citer, à partir de la version de score 15.

Gaspillage d’exploration — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
Liens internes avec une chaîne de requête
chaque forme de paramètre est une URL distincte pour un robot ; les paramètres de suivi et de tri sur les liens internes multiplient les pages qu’il croit que vous avez
1 sur 309 - ntv_adpz0, sauf si le paramètre change la page✓ Réussi
Internal links to http://
chacun est une redirection avant la page, et une redirection est une récupération qui n’a rien renvoyé
4 sur 3090Signalé
URL déclarées qui redirigent
une entrée de sitemap qui redirige envoie le robot vers un endroit que le sitemap aurait dû nommer directement
0 sur 6 échantillonnées0✓ Réussi
URL déclarées qui ne répondent pas 200
une page déclarée qui a disparu est une récupération dépensée pour une page qui ne sera pas indexée
0 sur 6 échantillonnées0Signalé
L’apex et le www répondent tous deux 200
deux hôtes servant le même site, c’est chaque page en double, et le moteur doit deviner quelle copie est la vraie
non, l’un redirigeun seul hôte, l’autre redirige✓ Réussi

Un robot arrive avec un budget. Chaque ligne ici est une récupération qui n’a produit aucune nouvelle page : une redirection, une variante de paramètre, une variante de casse, une page déclarée qui pointe ailleurs. Compté à partir de la page d’accueil livrée, du sitemap, des URL déclarées échantillonnées et de la lecture quotidienne de tout le site quand elle existe. Rien de tout cela ne modifie la note.

Sujet de la page, la question Webref — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
Entités d’entreprise déclarées sur la page
Webref décide de quelle entité traite une page, et dans quelle mesure ; une page qui nomme plusieurs entreprises sans lien partage sa pertinence thématique entre elles
1un seul sujet, les autres uniquement via une relation déclaréeSignalé
Le sujet de la page
mainEntity est la déclaration explicite ; une URL sur cet hôte est la meilleure preuve suivante ; deviner à partir du premier nœud, c’est ce que ce contrôle refuse de faire
The Denver Post - trouvé par URL sur cet hôtedéclaré comme WebPage.mainEntitySignalé
Le titre et le h1 nomment le sujet
les deux affirmations les plus fortes de la page sur ce dont traite le document
title oui, h1 ouiles deuxSignalé
Lieux nommés dans le graphe
areaServed est lu comme les lieux que l’entreprise dessert ; une localité où l’entreprise SE TROUVE est une relation différente, et les deux ont leur place dans la fiche
2 (Denver, Denver Metropolitan Area and the state of Colorado)la localité propre de l’agence plus une zone de service déclaréeSignalé
Verdict
unique : une seule entité. liées : plusieurs, toutes reliées. diluée : des entreprises sans lien se partagent la page. ambiguë : aucun sujet ne peut être déterminé
unique - une seule entité d’entreprise, et c’est le sujetunique ou liées✓ Réussi

Un document n’est pas en concurrence pour un mot-clé seul ; l’index le relie à des entités par leur identité dans le Knowledge Graph et classe les documents les uns par rapport aux autres pour cette entité. Cette section lit les données structurées de la page d’accueil livrée et pose la question que pose cette couche : de quelle entreprise parle cette page, et quel est le lien de chaque autre entreprise qui y figure ? L’appartenance à une chaîne, la filiale, le service et l’inclusion sont des relations déclarées ; une seconde entreprise sans relation est une affirmation que le moteur doit arbitrer. Mesuré, pas noté, jusqu’à ce que le corpus montre la fréquence de chaque verdict.

Agents d’IA et de recherche — 33/100
Score de la section 33 / 100
MesureActuellementOptimal
Moteurs de réponse autorisés
ils récupèrent une page pendant qu’ils composent une réponse en direct
7 sur 17tous✗ Échoué
Index de recherche autorisés
la couverture de l’index classique porte encore l’essentiel de la découverte
17 sur 24tous✗ Échoué
Robots d’entraînement autorisés
bloquer les robots d’entraînement tout en autorisant les moteurs de réponse est cohérent, pas un défaut
22 sur 46votre choix de politique — non notéSignalé
Moteurs de recherche régionaux autorisés
Naver, Sogou, 360 et Yisou comptent si vous vendez sur ces marchés et sont sans importance sinon ; c’est un fait commercial que nous ne pouvons pas lire sur la page
7 sur 7votre choix de politique — non notéSignalé
Aperçus de liens sociaux autorisés
les bloquer n’affecte pas les moteurs de réponse, cela fait seulement apparaître vos liens comme de simples URL quand quelqu’un les partage
6 sur 6votre choix de politique — non notéSignalé
Robots SEO et de recherche autorisés
bloquer un robot d’index de liens vous coûte de la visibilité auprès des concurrents, pas auprès des moteurs de réponse — un arbitrage différent de celui ci-dessus
15 sur 15votre choix de politique — non notéSignalé
Groupes du robots.txt
un second groupe * est invisible pour les analyseurs qui s’arrêtent à la première correspondance
701 groupe par user-agent, aucun groupe * en double✓ Réussi
Moteurs de réponse — récupération au moment de la question — 7 sur 17 autorisés
OAI-SearchBotBLOQUÉ à / · ChatGPT search index · named rule · line 150: Disallow: /
ChatGPT-UserBLOQUÉ à / · ChatGPT live fetch · named rule · line 63: Disallow: /
Claude-SearchBotBLOQUÉ à / · Claude search index · named rule · line 69: Disallow: /
Claude-UserBLOQUÉ à / · Claude live fetch · named rule · line 72: Disallow: /
PerplexityBotBLOQUÉ à / · Perplexity index · named rule · line 159: Disallow: /
Perplexity-UserBLOQUÉ à / · Perplexity live fetch · named rule · line 162: Disallow: /
Gemini-Deep-Researchautorisé · Gemini research agent · wildcard rule · group at line 9, no rule matches /
MistralAI-UserBLOQUÉ à / · Le Chat live fetch · named rule · line 144: Disallow: /
DuckAssistBotBLOQUÉ à / · DuckDuckGo AI assist · named rule · line 96: Disallow: /
YouBotBLOQUÉ à / · You.com · named rule · line 198: Disallow: /
PhindBotautorisé · Phind · wildcard rule · group at line 9, no rule matches /
Kagibotautorisé · Kagi · wildcard rule · group at line 9, no rule matches /
Copilot-Userautorisé · Microsoft Copilot fetch · wildcard rule · group at line 9, no rule matches /
Meta-ExternalFetcherBLOQUÉ à / · Meta AI live fetch · named rule · line 138: Disallow: /
Amzn-Userautorisé · Amazon live fetch for Alexa questions · wildcard rule · group at line 9, no rule matches /
Google-Agentautorisé · Google user-triggered agent, acts on the web · wildcard rule · group at line 9, no rule matches /
Google-GeminiNotebookautorisé · Gemini Notebook user-supplied URL fetch · wildcard rule · group at line 9, no rule matches /
Index de recherche — 17 sur 24 autorisés
Googlebot-Imageautorisé · Google image crawler · wildcard rule · group at line 9, no rule matches /
Googlebot-Newsautorisé · Google News · wildcard rule · group at line 9, no rule matches /
Googlebot-Videoautorisé · Google video crawler · wildcard rule · group at line 9, no rule matches /
Storebot-Googleautorisé · Google Shopping · wildcard rule · group at line 9, no rule matches /
Mediapartners-Googleautorisé · Google AdSense · wildcard rule · group at line 9, no rule matches /
APIs-Googleautorisé · Google push delivery · wildcard rule · group at line 9, no rule matches /
BingPreviewautorisé · Bing page preview · wildcard rule · group at line 9, no rule matches /
msnbotautorisé · Microsoft legacy crawler · wildcard rule · group at line 9, no rule matches /
SlurpBLOQUÉ à / · Yahoo Slurp · named rule · line 177: Disallow: /
Yandexautorisé · Yandex (umbrella token) · wildcard rule · group at line 9, no rule matches /
coccocbot-webautorisé · Coc Coc · wildcard rule · group at line 9, no rule matches /
Googlebotautorisé · Google Search and AI Overviews · wildcard rule · group at line 9, no rule matches /
bingbotautorisé · Bing and Copilot index · wildcard rule · group at line 9, no rule matches /
ApplebotBLOQUÉ à / · Apple and Siri · named rule · line 36: Disallow: /
AmazonbotBLOQUÉ à / · Amazon · named rule · line 27: Disallow: /
DuckDuckBotautorisé · DuckDuckGo · wildcard rule · group at line 9, no rule matches /
YandexBotBLOQUÉ à / · Yandex · named rule · line 195: Disallow: /
BaiduspiderBLOQUÉ à / · Baidu · named rule · line 45: Disallow: /
Seznambotautorisé · Seznam · wildcard rule · group at line 9, no rule matches /
Neevabotautorisé · Neeva · wildcard rule · group at line 9, no rule matches /
PetalBotBLOQUÉ à / · Huawei Petal · named rule · line 165: Disallow: /
Amzn-SearchBotBLOQUÉ à / · Amazon search eligibility, separate from Amazonbot · named rule · line 30: Disallow: /
MistralAI-Indexautorisé · Mistral search index for Vibe · wildcard rule · group at line 9, no rule matches /
ExaSearchBotautorisé · Exa AI search index, Web Bot Auth signed · wildcard rule · group at line 9, no rule matches /
Robots d’entraînement / de corpus — 22 sur 46 autorisés
Magpie-crawlerautorisé · Magpie AI · wildcard rule · group at line 9, no rule matches /
img2datasetautorisé · img2dataset image corpus · wildcard rule · group at line 9, no rule matches /
AwarioRssBotautorisé · Awario RSS · wildcard rule · group at line 9, no rule matches /
AwarioSmartBotautorisé · Awario smart · wildcard rule · group at line 9, no rule matches /
TurnitinBotautorisé · Turnitin · wildcard rule · group at line 9, no rule matches /
archive.org_botBLOQUÉ à / · Internet Archive · named rule · line 42: Disallow: /
ia_archiverautorisé · Internet Archive (legacy) · wildcard rule · group at line 9, no rule matches /
meta-webindexerBLOQUÉ à / · Meta web index · named rule · line 141: Disallow: /
omgiliBLOQUÉ à / · Webz.io omgili · named rule · line 153: Disallow: /
cohere-training-data-crawlerBLOQUÉ à / · Cohere training corpus · named rule · line 78: Disallow: /
PanguBotBLOQUÉ à / · Huawei PanGu · named rule · line 156: Disallow: /
Ai2Bot-DolmaBLOQUÉ à / · Allen Institute Dolma · named rule · line 24: Disallow: /
FriendlyCrawlerautorisé · FriendlyCrawler ML · wildcard rule · group at line 9, no rule matches /
VelenPublicWebCrawlerBLOQUÉ à / · Velen · named rule · line 186: Disallow: /
MyCentralAIScraperBotautorisé · MyCentral AI · wildcard rule · group at line 9, no rule matches /
DeepSeekBotautorisé · DeepSeek · wildcard rule · group at line 9, no rule matches /
ICC-CrawlerBLOQUÉ à / · NICT ICC · named rule · line 117: Disallow: /
GoogleOtherautorisé · Google non-search fetch · wildcard rule · group at line 9, no rule matches /
Google-CloudVertexBotautorisé · Vertex AI agent build · wildcard rule · group at line 9, no rule matches /
GPTBotBLOQUÉ à / · OpenAI training and index · named rule · line 108: Disallow: /
ClaudeBotBLOQUÉ à / · Anthropic training · named rule · line 66: Disallow: /
anthropic-aiBLOQUÉ à / · Anthropic legacy agent · named rule · line 33: Disallow: /
Claude-WebBLOQUÉ à / · Anthropic legacy agent · named rule · line 75: Disallow: /
Google-ExtendedBLOQUÉ à / · Gemini training and grounding · named rule · line 105: Disallow: /
Applebot-ExtendedBLOQUÉ à / · Apple training · named rule · line 39: Disallow: /
CCBotBLOQUÉ à / · Common Crawl · named rule · line 57: Disallow: /
BytespiderBLOQUÉ à / · ByteDance · named rule · line 51: Disallow: /
meta-externalagentBLOQUÉ à / · Meta AI training · named rule · line 135: Disallow: /
FacebookBotBLOQUÉ à / · Meta legacy · named rule · line 99: Disallow: /
cohere-aiautorisé · Cohere · wildcard rule · group at line 9, no rule matches /
DiffbotBLOQUÉ à / · Diffbot knowledge graph · named rule · line 90: Disallow: /
OmgilibotBLOQUÉ à / · Webz.io · named rule · line 153: Disallow: /
ImagesiftBotautorisé · Imagesift · wildcard rule · group at line 9, no rule matches /
TimpibotBLOQUÉ à / · Timpi · named rule · line 183: Disallow: /
AI2BotBLOQUÉ à / · Allen Institute · named rule · line 21: Disallow: /
Scrapyautorisé · Generic scraper framework · wildcard rule · group at line 9, no rule matches /
SemrushBot-OCOBautorisé · Semrush AI corpus · wildcard rule · group at line 9, no rule matches /
Applebot-Extended-AdsBLOQUÉ à / · Apple ads corpus · named rule · line 39: Disallow: /
TikTokSpiderautorisé · TikTok · wildcard rule · group at line 9, no rule matches /
QuillBotautorisé · QuillBot · wildcard rule · group at line 9, no rule matches /
Webzio-ExtendedBLOQUÉ à / · Webz.io extended · named rule · line 192: Disallow: /
ProRataIncautorisé · ProRata · wildcard rule · group at line 9, no rule matches /
AwarioBotautorisé · Awario · wildcard rule · group at line 9, no rule matches /
MistralAI-Trainingautorisé · Mistral training crawl · wildcard rule · group at line 9, no rule matches /
GoogleOther-Imageautorisé · Google common crawler, public image URLs · wildcard rule · group at line 9, no rule matches /
GoogleOther-Videoautorisé · Google common crawler, public video URLs · wildcard rule · group at line 9, no rule matches /
Robots SEO et d’études de marché — 15 sur 15 autorisés
KlaviyoAIBotautorisé · Klaviyo Customer Agent knowledge-source crawler · wildcard rule · group at line 9, no rule matches /
AhrefsBotautorisé · Ahrefs link index · wildcard rule · group at line 9, no rule matches /
SemrushBotautorisé · Semrush crawler · wildcard rule · group at line 9, no rule matches /
MJ12botautorisé · Majestic link index · wildcard rule · group at line 9, no rule matches /
DotBotautorisé · Moz link index · wildcard rule · group at line 9, no rule matches /
rogerbotautorisé · Moz site crawler · wildcard rule · group at line 9, no rule matches /
DataForSeoBotautorisé · DataForSEO · wildcard rule · group at line 9, no rule matches /
BLEXBotautorisé · WebMeUp link index · wildcard rule · group at line 9, no rule matches /
CloudflareBrowserRenderingCrawlerautorisé · Cloudflare Browser Run /crawl · wildcard rule · group at line 9, no rule matches /
Cloudflare-AutoRAGautorisé · Cloudflare AutoRAG · wildcard rule · group at line 9, no rule matches /
Peer39_Crawlerautorisé · Peer39 ad context · wildcard rule · group at line 9, no rule matches /
AdsBot-Googleautorisé · Google Ads quality · wildcard rule · group at line 9, no rule matches /
AmazonAdBotautorisé · Amazon Ads · named rule · group at line 200, no rule matches /
AdIdxBotautorisé · Microsoft Ads · wildcard rule · group at line 9, no rule matches /
OAI-AdsBotautorisé · OpenAI ChatGPT ads page validation · wildcard rule · group at line 9, no rule matches /
Moteurs de recherche régionaux — 7 sur 7 autorisés
Yetiautorisé · Naver · wildcard rule · group at line 9, no rule matches /
YoudaoBotautorisé · Youdao · wildcard rule · group at line 9, no rule matches /
Exabotautorisé · Exalead · wildcard rule · group at line 9, no rule matches /
Sogou web spiderautorisé · Sogou · wildcard rule · group at line 9, no rule matches /
YisouSpiderautorisé · Shenma mobile search · wildcard rule · group at line 9, no rule matches /
360Spiderautorisé · 360 Search · wildcard rule · group at line 9, no rule matches /
Sosospiderautorisé · Soso · wildcard rule · group at line 9, no rule matches /
Aperçus de liens sur les réseaux sociaux — 6 sur 6 autorisés
Facebotautorisé · Meta link crawler · wildcard rule · group at line 9, no rule matches /
Twitterbotautorisé · X link preview · named rule · group at line 212, no rule matches /
LinkedInBotautorisé · LinkedIn link preview · wildcard rule · group at line 9, no rule matches /
facebookexternalhitautorisé · Facebook link preview · named rule · group at line 203, no rule matches /
Pinterestbotautorisé · Pinterest · wildcard rule · group at line 9, no rule matches /
Slackbot-LinkExpandingautorisé · Slack unfurl · wildcard rule · group at line 9, no rule matches /
153 more crawler names checked — 141 allowed; the ones this robots.txt names or blocks:
AI2Bot-DeepResearchEvalBLOQUÉ à / · Ai2 — AI assistant or agent · named rule · line 21: Disallow: /
ChatGLM-SpiderBLOQUÉ à / · AI data crawler · named rule · line 60: Disallow: /
CotoyogiBLOQUÉ à / · ROIS — AI data crawler · named rule · line 81: Disallow: /
Diffbot-UserBLOQUÉ à / · Diffbot — AI assistant or agent · named rule · line 90: Disallow: /
imageSpiderBLOQUÉ à / · AI data crawler · named rule · line 120: Disallow: /
laion-huggingface-processorBLOQUÉ à / · AI data crawler · named rule · line 126: Disallow: /
LCCBLOQUÉ à / · AI data crawler · named rule · line 129: Disallow: /
MistralAI-User/1.0BLOQUÉ à / · Mistral AI — AI assistant or agent · named rule · line 144: Disallow: /
Mozilla-Tabstackautorisé · Mozilla that performs programmatic — AI data crawler · named rule · line 224: Allow: /
SBIntuitionsBotBLOQUÉ à / · SB Intuitions — AI data crawler · named rule · line 168: Disallow: /
SpiderBLOQUÉ à / · AI data crawler · named rule · line 177: Disallow: /
ThinkbotBLOQUÉ à / · Thinkbot — AI data crawler · named rule · line 180: Disallow: /
Baiduspider-imageBLOQUÉ à / · Baidu image search · named rule · line 45: Disallow: /

10 moteur(s) de réponse sont bloqués. Ce sont les agents qui récupèrent une page pendant qu’ils composent une réponse, donc cela retire directement le site des réponses en direct.

La vitesse que voit un robot, et les données terrain lorsqu’elles existent — 44/100
Score de la section 44 / 100
MesureActuellementOptimal
Largest Contentful Paint (p75)
le temps qu’un vrai visiteur attend avant que l’élément principal de la page s’affiche
3.52s2.5 s ou moins✗ Échoué
Interaction to Next Paint (p75)
le temps que met la page à réagir après qu’un vrai visiteur a touché un élément
136 ms200 ms ou moins✓ Réussi
Cumulative Layout Shift (p75)
à quel point la page bouge sous les yeux du lecteur en cours de lecture
0.130.1 ou moins✗ Échoué
Time to First Byte (p75)
la part serveur de tous les autres chiffres de cette liste
677 ms800 ms ou moins✓ Réussi
Largest Contentful Paint trend
holding steady — +1.8% across 40 weekly readings (2026-02-07 to 2026-11-07), real Chrome visitors
3.45s → 3.51slower over timeSignalé
Interaction to Next Paint trend
getting faster — -7.5% across 40 weekly readings (2026-02-07 to 2026-11-07), real Chrome visitors
146ms → 135mslower over timeSignalé
Cumulative Layout Shift trend
holding steady — 0% across 40 weekly readings (2026-02-07 to 2026-11-07), real Chrome visitors
0.13 → 0.13lower over timeSignalé
Les fichiers machine répondent vite (mesuré ici)
le temps médian que CrawlCheck a attendu vos propres fichiers robots, sitemap et d’entités. Un robot qui expire n’enregistre rien du tout : c’est donc ce chiffre de vitesse qui décide si vous êtes lu
338 ms en médiane sur 5moins de 500 ms✓ Réussi
Aucune réponse lente isolée
un seul fichier lent suffit à perdre une exploration. C’est la pire réponse individuelle du même ensemble, pas une moyenne qui la masque
848 ms au plus lentmoins de 1500 ms✓ Réussi
LCP de labo — synthétique, pas des données terrain
une exécution mobile simulée depuis les serveurs de Google. Ce n’est PAS ce que vos visiteurs ont vécu — aucune donnée terrain n’existe pour cette origine
19.14s2.5 s ou moins✗ Échoué
Total Blocking Time (labo)
travail du thread principal qui bloquerait l’interaction lors de l’exécution simulée
1.86s200 ms ou moins✗ Échoué
Cumulative Layout Shift (labo)
de combien la mise en page simulée a bougé pendant le chargement
0.1930.1 ou moins✗ Échoué

Mesuré sur cette URL exacte. Il s’agit du 75e centile de ce que de vrais utilisateurs de Chrome ont vécu au cours des 28 derniers jours, et non d’un test lancé d’ici — les seuils sont ceux publiés par Google, les seuls qui existent.

Charge utile et chemin de rendu — 20/100
Score de la section 20 / 100
MesureActuellementOptimal
Ratio de contenu
le reste est du balisage qu’un modèle doit lire puis jeter
4.4%10–100 % des octets décompressés sont du texte visible✗ Échoué
Octets décompressés
les pages volumineuses sont récupérées moins souvent et tronquées davantage
313,548Bmoins de 500 000 B✓ Réussi
Tokens to read this page
estimated at about 4 characters per token. An agent that reads raw HTML pays for every byte of markup, scripts and styles; one that extracts the text pays for the words only. A markdown version served on request (Accept: text/markdown) lets agents take the cheap path.
~78.4k as HTML, ~3.4k as text (4%)an agent reading text pays a fraction of the HTML costSignalé
JavaScript en ligne
pour un robot qui extrait le texte, le JS en ligne n’est que du poids mort
43,837Bmoins de 20 000 B✗ Échoué
Ressources bloquant le rendu
chacune retarde le premier affichage et consomme le budget de rendu du robot
270–5✗ Échoué
Scripts différés ou bloquants
un script bloquant arrête net l’analyse du HTML
2 différés / 17 bloquantstous les scripts en defer ou async✗ Échoué

Où vont les octets

Texte visible13,731 B 4,4%
CSS en ligne46,455 B 14,8%
JavaScript en ligne43,837 B 14,0%
Données structurées2,238 B 0,7%
Balisage et attributs204,197 B 65,1%
Ressources bloquant le rendu27 10 feuilles de style, 17 scripts
Entités avec un @id stable1 / 3 33,3%
Liens de qualification0 aucun déclaré

1 sur 1 liens d’identité cartographique pointent vers des lieux, pas vers cette entreprise — 5990 Washington St, Denver, CO 80216. sameAs affirme que deux URL décrivent la même entité.

Chaîne de confiance des fichiers machine — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
robots.txt était lisible
tous les autres fichiers de la chaîne sont normalement découverts via robots.txt
oui200, text/plain✓ Réussi
robots.txt nomme un sitemap
un robot qui doit deviner le chemin du sitemap ne le trouve souvent pas
2 ligne(s) Sitemap:au moins une✓ Réussi
robots.txt pointe vers llms.txt
un llms.txt vers lequel rien ne pointe n’est accessible qu’en devinant le chemin conventionnel
—nommé lorsque le fichier existeNon mesuré
Les liens de llms.txt restent sur cet hôte
une URL hors de votre hôte dans votre llms.txt envoie le modèle vers la page de quelqu’un d’autre comme si c’était la vôtre
—la plupart des liens sur cet hôteNon mesuré
llms.txt renvoie plus loin
la chaîne doit continuer : llms.txt est une carte, pas un terminus
—nomme le sitemap ou le graphe d’entitésNon mesuré
entitymap.json est un JSON valide
un fichier machine qui ne s’analyse pas vaut moins qu’un fichier absent, car il a l’air présent
—JSON valideNon mesuré
Le graphe d’entités fait référence à cet hôte
un graphe qui ne nomme jamais ce site décrit autre chose
—ouiNon mesuré
La balise canonique pointe vers cet hôte
une balise canonique sur un autre hôte transfère le poids de la page à cet autre hôte
même hôtele même hôte que celui qui sert la page✓ Réussi
La canonique utilise https
une canonique en http provoque une chaîne de redirections à chaque exploration
httpshttps✓ Réussi

robots.txt ✓ → sitemap ✓ → llms.txt ✗ → entitymap.json ✗

Un ✗ rompt la chaîne à cet endroit : tout ce qui suit n’est accessible qu’à un robot qui devine le chemin conventionnel.

Cohérence des affirmations — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
Le schema déclare une entité pour ce site
un graphe d’entités qui ne nomme que d’autres entreprises ne donne à un moteur de réponse rien à quoi rattacher ce site
oui, une organisationune Organization, LocalBusiness ou Person dont l’url est cet hôte✓ Réussi
Le nom d’entreprise du schema apparaît sur la page
un moteur de réponse ingère l’assertion et ne la compare jamais à la page, donc une assertion périmée est répétée pendant des mois
—le nom affirmé par le schema est celui que voit un lecteurNon mesuré
Les chaînes du schema ne sont pas échappées en HTML
une chaîne JSON n’est pas un contexte HTML : l’entité est lue littéralement, donc le nom de l’entreprise contient les caractères a-m-p
—aucun &amp; ni &#39; dans une valeur JSON-LDNon mesuré
Le téléphone du schema apparaît sur la page
un numéro qui n’existe que dans le balisage est celui qu’un assistant lira à voix haute
—les mêmes 10 chiffresNon mesuré
La localité du schema apparaît sur la page
une localité que personne ne mentionne sur la page est une affirmation sans aucun appui
—la ville déclarée est nommée dans le texteNon mesuré
L’ancienneté revendiquée est confirmée par le schema
une affirmation datable du texte que les données structurées contredisent est ce qu’il y a de plus facile à réfuter dans un audit
—le texte et foundingDate concordent à un an prèsNon mesuré

Vérifié par rapport au texte visible de la page elle-même, sans requête supplémentaire. Type de nœud : NewsMediaOrganization.

Surface d’instructions pour agents — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
Aucune instruction destinée aux agents dans les surfaces réservées aux machines
le texte masqué, les commentaires, les attributs alt et llms.txt sont lus par une machine et relus par personne
41 surface(s) lue(s), aucune correspondance0 correspondances✓ Réussi
Aucun bloc masqué de plus de 50 mots
un agent ingère le texte masqué à plein poids alors qu’un lecteur ne le voit jamais
aucune0 blocs✓ Réussi
Fichier d’instructions pour agents (agents.md)
le fichier auquel les agents doivent obéir, à distinguer de llms.txt, qui est la carte du contenu. Toutes les boutiques Shopify en publient désormais un ; ailleurs, l’adoption est précoce, donc son absence n’est pas un défaut — mais si vous en publiez un, tout ce qu’il contient est lu comme une instruction
404à vous de choisir — non notéSignalé

Ceci signale une EXPOSITION, pas une intention. La plupart des textes masqués sont une vieille habitude SEO ou un menu replié, et une correspondance ici invite à aller le lire — ce n’est pas un constat que quelqu’un a attaqué le site.

Ce que reçoit chaque agent — 88/100
Score de la section 88 / 100
MesureActuellementOptimal
Chaque identité reçoit une réponse
pour l’agent qui l’envoie, une requête qui échoue est indiscernable d’un site en panne
les 18 ont reçu une réponse0 sans réponse✓ Réussi
Aucun moteur de réponse n’est refusé
un 403 renvoyé à GPTBot explique à lui seul pourquoi un site n’est jamais cité
aucun refusé0 refus✓ Réussi
Aucun moteur de réponse ne reçoit de page intermédiaire
une page de vérification en HTTP 200 passe un contrôle de statut sans problème et ne contient aucun contenu
aucune0 pages de vérification✓ Réussi
Les robots reçoivent ce que reçoit un client anonyme
ces requêtes envoient le user-agent d’un robot depuis NOTRE adresse, qui n’est pas dans la plage publiée par l’opérateur — un écart a donc deux lectures, du cloaking ou un rejet légitime de l’usurpation, et seul l’opérateur peut trancher
aucuneaucun écart selon l’identité✓ Réussi
Aucune identité n’est envoyée vers une autre URL
une redirection réservée aux robots retire discrètement la page qu’un moteur de réponse devait lire
aucune0 redirigés✓ Réussi
Même x-robots-tag pour chaque identité
un noindex réservé aux robots retire la page de la recherche alors que le site semble parfaitement normal dans un navigateur, et rien d’autre ne le vérifie
cohérentaucun en-tête propre à une identité✓ Réussi
Les moteurs de réponse reçoivent le même texte qu’un navigateur
la page qu’affiche un navigateur ne prouve rien sur la page reçue par un moteur de réponse
100 % des mots du navigateur90-100%✓ Réussi
Robots d’entraînement accédant au site
ils collectent des pages pour entraîner des modèles plutôt que pour répondre à des questions : les refuser est donc un choix de politique et non un défaut — c’est signalé parce que la périphérie réseau peut le faire sans que personne ne l’ait décidé, et un 403 ici n’est pas le même fait qu’un 429
Bytespider 429, Meta-ExternalAgent 403 of 6 turned awayà vous de choisir — non notéSignalé
La politique robots déclarée correspond au comportement réel
robots.txt est une promesse et la périphérie réseau est le comportement ; aucun des deux ne peut, à lui seul, vous dire qu’ils divergent
OAI-SearchBot: disallowed but served, Claude-SearchBot: disallowed but served, PerplexityBot: disallowed but served, ChatGPT-User: disallowed but served, Claude-User: disallowed but served, Perplexity-User: disallowed but served, Applebot: disallowed but served0 conflits✗ Échoué
Même contenu servi dans toutes les régions testées
un site qui sert un contenu différent selon le pays dit des choses différentes de lui-même à différents moteurs
—texte identique partout dans le mondeNon mesuré

Une URL, récupérée en tant que chaque robot nommé et en tant que navigateur. Les récupérations témoins concordaient (auto-similarité 1), donc les différences de texte ci-dessous sont de vraies différences, pas du bruit. Un user-agent est une affirmation, y compris quand c’est nous qui la faisons.

IdentitéStatutMotsMême texteCe qui s’est passé
Client anonyme20020991
GPTBot20020991
ClaudeBot20020991
OAI-SearchBot20020991
Claude-SearchBot20020991
PerplexityBot20020991
ChatGPT-User20020991
Claude-User20020991
Perplexity-User20020991
Googlebot20020991
Googlebot Smartphone20020991
Navigateur mobile20020991
Bingbot20020991
Applebot20020991
Amazonbot20020991
Bytespider4299—rate-limited (HTTP 429) — throttled, not blocked — vendor unidentified; reproduced on a second request
Meta-ExternalAgent4035—refusé HTTP 403 — fournisseur non identifié ; reproduit sur une deuxième requête
CCBot20020991
AgentConflitDétail
OAI-SearchBotinterdit mais serviHTTP 200 avec 2099 mots
Claude-SearchBotinterdit mais serviHTTP 200 avec 2099 mots
PerplexityBotinterdit mais serviHTTP 200 avec 2099 mots
ChatGPT-Userinterdit mais serviHTTP 200 avec 2099 mots
Claude-Userinterdit mais serviHTTP 200 avec 2099 mots
Perplexity-Userinterdit mais serviHTTP 200 avec 2099 mots
Applebotinterdit mais serviHTTP 200 avec 2099 mots

Which document each identity received

Against the Desktop browser's copy: 17 identities were handed the same document, 0 a different one on at least one field, 2 an error, challenge or redirect instead of the document.

IdentitéDocumentDiffers onLooks like
BytespidererrorHTTP 429
Meta-ExternalAgenterrorHTTP 403

Compared on the copy each identity was served: title, H1, robots meta, canonical, word count, unique-token ratio (first screen and whole body), the dates the page states, its schema entities, author and salient terms. Reported, never scored. A difference is usually a device-segmented cache or a consent gate, and the last column says which it looks like.

Récupération par moteur. Chaque moteur de réponse lit au moyen de robots nommés aux rôles différents — l’un construit l’index, l’un récupère en direct quand un utilisateur pose une question, l’un collecte des données d’entraînement. Ce sont des autorisations distinctes et il est courant qu’un site en accorde une et en refuse une autre. Rien ici n’est noté : ces mêmes faits sont déjà notés une fois ci-dessus, et ceci mesure ce qu’un moteur est autorisé à recevoir et reçoit — jamais ce qu’un modèle a retenu ou citerait, ce qu’aucun scanner ne peut voir de l’extérieur.

MoteurIndexRécupération en directEntraînementCe que la périphérie réseau a réellement faitNommé explicitement
ChatGPT✗ bloqué✗ bloqué✗ bloqué✓ 2099 mots servis— aucun des deux fichiers
Claude✗ bloqué✗ bloqué✗ bloqué✓ 2099 mots servis— aucun des deux fichiers
Perplexity✗ bloqué✗ bloqué— —✓ 2099 mots servis— aucun des deux fichiers
Google AI Overviews / Gemini✓ autorisé✓ autorisé✗ bloqué✓ 2099 mots servis— aucun des deux fichiers
Microsoft Copilot✓ autorisé✓ autorisé— —✓ 2099 mots servis— aucun des deux fichiers
Apple Intelligence✗ bloqué— —✗ bloqué✓ 2099 mots servis— aucun des deux fichiers
Meta AI✗ bloqué✗ bloqué✗ bloqué✗ HTTP 403— aucun des deux fichiers
Amazon✗ bloqué— —— —✓ 2099 mots servis— aucun des deux fichiers
DuckAssist✗ bloqué— —— —— non sondé— aucun des deux fichiers
Mistral— —✗ bloqué— —— non sondé— aucun des deux fichiers
Common Crawl (alimente de nombreux modèles)— —— —✗ bloqué✓ 2099 mots servis— aucun des deux fichiers

Une colonne entraînement bloquée à côté d’une colonne index autorisée est une politique cohérente, pas un défaut : elle dit « répondez avec moi, ne vous entraînez pas sur moi ». La dernière colonne indique si votre llms.txt ou votre agents.md s’adresse à ce moteur par son nom — robots.txt est une permission, ces deux fichiers sont l’endroit où un opérateur parle réellement à un agent. Ne nommer personne est la norme et n’est pas noté.

aucun fournisseur de point d’observation n’est configuré et aucune lecture par l’extension n’existe pour ce site au cours des 14 derniers jours, donc ceci n’a pas été mesuré

Surface mobile — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
Images et intégrations avec dimensions déclarées
Un média sans largeur ni hauteur ne réserve aucun espace, donc tout ce qui se trouve en dessous bouge quand l’image arrive. C’est lu dans le balisage et c’est un indicateur de risque, pas une valeur CLS mesurée — le vrai chiffre exige un vrai chargement de page.
1 sur 4697,8 % sans dimensions — non notéSignalé
Balise meta viewport
sans elle, un téléphone affiche la mise en page bureau réduite, et c’est ce qu’enregistre un robot mobile. Environ 218 millions de sites actifs en déclarent une (BuiltWith, août 2026) : son absence est donc l’exception, pas la norme.
width=device-widthwidth=device-width, initial-scale=1✓ Réussi
Le zoom n’est pas verrouillé
verrouiller le zoom est un défaut d’accessibilité qui se corrige en une ligne
les lecteurs peuvent zoomerpas de user-scalable=no, pas de maximum-scale inférieur à 1.5✓ Réussi
Icône Apple touch
ce qu’utilisent un raccourci ajouté à l’écran d’accueil et plusieurs surfaces de partage
déclaréun lien apple-touch-icon — non notéDéclaré seulement
Couleur de thème
définit l’habillage du navigateur sur mobile ; son absence est le manque visible le moins coûteux à combler de cette liste
absentune meta theme-color — non notéSignalé
Au-delà de l’essentiel
presque tous les sites déclarent un viewport et presque aucun ne déclare le reste : cette ligne est donc l’endroit où un site se démarque, pas celui où il perd des points
rien au-delà de viewportnon noté — ce sont des éléments de différenciation, pas des défautsSignalé
Présence locale, citations et NAP — 86/100
Score de la section 86 / 100
MesureActuellementOptimal
Renvoie vers son Google Business Profile
la fiche et le site forment une seule entité pour un moteur de réponse ; le champ site web de la fiche les relie côté Google, et ce lien les relie depuis le site
ouiune URL g.page, maps.app.goo.gl ou de lieu Maps✓ Réussi
Ce lien de fiche se résout
un lien de fiche mort est pire qu’aucun lien : il affirme une identité qui ne peut pas être vérifiée. Un 429 ou un 403 ici signifie que Google limite notre vérification, pas qu’il y a un problème sur votre site, et n’est pas noté
429 → www.google.com200 sur un hôte GoogleSignalé
Adresse postale dans les données structurées
une entreprise à zone desservie l’omet légitimement, donc une absence est signalée et non retenue contre vous
déclarédéclarée pour une entreprise avec locaux✓ Réussi
Coordonnées géographiques
les coordonnées permettent à une machine de rattacher l’entité à un lieu sans analyser une chaîne d’adresse
déclarélatitude et longitude✓ Réussi
Horaires d’ouverture
« sont-ils ouverts maintenant » est l’une des questions les plus fréquentes posées à un assistant sur une entreprise locale
déclaréopeningHours ou openingHoursSpecification✓ Réussi
Téléphone dans les données structurées
les moteurs lisent aussi le numéro écrit sur la page ; le numéro déclaré doit être le même
déclarédéclaré✓ Réussi
Numéros de téléphone écrits sur la page
l’extraction locale de Google ne garde les numéros d’une page que s’il y en a 4 au plus ; une page qui en liste davantage n’en fournit aucun
01 à 4Signalé
Adresses postales écrites sur la page
la même limite vaut pour les adresses : plus de 4 sur une page et aucune n’est gardée ; une entreprise à zone de service sans adresse écrite n’est pas pénalisée
14 au plus✓ Réussi
Le téléphone déclaré est écrit sur la page
Google lit les numéros dans le texte de la page, pas seulement dans le balisage ; un numéro présent uniquement dans les données structurées n’a rien sur la page qui lui corresponde
nonoui✗ Échoué
Les coordonnées sont exploitables
deux décimales représentent environ un kilomètre — suffisant pour une ville, inutile pour une boutique vers laquelle on conduit quelqu’un
1 paire(s), pleine précisiondans la plage, pas 0,0, au moins 3 décimales✓ Réussi
Chaque établissement a ses propres coordonnées
un même centroïde copié sur chaque agence dit à un assistant qu’elles sont toutes au même endroit
—aucun établissement ne partage un même pointNon mesuré
Les coordonnées concordent avec le pays déclaré
inverser le signe de la longitude la place aux États-Unis - un signe moins manquant
hors des États-Unis — signe de la longitudele point se trouve dans le pays indiqué par l’adresse — signalé, pas notéSignalé
Les coordonnées correspondent à l’adresse déclarée
l’adresse et le point sont deux affirmations indépendantes sur un même lieu, et rien d’autre sur le web ne les compare
—à moins de 500 mNon mesuré
Entités d’établissement déclarées
plus d’entités d’établissement que de fiches réelles est la cause la plus fréquente d’erreur dans un graphe d’entités local
11 par local réel — non notéSignalé
Ville sur la page vs adresse déclarée
le lieu que la page met en avant et le lieu qu’elle déclare sont les mêmes, donc un moteur n’a rien à réconcilier
les deux indiquent Denversignalé, non notéSignalé
Nom de l’entreprise dans les données structurées
deux orthographes d’une raison sociale sont deux entités pour un système de récupération, et il ne peut pas savoir laquelle est la vôtre
The Denver Postune seule orthographe✓ Réussi
Le schema et la page concordent sur le numéro de téléphone
avec une seule source, il n’y a rien à comparer, ce qui n’est pas la même chose qu’une concordance
seules les données structurées en déclarent uneles deux endroits indiquent le même numéroSignalé
Numéros de téléphone lisibles par une machine
un assistant qui dicte un numéro doit en choisir un ; un second numéro est généralement un ancien qui sonne encore quelque part
+13039541010un seul numéro✓ Réussi
Adresse postale dans les données structurées
deux adresses répartissent l’entité sur deux lieux
5990 Washington St., Denver, CO, 80216une adresse, ou aucune pour une entreprise à zone desservie✓ Réussi
Profils revendiqués par le site
sameAs est une revendication d’identité : chaque lien affirme que cette entreprise EST la chose située à cette URL
3les profils que vous possédez réellement✓ Réussi
Fiches hors site trouvées par votre numéro de téléphone
recherchées par la seule clé qu’une entreprise à zone desservie ne peut pas cacher ; Yelp, Angi, Thumbtack, Houzz, Facebook refusent un client extérieur et sont consignés comme notre limite, pas comme une absence
4 sur YellowPages, DexKnows, BBBchacune de celles que vous possédez, déclaréeSignalé
Trouvées hors site, non déclarées dans sameAs
une fiche que vous n’avez jamais liée est corroborée sans vous : tout ce qu’elle affiche devient votre nom et votre catégorie dans la réponse
4 — lesquelles, avec une licence0✗ Échoué
Fiches affichant un autre nom d’entreprise
deux noms sur un même numéro de téléphone sont deux entités pour un système de récupération
00✓ Réussi
Data Axle référence ce numéro de téléphone
Data Axle (formerly Infogroup / infoUSA) compiles business lists and sells them. Google licensed its data from 2005 to 2013; Google’s current business-listings notice names no US supplier. Reported, not scored, and not something to pay for: the next step is the free CrawlCheck registry (/registry).
refusé (403) — notre limite, pas une absence—Signalé
Fiches d’annuaires déclarées
signalé, pas noté — le nombre de citations dont une entreprise a besoin relève d’un jugement marketing, pas d’une mesure
0celles qui comptent pour votre métierSignalé
Fact trace: business name
Carried through every layer: a machine that reads only the text gets it, and so does one that reads only the structured data. Reported, not scored
The Denver Post · HTML ✓ · text ✓ · schema ✓in the HTML, in the readable text and in the structured dataSignalé
Fact trace: phone
First missing at: readable text. It is only in the structured data, not in words on the page. Reported, not scored
(303) 954-1010 · HTML ✓ · text ✗ · schema ✓in the HTML, in the readable text and in the structured dataSignalé
Fact trace: email
First missing at: readable text. It is only in the structured data, not in words on the page. Reported, not scored
newsroom@denverpost.com · HTML ✓ · text ✗ · schema ✓in the HTML, in the readable text and in the structured dataSignalé
Fact trace: street address
First missing at: readable text. It is only in the structured data, not in words on the page. Reported, not scored
5990 Washington St. · HTML ✓ · text ✗ · schema ✓in the HTML, in the readable text and in the structured dataSignalé
Fact trace: service area
Named only in the structured data: Denver Metropolitan Area and the state of Colorado. A text reader does not learn you serve them. Reported, not scored
0 of 1 declared place in the readable textevery declared place also named on the pageDéclaré seulement

Vérifié parce que ce site déclare une entité d’entreprise locale (LocalBusiness). Ceci mesure le côté site de l’alignement avec Google Business Profile — si l’entreprise renvoie vers sa propre fiche et porte les champs sur lesquels une fiche est rapprochée. Cela ne lit pas la fiche elle-même : il faudrait une clé API, et inventer des faits sur une fiche que nous ne pouvons pas voir serait pire que ne rien signaler. Lien de fiche trouvé : https://maps.app.goo.gl/aK261HiEe923wgBV7.

Chaque profil ci-dessous est un profil que le site lui-même déclare dans sameAs. Rien ici n’a été découvert en devinant des annuaires — les fiches non déclarées nécessitent un index dont cette analyse ne dispose pas.

ProfilA réponduVotre téléphoneVotre nom
Facebook
https://www.facebook.com/denverpost
non vérifié——
X
https://x.com/denverpost
non vérifié——
LinkedIn
https://www.linkedin.com/company/denver-post-media/
non vérifié——

Couverture des annuaires

Dix sources vers lesquelles un moteur de réponse est susceptible de se tourner quand on l’interroge sur une entreprise locale, comparées à ce que ce site déclare. Déclaré signifie que le site nomme le profil dans ses propres données structurées — la seule chose que cette analyse peut vérifier. Une fiche qui existe mais n’est pas déclarée apparaîtra ici comme manquante, et cela mérite en soi d’être corrigé : un moteur qui lit votre site n’a aucun moyen de la trouver non plus.

Yelp
la source locale la plus citée dans les réponses d’IA après Google lui-même
non déclarée
BBB
signal de confiance, et l’un des rares annuaires dotés d’un processus de vérification sur lequel un moteur peut s’appuyer
non déclarée
Facebook
porte les horaires et le téléphone, et est lu par plusieurs moteurs comme source principale
déclaré
Nextdoor
hyperlocal, et cité de façon disproportionnée pour les services à domicile
non déclarée
Thumbtack
source de prospects spécifique à une catégorie pour les métiers du bâtiment
non déclarée
Angi
spécifique à une catégorie, toujours fortement indexé
non déclarée
Bing Places
alimente Copilot et, historiquement, plusieurs récupérations de ChatGPT
non déclarée
Apple Maps
la carte par défaut de chaque iPhone, et invisible pour la plupart des outils SEO
non déclarée
Trustpilot
corpus d’avis que les moteurs de réponse citent directement
non déclarée
Yellow Pages
peu de valeur seul, mais un point d’ancrage de cohérence peu coûteux
non déclarée

9 sur 10 ne sont pas déclarés. Chacun est un endroit où un système de récupération aurait pu trouver une deuxième déclaration indépendante de vos nom, adresse et téléphone — et c’est la concordance entre ces déclarations qui rend chacune d’elles fiable.

La couche machine dans le temps. Notre propre historique d’un site commence la première fois que nous l’avons analysé ; l’Internet Archive conserve ce qui précède. Rien ici n’est noté — le passé d’un site n’est pas un défaut, et la couverture de l’Archive est inégale, donc un instantané manquant ne dit rien du site.

Archivé robots.txt versions40 distinctes, 2002-09-23 → 2004-04-12
Archivé llms.txtaucune archive
Exposed files and secrets — 89/100
Score de la section 89 / 100
MesureActuellementOptimal
Version-control folder (.git) (/.git/HEAD)
a readable version-control folder lets anyone download the site's source code and its history, passwords included
not readable (HTTP 403)not readable✓ Réussi
Git config file (/.git/config)
a readable version-control folder lets anyone download the site's source code and its history, passwords included
not readable (HTTP 403)not readable✓ Réussi
Environment file (.env) (/.env)
environment files hold database passwords and API keys
not readable (HTTP 403)not readable✓ Réussi
WordPress config backup (/wp-config.php.bak)
a config backup is served as plain text, with the database password inside
not readable (HTTP 403)not readable✓ Réussi
Subversion folder (.svn) (/.svn/entries)
a readable version-control folder lets anyone download the site's source code and its history, passwords included
not readable (HTTP 403)not readable✓ Réussi
Apache server-status page (/server-status)
shows every visitor's address and every URL being served, live
not readable (HTTP 404)not readable✓ Réussi
Published source maps
a source map hands out the original, unminified source of the site's scripts, comments included
0 of 2 readablenone readable✓ Réussi
Keys or secrets in page code
a live key in public code can be used by anyone who reads the page: to send mail, charge cards or read data as the site
Private key private key block in /wp-content/plugins/mng-digisubs/static/mng-digisubs.shared.bundle.jsnone✗ Échoué
AI files (llms.txt and the documents it links)
nothing is published for AI agents to read
not applicable: no llms.txt or llms-full.txtnothing private: no keys, internal addresses or personal emailsNon applicable
Account names listed by the site's API (/wp-json/wp/v2/users)
the API does not hand out login names
not listed (HTTP 403)not listed to the public✓ Réussi

Something here is readable that should not be. Lock it at the server (deny the path, remove the file, revoke and replace any key shown) before anything else on this report.

Read 2026-11-12 00:17 UTC. Six well-known paths were requested once each, the AI files (llms.txt, llms-full.txt and up to six documents they link) were read for keys, internal addresses and personal emails, and the WordPress account list (/wp-json/wp/v2/users) was requested once; a path counts as readable only when it answers directly with the file itself, so a site that answers every address with a page never reads as exposed. Keys are matched by their published formats and shown masked. Scored in Reach. A readable private file or live key is also raised as a finding, held as advisory (outside the grade) until its accuracy is measured; see /accuracy.

Pages d’erreur — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
A missing page answers 404
the right answer for a page that does not exist
HTTP 404404 or 410✓ Réussi
The 404 page helps a visitor on
a 404 with no links is a dead end; one with the menu or a home link keeps the visitor
169 links, 389 wordsa way back (home link or menu)✓ Réussi
A missing file answers 404
the right answer for a file that does not exist
HTTP 404404✓ Réussi
Error pages reveal server details
server versions, PHP warnings and stack traces tell an attacker exactly which known flaws to try
nothing revealednothing revealed✓ Réussi

Two addresses that cannot exist were requested once each (an invented page and an invented script file), with redirects not followed, so the answer is the server's own. Read 2026-11-12 00:17 UTC. Scored in Read: a missing page that answers 200 or redirects home is read as a real page by every crawler.

Couverture du sitemap — 100/100
Score de la section 100 / 100
MesureActuellementOptimal
Un sitemap était lisible
un sitemap est le seul endroit où un robot découvre les pages vers lesquelles rien ne pointe
835 URL déclaréesau moins un sitemap répond et s’analyse✓ Réussi
Les sitemaps nommés dans robots.txt répondent
un robots.txt qui pointe vers un sitemap mort envoie chaque robot vers un 404
2 sur 2chaque sitemap nommé renvoie 200✓ Réussi
Chaque sitemap lu liste au moins une URL
un sitemap qui répond 200 sans aucune entrée <url> est un pointeur mort : les robots le récupèrent à chaque visite sans rien apprendre, et la Search Console y indique 0 URL découverte
chaque fichier lu liste des URL0 vide✓ Réussi
Les liens de la page d’accueil sont déclarés dans le sitemap
une page absente du sitemap reste trouvable en suivant les liens ; une page absente des deux n’est trouvable par rien
non mesuré — seuls 20 des 6000 sitemaps enfants ont été lus0 non déclaréesSignalé
Un échantillon des URL déclarées répond
un sitemap qui liste des URL mortes gaspille le budget d’un robot
0 sur 6 cassées0 cassées✓ Réussi
Les URL déclarées échantillonnées sont définitives
déclarer l’URL d’avant redirection fait payer un saut supplémentaire à chaque exploration
0 sur 6 redirigent0 redirections✓ Réussi
URL déclarées dans le sitemap835
20 des 6000 sitemaps enfants lus — le décompte est un minimum, pas un total
Liens internes sur la page d’accueil202
Liées mais non déclaréesnon mesuré
seuls 20 des 6000 sitemaps enfants ont été lus, donc une page absente de ce que nous avons lu peut être déclarée dans une partie que nous n’avons pas lue
URL déclarées échantillonnées6 vérifiées · 0 sans réponse · 0 redirigées

Cette comparaison confronte le sitemap aux seuls liens de la page d’accueil : elle trouve donc les pages que le sitemap omet — elle ne peut pas prouver qu’une page déclarée est inaccessible, car il faudrait une exploration complète. L’écart inverse (déclarée mais liée de nulle part) est réel et n’est pas mesuré ici. Une page absente du sitemap reste trouvable en suivant les liens ; une page absente des deux n’est trouvable par rien.

Cohérence des noms et de la casse — 80/100
Score de la section 80 / 100
MesureActuellementOptimal
Casse du nom d’hôte
les noms d’hôte ne sont pas sensibles à la casse, mais un hôte en casse mixte fragmente les journaux et les statistiques
minusculestoujours en minuscules✓ Réussi
Chemins des liens internes
les chemins SONT sensibles à la casse sur la plupart des origines : /About et /about sont deux URL, deux clés de cache et deux entrées d’index
les 309 en minuscules98–100 % en minuscules✓ Réussi
Barre oblique finale
une page liée en /x et en /x/ représente deux URL pour un robot ; les deux sont récupérées et se disputent la même canonique
1 cible liée à la fois avec et sans barre oblique (/contact-us)une seule forme par URL, et l’autre forme redirige vers elle✗ Échoué
Forme de l’hôte dans les liens absolus
des liens vers www et vers le domaine nu envoient un robot vers deux copies du site, quoi que dise la canonique
cohérentun seul nom d’hôte dans chaque lien interne✓ Réussi
Chaînes de requête dans les liens internes
une chaîne de requête crée une URL distincte ; une navigation qui en porte une produit des pages quasi dupliquées
aucunemoins de 2 % des liens internes (et moins de 3)✓ Réussi
Signaux d’image — 80/100
Score de la section 80 / 100
MesureActuellementOptimal
Images sur la page
comptées à partir des balises <img> du HTML livré
44 (3 SVG)Signalé
Texte alt manquant
l’alt est le texte qu’un moteur lit pour une image, avec les mots qui l’entourent ; un alt vide est correct pour une décoration, un alt manquant est un trou
0 manquants, 1 vides (0 % manquants)0 manquant ; vide seulement sur les images décoratives✓ Réussi
Largeur et hauteur déclarées
sans les deux, le navigateur ne peut pas réserver l’espace et la page se décale à mesure que les images se chargent (le score CLS)
0 sur 44toutes✗ Échoué
Chargement différé
différer l’image principale retarde le plus grand affichage ; différer les autres accélère tout le reste
0 sur 44sous la ligne de flottaison uniquement✓ Réussi
Formats modernes (WebP/AVIF)
des fichiers plus légers, la même image
0 sur 44la plupartSignalé
Image principale priorisée
la seule image que le navigateur doit récupérer en premier
5 fetchpriority=high, 5 préchargée(s)une seule, lorsque le plus grand affichage est une imageSignalé
Image d’entité dans les données structurées
ce qu’un moteur affiche à côté du nom ; une URL dans image ou logo, idéalement un ImageObject avec ses dimensions
ouiune image ou un logo sur le nœud de l’organisation✓ Réussi
og:image
l’image qu’utilise un aperçu de lien quand la page est partagée
ouiprésent✓ Réussi
Content Credentials and AI labels
read from each image file's own C2PA manifest and IPTC source-type label, the tags AI generators and editors write; most AI images carry no label, so no label does not mean a camera took it
8 of 8 photos read: 0 made by AI, 0 edited with AI, 0 camera, 0 with Content Credentials, 8 no labellabels that say how each image was madeSignalé

Ce qu’un moteur peut apprendre des images. Cinq lignes sont notées : alt manquant, dimensions déclarées, aucun chargement différé au-dessus de la ligne de flottaison, une image d’entité dans le JSON-LD et une og:image. L’alt vide, le format de fichier et la priorité de l’image principale sont signalés mais jamais notés — un alt vide est correct sur une image décorative, et le format est une préférence, pas quelque chose qu’un moteur ne parvient pas à lire.

Ce que cette analyse n’a pas pu voir 25 sur 26 sections notées mesurées · 16 sur 18 identités ont répondu · 0 échecs d’étape · 1 mesure depuis 1 réseau (cloudflare) en 6 h · 5 non observé
SujetÉtatTentéRaison
nl_entitiesignorénonla lecture approfondie des entités s’exécute pour les domaines sous suivi continu ; cette analyse a utilisé le résolveur sans clé
vantagenon mesurénonaucun fournisseur de point d’observation n’est configuré et aucune lecture par l’extension n’existe pour ce site au cours des 14 derniers jours, donc ceci n’a pas été mesuré
identity:BytespiderrefuséouiHTTP 429
identity:Meta-ExternalAgentrefuséouiHTTP 403
section:commercenon mesuréinconnuaucune ligne de cette section n’a été produite pour cette page ; elle n’est pas entrée dans la note

Une non-observation est enregistrée, jamais notée : une ligne non mesurée est exclue de sa section, pas comptée comme un échec. Des comptes seulement ; il n’existe pas d’indice de confiance composite.

D’où vient chaque fait de cette page 16 faits · 21 déclarations · aucun désaccord
FaitValeur déclaréeDéclaré dans
nameThe Denver PostJSON-LD LocalBusiness
meta og:site_name
concorde
telephone+13039541010JSON-LD LocalBusinessune source
emailnewsroom@denverpost.comJSON-LD LocalBusinessune source
address5990 Washington St., Denver, CO, 80216JSON-LD LocalBusinessune source
hoursLu 8AM-4PM ; Ma 8AM-4PM ; Me 8AM-4PM ; Je 8AM-4PM ; Ve 8AM-4PMJSON-LD LocalBusinessune source
geo39.7392,104.9903JSON-LD LocalBusinessune source
urlhttps://www.denverpost.com/JSON-LD NewsMediaOrganization
JSON-LD LocalBusiness
concorde
logohttps://i0.wp.com/www.denverpost.com/wp-content/uploads/2020/11/denverpost.jpg?w=1200&crop=00px100630px&ssl=1JSON-LD LocalBusinessune source
foundingDate1892JSON-LD LocalBusinessune source
areaServed1 zone : Denver Metropolitan Area and the state of ColoradoJSON-LD LocalBusinessune source
sameAs3 profilsJSON-LD LocalBusinessune source
titleThe Denver Post – Colorado breaking news, sports, business, weather, entertainment.<title>concorde
The Denver Postmeta og:title
descriptionColorado breaking news, sports, business, weather, entertainment.meta og:descriptionune source
canonicalhttps://www.denverpost.commeta og:urlune source
languageen-US<html lang>concorde
en_USmeta og:locale
imagehttps://www.denverpost.com/wp-content/uploads/2020/11/denverpost.jpgmeta og:image
meta twitter:image
concorde

Lu depuis la page reçue par cette analyse : ses nœuds schema, balises meta, éléments link et liens de page, chaque valeur étant conservée avec l’élément qui l’a déclarée. Un fait déclaré à plusieurs endroits devrait dire la même chose partout. Enregistré, non noté.

Si vous préférez ne pas le faire vous-même

Tout corriger dans ce rapport
The 11 findings above, including 6 scored serious, corrected on your site and re-measured afterwards. You get a change receipt: the before and after, each sealed and independently verifiable on your own machine, so the fix is evidenced rather than asserted.
  • La couche machine, rédigée pour l’entreprise. Une carte d’entités, un agents.md et un llms.txt rédigés à partir des faits publiés par le site lui-même plutôt que d’un modèle — la carte d’entités étant ce qui permet à un système de recherche de distinguer cette entreprise d’une autre au nom similaire. Vendu séparément jusqu’à présent.
  • Trente jours de surveillance, inclus. Le site est réanalysé deux fois par jour et tout changement visible par les robots est envoyé à votre webhook, pour qu’une régression soit détectée par nous plutôt que par vous.
  • Un second reçu scellé au trentième jour. Le premier prouve que la correction a été appliquée ; le second prouve qu’elle a tenu. Les deux se vérifient sur votre propre machine par rapport à une racine publiée, sans avoir à nous faire confiance.
  • Terminé se définit par une nouvelle mesure, pas par une affirmation. Un constat encore présent lors de la réanalyse n’est pas un travail fini.
Faire corriger — $100
un site d’entreprise locale · ce que cela couvre

La correction inclut la couche machine : une carte d’entités, un agents.md et un llms.txt rédigé pour cette entreprise plutôt que tiré d’un modèle — 7 des 8 surfaces pour agents vérifiées ci-dessus sont absentes ici. Un site plus grand, ou plusieurs domaines à la fois, fait l’objet d’un devis sur la base du rapport : écrivez à hello@crawlcheck.io en indiquant cette adresse.

Mesuré, hors de la note (16)

Ces éléments sont mesurés à chaque analyse et affichés en entier. Chacun indique pourquoi il ne pèse encore rien : la plupart attendent assez de sites pour être calibrés, et certains dépendent d’une intégration qu’un site n’a pas forcément, ce qui ne doit jamais décider d’une note.

Surfaces pour agents (émergentes, non notées) — 12 sur 12 lignes lues

Hors de la note : ce sont des standards publiés à des stades d’adoption très différents, et plusieurs ne s’appliquent pas à toutes les entreprises.

Lignes avec une lecture (hors de la note)12 / 12
MesureActuellementOptimal
agents.md
La seule surface ici qui est rentable pour une entreprise ordinaire aujourd’hui. Presque tous les agents.md du web sont des fichiers par défaut de plateforme que leur propriétaire n’a jamais écrits
absentUn fichier rédigé à /agents.md : ce que fait l’entreprise, la zone qu’elle dessert, ce qu’un agent doit recueillir avant d’agir, et ce qu’il ne doit pas promettreSignalé
SKILL.md
La convention des compétences d’agent. Un 200 qui contient du HTML est un 404 déguisé et compte comme absent - une vérification naïve le déclarerait présent
absent (404)Un fichier markdown à /SKILL.md avec un en-tête YAML nommant la compétence, puis ce qu’un agent peut faire ici et commentSignalé
Markdown pour les agents
Réduit ce qu’un agent doit analyser. Une option à activer sur certaines périphéries réseau plutôt qu’un développement
absent (text/html; charset=utf-8)Accept: text/markdown renvoie un corps en markdown ; le HTML reste le format par défaut pour les navigateursSignalé
DNS-AID records
An IETF draft (DNS for AI Discovery). Early: almost no site has these yet, so absence is not a defect
absentSVCB or TXT records at _index._agents (and _mcp._agents / _a2a._agents) pointing agents at your MCP server or agent cardSignalé
En-têtes de réponse Link
Utiles lorsqu’une relation est réelle. En inventer une pour gagner un point relève du mimétisme qu’encouragent ces listes
present: <https://www.denverpost.com/wp-json/>; rel="https://api.w.org/", <https://wp.me/7yQli>; rel=shortlinkUniquement des relations enregistrées - canonical, alternate, describedby. Jamais un rel inventé pour satisfaire un vérificateurSignalé
ARD manifest
The index agent registries crawl. Applies once the site has an agentic resource to list; a brochure site has nothing to put in it
absent/.well-known/ard.json (Agentic Resource Discovery v0.91): one entry per MCP server, agent card, skill or API this site offers, each with a urn:air:denverpost.com:<name> identifier, a media type, a url, and 2-5 representativeQueriesSignalé
Index des compétences d’agent
Pour les sites qui exposent des actions qu’un agent peut effectuer. Un site vitrine n’a aucune compétence à déclarer
absent/.well-known/agent-skills/index.json listant chaque compétence avec un nom, une description, une url et un sha256Signalé
Catalogue d’API
NON APPLICABLE : aucune API publique trouvée. Un catalogue de rien n’est pas une amélioration
absentRien à publier - aucune API n’a pu être découverte sur ce siteSignalé
Carte de serveur MCP
S’applique dès que vous exploitez un serveur MCP. Publier une carte sans serveur annonce un point de terminaison qui ne répond pas
absent/.well-known/mcp/server-card.json avec serverInfo, le point de terminaison de transport et les capacitésSignalé
Protocoles de paiement pour agents
NON APPLICABLE : aucun Product, Offer ou paiement trouvé. Un scanner qui pénalise une entreprise de services pour cela mesure le mauvais site
non applicableRien à publier - aucun signal commercial sur ce siteNon applicable
Métadonnées OAuth / ressource protégée
NON APPLICABLE : rien auprès de quoi s’authentifier
non applicableRien à publier - aucune API protégée sur ce siteNon applicable
Web Bot Auth
Vous identifie en tant qu’appelant, pas en tant que destination. Sans objet pour un site qui ne fait que recevoir du trafic
à titre informatifUn JWKS à /.well-known/http-message-signatures-directory - uniquement si CE site envoie des requêtes d’agent signées à d’autresSignalé

Aucun de ces éléments n’affecte la note. Ce sont des standards publiés à des stades d’adoption très différents, et plusieurs ne s’appliquent pas à toutes les entreprises — lorsque c’est le cas, ce tableau le dit et explique pourquoi. Une liste de contrôle qui les compte tous mesure le mauvais site.

Entités de contenu (mesurées, pas encore notées) — 4 sur 4 lignes lues

Hors de la note : la lecture est fiable mais la règle de notation n’est pas arrêtée, et une règle qui peut changer ne doit pas faire changer une note.

Lignes avec une lecture (hors de la note)4 / 4
MesureActuellementOptimal
Entités lues dans le contenu
les entités déclarées viennent du JSON-LD propre à la page ; le reste est une lecture HEURISTIQUE du texte, signalée comme telle
24les sujets dont traite cette pageSignalé
Correspondent à une fiche d’entité publique
la correspondance signifie que Wikidata possède un élément pour ce nom. Ce n’est pas un signal de classement et cela ne veut pas dire que la page se classe sur ce nom
15 sur 24une chose nommée que la source publique connaîtSignalé
Le sens principal, pas celui de la page
un nom seul se résout vers ce que la source publique considère comme son sens principal — "Aurora" se lit comme l’aurore boréale, pas comme la ville du Colorado. La description est affichée à côté de chaque résolution pour que vous voyiez quel sens a été retenu. Résoudre EN CONTEXTE exige un modèle contextuel et ne se mesure pas avec une recherche sans clé
non désambiguïsérésolu en contexteSignalé
Résolu et absent du graphe d’entités
un sujet dont parle le texte, que la source publique reconnaît, et que les données structurées de ce site ne nomment jamais — une lacune de l’auteur, pas de la machine
140Signalé

Les entités sont résolues par rapport à Wikidata — gratuit, sans clé, et il répond à la question qu’un rédacteur se pose vraiment : cette chose existe-t-elle comme fiche d’entité publique, ou n’est-ce qu’une expression. Deux classes de preuves, tenues séparées : les entités déclarées sont lues dans le JSON-LD de la page elle-même ; les entités détectées sont une lecture heuristique du texte et contiendront un peu de bruit. La résolution n’est pas un signal de classement.

Traités dans le texte, reconnus par la source publique, absents des données structurées de ce site :

  • Denver Broncos — Q223507 · National Football League franchise in Denver, Colorado · 11 mentions
  • Colorado — Q1261 · state of the United States of America · 10 mentions
  • Broncos — Q60740406 · untrained horse or a horse that habitually bucks · 8 mentions
  • Daiyan Henley — Q114245319 · American football player (born 1999) · 6 mentions
  • Opinion — Q3962655 · judgement, viewpoint, or statement that is not conclusive · 5 mentions
  • BestReviews — Q7020906 · American media company · 3 mentions
  • Boulder — Q581776 · natural rock fragment larger than 25.6 cm in diameter (larger than 200 mm diameter according to ISO 14688) · 3 mentions
  • Thanksgiving — Q13959 · holiday in various countries · 3 mentions
  • Aurora — Q40609 · natural light display that occurs in the sky, primarily at high latitudes (near the Arctic and Antarctic on Earth) or even on other planets · 2 mentions
  • Carolina Panthers — Q330120 · National Football League franchise in Charlotte, North Carolina · 2 mentions
  • Congressional District — Q192611 · territorial division made or used for elections · 2 mentions
  • Kansas City Chiefs — Q223522 · National Football League franchise in Kansas City, Missouri · 2 mentions

2 autres non listés.

Rien dans cette section n’affecte la note — le corpus mesure d’abord la distribution.

Zone desservie, telle que déclarée (mesurée, pas notée) — 4 sur 6 lignes lues

Hors de la note : une zone desservie déclarée ne peut être juste ou fausse que par rapport à des faits que cette analyse ne peut pas voir.

Lignes avec une lecture (hors de la note)4 / 6
MesureActuellementOptimal
Zones desservies déclarées dans le schema
la liste qu’un moteur de réponse lit quand on lui demande "couvrent-ils X" ; une entreprise qui dessert une zone sans jamais la déclarer est invisible pour cette question
1chaque lieu que l’entreprise dessert réellement, sous forme de nœuds City ou PlaceSignalé
Rayon déclaré
le rayon est la seule affirmation qui borne toutes les autres
aucun GeoCircleun GeoCircle autour du centre réelSignalé
Zones qui ont pu être placées sur une carte
un nom qu’aucun répertoire géographique ne résout est un nom qu’un moteur ne peut pas situer non plus
0 sur 1chaque nom déclaré se résout en un lieuSignalé
Zones ayant leur propre page
déclarer une zone et avoir une page pour elle sont deux affirmations différentes ; c’est la page qui est citée
0 sur 1une page locale par zone qui compteSignalé
Zones déclarées hors du rayon déclaré
le graphe se contredit : le cercle dit non, la liste dit oui, et un lecteur doit deviner lequel est vrai
aucunezéroSignalé
Zone déclarée la plus éloignée
la distance sur laquelle l’entreprise s’engage officiellement
—à l’intérieur du rayonNon mesuré
centre déclaré

déclarée, a sa propre page · déclarée dans le schema uniquement · hors du rayon déclaré · anneau = GeoCircle

Non placées (aucune correspondance dans le répertoire géographique près du centre) : Denver Metropolitan Area and the state of Colorado

Non noté. Les positions sont les centroïdes de lieux OpenStreetMap, résolus une fois par nom ; une page compte quand une URL du sitemap contient le nom du lieu. Ce que ceci montre, c’est ce que le site déclare, disposé de façon à rendre les contradictions visibles ; savoir si l’entreprise travaille réellement à cet endroit ne se lit pas sur le réseau.

Le site entier, pas seulement la porte d’entrée (mesuré, non noté) — 1 sur 1 lignes lues

Hors de la note : la note reste ancrée sur la page d’accueil pour être comparable d’un site et d’un jour à l’autre.

Lignes avec une lecture (hors de la note)1 / 1
MesureActuellementOptimal
Lecture du site entier
la page d’accueil est notée maintenant ; le reste du site est lu en arrière-plan. Réanalysez dans une minute environ pour le voir
en file d’attente pour cette analysejusqu’à 60 pages déclarées, lues une fois par jourSignalé
Fraîcheur, telle que le site la déclare (mesurée, non notée) — 9 sur 10 lignes lues

Hors de la note : chaque date ici est une date publiée par le site, donc ceci rapporte ce qu’il affirme plutôt que ce qui est vrai. Calibré le 2026-09-16 sur 114 enregistrements : la seule ligne que portent la plupart des sites (un sitemap qui déclare lastmod, 68 %) n’est pas un défaut quand elle est absente, et les lignes qui seraient des défauts (tous les lastmod datés du même jour, 8 % ; le sitemap et dateModified en désaccord de plus d’un mois, 2 %) ne peuvent être mesurées que sur trop peu de sites pour peser.

Lignes avec une lecture (hors de la note)9 / 10
MesureActuellementOptimal
URL du sitemap avec une date de modification
lastmod est le seul signal de modification qu’un moteur peut lire sans compte. Un sitemap sans dates n’indique rien à un robot sur ce qu’il doit récupérer en premier
835 sur 835chaque URL, avec sa date réelleSignalé
Date la plus récente du sitemap
ce que le site dit avoir modifié en dernier ; l’écart avec aujourd’hui est une affirmation sur l’activité, pas un défaut en soi
2026-11-11 (aujourd’hui)au cours du dernier mois pour un site qui publieSignalé
Dispersion des dates du sitemap
une dispersion de dates est ce à quoi ressemble un véritable historique de modifications
25 jours distincts sur 835 URL datées (2026-10-15 à 2026-11-11)de nombreux jours - un vrai historique de modificationsSignalé
En-tête Last-Modified de la page d’accueil
la date de modification au niveau HTTP ; un cache placé devant la définit généralement, elle décrit donc la copie servie, pas la modification
2026-11-12 (aujourd’hui)envoyé, et exactSignalé
dateModified de la page d’accueil dans le JSON-LD
la date qu’affirment les données structurées ; un moteur peut la citer à côté d’un fait, c’est pourquoi une date périmée est pire qu’aucune
aucuneprésente, et mise à jour quand la page a changéSignalé
Éléments datés sur la page
un élément <time datetime> est une date qu’une machine peut lire sans deviner à partir du texte
7 (le plus récent le 2026-11-11, aujourd’hui)chaque date visible par une personne également baliséeSignalé
RSS or Atom feed
a refusal is a fact about the request, not the feed; the file may be fine for readers the shield allows
declared (www.denverpost.com/feed/), but the site refused CrawlCheck’s request for itdeclared, valid, recentDéclaré seulement
Unchanged page answers 304 to a re-check
a crawler re-checking a page it already has sends If-None-Match or If-Modified-Since; a 304 costs it a few hundred bytes instead of the whole page, so it can afford to check more often
no ETag or Last-Modified, so a crawler cannot ask304 Not ModifiedSignalé
IndexNow (instant change pings to Bing and others)
IndexNow is sent by the site, so a scanner cannot see it; ChatGPT search draws on Bing's index, which IndexNow updates within minutes. CrawlCheck's guide shows how to set it up and confirm a 200
cannot be seen from outsidepinged on every publishSignalé
Historique de robots.txt dans l’archive publique
depuis combien de temps le site entretient une porte d’entrée lisible par les machines ; l’ancienneté est la seule affirmation qu’un nouveau site ne peut pas fabriquer
vu pour la première fois le 2002-09-23, 40 versionsun long historiqueSignalé

Chaque date de cette section est une date que le site a publiée sur lui-même. La section rapporte ces affirmations et leurs contradictions ; elle ne décide pas si une page est obsolète, car seule l’entreprise le sait. Rien de tout cela ne modifie la note.

Intentions locales, le vocabulaire de Maps (mesuré, non noté) — 2 sur 3 lignes lues

Hors de la note : le vocabulaire d’intentions est une liste de noms reconstituée, sans pondérations, et une intention revendiquée sans page correspondante est un choix de contenu, pas un défaut ; signalé jusqu’à ce que le corpus montre sa distribution.

Lignes avec une lecture (hors de la note)2 / 3
MesureActuellementOptimal
Intentions locales nommées par les déclarations du site
une requête locale est classée dans l’un des 446 types d’intention avant qu’un lieu soit récupéré ; ici, ce sont les types d’entreprise, les nœuds Service, le titre et les intertitres du site qui les nomment
1 (bureaux de poste)chaque intention que vous servez, et aucune autreSignalé
Intentions revendiquées avec une page liée depuis la page d’accueil
une intention nommée seulement dans un paragraphe est en concurrence avec chaque page du web qui la nomme ; une page dont l’adresse porte l’intention est celle sur laquelle aboutit une requête
0 sur 1 - aucune page pour : bureaux de postetousSignalé
Intentions utilisées par les internautes pour trouver la fiche d’établissement
aucun terme de recherche de fiche d’établissement enregistré pour ce domaine
non mesurélu dans les termes de recherche du profilNon mesuré
Parcours de conversion sur la page (mesuré, non noté) — 5 sur 6 lignes lues

Hors de la note : savoir si un visiteur peut agir relève d’un jugement commercial, et la note porte sur ce que reçoit une machine.

Lignes avec une lecture (hors de la note)5 / 6
MesureActuellementOptimal
Lien téléphonique sur la page
sur un téléphone, un lien tel: est le chemin le plus court entre la lecture et l’appel ; un numéro simplement affiché n’est pas cliquable
aucuneau moins un lien d’appel en un gesteSignalé
Lien téléphonique au-dessus de la ligne de flottaison
le visiteur arrivé depuis un moteur de réponse a déjà décidé ; le numéro doit se trouver là où il arrive
nondans le premier quart de la pageSignalé
Formulaire de devis ou de contact
un formulaire est le seul chemin qui fonctionne quand le bureau est fermé
1 trouvés, un au-dessus de la ligne de flottaisonun formulaire, accessible sans défilerSignalé
Appels à l’action
comptés à partir du texte des liens et des boutons : devis, estimation, appeler, réserver, planifier, contact
6 (la première avant la ligne de flottaison)une demande claire, tôtSignalé
Page de contact ou de devis liée
la page vers laquelle se tourne un visiteur quand la bannière principale n’a pas converti
ouiliée depuis chaque pageSignalé
Bouton d’appel fixe (mobile)
une barre d’appel fixe garde le numéro accessible à chaque position de défilement sur un téléphone
non détectéprésent sur les sites de servicesSignalé

La couche SXO : un visiteur arrivé prêt à agir peut-il agir. Compté à partir du HTML livré : un formulaire dans une iframe tierce n’apparaît comme formulaire que si l’iframe en nomme un. Rien de tout cela ne modifie la note.

What AI looks for vs what your page shows (measured, not scored) — 0 sur 1 dans la plage

Not in the grade: the effects come from one model ranking fictional businesses, and a fact a business does not have should never be added to please a model.

Lignes dans la plage (hors note)0 / 1
MesureActuellementOptimal
Business name in the text
An agent reading this page through a fetch tool gets the text and often only its opening part; a name that lives only in markup or images is not in what it reads. Position is reported, not graded
word 1 of 2,099 (1% in)in the opening text, where a reader cut short still finds itSignalé
Phone number in the text
A number that exists only as a tel: link or in markup is invisible to an agent reading the text; written out, it can be quoted
not in the text (+13039541010 is in a link or markup only)written out in the opening text✗ Échoué
Higher rating
changing “Rated 4.8 of 5” to “Rated 4.1 of 5” dropped the business in 176 of 177 paired tests, 3.87 places on average; 2 of 2 models tested punish it
not found on the homepageshown, if true of the businessSignalé
Many reviews
changing “212 Google reviews” to “9 Google reviews” dropped the business in 136 of 177 paired tests, 1.58 places on average; 2 of 2 models tested punish it
not found on the homepageshown, if true of the businessSignalé
Serves the asker's city
changing “Serves the asker’s city and nearby” to “Serves a town 40 miles from the asker’s city” dropped the business in 117 of 175 paired tests, 1.52 places on average; 2 of 2 models tested punish it
shown: service area in structured datashown, if true of the businessSignalé
Licence number shown
changing “State licence #48213, active” to “No licence information” dropped the business in 85 of 175 paired tests, 0.78 places on average; 1 of 2 models tested punish it
not found on the homepageshown, if true of the businessSignalé
Insurance stated
changing “Insured and bonded” to “No insurance information” dropped the business in 68 of 173 paired tests, 0.64 places on average; 0 of 2 models tested punish it
not found on the homepageshown, if true of the businessSignalé
Fast reply
changing “Replies to inquiries within 1 hour” to “Replies to inquiries within 3-5 days” dropped the business in 51 of 176 paired tests, 0.38 places on average; 0 of 2 models tested punish it
not found on the homepageshown, if true of the businessSignalé
Years in business
changing “In business since 2009” to “Founded in 2025” dropped the business in 45 of 172 paired tests, 0.36 places on average; 0 of 2 models tested punish it
shown: founded 1892 in structured datashown, if true of the businessSignalé
Emergency service
changing “24/7 emergency service” to “Weekday appointments only” dropped the business in 44 of 177 paired tests, 0.29 places on average; 0 of 2 models tested punish it
not found on the homepageshown, if true of the businessSignalé
Phone listed
changing “Phone (555) 010-4477” to “No phone listed (contact form only)” dropped the business in 32 of 178 paired tests, 0.19 places on average; 0 of 2 models tested punish it
shown: phone in structured datashown, if true of the businessSignalé
Hours stated
changing “Hours: Mon-Sat 7am-6pm” to “Hours: not listed” dropped the business in 28 of 175 paired tests, 0.13 places on average; 0 of 2 models tested punish it
shown: opening hours in structured datashown, if true of the businessSignalé
Prices published
changing “Prices published, free written estimates” to “Call for pricing” dropped the business in 11 of 173 paired tests, 0.03 places on average; 0 of 2 models tested punish it
shown: $60,000shown, if true of the businessSignalé

When an AI model picks a business, it weighs facts like these. CrawlCheck measures how much each one moves a model’s ranking (five businesses ranked with and without the fact, openai/gpt-oss-120b) and checks your homepage for it. The facts that cost the most when missing and are not on your homepage: higher rating, many reviews. Add only what is true of the business. Full method: the sensitivity census.

Trust and reputation (measured, not scored) — 7 sur 8 dans la plage

Not in the grade: these are signals to check, not proof: a complaint can come from someone spoofing the number, and a young domain can be an honest new business.

Lignes dans la plage (hors note)7 / 8
MesureActuellementOptimal
Business phone on the page
with no number on the page, an agent cannot match the site to its listings or check the number's reputation
aucun trouvéa phone number visitors and agents can check✗ Échoué
Same phone on the page and in its markup
two different numbers for one business make every listing and answer less certain
cohérentconsistent✓ Réussi
Malware or phishing listing
a listed site is warned on or dropped by browsers and search, and refused by agents that check first
no match in the checked threat sourceno match✓ Réussi
Domain age
most scam and copycat sites are weeks old; a new domain is not proof of anything, only a reason to check
1995-03-10 (31 years)older than 90 days✓ Réussi
Registration
an expiring domain can lapse and be bought by someone else
renews by 2028-03-11more than 30 days left✓ Réussi
Parked, for sale or placeholder
a parked or for-sale page is not a working business
nonnon✓ Réussi
Redirects to another organisation
a site that forwards to a different organisation is not the business it names
nonnon✓ Réussi
Homepage text copied on other domains
near-identical visible text on different domains, with each site's own name, numbers and links masked. Copycat sites clone a real business's page
aucun trouvénone✓ Réussi

Red flags: Business phone on the page. These are the checks an AI agent should run before it cites or calls a business: its phone number in public complaint data, its listing for malware or phishing, how old and how secure its domain is, and whether the site is really the business it names. Reported, not scored.

Claims and their evidence (measured, not scored) — 3 sur 3 dans la plage

Not in the grade: a source that cannot be read is not evidence against a claim, and a listing can lag a real change, so this reports what agrees rather than grading it.

Lignes dans la plage (hors note)3 / 3
MesureActuellementOptimal
Profile link: facebook.com
an outside source agrees, so an assistant repeating this is on firm ground
✓ facebook.com (the profile links back to this site)confirmed by a source outside the site✓ Réussi
Profile link: x.com
an outside source agrees, so an assistant repeating this is on firm ground
✓ x.com (the profile links back to this site)confirmed by a source outside the site✓ Réussi
Profile link: linkedin.com
an outside source agrees, so an assistant repeating this is on firm ground
✓ linkedin.com (the profile links back to this site)confirmed by a source outside the site✓ Réussi

3 confirmed outside the site · 0 contradicted · 0 where the markup and the page disagree · 0 stated only by the site · 0 with no readable source. Built from this scan’s own readings, no extra requests. As a graph (schema.org Claim and ClaimReview, signed): claims.json.

Site safety (measured, not scored) — 23 sur 29 dans la plage

Not in the grade: only a malware or phishing listing changes what AI systems do with a site, and the rest is protection rather than a property of what a machine is served.

Lignes dans la plage (hors note)23 / 29
MesureActuellementOptimal
Malware or phishing listing
no match means none was found in that source, not that the site is proven clean
no match in Cloudflare security resolver (malware and phishing threat intelligence)no match✓ Réussi
Homepage links to listed sites
a link to a malware or phishing domain sends visitors there, and injected outbound links are often the first sign a site has been hacked
none of 10 linked domainsnone✓ Réussi
Content served only to crawlers
injected spam and cloaked redirects are usually shown to crawlers only, so the owner never sees them in a browser; a difference on the first read is re-read in paired rounds before it is reported
none: every named answer and search crawler got the outside scripts, links and redirects the unnamed client got (19 identities sent)none: crawlers get the scripts, links and redirects visitors get✓ Réussi
HTTPS homepage
an agent or browser that cannot load the page securely shows a warning or nothing
loads over HTTPS (200)loads over HTTPS✓ Réussi
Certificate
an expired certificate blocks every visitor and crawler with a security error
newest valid to 2027-02-04 (84 days)valid, renewed before expiry✓ Réussi
HSTS (HTTPS on every return visit)
browsers that have seen the site refuse plain HTTP for the next year
max-age 31536000, includeSubDomainsmax-age of at least one year✓ Réussi
Script-injection protection (Content Security Policy)
a wildcard source lets an injected script load from anywhere. Fix: list the hosts the site actually uses
enforced, but scripts are allowed from any source (*, https: or http:)an enforced policy that limits where scripts come fromWarning
Clickjacking protection (framing)
any site can load the page in a hidden frame and trick visitors into clicking. Fix: X-Frame-Options: SAMEORIGIN or frame-ancestors 'self'
non définiDENY, SAMEORIGIN or frame-ancestors✗ Échoué
MIME-sniffing protection (nosniff)
a browser may run an uploaded file as a script because it looks like one. Fix: X-Content-Type-Options: nosniff
non définiset✗ Échoué
Referrer-Policy
current browsers already pass other sites the origin only; setting it makes that hold in older browsers too
not set (current browsers default to strict-origin-when-cross-origin)strict-origin-when-cross-origin or stricterSignalé
Browser permission restrictions (camera, microphone, location)
an advisory, not a sign of misuse: with no policy, any script on the page, third-party ones included, may ask the visitor for camera, microphone or location. Fix: Permissions-Policy: camera=(), microphone=(), geolocation=()
no Permissions-Policyblocked with an empty list, e.g. camera=()Warning
Insecure resources on the HTTPS page
http:// scripts, images or frames on an HTTPS page can be swapped in transit; browsers block or flag them
00✓ Réussi
Software version shown in headers
a visible version tells attackers which known flaws to try
none shownnone shown✓ Réussi
Cookies without the Secure flag
a cookie without Secure can be sent over plain HTTP. Fix: add Secure where each is set
0 sur 30✓ Réussi
Session cookies readable by page scripts
analytics and preference cookies are not judged here; cookies set after signing in were not observed
not applicable: none of the 3 cookies observed is a session or login cookieHttpOnly on every session cookieNon applicable
Forms that send over plain HTTP
every form posts over HTTPS
none of 3 formsnone✓ Réussi
Where forms send their data
nothing typed into these forms leaves the site's own host
only this sitethis site or a processor the owner chose✓ Réussi
HTTP to HTTPS redirect
the first answer moves the visitor to HTTPS
http://www.denverpost.com (301) → https://www.denverpost.com (200)one redirect straight to HTTPS, never back to HTTP✓ Réussi
jquery 3.5.1
no advisory in OSV.dev (npm advisories) lists this version (2026-11-12); a new one is picked up on a later read
no published advisoryno library with a published advisory✓ Réussi
Script and form hosts in threat intelligence
checked against Cloudflare security resolver (malware and phishing threat intelligence); no match means none was found in that source, not that a host is safe
no match for 15 hostsno match✓ Réussi
Same protections on login, contact and checkout pages
the pages that take visitors' details carry the homepage's protections
same as the homepage on the login page (/login), contact page (/contact-us), checkout page (/2026/11/10/colorado-buffaloes-basketball-ian-inman-san-diego/)every sampled page as protected as the homepage✓ Réussi
Security changes since the last read
new form destinations, script providers and advisories are listed so the owner can confirm each was intended
since 2026-11-10: new script provider embed.sendtonews.comevery new script or form destination intendedWarning
Email forgery protection (DMARC)
without an enforcing policy, anyone can send email that appears to come from this domain
p=quarantinep=quarantine or p=reject✓ Réussi
SPF
names the servers allowed to send this domain's mail
present, ends failpresent, ends fail or softfail✓ Réussi
CAA (who may issue certificates)
limits which certificate authorities can issue a certificate for the domain
aucuneset✗ Échoué
DNSSEC
protects visitors from forged DNS answers
not signedsigned✗ Échoué
Domain registration
a lapsed registration takes the site and its email offline and can be bought by someone else
registered 1995-03-10, renews by 2028-03-11renewal more than 30 days away✓ Réussi
Google Safe Browsing (Chrome, Firefox, Safari, Android)
check it by hand: transparencyreport.google.com/safe-browsing/search?url=www.denverpost.com
not read in this scanno unsafe contentSignalé
OpenPhish phishing feed
a live phishing feed, updated hourly, that mail filters and security tools import
non listénon listé✓ Réussi
Registrar transfer lock
the domain cannot be moved to another registrar without unlocking it first
onon (client transfer prohibited)✓ Réussi
HSTS preload list
a preloaded domain is HTTPS-only in every major browser from the very first visit, so no first request can be intercepted or downgraded
not preloaded: Subdomain; No preload directivepreloadedSignalé
Third-party scripts and styles
unpinned library files from ajax.googleapis.com, cdn.jsdelivr.net: if that CDN is compromised, the altered file runs here; add integrity= with the file's hash
18 from 17 outside hosts, 0 pinned with integrity=static library files pinned with integrity=✗ Échoué
Scripts from CDNs taken over in 2024
polyfill.io and its sister CDNs (bootcss.com, bootcdn.net, staticfile.org) changed hands in 2024 and served malicious code to the sites loading them; remove the tag
aucunenone✓ Réussi
Hacked-site signatures
hidden spam links, cryptominers and obfuscated loaders are the usual traces of a hacked site
aucun trouvénone✓ Réussi
Subdomain takeover
a subdomain left pointing at a hosting account that was closed can be claimed by anyone and used to host phishing under this domain's name
none of 24 common subdomainsnone✓ Réussi
Regression tests from this site's own fixes
each problem this domain had and fixed is re-run on every later scan; one that returns is marked as a regression, not as a new finding: Almost nothing a machine receives from this page is readable text
3 fixed problems re-checked on every scan · 2 holding · 1 came backevery fixed problem stays fixed✗ Échoué

Read 2026-11-12 00:17 UTC and refreshed daily. The malware and phishing listing is the only row here that changes what AI systems do with a site. The rest is protection against the site being hacked or its email being forged, which is what gets sites listed; none of it is a ranking factor, so this section is not scored.

Security filters that do not publish their ratings for automated reading. Check each one and request a correction there: McAfee WebAdvisor (site lookup and re-rating request) · Norton Safe Web · Microsoft SmartScreen (Edge) · Google Safe Browsing. A new domain shows as unrated or “Unknown” in these filters until they first crawl it.

AI rights and consent (measured, not scored) — 5 sur 5 dans la plage

Hors de la note : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une note.

Lignes dans la plage (hors note)5 / 5
MesureActuellementOptimal
AI training
collecting the page to train AI models. The signal and line named here are what a crawler reading the site's own declarations finds.
denied — decided by robots.txt line 21a stated answer either way: allow or deny✓ Réussi
Grounding an answer
fetching the page while answering a person's question. The signal and line named here are what a crawler reading the site's own declarations finds.
denied — decided by robots.txt line 21a stated answer either way: allow or deny✓ Réussi
Summaries and snippets
showing an excerpt of the page in an AI answer. The signal and line named here are what a crawler reading the site's own declarations finds.
denied — decided by robots.txt line 21a stated answer either way: allow or deny✓ Réussi
Citation
listing the page as a search or answer source. Nothing on the site says, so each crawler falls back to its own default, and the defaults differ.
not declared · robots.txt closes it to OAI-SearchBot, Claude-SearchBot, PerplexityBot and not to the resta stated answer either way: allow or denySignalé
Acting for a user
an agent acting or buying on the page for a person. The signal and line named here are what a crawler reading the site's own declarations finds.
denied — decided by robots.txt line 21a stated answer, once a standard signal for this use existsSignalé
Signals that disagree
two signals answering the same question differently leave each crawler to pick the one it honours; a denial anywhere is read here as a denial
aucunenone✓ Réussi
Where it is declared
robots.txt answers who may fetch; only a use signal answers what they may do with what they fetched
robots.txt, TDM-Rep metarobots.txt plus at least one use signal (Content-Signal, TDM-Rep, ai.txt or a robots meta directive)✓ Réussi
Terms page
a crawler reads robots.txt, not the terms; a restriction that exists only in prose binds nothing that fetches
no terms link found on the pagemachine-readable signals that say what the terms saySignalé

One answer per use, merged from everything the site publishes about what AI may do with its pages: robots.txt read for each agent’s own group, Content-Signal, ai.txt, TDM-Rep, robots meta and X-Robots-Tag, and the terms page. A denial anywhere denies; an explicit yes allows; a snippet limit limits; a clause in the terms restricts a use nothing machine-readable answers. The right answer is yours to choose; what is measured is whether you chose one and whether your signals agree. Not legal advice. The full answer: every signal, per path and per agent · the same answer travels in the Resolve record agents read before they fetch.

Price transparency (measured, not scored) — 2 sur 3 dans la plage

Hors de la note : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une note.

Lignes dans la plage (hors note)2 / 3
MesureActuellementOptimal
Prices stated on the page
an assistant asked what the job costs can only quote a number the site states; with none it quotes a directory or a competitor
2 amounts ($60,000, $15)at least one figure or range✓ Réussi
Link to a pricing or cost page
a crawler that lands on the homepage finds the cost page only through a link
/2026/11/11/denver-home-sellers-price-drops-colorado/, /2026/08/26/colorado-peaches-senior-womens-softball-35th-anniversary-photos/, /2026/11/10/inflation-consumer-prices-october/linked, or prices on this page✓ Réussi
Prices in the markup
machines read prices from the markup first; a priceRange alone gives no figure to quote
aucuneOffer or price range declared✗ Échoué

Read from the delivered homepage text and its structured data. Prices drawn only by a script after load are not in that copy, which is also what most AI crawlers see. Measured, not scored.

Third-party dependencies (measured, not scored) — 1 sur 3 dans la plage

Hors de la note : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une note.

Lignes dans la plage (hors note)1 / 3
MesureActuellementOptimal
Outside services the page loads
each outside host is a service the site cannot fix when it is slow or down; every one adds a connection before the page is complete
18 hosts: tracking 1, forms and widgets 1, fonts 1, code library (CDN) 2, consent 1, other 1210 au plus✗ Échoué
Outside files that hold the page until they load
a script without async or defer, or a stylesheet, in the head from another host stops the page from drawing until that host answers; when it is down the page stays blank
7: cmp.osano.com, ajax.googleapis.com, accounts.google.com, prodmg2.blob.core.windows.net, …none✗ Échoué
Trackers loaded
listed so the owner can confirm each is still wanted; every tracker is another script on every visit
1: stats.wp.comonly the ones you use✓ Réussi
  • other: metrics.rapidedge.io, prodmg2.blob.core.windows.net, cdn.sophi.io, plugins.mngdigisubs.com, htlbid.com, ak.sail-horizon.com, cdn.parsely.com, applepay.cdn-apple.com, cdn.p-n.io, delivery.revcontent.com, cdn.cityspark.com, esm.sh
  • consent: cmp.osano.com
  • code library (CDN): ajax.googleapis.com, cdn.jsdelivr.net
  • forms and widgets: accounts.google.com
  • tracking: stats.wp.com
  • fonts: fonts.googleapis.com

Read from the delivered HTML: scripts, stylesheets, frames and media. Anything a script loads later is not counted here (the browser view in the extension lists those). Measured, not scored.

Language and region (measured, not scored) — 3 sur 3 dans la plage

Hors de la note : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une note.

Lignes dans la plage (hors note)3 / 3
MesureActuellementOptimal
The page names its language
engines and screen readers read the page in the language it names; without one they guess from the text
lang="en-US" (English)a valid lang on <html>✓ Réussi
The named language matches the words
a Spanish page marked English is indexed and quoted as English, and served to the wrong searchers
the text reads as English, the page says Englishthe same language✓ Réussi
Language versions declared (hreflang)
hreflang tells an engine which version to show to which searcher
aucuneonly needed when the site has versions in other languages or regionsSignalé
The country signals agree
an engine places a local business by these signals; when they name different countries it has to pick one
page language en-US (US); og:locale en_US (US); phone prefix +1 (US/CA)one country✓ Réussi

Read from the delivered homepage: its lang attribute, the Content-Language header, the words on the page (common words in 13 languages, or the writing system for 9 more), its hreflang links and the countries its domain, og:locale, address, phone prefix and currency name. Up to 6 language versions were requested once each to see whether they answer and point back. Measured, not scored.

Where AI already cites this site (measured, not scored) — 3 sur 3 lignes lues

Hors de la note : chaque ligne ici est une lecture plutôt qu’une réussite ou un échec, donc rien ici ne peut faire bouger une note.

Lignes avec une lecture (hors de la note)3 / 3
MesureActuellementOptimal
Answers that cited this site
an engine that has already cited a site is the likeliest to cite it again; one engine alone is one point of failure
none of the answers CrawlCheck has run cited itcited by more than one engineSignalé
Pages the answers cited
these are the pages an engine quotes for you; keep them current, fast and in the sitemap before anything else
no page of it recorded in a cited answerthe pages that answer the questionSignalé
This site's own answer test
the watch plan runs the site's own prompts daily and records which answers cite it
not run for this domain yeta run of prompts with and without its nameSignalé

From the answers CrawlCheck itself has collected: the local trade-by-city prompts, the daily citation watch and manual runs, across Perplexity, Gemini, Google AI Overviews and ChatGPT where each was run. It is a sample, not every answer an engine has given, so "none" means none in that sample. Pages and prompts are recorded for answers given with web search on. Read 2026-11-12 00:17 UTC. Measured, not scored.

Visibilité dans Common Crawl — mesuré, non noté

CCBot est bloqué par robots.txt, donc les futures explorations ignoreront ce site. Vérifié auprès de October 2026 Index, à partir d’un résultat enregistré.

0 des 2 pages vérifiées ont été capturées, et 4 n’ont pas pu être vérifiées — l’index limite le débit, ce qui ne dit rien du site.

PageDans le jeu de donnéesCapturéStatut
/vérification impossible—l’index a répondu 521 (il limite les rafales ; cela ne dit rien de
/sitemap.xml?yyyy=2026&amp;mm=10&amp;dd=31introuvable——
/sitemap.xml?yyyy=2026&amp;mm=10&amp;dd=30vérification impossible—l’index a répondu 504 (il limite les rafales ; cela ne dit rien de
/sitemap.xml?yyyy=2026&amp;mm=10&amp;dd=29introuvable——
/sitemap.xml?yyyy=2026&amp;mm=10&amp;dd=28vérification impossible—l’index a répondu 504 (il limite les rafales ; cela ne dit rien de
/sitemap.xml?yyyy=2026&amp;mm=10&amp;dd=27vérification impossible—l’index a répondu 520 (il limite les rafales ; cela ne dit rien de

Une capture signifie que la page figure dans un jeu de données ouvert. Cela n’établit pas qu’un modèle a été entraîné dessus, et rien ici ne prétend le contraire.

Lecture approfondie des entités — mesuré, non noté

la lecture approfondie des entités s’exécute pour les domaines sous suivi continu ; cette analyse a utilisé le résolveur sans clé

Empreinte d’identité — mesuré, non noté

L’identité que publie ce site est inchangée depuis le 2026-11-11. Même nom, même téléphone, même adresse, mêmes profils déclarés.

Empreinte 8153bbf8989417ea971c5250c7185c50… · enregistrée le 2026-11-12

Type de schema newsmediaorganization. Nous ne disposons d’aucun chiffre de population pour ce type, donc aucune rareté n’est revendiquée.

Une empreinte de l’identité que publie ce site, recalculée à chaque analyse. Un changement ici est un changement effectué par le site, pas un jugement sur celui-ci. N’importe qui peut la recalculer à partir de la page publiée : la forme canonique et le hash sont tous deux publics à /api/entity-drift/latest.

Comment ce site se compare — 36 sites wordpress/publisher, sur 983 mesurés
MesureCe siteMédiane du corpusRang
Score de visibilité IA (la note affichée)818056e centile
Moyenne des sections (pondérée)808141e centile
Ratio de contenu (% de texte visible)4.43.469e centile
Couverture en @id stables (%)33.384.68e centile
Ressources bloquant le rendu2710.519e centile
Taille de la page livrée (KB)30618214e centile

Les percentiles proviennent de sites que CrawlCheck a lui-même mesurés, pas d’une étude publiée — ils décrivent donc ce corpus, pas le web. Le corpus n’est pas un échantillon aléatoire et penche vers les sites soumis ou ajoutés d’office, c’est pourquoi le rang est affiché à côté du chiffre brut et non à sa place. Une mesure reste vide plutôt que classée lorsque moins de 8 pairs la portent. Ce rang est établi par rapport à la cohorte wordpress/publisher (36 sites), et non à l’ensemble du corpus de 983, car un site WordPress de services locaux et un site personnel statique ne posent pas le même problème de mesure.

Atteindre, lire, citer — les trois étapes

Un moteur peut atteindre et lire ce site. Ce qui reste, c’est de lui donner quelque chose de précis à dire.

Au-dessus de 66 % des 1350 sites mesurés ici. C’est ce corpus, pas le web — des sites que des gens ont choisi d’analyser, ce qui penche vers ceux que quelqu’un soupçonnait déjà.

ÉtapeQuestionScore
Atteindre
40 % du score
Un robot de moteur de réponse nommé peut-il seulement récupérer vos pages ?
Au moins un moteur de réponse a été refusé, soumis à une vérification ou a reçu moins qu’un navigateur.
79
Lire
30 % du score
Une fois qu’il a les octets, peut-il trouver les mots ?
Le contenu est noyé dans le balisage, ou les fichiers qui guident un robot sont absents.
83
Citer
30 % du score
Existe-t-il un fait précis qu’il peut énoncer et attribuer ?
Un assistant devrait paraphraser votre page au lieu de citer un fait.
83

Quels moteurs, nommément

D’après les sondes de cette analyse — la même requête que fait le robot de chaque moteur, depuis notre adresse.

Ont reçu la pageOAI-SearchBot · Claude-SearchBot · PerplexityBot · ChatGPT-User · Claude-User · Perplexity-User · Googlebot · Googlebot Smartphone · Bingbot · Applebot
Interdit dans robots.txtYahoo Slurp · ChatGPT search index · ChatGPT live fetch · Claude search index · Claude live fetch · Perplexity index · Perplexity live fetch · Le Chat live fetch
un refus de principe, qui est une décision plutôt qu’un défaut — il figure ici pour être visible, pas parce qu’il est incorrect

Corrigez les 30 éléments que ce rapport liste déjà et le même calcul donne 100. C’est une addition sur le tableau ci-dessous, pas une prévision — chaque point correspond à une composante nommée :

  • Moteurs de réponse autorisés — maintenant 7 of 17, valant 2 points
  • Index de recherche autorisés — maintenant 17 of 24, valant 2 points
  • Le paragraphe d’ouverture définit le sujet — maintenant does not name it, no defining verb, valant 2 points
  • Edge / CDN — now none detected, valant 2 points

L’étape à corriger en premier est atteindre, la plus basse des trois. Les étapes dépendent les unes des autres : un moteur ne peut pas lire ce qu’on lui a refusé, et il ne peut pas citer ce qu’il n’a pas pu lire.

Ce que couvre ce chiffre. Tout ce qui précède a été mesuré sur des pages que cette analyse a récupérées sur votre propre domaine. Un moteur de réponse lit aussi des sources que vous ne contrôlez pas — fiches d’annuaires, corpus d’avis et votre Google Business Profile — et aucune de celles-ci n’entre dans ce score. Les profils que ce site déclare sont listés ci-dessous mais n’ont pas été récupérés lors de cette analyse, donc rien ici ne reflète ce que disent réellement ces fiches. Un site peut obtenir un bon score ici et être tout de même mal décrit par un moteur qui lit une fiche en désaccord avec lui.

Ce que ce chiffre n’est pas. Il ne mesure pas si ChatGPT, Perplexity ou les réponses IA de Google vous citent réellement. Aucun serveur ne peut le mesurer, et un score qui prétendrait le contraire serait inventé. Il mesure si un moteur peut le faire — atteindre, lire, citer — c’est-à-dire la partie que vous maîtrisez et celle qui doit être vraie en premier.

Moyenne de la section sur 22 analyses avec cette version du score · stable à 81 depuis le 2026-11-12
0501002026-10-23 00:17 · 83/100 · 10 constats2026-10-24 00:17 · 82/100 · 10 constats2026-10-25 00:17 · 82/100 · 10 constats2026-10-26 00:17 · 82/100 · 10 constats2026-10-27 00:17 · 83/100 · 10 constats2026-10-28 00:18 · 83/100 · 10 constats2026-10-29 00:18 · 82/100 · 10 constats2026-10-30 00:17 · 82/100 · 10 constats2026-10-31 00:17 · 82/100 · 10 constats2026-11-01 00:17 · 82/100 · 10 constats2026-11-02 00:17 · 81/100 · 10 constats2026-11-03 00:17 · 83/100 · 11 constats2026-11-04 00:17 · 83/100 · 11 constats2026-11-05 00:17 · 83/100 · 11 constats2026-11-06 00:17 · 83/100 · 11 constats2026-11-07 00:17 · 83/100 · 11 constats2026-11-07 01:02 · 83/100 · 11 constats2026-11-08 00:17 · 83/100 · 12 constats2026-11-09 00:17 · 83/100 · 11 constats2026-11-10 00:17 · 83/100 · 11 constats2026-11-11 00:17 · 83/100 · 11 constats2026-11-12 00:17 · 81/100 · 11 constats2026-10-232026-11-12
Changements depuis la dernière analyse — 24 états distincts sur 26 analyses

Comparaison avec la dernière lecture différente, prise le 2026-11-11T00:17:41.462Z.

MesureAvantMaintenantÉcart
Score global81/10080/100-1/100 ✗
Ratio de contenu4,6%4.4%-0.2% ✗
Couverture en @id stables33,3%33.3%aucun changement
Ressources bloquant le rendu2727aucun changement
Taille de la page310 KB306 KB-4 KB ✓
Constats1111aucun changement

L’historique conserve les 24 derniers changements sur ce domaine — les lectures identiques répétées sont regroupées en une seule entrée qui enregistre quand l’état a commencé et combien d’analyses l’ont confirmé, de sorte que relancer une analyse ne peut jamais faire sortir un historique réel de la fenêtre. Un constat qui apparaît et disparaît est le schéma sur lequel il vaut la peine d’agir : un échec permanent se remarque, un échec intermittent n’apparaît que si quelque chose regarde au bon moment.

Trois façons de relire cet enregistrement — site, règles et lecteur vérifiés séparément

Une note peut bouger pour trois raisons et cette page les distingue : le site a changé (visible seulement par une nouvelle analyse), les règles ont changé (visible en retraitant les mesures stockées), ou le code qui lit les octets a changé (visible en le rejouant sur les octets stockés). Les changements de règles et de code ne sont jamais publiés comme des changements du site.

OpérationCe qu’elle faitCet enregistrement
RéanalyseUne nouvelle récupération du site, écrite comme un nouvel enregistrement. La seule opération qui peut montrer un changement sur le site lui-même.Dernière mesure le 2026-11-12 à 00:17 UTCRéanalyser
RetraitementLes mesures stockées dans cet enregistrement, notées selon le jeu de règles actuel. Rien n’est récupéré ; une différence est un changement de règle.Noté selon les règles actuelles (v34) ; les recalculer donne le même C 81.GET /api/reprocess?id=aasc46z1wv (key)
RejeuLe code actuel exécuté sur les octets exacts reçus par cette analyse, conservés par SHA-256. Rien n’est récupéré ; une différence est un changement de code.Le code actuel appliqué aux 314053 octets exacts reçus par cette analyse donne le même résultat. (napAudit)GET /api/replay?id=aasc46z1wv (key)

Trafic, demandes et ventes

Non mesuré ici, et non mesurable ici. Tout le reste de ce rapport a été produit en récupérant vos pages depuis l’extérieur. Les clics, les demandes et les commandes ont lieu là où aucun scanner ne peut les voir — dans votre Search Console, votre boîte de réception et votre paiement en ligne. Connectez l’un d’eux et cette section se remplit en regard des dates ci-dessus. D’ici là, elle reste vide plutôt que d’afficher une estimation, car un chiffre de trafic inventé dans un rapport qui mesure l’honnêteté ruinerait tout le produit.

Preuve d’horodatage — enregistré, scellé ce soir

Ce rapport porte une empreinte calculée sur ses mesures, et les empreintes de chaque jour sont regroupées en une racine unique soumise aux calendriers OpenTimestamps puis, de là, à une transaction Bitcoin. Cela prouve que ce rapport existait sous cette forme à ce moment-là et n’a pas été modifié. Cela ne prouve pas que la mesure était correcte — c’est une autre affirmation, et aucun horodatage ne peut la trancher. Comment ça marche.

Empreinte de ce rapportb0e6d0e6517e9048399de38a42208b2e2dde97fc29f2356012d0fea6ddfd47fd
Règles de notationv34 — actuelle
Racineenregistré, et absent de la racine scellée à — cette analyse est arrivée après. La journée est rescellée une fois close et ce condensé entre dans cette racine.

Citer ce rapport

Ce rapport est régénéré à chaque ouverture ; les deux notices portent donc l’horodatage de l’analyse comme version et la date d’accès comme date de consultation. Une citation laissant entendre un contenu figé serait fausse.

BibTeX télécharger

@techreport{crawlcheck_denverpost_com_aasc46z1wv,
  author      = {{CrawlCheck}},
  title       = {Machine-layer measurement of {denverpost.com}},
  institution = {CrawlCheck},
  type        = {Scan report},
  number      = {aasc46z1wv},
  year        = {2026},
  url         = {https://crawlcheck.io/r/aasc46z1wv},
  urldate     = {2026-11-12},
  note        = {Scanned 2026-11-12; report regenerates on access, figures are as of the access date}
}

RIS télécharger

TY  - RPRT
TI  - Machine-layer measurement of denverpost.com
AU  - CrawlCheck
PB  - CrawlCheck
PY  - 2026
DA  - 2026/11/12
M1  - aasc46z1wv
UR  - https://crawlcheck.io/r/aasc46z1wv
Y2  - 2026/11/12
N1  - Report regenerates on access; figures are as of the access date
ER  - 

Le type est RPRT — un rapport daté sur un site nommé, pas le jeu de données agrégé disponible sur /data. Notez que /r/ est interdit dans notre robots.txt ; ce balisage sert donc les lecteurs et les gestionnaires de références, pas les moteurs de recherche.

19

conformes

7

à améliorer

7

en échec

8

non mesurables

Des sections, pas des contrôles individuels. Non mesurable est compté à part et jamais comme conforme — une section que nous n’avons pas pu lire n’est pas une section conforme.

Affichez ceci sur votre site

Le badge affiche le chiffre tel que mesuré, quel qu’il soit — il se met à jour quand ce rapport est relancé. Il est lié à l’identifiant de ce rapport : seule une personne disposant de ce lien peut le produire.

Visibilité IA 81 sur 100

Collez ceci là où vous le voulez :

<a href="https://crawlcheck.io/r/aasc46z1wv?via=badge"><img src="https://crawlcheck.io/badge/aasc46z1wv.svg" alt="AI visibility 81/100, measured by CrawlCheck" width="228" height="64"></a>

Aucune arrivée depuis ce badge pour l’instant. Le lien porte via=badge, donc toutes celles qui arrivent sont comptées ici.

Lire la transcription

CrawlCheck ne prétend pas prédire les classements. Il mesure les éléments qu’un robot et un système de récupération doivent recevoir correctement avant que le classement, l’indexation ou la citation soient seulement possibles.

1

Observé

CrawlCheck a reçu exactement ce statut, ces en-têtes, ce corps et ce texte rendu. Tout ce qui figure dans les sections ci-dessous est à ce niveau, sauf mention contraire — c’est un fait concernant une réponse réelle, avec les octets joints.

2

Conséquence protocolaire

Ce que cette réponse implique nécessairement pour un robot conforme. Une règle disallow, un robots.txt qui n’est pas du texte ou une dépendance à JavaScript peuvent empêcher ou dégrader l’accès par construction — non pas parce que nous avons classé quoi que ce soit, mais parce que le protocole le dit.

3

Implication pour la recherche

Possible ou inconnue, et signalée comme telle. Aucun constat ici n’affirme un effet sur le classement, une formule de citation ou une pondération. Si une affirmation ne peut pas être ramenée au niveau 1 ou 2, elle n’est pas formulée.

Une limite importante, énoncée clairement : les 19 identités ci-dessus sont envoyées depuis l’adresse de CrawlCheck, chacune avec la chaîne user-agent du robot correspondant. C’est une simulation de la politique en périphérie — elle montre ce que fait votre périphérie d’une requête qui se déclare comme ce robot. Ce n’est pas une requête du vrai robot, et cela ne peut pas l’être. Un WAF peut traiter un Googlebot vérifié différemment de tout ce qui se contente d’en revendiquer le nom, ce qui est exactement ce que Google recommande. Quand un résultat indique qu’un robot a été refusé, lisez-le comme un client déclarant ce nom a été refusé — pour prouver ce que le vrai robot a reçu, comparez vos propres journaux serveur aux plages d’adresses publiées par l’opérateur, ce que le vérificateur de journaux gratuit fait ligne par ligne.

Transcription des récupérations de fichiers machine

CheminStatutType de contenuOctetsEdge
/robots.txt 200 text/plain 4 567 HIT ok
/sitemap.xml 200 application/xml 888 839 DYNAMIC ok
/sitemap_index.xml 404 text/html 95 255 DYNAMIC absent
/wp-sitemap.xml 200 text/html 149 638 DYNAMIC absent
/llms.txt 404 text/html 95 230 DYNAMIC absent

Ce que ce rapport ne peut pas prouver

  • La note n’est ni un classement ni un nombre de citations. Elle indique si les octets qu’un moteur reçoit peuvent être récupérés, lus et attribués à www.denverpost.com. Qu’un moteur le classe, le cite ou le recommande dépend de ce moteur et n’est pas mesuré ici.
  • Une URL, un moment, un point de vue. Mesuré le 2026-11-12 à 00:17 UTC depuis le réseau de CrawlCheck pour la page d’accueil et les fichiers machine du site. Le site peut changer ensuite, et un robot venant d’un autre réseau ou d’un autre pays peut être servi différemment.
  • Les robots nommés ont été simulés, pas observés. Les requêtes portaient le nom de chaque robot depuis l’adresse de CrawlCheck. Un refus montre ce qu’obtient un client utilisant ce nom ; le vrai robot, depuis l’adresse de son opérateur, peut être traité différemment.
  • Une réussite n’est pas une entrée d’index. Réussir toutes les vérifications ici ne signifie pas qu’un moteur de recherche ou un index d’IA possède la page. Seul ce moteur (pour Google, la Search Console) peut dire ce qu’il a stocké.

Ce que l’analyse ne mesure pas du tout figure sous Méthode.

Ce que cette analyse a tenté — lu dans son propre enregistrement, pas affirmé

19 / 19

identity probe responses read

5

fichiers machine récupérés sur les deux hôtes

115

agents nommés résolus depuis le robots.txt

33

sur 41 sections notées

53

invariants vérifiés sur ce rapport lui-même

11

constats

Un chemin aléatoire qui ne peut pas exister a aussi été demandé — le témoin qui distingue votre site web d’un mur placé devant lui.

Chaque ligne de ce rapport, par état (369 lignes) — chaque état compte autant ici

162

✓ Réussi

dans la plage de réussite

41

✗ Échoué

hors de la plage de réussite

3

Warning

in place, but weaker than it should be; shown with its fix and excluded from the score like every state that is not passed or failed

20

Non mesuré

aucune mesure n’a été prise : l’entrée manquait, était inaccessible ou n’a pas été récupérée lors de cette analyse ; exclu, pas en échec

0

Non concluant

une mesure a été prise mais n’a pu être jugée ni dans un sens ni dans l’autre (une erreur, un délai dépassé ou une réponse ambiguë)

3

Déclaré seulement

le site l’affirme ; rien dans cette analyse ne l’a vu fonctionner

0

Désaccord

deux mesures de la même chose ne concordent pas (hôtes, points de vue ou sources)

4

Non applicable

la mesure ne s’applique pas à ce site

136

Signalé

une mesure affichée à titre d’information ; elle n’est ni réussie ni échouée

Seules les lignes réussies et échouées font bouger le score d’une section. Une ligne non mesurée, non applicable, non concluante, seulement déclarée, en désaccord ou signalée à titre d’information est exclue du score, et elle n’est jamais affichée comme une réussite.

Lire les scores
Les deux scores ne sont pas une note
La clarté d’exploration indique si une machine peut récupérer, lire et distinguer vos pages. La clarté pour l’utilisateur indique si un lecteur peut comprendre ce qu’est ce site et à qui il appartient. Ils échouent indépendamment ; lisez-les donc séparément au lieu d’en faire la moyenne.
Un tiret signifie non mesuré, pas zéro
Composantes affichées comme — et exclu du score. Si une analyse a été limitée en débit ou si les pages s’affichent via JavaScript, cette mesure est écartée. Un faux certificat de bonne santé est plus dangereux qu’un faux défaut.
Les constats non confirmés sont séparés volontairement
Tout ce qui pourrait décrire notre accès plutôt que votre site — un refus, un délai dépassé — est listé à part et jamais compté dans la note.
Le ratio de contenu se mesure en octets, pas en tokens
La part des octets décompressés qui est du texte visible - le corps tel qu’un analyseur le lit, pas le transfert gzip plus petit. L’audit approfondi mesure les tokens par KB avec un vrai tokeniseur ; les deux portent des noms différents parce que ce sont des mesures différentes.
Qu’en faire
Privilégiez les corrections qui tiennent en un réglage plutôt que celles qui exigent un sprint. Le CSS en ligne est souvent le gain bon marché le plus important, car il ne peut pas être mis en cache d’une page à l’autre — un robot le paie de nouveau à chaque URL.
Ce que cette analyse ne mesure PAS

Il s’agit d’une sonde de la couche machine sur une URL et sur les fichiers qui décrivent l’ensemble du site. Tout ce qui suit est hors de ce périmètre par conception, et aucun score de cette page n’est ajusté en conséquence.

Pas un robot d’exploration de tout le site
Il n’y a ici ni graphe complet des URL, ni inventaire des liens cassés sur toutes les pages, ni comparaison de contenu dupliqué. La couverture du sitemap est vérifiée uniquement par rapport aux liens de la page d’accueil. Pour une exploration exhaustive de milliers d’URL, utilisez un robot dédié — Screaming Frog, Sitebulb, ou l’audit de site d’Ahrefs ou de Semrush — et utilisez cet outil pour vérifier la couche machine qu’ils ne lisent pas.
Pas une plateforme d’analyse de journaux
Le comportement des robots est échantillonné sur un intervalle court et strictement contrôlé, pas suivi sur des semaines. Le budget d’exploration, les parcours des robots et les pages sur lesquelles un robot passe réellement son temps ne peuvent venir que de vos propres journaux serveur. Le vérificateur de journaux gratuit de ce site les lit ligne par ligne en les comparant aux plages d’adresses publiées par les opérateurs.
Pas un substitut à Search Console
La couverture de l’index, le choix de l’URL canonique, les actions manuelles et les diagnostics propres à Google viennent de Search Console et de nulle part ailleurs. Une page peut être parfaitement lisible par chaque robot mesuré ici et ne pas être indexée pour autant, pour des raisons que seul Google peut indiquer.
Extractibilité et arrivées - mais pas la citation
Ceci mesure si les octets qu’un moteur reçoit peuvent être récupérés, analysés et vous être attribués. Là où la balise first-party est installée, cela compte aussi les arrivées : des humains qui ont cliqué depuis un assistant d’IA, enregistrés depuis votre propre site plutôt que devinés. Ce que cela ne fait toujours pas, c’est demander à ChatGPT, Claude, Perplexity ou Google s’ils vous mentionnent quand personne ne clique. Une citation qui ne produit aucun clic est invisible ici, et la mesurer nécessite un suivi des prompts, ce qui est un autre instrument.
Notre point de vue n’est pas celui du robot
Chaque requête ici est honnête et non authentifiée : elle part d’une adresse de centre de données, sous notre propre nom, et n’usurpe jamais l’IP d’un robot vérifié. Un refus décrit donc ce que reçoit un client qui déclare ce nom — ce qu’un WAF peut traiter différemment du vrai robot, exactement comme Google recommande de le faire.
Pas un audit WCAG
La section accessibilité vérifie si la structure dont dépend un lecteur d’écran existe dans le document livré : une langue, un titre, des noms sur les images, les champs, les boutons et les cadres, un repère principal, un moyen de passer la navigation, des id uniques. Le contraste, l’ordre de focus, les pièges clavier et les animations exigent une page rendue et une personne, et ne sont pas mesurés.
Un seul rendu, sans exécution de JavaScript
Ce qui est mesuré est le document que renvoie le serveur. Le contenu injecté par du JavaScript côté client n’est pas exécuté ici — c’est volontaire, car la plupart des robots mesurés sur cette page ne l’exécutent pas non plus, mais cela signifie qu’un site rendu en JavaScript paraîtra plus maigre ici que dans un navigateur.
Ce que nous n’avons pas pu mesurer — 3

Chaque ligne de ce rapport est soit une mesure de votre site, soit rien du tout. Ces consultations n’ont renvoyé aucune mesure ; elles ont donc été laissées sans note plutôt que comptées contre vous. Elles sont listées parce qu’une absence silencieuse est impossible à distinguer d’un résultat sain, et c’est précisément cette différence que cet outil existe pour préserver.

Cela couvre uniquement les consultations tierces et d’enrichissement — CrUX, le lien vers le profil Google, Internet Archive, le géocodeur et les deux fichiers well-known. Les refus de votre propre serveur ne sont jamais listés ici : un 403 renvoyé à GPTBot est le constat, pas une lacune de notre instrument, et il est signalé comme constat plus haut.

ConsultationRésultatLimite de quiPourquoi
Présence hors site (annuaires recherchés par numéro de téléphone)atteintà vousYelp, Angi, Thumbtack, Houzz, Facebook refusent les clients depuis un datacenter et constituent notre limite, jamais une absence. Le Google Business Profile et le nombre d’avis ne sont toujours pas lus d’ici
Compression des réponsesnon atteintla nôtrenotre requête décompresse le corps et supprime l’en-tête content-encoding avant que nous puissions le lire — vérifiez-le dans l’onglet réseau d’un navigateur ou avec curl --compressed -I
Lien Google Business Profilerefuséles leurs, dirigés vers nousGoogle a limité notre vérification depuis une adresse de centre de données

Chaque chiffre ici a été mesuré sans cookie et sans session. C’est volontaire : c’est ce que reçoit un moteur de réponse. Si vous ouvrez votre propre site en étant connecté à son administration, vous regardez un document différent — les extensions de cache, les constructeurs de pages et les outils d’adhésion sautent couramment leurs filtres de sortie pour les utilisateurs connectés, et des barres d’administration et des liens de modification s’y ajoutent.

Pour voir ce que décrit ce rapport, ouvrez votre site dans une fenêtre privée. Si les deux diffèrent, c’est la fenêtre privée qui montre ce que voit un robot.

Clarté d’exploration — une machine peut-elle récupérer, lire et distinguer les pages 44 / 100
composantestatut scoremesurée
Fichiers machinenoté 67 robots.txt, llms.txt, sitemap et entitymap, notés comme ci-dessus
Charge utile — ratio de contenunoté 26 4,4 % des octets décompressés sont du texte visible (au niveau des octets ; l’audit approfondi note séparément les tokens par KB)
Chemin de rendunoté 0 27 ressources bloquant le rendu
Structure du documentnoté 80 0 sauts de niveau de titre, 2 h1
Clarté pour l’utilisateur — un lecteur peut-il dire ce que c’est et à qui cela appartient 57 / 100
composantestatut scoremesurée
Identité des entitésnoté 33 33,3 % des 3 entités portent un @id stable
Notoriété déclaréenoté 40 aucun lien de qualification déclaré
Cohérence de l’emplacementnoté 100 1/1 emplacements ont une adresse postale
Affirmations d’identiténoté 0 1 sur 1 liens de carte pointent vers des lieux, pas vers l’entreprise
Étiquetage de la pagenoté 100 description de 157 caractères, canonique présente

0 composants non mesurés et exclus du score — un composant non mesuré n’est jamais compté comme zéro.

Composition du score — La lettre a été fixée par le pire constat, pas par la moyenne — c’est pourquoi un score élevé peut s’accompagner d’une note basse.
SectionScorePoids
Couche machine67/1001.5
Serveur et hébergement80/1000.6
Schema et graphe d’entités55/1001.2
Surface RDF et données liées100/1000.8
Signaux d’auteur et de confiance (indicateurs E-E-A-T)57/1001
Structure d’accessibilité (d’après le HTML livré)96/1000.8
Corroboration de l’entité100/1000.6
Contenu citable67/1000.8
Gaspillage d’exploration100/1000.6
Sujet de la page, la question Webref100/1000.6
Agents IA et de recherche33/1001.2
Vitesse perçue par un robot, et données de terrain lorsqu’elles existent44/1001
Charge utile et chemin de rendu20/1001
Chaîne de confiance des fichiers machine100/1001.5
Cohérence des affirmations100/1001.3
Surface d’instructions pour agents100/1001
Ce que reçoit chaque agent88/1001.5
Surface mobile100/1000.8
Présence locale, citations et NAP86/1001.3
Exposed files and secrets89/1000.6
Pages d’erreur100/1000.4
Couverture du sitemap100/1001.2
Maillage interne100/1001
Cohérence des noms et de la casse80/1000.4
Signaux d’image80/1000.6

Not scored, and therefore excluded rather than counted as zero: Agent surfaces (emerging, not scored), Content entities (measured, not yet scored), Service area, as declared (measured, not scored), The whole site, not just the front door (measured, not scored), Freshness, as the site declares it (measured, not scored), Local intents, the Maps vocabulary (measured, not scored), Conversion path on the page (measured, not scored), Where AI already cites this site (measured, not scored), What AI looks for vs what your page shows (measured, not scored), Trust and reputation (measured, not scored), Claims and their evidence (measured, not scored), Site safety (measured, not scored), AI rights and consent (measured, not scored), Price transparency (measured, not scored), Third-party dependencies (measured, not scored), Language and region (measured, not scored).

Atteindre, puis lire, puis citer

Atteindre, puis lire, puis citer — chaque étape conditionne la suivante

REACH79adéquatREAD83adéquatQUOTE83adéquat

Surveiller ce site

Ces réglages cassent en silence. Nous revérifions ce site deux fois par jour et vous envoyons un e-mail quand un résultat change, rien d’autre.

Alertes de changement uniquement. Désinscription en un clic.

Analyser un autre domaine

Export this result: JSON · CSV · PDF · Signed report card (image) Same stored record as this page, so an export can never disagree with the report.

For an AI agent: Markdown brief Paste it into ChatGPT, Claude or a coding agent and it has every finding, its evidence and its fix.