Vos optionsNous corrigeons $100 une fois · Watch $29 / mois
- 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
- 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.
Carte, puis nous commençons. Un site par commande.
- 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é.
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
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.
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
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.
sérieux
les règles de robots.txt ne s’appliquent pas aux agents nommés
/robots.txt · Ouvrir la correction →
sérieux
Deux fiches d’entreprise sur cette page revendiquent la même identité
Ouvrir la correction →
sérieux
La page d'accueil dépend de fichiers que le propre robots.txt du site interdit
/robots.txt · Ouvrir la correction →
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.
É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.
É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.
É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.
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.
La suite
Chaque étape s’appuie sur le même enregistrement signé. Commencez là où vous en êtes.
- 01CorrigerCorriger ce qui fait baisser la noteÉtapes adaptées à votre plateforme, vérifiées par une nouvelle analyse.
- 02WatchLe surveiller chaque jourGratuit pendant 30 jours. Les changements et les nouveaux constats arrivent dans votre boîte de réception.
- 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é.
- 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.
- 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é)
- 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.
- 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.
- 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.
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ègle | ROBOTS_RULES_SHADOWED · pack de règles sv34 · périmètre core |
|---|---|
| Évalué | 2026-11-12 00:17:42 UTC |
| Décision | d1:ab6db3d568fdb2282e23 · constat f1:cbfcabeaf2c8fae39c15 résoudre soit sur /api/graph/<id> avec une clé |
| Observateur | build crawlcheck-worker be1e3120 · audit v4 |
Ce sur quoi il repose
| Identité | Statut | Octets | sha256 | Conservé |
|---|---|---|---|---|
| lu : /robots.txt | 200 | 4 567 | ff800a4d427d | already_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
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 constatsOu 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 — $100Le produit principal
Nous corrigeons les 11 constats sur denverpost.com. 100 $, une seule fois.
4 d’entre elles sont jugées graves. Un site. Vous gardez la note gratuitement — c’est l’étape où la liste cesse d’être une simple liste.
- Every eligible finding implemented on the site itself: machine files, schema, NAP, settings. Not included: new content, redesigns, plugin or theme replacement, custom integrations (the terms list them)
- Une carte d’entités rédigée pour votre entreprise, pas un modèle dont on a changé le nom
- Remesuré ensuite — l’avant et l’après, scellés, pour que ce soit prouvé plutôt qu’affirmé
- Trente jours de surveillance inclus
- Le travail commence sous deux jours ouvrés
Ce que cela couvre · un seul paiement, rien de récurrent
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 que | Robots.txt | Réponse du serveur | Mots | Identique au navigateur | |
|---|---|---|---|---|---|
| Client anonyme (témoin) | — | 200 | 2 099 | 100% | référence |
| GPTBot | interdit | 200 | 2 099 | 100% | interdit mais servi |
| ClaudeBot | interdit | 200 | 2 099 | 100% | interdit mais servi |
| OAI-SearchBot | interdit | 200 | 2 099 | 100% | interdit mais servi |
| Claude-SearchBot | interdit | 200 | 2 099 | 100% | interdit mais servi |
| PerplexityBot | interdit | 200 | 2 099 | 100% | interdit mais servi |
| ChatGPT-User | interdit | 200 | 2 099 | 100% | interdit mais servi |
| Claude-User | interdit | 200 | 2 099 | 100% | interdit mais servi |
| Perplexity-User | interdit | 200 | 2 099 | 100% | interdit mais servi |
| Googlebot | autorisé | 200 | 2 099 | 100% | même page |
| Googlebot Smartphone | non listé | 200 | 2 099 | 100% | même page |
| Navigateur mobile (témoin) | — | 200 | 2 099 | 100% | référence |
| Bingbot | autorisé | 200 | 2 099 | 100% | même page |
| Applebot | interdit | 200 | 2 099 | 100% | interdit mais servi |
| Amazonbot | interdit | 200 | 2 099 | 100% | interdit mais servi |
| Bytespider | interdit | 429 | 9 | — | bloqué par le serveur |
| Meta-ExternalAgent | interdit | 403 | 5 | — | bloqué par le serveur |
| CCBot | interdit | 200 | 2 099 | 100% | 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)
Moteurs de recherche 17/24 autorisés
Google, Bing, Apple et le reste de la recherche classique
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)
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éseau | Même statut |
|---|---|---|---|
| Client anonyme | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| GPTBot | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| ClaudeBot | 200 · 2 099 mots | 429 | differs |
| OAI-SearchBot | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Claude-SearchBot | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| PerplexityBot | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| ChatGPT-User | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Claude-User | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Perplexity-User | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Googlebot | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Googlebot Smartphone | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Navigateur mobile | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Navigateur mobile (témoin) | — | 200 · 2 216 mots | — |
| Bingbot | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Applebot | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Amazonbot | 200 · 2 099 mots | 200 · 2 216 mots | ✓ |
| Bytespider | 429 | 403 | differs |
| Meta-ExternalAgent | 403 | 403 | ✓ |
| CCBot | 200 · 2 099 mots | 200 · 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 network | From a person’s own connection | Où |
|---|---|---|---|
| Bytespider | throttled (HTTP 429) | non lu | not named by the refusal |
| Meta-ExternalAgent | refused HTTP 403 | non lu | not 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é
- 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é | HTTP | Taille | Comparé à un navigateur | Conservé comme preuve |
|---|---|---|---|---|
| Client anonyme | 200 | 306.7 KB | même texte, octets différents | conservé · 11ba378b |
| GPTBot | 200 | 306.7 KB | même texte, octets différents | conservé · 11ba378b |
| ClaudeBot | 200 | 306.7 KB | même texte, octets différents | conservé · f767f94a |
| OAI-SearchBot | 200 | 306.7 KB | même texte, octets différents | conservé · f767f94a |
| Claude-SearchBot | 200 | 306.7 KB | même texte, octets différents | conservé · 11ba378b |
| PerplexityBot | 200 | 306.7 KB | même texte, octets différents | conservé · f767f94a |
| ChatGPT-User | 200 | 306.7 KB | même texte, octets différents | conservé · f767f94a |
| Claude-User | 200 | 306.7 KB | même texte, octets différents | conservé · f767f94a |
| Perplexity-User | 200 | 306.7 KB | même texte, octets différents | conservé · 11ba378b |
| Googlebot | 200 | 306.7 KB | même texte, octets différents | conservé · 11ba378b |
| Googlebot Smartphone | 200 | 306.7 KB | octets identiques | conservé · 3a644788 |
| Navigateur mobile | 200 | 306.7 KB | la référence | conservé · 3a644788 |
| Navigateur mobile (témoin) | 200 | 306.7 KB | octets identiques | conservé · 3a644788 |
| Bingbot | 200 | 306.7 KB | même texte, octets différents | conservé · f767f94a |
| Applebot | 200 | 306.7 KB | même texte, octets différents | conservé · 11ba378b |
| Amazonbot | 200 | 306.7 KB | même texte, octets différents | conservé · 1378a569 |
| Bytespider | 429 | 162 B | refusé (HTTP 429) | conservé · 413d294f |
| Meta-ExternalAgent | 403 | 146 B | refusé (HTTP 403) | conservé · 32f2fa94 |
| CCBot | 200 | 306.7 KB | même texte, octets différents | conservé · 11ba378b |
| Récupération CrawlCheck (page d’accueil) | 200 | 306.7 KB | — | conservé · dc318faa |
| Fichiers récupérés par CrawlCheck | ||||
| /robots.txt | 200 | 4.5 KB | — | conservé · ff800a4d |
| /sitemap.xml | 200 | 868 KB | — | conservé · 493fa919 |
| /sitemap_index.xml | 404 | 93 KB | — | conservé · fa12fd3c |
| /wp-sitemap.xml | 200 | 146.1 KB | — | conservé · a196f657 |
| /llms.txt | 404 | 93 KB | — | conservé · 3557f155 |
| /entitymap.json | 404 | 93 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.
🔒 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.
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.
| Fait | Déclaré comme | Trouvé dans | Concordance | Vu pour la première fois |
|---|---|---|---|---|
| Nom | The Denver Post | 2026-09-19 | ||
| Téléphone | (303) 954-1010 | données structurées uniquement | non affiché aux lecteurs | 2026-09-19 |
| Adresse | 5990 Washington St., Denver, CO, 80216 | 2026-09-19 | ||
| Point sur la carte | 39.7392, 104.9903 | données structurées | inverser le signe de la longitude la place aux États-Unis - un signe moins manquant | 2026-09-19 |
| Horaires d’ouverture | déclaré | données structurées | 2026-09-19 | |
| Type d’entreprise | LocalBusiness | données structurées | 2026-09-19 | |
| Profils liés | 3 (Facebook, X, LinkedIn) | liens sur le site | 3 sur 3 renvoient vers le site |
Tout ce qui a été mesuré d’autre
Mesuré à titre informatif, non noté
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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| robots.txt un robot qui ne peut pas lire le robots.txt considère souvent que tout est interdit | 200 · 4567B | 200, text/plain, 100–4 000 B | ✓ Réussi |
| Sitemap XML sans lui, un robot recense le site uniquement en suivant les liens | en ligne | 200, 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 B | Signalé |
| 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 exact | Signalé |
| Accord entre hôtes un robot qui résout www ne doit pas recevoir une autre couche machine | les hôtes concordent | 0 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 HTML | un fichier machine manquant devrait renvoyer un 404 léger, pas une page complète | ✗ Échoué |
Hôtes et URL
/robots.txt | www.denverpost.com : 200 · 4 567 B en ligne denverpost.com : 301 → https://www.denverpost.com/robots.txt |
/llms.txt | www.denverpost.com : 404 · 95 230 B de HTML (pas le fichier) denverpost.com : 301 → https://www.denverpost.com/llms.txt |
/entitymap.json | www.denverpost.com : 404 · 95 247 B de HTML (pas le fichier) denverpost.com : 301 → https://www.denverpost.com/entitymap.json |
/sitemap.xml | www.denverpost.com : 200 · 888 839 B en ligne denverpost.com : 200 · 888 839 B en ligne |
/sitemap_index.xml | www.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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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’ici | br de préférence, gzip acceptable | Non 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. | non | h3 in the Alt-Svc header or the DNS HTTPS record | Signalé |
| 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 DYNAMIC | HIT ou MISS sur les fichiers machine ; DYNAMIC est le réglage par défaut de Cloudflare pour .txt et .xml | Signalé |
| Divulgation de version une version publique du CMS indique à un attaquant exactement quelles failles essayer | non divulguée | aucune 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ée | aucun en-tête x-powered-by | ✓ Réussi |
| Vary détermine si une copie en cache est réutilisée correctement | accept-encoding | Accept-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;includeSubdomains | max-age avec includeSubDomains ; preload seulement si c’est voulu | Signalé |
| 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 visible | Bing au minimum : son index alimente la recherche ChatGPT et Copilot | Signalé |
| 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és | texte présent dans le HTML livré | ✓ Réussi |
| Application | WordPress détecté à partir du HTML livré, pas d’un en-tête qui peut être supprimé |
| Varie selon | accept-encoding une réponse qui varie peut être mise en cache différemment selon le client |
Schema et graphe d’entités — 55/100
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| Nœuds d’entité sans schema, le site n’a aucune identité déclarée | 3 | au 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 | 0 | au 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 | 0 | 0 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 | 1 | 0 | ✗ É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 | 2 | 1 (pratique courante) | ✗ Échoué |
| Niveaux de titres sautés un niveau sauté casse le plan du document qu’un analyseur construit | 0 | 0 | ✓ Réussi |
| Canonique sans elle, les doublons se concurrencent | présente | pré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ères | 50–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é |
| Entités déclarées | 3 nœuds, 2 types distincts |
| Identité stable | 1 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 qualification | 0 Licences, adhésions et récompenses exprimées comme liens du graphe plutôt qu’en prose. |
| Liens thématiques | 0 Un nombre élevé avec des valeurs génériques signifie généralement que le graphe sert à stocker des mots-clés. |
| Établissements | 1 déclarés, 0 sans adresse postale |
| Déclarations sameAs | 3 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 document | 2 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 2 | chaque 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 2 | chaque 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 | 68 | au 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 | 0 | 0 | ✓ 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 @id | Signalé |
| 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 Graph | facultatif ; une seule sérialisation tenue exacte vaut mieux que trois qui divergent | Signalé |
| 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: Accept | facultatif : text/turtle ou application/ld+json pour un client qui le demande | Signalé |
| Représentation RDF alternative liée Indique à un client de données liées où se trouve le graphe sans négociation. Non noté | aucune | facultatif : <link rel=alternate type=text/turtle> ou un en-tête Link | Signalé |
| 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é | aucune | aucun : chaque entité reçoit un IRI persistant | Signalé |
| 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é | aucune | un seul @id par entreprise, réutilisé partout | Signalé |
| 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 local | une seule convention sur tout le site | Signalé |
| 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é | aucune | une seule orthographe exacte à l’octet près par ressource | Signalé |
| 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 6 | NFC partout | Signalé |
| 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é | aucune | la forme xn-- (Punycode) dans les données structurées | Signalé |
| 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 Wikidata | l’une ou l’autre ; /entity/Q… est l’IRI du concept, /wiki/Q… la page qui le décrit | Signalé |
| 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érifiables | chaque profil déclaré répond | Signalé |
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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 | aucune | au 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ée | Non 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ée | Non 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 chacune | Non 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 page | chaque article | Signalé |
| 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 article | Non 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 2 | founder, 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 2 | sur 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 2 | telephone, 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 | non | lié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 | oui | lié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 | oui | lié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 aggregateRating | ratingValue avec reviewCount ou ratingCount | Signalé |
| 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.com | citez ce sur quoi le contenu s’appuie ; il n’y a pas de bon nombre | Signalé |
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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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-US | un 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ères | un <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 44 | chaque 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 3 | du 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 cadre | un title sur chaque iframe | Signalé |
| 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 | un | exactement 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’évitement | un 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 | 0 | chaque 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 page | alt 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=img | un <title> ou aria-label sur chaque svg marqué role=img | Signalé |
| 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 | aucune | un 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 357 | du 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 2 | un 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 5 | chaque 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 129 | du 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ées | Signalé |
| 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 radio | un <fieldset> ou role=radiogroup autour de chaque ensemble | Signalé |
| 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 adresse | un jeton autocomplete valide sur chaque champ demandant les coordonnées propres à l'internaute | Signalé |
| 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) | aucune | pas 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 | aucune | aucun 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 automatique | audio 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 commandes | une <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 | aucune | chaque é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) | aucune | navigation 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 | aucune | aucun 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 | aucune | chaque 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é | aucune | chaque 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 | aucune | chaque 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ésente | le #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 | aucune | des 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 | aucune | tabindex 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ère | Niveau | CrawlCheck |
|---|---|---|
| 1.1.1 Contenu non textuel | A | Mesuré dans cette section |
| 1.2.1 Contenu seulement audio ou vidéo (pré-enregistré) | A | Nécessite une personne |
| 1.2.2 Sous-titres (pré-enregistrés) | A | Mesuré dans cette section |
| 1.2.3 Audio-description ou version de remplacement pour un média temporel (pré-enregistré) | A | Nécessite une personne |
| 1.2.4 Sous-titres (en direct) | AA | Nécessite une personne |
| 1.2.5 Audio-description (pré-enregistrée) | AA | Nécessite une personne |
| 1.2.6 Langue des signes (pré-enregistrée) | AAA | Nécessite une personne |
| 1.2.7 Audio-description étendue (pré-enregistrée) | AAA | Nécessite une personne |
| 1.2.8 Version de remplacement pour un média temporel (pré-enregistré) | AAA | Nécessite une personne |
| 1.2.9 Seulement audio (en direct) | AAA | Nécessite une personne |
| 1.3.1 Information et relations | A | Mesuré dans cette section |
| 1.3.2 Ordre séquentiel logique | A | Nécessite une personne |
| 1.3.3 Caractéristiques sensorielles | A | Nécessite une personne |
| 1.3.4 Orientation | AA | Nécessite une page rendue |
| 1.3.5 Identifier la finalité des champs | AA | Mesuré dans cette section |
| 1.3.6 Identifier la finalité | AAA | Nécessite une personne |
| 1.4.1 Utilisation de la couleur | A | Nécessite une page rendue |
| 1.4.2 Contrôle du son | A | Mesuré dans cette section |
| 1.4.3 Contraste (minimum) | AA | Nécessite une page rendue |
| 1.4.4 Redimensionnement du texte | AA | Mesuré dans une autre section de ce rapport |
| 1.4.5 Texte sous forme d’image | AA | Nécessite une personne |
| 1.4.6 Contraste (amélioré) | AAA | Nécessite une page rendue |
| 1.4.7 Arrière-plan sonore de faible volume ou absent | AAA | Nécessite une personne |
| 1.4.8 Présentation visuelle | AAA | Nécessite une page rendue |
| 1.4.9 Texte sous forme d’image (sans exception) | AAA | Nécessite une personne |
| 1.4.10 Redistribution | AA | Nécessite une page rendue |
| 1.4.11 Contraste du contenu non textuel | AA | Nécessite une page rendue |
| 1.4.12 Espacement du texte | AA | Nécessite une page rendue |
| 1.4.13 Contenu au survol ou au focus | AA | Nécessite une page rendue |
| 2.1.1 Clavier | A | Mesuré dans cette section |
| 2.1.2 Pas de piège au clavier | A | Nécessite une page rendue |
| 2.1.3 Clavier (pas d’exception) | AAA | Nécessite une page rendue |
| 2.1.4 Raccourcis clavier utilisant des caractères | A | Nécessite une page rendue |
| 2.2.1 Réglage du délai | A | Mesuré dans cette section |
| 2.2.2 Mettre en pause, arrêter, masquer | A | Mesuré dans cette section |
| 2.2.3 Pas de délai d’exécution | AAA | Nécessite une personne |
| 2.2.4 Interruptions | AAA | Nécessite une personne |
| 2.2.5 Nouvelle authentification | AAA | Nécessite une personne |
| 2.2.6 Délais d’expiration | AAA | Nécessite une personne |
| 2.3.1 Pas plus de trois flashs ou sous le seuil critique | A | Nécessite une page rendue |
| 2.3.2 Trois flashs | AAA | Nécessite une page rendue |
| 2.3.3 Animation résultant d’interactions | AAA | Nécessite une page rendue |
| 2.4.1 Contourner des blocs | A | Mesuré dans cette section |
| 2.4.2 Titre de page | A | Mesuré dans cette section |
| 2.4.3 Parcours du focus | A | Nécessite une page rendue |
| 2.4.4 Fonction du lien (selon le contexte) | A | Mesuré dans cette section |
| 2.4.5 Accès multiples | AA | Mesuré dans une autre section de ce rapport |
| 2.4.6 En-têtes et étiquettes | AA | Mesuré dans cette section |
| 2.4.7 Visibilité du focus | AA | Nécessite une page rendue |
| 2.4.8 Localisation | AAA | Nécessite une personne |
| 2.4.9 Fonction du lien (lien uniquement) | AAA | Mesuré dans une autre section de ce rapport |
| 2.4.10 En-têtes de section | AAA | Mesuré dans une autre section de ce rapport |
| 2.5.1 Gestes pour le contrôle du pointeur | A | Nécessite une page rendue |
| 2.5.2 Annulation de l’action du pointeur | A | Nécessite une page rendue |
| 2.5.3 Étiquette dans le nom | A | Mesuré dans cette section |
| 2.5.4 Activation par le mouvement | A | Nécessite une page rendue |
| 2.5.5 Taille de la cible | AAA | Nécessite une page rendue |
| 2.5.6 Mécanismes d’entrée concurrents | AAA | Nécessite une page rendue |
| 3.1.1 Langue de la page | A | Mesuré dans cette section |
| 3.1.2 Langue d’un passage | AA | Mesuré dans cette section |
| 3.1.3 Mots rares | AAA | Nécessite une personne |
| 3.1.4 Abréviations | AAA | Nécessite une personne |
| 3.1.5 Niveau de lecture | AAA | Nécessite une personne |
| 3.1.6 Prononciation | AAA | Nécessite une personne |
| 3.2.1 Au focus | A | Mesuré dans cette section |
| 3.2.2 À la saisie | A | Mesuré dans cette section |
| 3.2.3 Navigation cohérente | AA | Nécessite une page rendue |
| 3.2.4 Identification cohérente | AA | Nécessite une page rendue |
| 3.2.5 Changement à la demande | AAA | Mesuré dans cette section |
| 3.3.1 Identification des erreurs | A | Nécessite une page rendue |
| 3.3.2 Étiquettes ou instructions | A | Mesuré dans cette section |
| 3.3.3 Suggestion après une erreur | AA | Nécessite une page rendue |
| 3.3.4 Prévention des erreurs (juridiques, financières, de données) | AA | Nécessite une personne |
| 3.3.5 Aide | AAA | Nécessite une personne |
| 3.3.6 Prévention des erreurs (toutes) | AAA | Nécessite une personne |
| 4.1.1 Analyse syntaxique (obsolète, toujours satisfait pour le HTML selon l’errata du W3C) | A | Mesuré dans cette section |
| 4.1.2 Nom, rôle et valeur | A | Mesuré dans cette section |
| 4.1.3 Messages d’état | AA | Nécessite une page rendue |
Corroboration de l’entité — 100/100
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 domaine | P856 nomme ce domaine | Signalé |
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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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éfinitoire | une 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 question | au moins la moitié, là où des titres en forme de question existent | Signalé |
| 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 FAQPage | chaque question déclarée lisible sur la page | Signalé |
| 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 29 | un 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 26 | une 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 | 0 | un 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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_adpz | 0, 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 309 | 0 | Signalé |
| 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ées | 0 | ✓ 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ées | 0 | Signalé |
| 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 redirige | un 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 | 1 | un seul sujet, les autres uniquement via une relation déclarée | Signalé |
| 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ôte | déclaré comme WebPage.mainEntity | Signalé |
| 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 oui | les deux | Signalé |
| 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ée | Signalé |
| 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 sujet | unique 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| Moteurs de réponse autorisés ils récupèrent une page pendant qu’ils composent une réponse en direct | 7 sur 17 | tous | ✗ Échoué |
| Index de recherche autorisés la couverture de l’index classique porte encore l’essentiel de la découverte | 17 sur 24 | tous | ✗ É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 46 | votre 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 7 | votre 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 6 | votre 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 15 | votre 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 | 70 | 1 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-SearchBot | BLOQUÉ à / · ChatGPT search index · named rule · line 150: Disallow: / |
| ChatGPT-User | BLOQUÉ à / · ChatGPT live fetch · named rule · line 63: Disallow: / |
| Claude-SearchBot | BLOQUÉ à / · Claude search index · named rule · line 69: Disallow: / |
| Claude-User | BLOQUÉ à / · Claude live fetch · named rule · line 72: Disallow: / |
| PerplexityBot | BLOQUÉ à / · Perplexity index · named rule · line 159: Disallow: / |
| Perplexity-User | BLOQUÉ à / · Perplexity live fetch · named rule · line 162: Disallow: / |
| Gemini-Deep-Research | autorisé · Gemini research agent · wildcard rule · group at line 9, no rule matches / |
| MistralAI-User | BLOQUÉ à / · Le Chat live fetch · named rule · line 144: Disallow: / |
| DuckAssistBot | BLOQUÉ à / · DuckDuckGo AI assist · named rule · line 96: Disallow: / |
| YouBot | BLOQUÉ à / · You.com · named rule · line 198: Disallow: / |
| PhindBot | autorisé · Phind · wildcard rule · group at line 9, no rule matches / |
| Kagibot | autorisé · Kagi · wildcard rule · group at line 9, no rule matches / |
| Copilot-User | autorisé · Microsoft Copilot fetch · wildcard rule · group at line 9, no rule matches / |
| Meta-ExternalFetcher | BLOQUÉ à / · Meta AI live fetch · named rule · line 138: Disallow: / |
| Amzn-User | autorisé · Amazon live fetch for Alexa questions · wildcard rule · group at line 9, no rule matches / |
| Google-Agent | autorisé · Google user-triggered agent, acts on the web · wildcard rule · group at line 9, no rule matches / |
| Google-GeminiNotebook | autorisé · Gemini Notebook user-supplied URL fetch · wildcard rule · group at line 9, no rule matches / |
| Index de recherche — 17 sur 24 autorisés | |
| Googlebot-Image | autorisé · Google image crawler · wildcard rule · group at line 9, no rule matches / |
| Googlebot-News | autorisé · Google News · wildcard rule · group at line 9, no rule matches / |
| Googlebot-Video | autorisé · Google video crawler · wildcard rule · group at line 9, no rule matches / |
| Storebot-Google | autorisé · Google Shopping · wildcard rule · group at line 9, no rule matches / |
| Mediapartners-Google | autorisé · Google AdSense · wildcard rule · group at line 9, no rule matches / |
| APIs-Google | autorisé · Google push delivery · wildcard rule · group at line 9, no rule matches / |
| BingPreview | autorisé · Bing page preview · wildcard rule · group at line 9, no rule matches / |
| msnbot | autorisé · Microsoft legacy crawler · wildcard rule · group at line 9, no rule matches / |
| Slurp | BLOQUÉ à / · Yahoo Slurp · named rule · line 177: Disallow: / |
| Yandex | autorisé · Yandex (umbrella token) · wildcard rule · group at line 9, no rule matches / |
| coccocbot-web | autorisé · Coc Coc · wildcard rule · group at line 9, no rule matches / |
| Googlebot | autorisé · Google Search and AI Overviews · wildcard rule · group at line 9, no rule matches / |
| bingbot | autorisé · Bing and Copilot index · wildcard rule · group at line 9, no rule matches / |
| Applebot | BLOQUÉ à / · Apple and Siri · named rule · line 36: Disallow: / |
| Amazonbot | BLOQUÉ à / · Amazon · named rule · line 27: Disallow: / |
| DuckDuckBot | autorisé · DuckDuckGo · wildcard rule · group at line 9, no rule matches / |
| YandexBot | BLOQUÉ à / · Yandex · named rule · line 195: Disallow: / |
| Baiduspider | BLOQUÉ à / · Baidu · named rule · line 45: Disallow: / |
| Seznambot | autorisé · Seznam · wildcard rule · group at line 9, no rule matches / |
| Neevabot | autorisé · Neeva · wildcard rule · group at line 9, no rule matches / |
| PetalBot | BLOQUÉ à / · Huawei Petal · named rule · line 165: Disallow: / |
| Amzn-SearchBot | BLOQUÉ à / · Amazon search eligibility, separate from Amazonbot · named rule · line 30: Disallow: / |
| MistralAI-Index | autorisé · Mistral search index for Vibe · wildcard rule · group at line 9, no rule matches / |
| ExaSearchBot | autorisé · 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-crawler | autorisé · Magpie AI · wildcard rule · group at line 9, no rule matches / |
| img2dataset | autorisé · img2dataset image corpus · wildcard rule · group at line 9, no rule matches / |
| AwarioRssBot | autorisé · Awario RSS · wildcard rule · group at line 9, no rule matches / |
| AwarioSmartBot | autorisé · Awario smart · wildcard rule · group at line 9, no rule matches / |
| TurnitinBot | autorisé · Turnitin · wildcard rule · group at line 9, no rule matches / |
| archive.org_bot | BLOQUÉ à / · Internet Archive · named rule · line 42: Disallow: / |
| ia_archiver | autorisé · Internet Archive (legacy) · wildcard rule · group at line 9, no rule matches / |
| meta-webindexer | BLOQUÉ à / · Meta web index · named rule · line 141: Disallow: / |
| omgili | BLOQUÉ à / · Webz.io omgili · named rule · line 153: Disallow: / |
| cohere-training-data-crawler | BLOQUÉ à / · Cohere training corpus · named rule · line 78: Disallow: / |
| PanguBot | BLOQUÉ à / · Huawei PanGu · named rule · line 156: Disallow: / |
| Ai2Bot-Dolma | BLOQUÉ à / · Allen Institute Dolma · named rule · line 24: Disallow: / |
| FriendlyCrawler | autorisé · FriendlyCrawler ML · wildcard rule · group at line 9, no rule matches / |
| VelenPublicWebCrawler | BLOQUÉ à / · Velen · named rule · line 186: Disallow: / |
| MyCentralAIScraperBot | autorisé · MyCentral AI · wildcard rule · group at line 9, no rule matches / |
| DeepSeekBot | autorisé · DeepSeek · wildcard rule · group at line 9, no rule matches / |
| ICC-Crawler | BLOQUÉ à / · NICT ICC · named rule · line 117: Disallow: / |
| GoogleOther | autorisé · Google non-search fetch · wildcard rule · group at line 9, no rule matches / |
| Google-CloudVertexBot | autorisé · Vertex AI agent build · wildcard rule · group at line 9, no rule matches / |
| GPTBot | BLOQUÉ à / · OpenAI training and index · named rule · line 108: Disallow: / |
| ClaudeBot | BLOQUÉ à / · Anthropic training · named rule · line 66: Disallow: / |
| anthropic-ai | BLOQUÉ à / · Anthropic legacy agent · named rule · line 33: Disallow: / |
| Claude-Web | BLOQUÉ à / · Anthropic legacy agent · named rule · line 75: Disallow: / |
| Google-Extended | BLOQUÉ à / · Gemini training and grounding · named rule · line 105: Disallow: / |
| Applebot-Extended | BLOQUÉ à / · Apple training · named rule · line 39: Disallow: / |
| CCBot | BLOQUÉ à / · Common Crawl · named rule · line 57: Disallow: / |
| Bytespider | BLOQUÉ à / · ByteDance · named rule · line 51: Disallow: / |
| meta-externalagent | BLOQUÉ à / · Meta AI training · named rule · line 135: Disallow: / |
| FacebookBot | BLOQUÉ à / · Meta legacy · named rule · line 99: Disallow: / |
| cohere-ai | autorisé · Cohere · wildcard rule · group at line 9, no rule matches / |
| Diffbot | BLOQUÉ à / · Diffbot knowledge graph · named rule · line 90: Disallow: / |
| Omgilibot | BLOQUÉ à / · Webz.io · named rule · line 153: Disallow: / |
| ImagesiftBot | autorisé · Imagesift · wildcard rule · group at line 9, no rule matches / |
| Timpibot | BLOQUÉ à / · Timpi · named rule · line 183: Disallow: / |
| AI2Bot | BLOQUÉ à / · Allen Institute · named rule · line 21: Disallow: / |
| Scrapy | autorisé · Generic scraper framework · wildcard rule · group at line 9, no rule matches / |
| SemrushBot-OCOB | autorisé · Semrush AI corpus · wildcard rule · group at line 9, no rule matches / |
| Applebot-Extended-Ads | BLOQUÉ à / · Apple ads corpus · named rule · line 39: Disallow: / |
| TikTokSpider | autorisé · TikTok · wildcard rule · group at line 9, no rule matches / |
| QuillBot | autorisé · QuillBot · wildcard rule · group at line 9, no rule matches / |
| Webzio-Extended | BLOQUÉ à / · Webz.io extended · named rule · line 192: Disallow: / |
| ProRataInc | autorisé · ProRata · wildcard rule · group at line 9, no rule matches / |
| AwarioBot | autorisé · Awario · wildcard rule · group at line 9, no rule matches / |
| MistralAI-Training | autorisé · Mistral training crawl · wildcard rule · group at line 9, no rule matches / |
| GoogleOther-Image | autorisé · Google common crawler, public image URLs · wildcard rule · group at line 9, no rule matches / |
| GoogleOther-Video | autorisé · 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 | |
| KlaviyoAIBot | autorisé · Klaviyo Customer Agent knowledge-source crawler · wildcard rule · group at line 9, no rule matches / |
| AhrefsBot | autorisé · Ahrefs link index · wildcard rule · group at line 9, no rule matches / |
| SemrushBot | autorisé · Semrush crawler · wildcard rule · group at line 9, no rule matches / |
| MJ12bot | autorisé · Majestic link index · wildcard rule · group at line 9, no rule matches / |
| DotBot | autorisé · Moz link index · wildcard rule · group at line 9, no rule matches / |
| rogerbot | autorisé · Moz site crawler · wildcard rule · group at line 9, no rule matches / |
| DataForSeoBot | autorisé · DataForSEO · wildcard rule · group at line 9, no rule matches / |
| BLEXBot | autorisé · WebMeUp link index · wildcard rule · group at line 9, no rule matches / |
| CloudflareBrowserRenderingCrawler | autorisé · Cloudflare Browser Run /crawl · wildcard rule · group at line 9, no rule matches / |
| Cloudflare-AutoRAG | autorisé · Cloudflare AutoRAG · wildcard rule · group at line 9, no rule matches / |
| Peer39_Crawler | autorisé · Peer39 ad context · wildcard rule · group at line 9, no rule matches / |
| AdsBot-Google | autorisé · Google Ads quality · wildcard rule · group at line 9, no rule matches / |
| AmazonAdBot | autorisé · Amazon Ads · named rule · group at line 200, no rule matches / |
| AdIdxBot | autorisé · Microsoft Ads · wildcard rule · group at line 9, no rule matches / |
| OAI-AdsBot | autorisé · OpenAI ChatGPT ads page validation · wildcard rule · group at line 9, no rule matches / |
| Moteurs de recherche régionaux — 7 sur 7 autorisés | |
| Yeti | autorisé · Naver · wildcard rule · group at line 9, no rule matches / |
| YoudaoBot | autorisé · Youdao · wildcard rule · group at line 9, no rule matches / |
| Exabot | autorisé · Exalead · wildcard rule · group at line 9, no rule matches / |
| Sogou web spider | autorisé · Sogou · wildcard rule · group at line 9, no rule matches / |
| YisouSpider | autorisé · Shenma mobile search · wildcard rule · group at line 9, no rule matches / |
| 360Spider | autorisé · 360 Search · wildcard rule · group at line 9, no rule matches / |
| Sosospider | autorisé · Soso · wildcard rule · group at line 9, no rule matches / |
| Aperçus de liens sur les réseaux sociaux — 6 sur 6 autorisés | |
| Facebot | autorisé · Meta link crawler · wildcard rule · group at line 9, no rule matches / |
| Twitterbot | autorisé · X link preview · named rule · group at line 212, no rule matches / |
| LinkedInBot | autorisé · LinkedIn link preview · wildcard rule · group at line 9, no rule matches / |
| facebookexternalhit | autorisé · Facebook link preview · named rule · group at line 203, no rule matches / |
| Pinterestbot | autorisé · Pinterest · wildcard rule · group at line 9, no rule matches / |
| Slackbot-LinkExpanding | autorisé · 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-DeepResearchEval | BLOQUÉ à / · Ai2 — AI assistant or agent · named rule · line 21: Disallow: / |
| ChatGLM-Spider | BLOQUÉ à / · AI data crawler · named rule · line 60: Disallow: / |
| Cotoyogi | BLOQUÉ à / · ROIS — AI data crawler · named rule · line 81: Disallow: / |
| Diffbot-User | BLOQUÉ à / · Diffbot — AI assistant or agent · named rule · line 90: Disallow: / |
| imageSpider | BLOQUÉ à / · AI data crawler · named rule · line 120: Disallow: / |
| laion-huggingface-processor | BLOQUÉ à / · AI data crawler · named rule · line 126: Disallow: / |
| LCC | BLOQUÉ à / · AI data crawler · named rule · line 129: Disallow: / |
| MistralAI-User/1.0 | BLOQUÉ à / · Mistral AI — AI assistant or agent · named rule · line 144: Disallow: / |
| Mozilla-Tabstack | autorisé · Mozilla that performs programmatic — AI data crawler · named rule · line 224: Allow: / |
| SBIntuitionsBot | BLOQUÉ à / · SB Intuitions — AI data crawler · named rule · line 168: Disallow: / |
| Spider | BLOQUÉ à / · AI data crawler · named rule · line 177: Disallow: / |
| Thinkbot | BLOQUÉ à / · Thinkbot — AI data crawler · named rule · line 180: Disallow: / |
| Baiduspider-image | BLOQUÉ à / · 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| Largest Contentful Paint (p75) le temps qu’un vrai visiteur attend avant que l’élément principal de la page s’affiche | 3.52s | 2.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 ms | 200 ms ou moins | ✓ Réussi |
| Cumulative Layout Shift (p75) à quel point la page bouge sous les yeux du lecteur en cours de lecture | 0.13 | 0.1 ou moins | ✗ Échoué |
| Time to First Byte (p75) la part serveur de tous les autres chiffres de cette liste | 677 ms | 800 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.51s | lower over time | Signalé |
| Interaction to Next Paint trend getting faster — -7.5% across 40 weekly readings (2026-02-07 to 2026-11-07), real Chrome visitors | 146ms → 135ms | lower over time | Signalé |
| Cumulative Layout Shift trend holding steady — 0% across 40 weekly readings (2026-02-07 to 2026-11-07), real Chrome visitors | 0.13 → 0.13 | lower over time | Signalé |
| 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 5 | moins 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 lent | moins 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.14s | 2.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.86s | 200 ms ou moins | ✗ Échoué |
| Cumulative Layout Shift (labo) de combien la mise en page simulée a bougé pendant le chargement | 0.193 | 0.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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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,548B | moins 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 cost | Signalé |
| JavaScript en ligne pour un robot qui extrait le texte, le JS en ligne n’est que du poids mort | 43,837B | moins de 20 000 B | ✗ Échoué |
| Ressources bloquant le rendu chacune retarde le premier affichage et consomme le budget de rendu du robot | 27 | 0–5 | ✗ Échoué |
| Scripts différés ou bloquants un script bloquant arrête net l’analyse du HTML | 2 différés / 17 bloquants | tous les scripts en defer ou async | ✗ Échoué |
Où vont les octets
| Texte visible | 13,731 B | 4,4% |
|---|---|---|
| CSS en ligne | 46,455 B | 14,8% |
| JavaScript en ligne | 43,837 B | 14,0% |
| Données structurées | 2,238 B | 0,7% |
| Balisage et attributs | 204,197 B | 65,1% |
| Ressources bloquant le rendu | 27 | 10 feuilles de style, 17 scripts |
| Entités avec un @id stable | 1 / 3 | 33,3% |
| Liens de qualification | 0 | 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| robots.txt était lisible tous les autres fichiers de la chaîne sont normalement découverts via robots.txt | oui | 200, 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 existe | Non 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ôte | Non 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és | Non 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 valide | Non 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 | — | oui | Non 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ôte | le 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 | https | https | ✓ 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 organisation | une 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 lecteur | Non 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 & ni ' dans une valeur JSON-LD | Non 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 chiffres | Non 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 texte | Non 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ès | Non 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 correspondance | 0 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 | aucune | 0 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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éponse | 0 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 | aucune | 0 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 | aucune | aucun é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 | aucune | 0 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érent | aucun 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 navigateur | 90-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 served | 0 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 monde | Non 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é | Statut | Mots | Même texte | Ce qui s’est passé |
|---|---|---|---|---|
| Client anonyme | 200 | 2099 | 1 | |
| GPTBot | 200 | 2099 | 1 | |
| ClaudeBot | 200 | 2099 | 1 | |
| OAI-SearchBot | 200 | 2099 | 1 | |
| Claude-SearchBot | 200 | 2099 | 1 | |
| PerplexityBot | 200 | 2099 | 1 | |
| ChatGPT-User | 200 | 2099 | 1 | |
| Claude-User | 200 | 2099 | 1 | |
| Perplexity-User | 200 | 2099 | 1 | |
| Googlebot | 200 | 2099 | 1 | |
| Googlebot Smartphone | 200 | 2099 | 1 | |
| Navigateur mobile | 200 | 2099 | 1 | |
| Bingbot | 200 | 2099 | 1 | |
| Applebot | 200 | 2099 | 1 | |
| Amazonbot | 200 | 2099 | 1 | |
| Bytespider | 429 | 9 | — | rate-limited (HTTP 429) — throttled, not blocked — vendor unidentified; reproduced on a second request |
| Meta-ExternalAgent | 403 | 5 | — | refusé HTTP 403 — fournisseur non identifié ; reproduit sur une deuxième requête |
| CCBot | 200 | 2099 | 1 |
| Agent | Conflit | Détail |
|---|---|---|
| OAI-SearchBot | interdit mais servi | HTTP 200 avec 2099 mots |
| Claude-SearchBot | interdit mais servi | HTTP 200 avec 2099 mots |
| PerplexityBot | interdit mais servi | HTTP 200 avec 2099 mots |
| ChatGPT-User | interdit mais servi | HTTP 200 avec 2099 mots |
| Claude-User | interdit mais servi | HTTP 200 avec 2099 mots |
| Perplexity-User | interdit mais servi | HTTP 200 avec 2099 mots |
| Applebot | interdit mais servi | HTTP 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é | Document | Differs on | Looks like |
|---|---|---|---|
| Bytespider | error | HTTP 429 | |
| Meta-ExternalAgent | error | HTTP 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.
| Moteur | Index | Récupération en direct | Entraînement | Ce que la périphérie réseau a réellement fait | Nommé 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 46 | 97,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-width | width=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 zoomer | pas 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 | absent | une 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 viewport | non noté — ce sont des éléments de différenciation, pas des défauts | Signalé |
Présence locale, citations et NAP — 86/100
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 | oui | une 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.com | 200 sur un hôte Google | Signalé |
| 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 | 0 | 1 à 4 | Signalé |
| 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 | 1 | 4 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 | non | oui | ✗ É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écision | dans 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 point | Non 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 longitude | le 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 m | Non 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 | 1 | 1 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 Denver | signalé, 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 Post | une 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 une | les deux endroits indiquent le même numéro | Signalé |
| 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 | +13039541010 | un 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, 80216 | une 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 | 3 | les 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, BBB | chacune de celles que vous possédez, déclarée | Signalé |
| 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 licence | 0 | ✗ É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 | 0 | 0 | ✓ 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 | 0 | celles qui comptent pour votre métier | Signalé |
| 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 data | Signalé |
| 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 data | Signalé |
| 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 data | Signalé |
| 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 data | Signalé |
| 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 text | every declared place also named on the page | Dé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.
| Profil | A répondu | Votre téléphone | Votre 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 versions | 40 distinctes, 2002-09-23 → 2004-04-12 |
Archivé llms.txt | aucune archive |
Exposed files and secrets — 89/100
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 readable | none 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.js | none | ✗ É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.txt | nothing private: no keys, internal addresses or personal emails | Non 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| A missing page answers 404 the right answer for a page that does not exist | HTTP 404 | 404 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 words | a way back (home link or menu) | ✓ Réussi |
| A missing file answers 404 the right answer for a file that does not exist | HTTP 404 | 404 | ✓ Réussi |
| Error pages reveal server details server versions, PHP warnings and stack traces tell an attacker exactly which known flaws to try | nothing revealed | nothing 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
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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ées | au 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 2 | chaque 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 URL | 0 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é lus | 0 non déclarées | Signalé |
| 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ées | 0 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 redirigent | 0 redirections | ✓ Réussi |
| URL déclarées dans le sitemap | 835 20 des 6000 sitemaps enfants lus — le décompte est un minimum, pas un total |
| Liens internes sur la page d’accueil | 202 |
| Liées mais non déclarées | non 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ées | 6 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.
Maillage interne — 100/100
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| Liens internes sur cette page une page qui ne pointe nulle part est une impasse pour un robot qui suit votre propre structure | 309 | assez pour atteindre les pages qui comptent | ✓ Réussi |
| Destinations distinctes une navigation répétée dans l’en-tête et le pied de page compte deux fois et mène aux mêmes endroits | 203 sur 309 liens | la plupart des liens mènent à des endroits différents | ✓ Réussi |
| Texte d’ancre qui ne dit rien le texte d’ancre est la seule description d’une destination qu’une machine lit avant de décider de la suivre | 0 | zéro | ✓ Réussi |
| Liens sans aucun mot une icône ou un lien image nu est muet — un lecteur d’écran et un robot n’en tirent rien | 0 | zéro | ✓ Réussi |
| Liens internes en nofollow demander à un robot de ne pas suivre vos propres pages est presque toujours un réglage par défaut d’extension que personne n’a choisi | 0 | zéro | ✓ Réussi |
| Liens externes les liens sortants sont un choix éditorial, pas un défaut | 45 | signalé, non noté | Signalé |
Quelles pages déclarées ne reçoivent aucun lien
Lors de cette analyse, votre sitemap a été confronté à vos propres liens internes et les pages vers lesquelles rien ne pointe ont été identifiées. Cette liste fait partie du rapport payant et n’est pas affichée ici — retenue, pas manquante.
Cohérence des noms et de la casse — 80/100
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 | minuscules | toujours 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 minuscules | 98–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érent | un 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 | aucune | moins de 2 % des liens internes (et moins de 3) | ✓ Réussi |
Signaux d’image — 80/100
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 44 | toutes | ✗ É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 44 | sous la ligne de flottaison uniquement | ✓ Réussi |
| Formats modernes (WebP/AVIF) des fichiers plus légers, la même image | 0 sur 44 | la plupart | Signalé |
| 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 image | Signalé |
| 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 | oui | une 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 | oui | pré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 label | labels that say how each image was made | Signalé |
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 | État | Tenté | Raison |
|---|---|---|---|
nl_entities | ignoré | non | la lecture approfondie des entités s’exécute pour les domaines sous suivi continu ; cette analyse a utilisé le résolveur sans clé |
vantage | non mesuré | non | 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é |
identity:Bytespider | refusé | oui | HTTP 429 |
identity:Meta-ExternalAgent | refusé | oui | HTTP 403 |
section:commerce | non mesuré | inconnu | aucune 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
| Fait | Valeur déclarée | Déclaré dans | |
|---|---|---|---|
name | The Denver Post | JSON-LD LocalBusiness meta og:site_name | concorde |
telephone | +13039541010 | JSON-LD LocalBusiness | une source |
email | newsroom@denverpost.com | JSON-LD LocalBusiness | une source |
address | 5990 Washington St., Denver, CO, 80216 | JSON-LD LocalBusiness | une source |
hours | Lu 8AM-4PM ; Ma 8AM-4PM ; Me 8AM-4PM ; Je 8AM-4PM ; Ve 8AM-4PM | JSON-LD LocalBusiness | une source |
geo | 39.7392,104.9903 | JSON-LD LocalBusiness | une source |
url | https://www.denverpost.com/ | JSON-LD NewsMediaOrganization JSON-LD LocalBusiness | concorde |
logo | https://i0.wp.com/www.denverpost.com/wp-content/uploads/2020/11/denverpost.jpg?w=1200&crop=00px100630px&ssl=1 | JSON-LD LocalBusiness | une source |
foundingDate | 1892 | JSON-LD LocalBusiness | une source |
areaServed | 1 zone : Denver Metropolitan Area and the state of Colorado | JSON-LD LocalBusiness | une source |
sameAs | 3 profils | JSON-LD LocalBusiness | une source |
title | The Denver Post – Colorado breaking news, sports, business, weather, entertainment. | <title> | concorde |
| The Denver Post | meta og:title | ||
description | Colorado breaking news, sports, business, weather, entertainment. | meta og:description | une source |
canonical | https://www.denverpost.com | meta og:url | une source |
language | en-US | <html lang> | concorde |
| en_US | meta og:locale | ||
image | https://www.denverpost.com/wp-content/uploads/2020/11/denverpost.jpg | meta og:imagemeta 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.
| 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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 | absent | Un 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 promettre | Signalé |
| 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 comment | Signalé |
| 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 navigateurs | Signalé |
| DNS-AID records An IETF draft (DNS for AI Discovery). Early: almost no site has these yet, so absence is not a defect | absent | SVCB or TXT records at _index._agents (and _mcp._agents / _a2a._agents) pointing agents at your MCP server or agent card | Signalé |
| 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=shortlink | Uniquement des relations enregistrées - canonical, alternate, describedby. Jamais un rel inventé pour satisfaire un vérificateur | Signalé |
| 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 representativeQueries | Signalé |
| 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 sha256 | Signalé |
| Catalogue d’API NON APPLICABLE : aucune API publique trouvée. Un catalogue de rien n’est pas une amélioration | absent | Rien à publier - aucune API n’a pu être découverte sur ce site | Signalé |
| 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és | Signalé |
| 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 applicable | Rien à publier - aucun signal commercial sur ce site | Non applicable |
| Métadonnées OAuth / ressource protégée NON APPLICABLE : rien auprès de quoi s’authentifier | non applicable | Rien à publier - aucune API protégée sur ce site | Non 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 informatif | Un JWKS à /.well-known/http-message-signatures-directory - uniquement si CE site envoie des requêtes d’agent signées à d’autres | Signalé |
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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 | 24 | les sujets dont traite cette page | Signalé |
| 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 24 | une chose nommée que la source publique connaît | Signalé |
| 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 contexte | Signalé |
| 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 | 14 | 0 | Signalé |
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 mentionsColorado— Q1261 · state of the United States of America · 10 mentionsBroncos— Q60740406 · untrained horse or a horse that habitually bucks · 8 mentionsDaiyan Henley— Q114245319 · American football player (born 1999) · 6 mentionsOpinion— Q3962655 · judgement, viewpoint, or statement that is not conclusive · 5 mentionsBestReviews— Q7020906 · American media company · 3 mentionsBoulder— Q581776 · natural rock fragment larger than 25.6 cm in diameter (larger than 200 mm diameter according to ISO 14688) · 3 mentionsThanksgiving— Q13959 · holiday in various countries · 3 mentionsAurora— 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 mentionsCarolina Panthers— Q330120 · National Football League franchise in Charlotte, North Carolina · 2 mentionsCongressional District— Q192611 · territorial division made or used for elections · 2 mentionsKansas 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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 | 1 | chaque lieu que l’entreprise dessert réellement, sous forme de nœuds City ou Place | Signalé |
| Rayon déclaré le rayon est la seule affirmation qui borne toutes les autres | aucun GeoCircle | un GeoCircle autour du centre réel | Signalé |
| 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 1 | chaque nom déclaré se résout en un lieu | Signalé |
| 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 1 | une page locale par zone qui compte | Signalé |
| 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 | aucune | zéro | Signalé |
| Zone déclarée la plus éloignée la distance sur laquelle l’entreprise s’engage officiellement | — | à l’intérieur du rayon | Non mesuré |
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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 analyse | jusqu’à 60 pages déclarées, lues une fois par jour | Signalé |
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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 835 | chaque URL, avec sa date réelle | Signalé |
| 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 publie | Signalé |
| 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 modifications | Signalé |
| 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 exact | Signalé |
| 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 | aucune | pré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ée | Signalé |
| 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 it | declared, valid, recent | Dé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 ask | 304 Not Modified | Signalé |
| 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 outside | pinged on every publish | Signalé |
| 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 versions | un long historique | Signalé |
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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 autre | Signalé |
| 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 poste | tous | Signalé |
| 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 profil | Non 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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 | aucune | au moins un lien d’appel en un geste | Signalé |
| 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 | non | dans le premier quart de la page | Signalé |
| 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 flottaison | un formulaire, accessible sans défiler | Signalé |
| 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ôt | Signalé |
| 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 | oui | liée depuis chaque page | Signalé |
| 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 services | Signalé |
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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 it | Signalé |
| 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 homepage | shown, if true of the business | Signalé |
| 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 homepage | shown, if true of the business | Signalé |
| 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 data | shown, if true of the business | Signalé |
| 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 homepage | shown, if true of the business | Signalé |
| 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 homepage | shown, if true of the business | Signalé |
| 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 homepage | shown, if true of the business | Signalé |
| 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 data | shown, if true of the business | Signalé |
| 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 homepage | shown, if true of the business | Signalé |
| 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 data | shown, if true of the business | Signalé |
| 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 data | shown, if true of the business | Signalé |
| 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,000 | shown, if true of the business | Signalé |
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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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érent | consistent | ✓ 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 source | no 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-11 | more than 30 days left | ✓ Réussi |
| Parked, for sale or placeholder a parked or for-sale page is not a working business | non | non | ✓ Réussi |
| Redirects to another organisation a site that forwards to a different organisation is not the business it names | non | non | ✓ 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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 domains | none | ✓ 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, includeSubDomains | max-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 from | Warning |
| 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éfini | DENY, 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éfini | set | ✗ É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 stricter | Signalé |
| 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-Policy | blocked 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 | 0 | 0 | ✓ Réussi |
| Software version shown in headers a visible version tells attackers which known flaws to try | none shown | none 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 3 | 0 | ✓ 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 cookie | HttpOnly on every session cookie | Non applicable |
| Forms that send over plain HTTP every form posts over HTTPS | none of 3 forms | none | ✓ Réussi |
| Where forms send their data nothing typed into these forms leaves the site's own host | only this site | this 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 advisory | no 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 hosts | no 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.com | every new script or form destination intended | Warning |
| Email forgery protection (DMARC) without an enforcing policy, anyone can send email that appears to come from this domain | p=quarantine | p=quarantine or p=reject | ✓ Réussi |
| SPF names the servers allowed to send this domain's mail | present, ends fail | present, ends fail or softfail | ✓ Réussi |
| CAA (who may issue certificates) limits which certificate authorities can issue a certificate for the domain | aucune | set | ✗ Échoué |
| DNSSEC protects visitors from forged DNS answers | not signed | signed | ✗ É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-11 | renewal 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 scan | no unsafe content | Signalé |
| 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 | on | on (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 directive | preloaded | Signalé |
| 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 | aucune | none | ✓ 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 subdomains | none | ✓ 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 back | every 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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 21 | a 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 21 | a 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 21 | a 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 rest | a stated answer either way: allow or deny | Signalé |
| 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 21 | a stated answer, once a standard signal for this use exists | Signalé |
| 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 | aucune | none | ✓ 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 meta | robots.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 page | machine-readable signals that say what the terms say | Signalé |
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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 | aucune | Offer 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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 12 | 10 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.com | only 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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 English | the same language | ✓ Réussi |
| Language versions declared (hreflang) hreflang tells an engine which version to show to which searcher | aucune | only needed when the site has versions in other languages or regions | Signalé |
| 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.
| Mesure | Actuellement | Optimal | |
|---|---|---|---|
| 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 it | cited by more than one engine | Signalé |
| 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 answer | the pages that answer the question | Signalé |
| 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 yet | a run of prompts with and without its name | Signalé |
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.
| Page | Dans le jeu de données | Capturé | Statut |
|---|---|---|---|
| / | vérification impossible | — | l’index a répondu 521 (il limite les rafales ; cela ne dit rien de |
| /sitemap.xml?yyyy=2026&mm=10&dd=31 | introuvable | — | — |
| /sitemap.xml?yyyy=2026&mm=10&dd=30 | vérification impossible | — | l’index a répondu 504 (il limite les rafales ; cela ne dit rien de |
| /sitemap.xml?yyyy=2026&mm=10&dd=29 | introuvable | — | — |
| /sitemap.xml?yyyy=2026&mm=10&dd=28 | vérification impossible | — | l’index a répondu 504 (il limite les rafales ; cela ne dit rien de |
| /sitemap.xml?yyyy=2026&mm=10&dd=27 | vé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.
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
| Mesure | Ce site | Médiane du corpus | Rang |
|---|---|---|---|
| Score de visibilité IA (la note affichée) | 81 | 80 | 56e centile |
| Moyenne des sections (pondérée) | 80 | 81 | 41e centile |
| Ratio de contenu (% de texte visible) | 4.4 | 3.4 | 69e centile |
| Couverture en @id stables (%) | 33.3 | 84.6 | 8e centile |
| Ressources bloquant le rendu | 27 | 10.5 | 19e centile |
| Taille de la page livrée (KB) | 306 | 182 | 14e 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à.
| Étape | Question | Score | |
|---|---|---|---|
| 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 page | OAI-SearchBot · Claude-SearchBot · PerplexityBot · ChatGPT-User · Claude-User · Perplexity-User · Googlebot · Googlebot Smartphone · Bingbot · Applebot |
| Interdit dans 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 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.
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.
| Mesure | Avant | Maintenant | Écart |
|---|---|---|---|
| Score global | 81/100 | 80/100 | -1/100 ✗ |
| Ratio de contenu | 4,6% | 4.4% | -0.2% ✗ |
| Couverture en @id stables | 33,3% | 33.3% | aucun changement |
| Ressources bloquant le rendu | 27 | 27 | aucun changement |
| Taille de la page | 310 KB | 306 KB | -4 KB ✓ |
| Constats | 11 | 11 | aucun 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ération | Ce qu’elle fait | Cet enregistrement | |
|---|---|---|---|
| Réanalyse | Une 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 UTC | Réanalyser |
| Retraitement | Les 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) |
| Rejeu | Le 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 rapport | b0e6d0e6517e9048399de38a42208b2e2dde97fc29f2356012d0fea6ddfd47fd |
| Règles de notation | v34 — actuelle |
| Racine | enregistré, 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.
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
| Chemin | Statut | Type de contenu | Octets | Edge | |
|---|---|---|---|---|---|
| /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.
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.
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.
| Consultation | Résultat | Limite de qui | Pourquoi |
|---|---|---|---|
| Présence hors site (annuaires recherchés par numéro de téléphone) | atteint | à vous | Yelp, 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éponses | non atteint | la nôtre | notre 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 Profile | refusé | les leurs, dirigés vers nous | Google 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.
| composante | statut | score | mesurée |
|---|---|---|---|
| Fichiers machine | noté | 67 | robots.txt, llms.txt, sitemap et entitymap, notés comme ci-dessus |
| Charge utile — ratio de contenu | noté | 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 rendu | noté | 0 | 27 ressources bloquant le rendu |
| Structure du document | noté | 80 | 0 sauts de niveau de titre, 2 h1 |
| composante | statut | score | mesurée |
|---|---|---|---|
| Identité des entités | noté | 33 | 33,3 % des 3 entités portent un @id stable |
| Notoriété déclarée | noté | 40 | aucun lien de qualification déclaré |
| Cohérence de l’emplacement | noté | 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 page | noté | 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.
| Section | Score | Poids |
|---|---|---|
| Couche machine | 67/100 | 1.5 |
| Serveur et hébergement | 80/100 | 0.6 |
| Schema et graphe d’entités | 55/100 | 1.2 |
| Surface RDF et données liées | 100/100 | 0.8 |
| Signaux d’auteur et de confiance (indicateurs E-E-A-T) | 57/100 | 1 |
| Structure d’accessibilité (d’après le HTML livré) | 96/100 | 0.8 |
| Corroboration de l’entité | 100/100 | 0.6 |
| Contenu citable | 67/100 | 0.8 |
| Gaspillage d’exploration | 100/100 | 0.6 |
| Sujet de la page, la question Webref | 100/100 | 0.6 |
| Agents IA et de recherche | 33/100 | 1.2 |
| Vitesse perçue par un robot, et données de terrain lorsqu’elles existent | 44/100 | 1 |
| Charge utile et chemin de rendu | 20/100 | 1 |
| Chaîne de confiance des fichiers machine | 100/100 | 1.5 |
| Cohérence des affirmations | 100/100 | 1.3 |
| Surface d’instructions pour agents | 100/100 | 1 |
| Ce que reçoit chaque agent | 88/100 | 1.5 |
| Surface mobile | 100/100 | 0.8 |
| Présence locale, citations et NAP | 86/100 | 1.3 |
| Exposed files and secrets | 89/100 | 0.6 |
| Pages d’erreur | 100/100 | 0.4 |
| Couverture du sitemap | 100/100 | 1.2 |
| Maillage interne | 100/100 | 1 |
| Cohérence des noms et de la casse | 80/100 | 0.4 |
| Signaux d’image | 80/100 | 0.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
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.
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.