scanné le 2026-08-25 06:32 UTC · en cache · actualisation dans 24 h · rubric 2026.11.0
○Analyse publique non vérifiée
Construit avec Webflow
À améliorer
AgentSpeed teste avec quelle facilité des agents automatisés peuvent découvrir, comprendre et agir sur novaposhta.ua. Le score pondère cinq catégories de lisibilité machine ; les graduations de l’arc sont les 37 vérifications individuelles derrière.
Envoyez ceci à la personne qui modifie le site. Le lien affiche le score et la note sous forme d’aperçu, et il reste à jour : il relit le dernier scan au lieu de figer la valeur d’aujourd’hui.
Corrections prioritaires
Les vérifications marquées « emerging » sont des standards de protocole agent de 2026 que la majorité du web n’a pas encore adoptés. Être en avance est un atout, pas un défaut.
failLink response headers+2 ptsDécouvrabilité
No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.
Voir la marche à suivre
Ce que cela signifie
HTTP responses can carry a Link header: the same canonical and alternate-language information your HTML declares, but delivered in the response envelope itself. Agents that only send a HEAD request, or that decide what to do while the page is still streaming, read the header without parsing any HTML. Yours is missing (or carries none of the relations agents use: canonical, alternate, describedby).
Pourquoi c’est important
An agent triaging fifty URLs doesn’t want to download and parse fifty pages to learn which are duplicates of which. The Link header answers at the cheapest possible layer. Sites that provide it get correctly de-duplicated and correctly language-routed even by the most minimal fetchers.
À faire
Emit a Link header alongside each page, mirroring what your HTML head already declares. Example: Link: <https://yoursite.com/page>; rel="canonical".
Ne perdez pas ce rapport
Recevez-le dans votre boîte mail, plus une alerte dès que le score de novaposhta.ua change. Gratuit, désinscription à tout moment.
Vous préférez qu'on s'en charge ? Monitor rescanne chaque semaine et signale tout changement, $29/mo. Activer la surveillance →
Ce scan a noté une page. Votre site en compte bien plus.
Point faible de ce scan : la découvrabilité, 50/100 — les signaux qui permettent aux agents de trouver et de parcourir ce site sont maigres ou absents.
Seule la page d’accueil a été notée. Vos tarifs, votre documentation et votre paiement vivent sur d’autres pages : celles que les assistants citent quand ils vous recommandent. Un 73/100 ici signifie que des agents ratent déjà des choses sur votre meilleure page. Le Deep Scan ($29) audite votre page d’accueil plus jusqu’à 10 autres pages que nous découvrons, sur les 37 vérifications, et envoie un PDF listant chaque échec et sa correction exacte, classés selon ce qui vous coûte le plus de visibilité. Paiement unique, livré en quelques minutes, sans abonnement.
Right now, only you know this score. Your buyers ask AI before they buy, and certification is how you show them, and anyone comparing you to a competitor, that assistants can actually read, quote, and use your site.
A public verification URL you can drop into a sales deck, a procurement questionnaire, or a partner review. Anyone can check it, dated and signed.
An embeddable badge for your site, the visible version of a property competitors can’t claim without earning the score.
Weekly re-checks for a full year. A deploy that breaks agent access gets caught before it costs you recommendations, and before the certificate would lapse.
Sites under 70 can’t buy this at any price. That’s what makes displaying it mean something.
Recevez ce rapport par e-mail, puis une alerte quand la compatibilité agents de novaposhta.ua change vraiment : une vérification qui régresse, ou le score global qui baisse.
Deux choses ne déclenchent jamais d’e-mail : un changement de score dû à la publication d’une nouvelle grille (c’est un autre instrument de mesure, pas un changement de votre site), et un mouvement expliqué uniquement par des vérifications dépendantes du temps, qui varient d’un passage à l’autre.
Vous préférez votre propre rythme, avec Slack ou un webhook plutôt que l’e-mail ? Le suivi de dérive du score est inclus dans toutes les offres payantes.
Ce score dit si un agent IA pourrait lire novaposhta.ua. L’analytics du trafic IA dit si un agent est réellement venu, et quelles pages l’ont fait fuir.
Détail complet
18 pass2 warn11 fail6 skip
Découvrabilité
pass
robots.txt present
A robots.txt is reachable at the site root.
100/100
pass
robots.txt allows AI agents
All 9 answer-time access agents allowed.
100/100
fail
Content-Signal directivesemerging
No Content-Signal directives. Add e.g. `Content-Signal: ai-train=no, ai-summarize=yes` to declare granular AI usage policy beyond binary allow/disallow.
0/100
pass
llms.txt present
Found /llms.txt but missing H1 header and markdown links. Not scored.
100/100
pass
Sitemap present
sitemap.xml reachable and referenced from robots.txt.
100/100
fail
Link response headers
No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.
0/100
pass
Canonical URL
Canonical points to self: https://novaposhta.ua/.
100/100
fail
MCP server cardemerging
No valid MCP Server Card at /.well-known/mcp/server-card.json. Publish one so agents can discover your tools without HTML scraping.
0/100
fail
OAuth authorization metadataemerging
No RFC 8414 metadata at /.well-known/oauth-authorization-server. Agents that act on behalf of users need this to discover your authorization endpoints.
0/100
fail
OAuth resource metadataemerging
No RFC 9728 metadata at /.well-known/oauth-protected-resource. Publish it so agents can discover required scopes without hand-coded credentials.
0/100
fail
API catalog / OpenAPIemerging
No /.well-known/api-catalog (RFC 9727) and no /openapi.json|yaml. Publish one so agents that integrate with APIs can discover your endpoints.
0/100
fail
Web Bot Authemerging
No Web Bot Auth JWKS at /.well-known/http-message-signatures-directory.json. Publish one to allow trusted agents while keeping a default-deny posture for the rest.
0/100
Lisibilité
skip
Markdown negotiationemerging
Agent-protocol discovery was not probed for this scan.
—
fail
Text-to-markup ratio
Visible text is 2.6% of HTML weight (14720/558771 bytes). 47% of the document is inline script, 50% is markup.
20/100
pass
Content without JavaScript
Primary content is present in the initial HTML — agents without JS can read it. (Measured statically; a rendered comparison was not run because the static reading sufficed.)
90/100
pass
Heading hierarchy
Hierarchy is well-formed (1 H1, no skipped levels, 7 headings total).
100/100
pass
Cookie wall blocks content
No common consent-modal markers detected.
100/100
warn
Declared language
The lang attribute on <html> is not a well-formed BCP 47 tag. The usual culprits: an underscore instead of a hyphen (en_US), or a spelled-out language name (english). Use language[-Script][-REGION]: en, de-DE, zh-Hans-CN.
40/100
pass
Page title
A concise <title> is present (33 chars).
100/100
pass
Meta description
A well-sized meta description is present (106 chars).
100/100
Données structurées
pass
JSON-LD present
Found 1 JSON-LD block.
100/100
pass
Structured data validates
1/1 checkable block(s) validated cleanly against schema.org.
100/100
pass
Schema type coverage
Page intent unclear; no specific schema.org type expected.
100/100
Cohérence : vos canaux sont-ils d’accord ?
skip
JSON-LD price matches the visible priceemerging
No price declared in JSON-LD, so there is nothing to cross-check. (Whether a price SHOULD be declared is the structured-data checks’ question.)
—
pass
JSON-LD name appears on the pageemerging
Declared entity name "Нова Пошта" appears on the visible page.
100/100
skip
Declared language matches the contentemerging
Declared lang is malformed; markup.language already reports that.
—
Actionnabilité
pass
Paywall / login wall
No paywall or login-wall detected on the landing URL.
100/100
fail
Agent Skills manifestemerging
No Agent Skills manifest at /.well-known/agent-skills.json. Enumerate the tasks agents can perform (search, add-to-cart, contact-support) so they pick the right one without scraping.
0/100
fail
WebMCP actionsemerging
No WebMCP detected. On pages with first-class actions (cart, support, account), embed a WebMCP server so on-page agents invoke tools directly.
0/100
fail
Commerce protocol manifestemerging
No agentic-commerce discovery manifest (x402 at /.well-known/x402.json, UCP at /.well-known/ucp, or ACP at /.well-known/acp.json). Agents that buy pre-flight these before attempting a transaction; publishing the one for your commerce protocol is how they learn you accept agent-initiated purchases.
0/100
pass
Primary action reachable
A primary offering and a price or call to action were both identifiable from the served HTML, so an agent can tell what this page sells and what it costs without running scripts.
100/100
pass
Reachability
HTTP 200.
100/100
skip
Primary action is clickableemerging
This page does not ask the reader to do anything, so there is no primary action to check. Informational pages are not penalised here.
—
skip
Filters reachable by URLemerging
This page does not offer to filter or sort a list, so there is nothing to address by URL. Pages without facets are not penalised here.
—
Performance
warn
Time to first byte
TTFB 822ms. Acceptable.
60/100
skip
Full render time
Full-render time unavailable (browser pass skipped or failed).
—
pass
Page weight
Initial document is a lean 546 KB.
100/100
Au-delà du scan
Vous exploitez vos propres agents IA ? AgentSpeed les surveille aussi en production : chaque exécution, sa latence, son coût et ses échecs, avec des alertes quand quelque chose casse. Gratuit jusqu’à 10 000 événements par mois, sans carte bancaire.
Produisez ce type de rapport pour chaque client : PDF en marque blanche et surveillance hebdomadaire jusqu’à 15 domaines, $149/mo. AgentSpeed pour les agences →
Méthodologie et limites
Ce score mesure la lisibilité pour les agents automatisés selon la grille publique 2026.11.0. AgentSpeed n’évalue ni la sécurité, ni la légitimité, ni la confidentialité, ni la confiance financière.
Most stacks set this in one place: Next.js headers() config, an nginx add_header line, or a CDN response-header rule.
If you serve translations, add rel="alternate" entries with hreflang, matching your HTML.
À coller dans Claude Code, Cursor ou tout assistant ayant votre dépôt ouvert. Il contient ce constat, les étapes et les raccourcis à éviter.
Ou copiez-le adapté à votre outil :
À vérifier
Run: curl -sI https://yoursite.com | grep -i "^link:" and confirm the relations appear.
Hit Re-scan above: "Link response headers" flips to PASS.
À éviter
The header must AGREE with the HTML. A Link header pointing one place while the in-page canonical points another gives machines two contradictory answers, which is worse than one missing answer.
Don’t inject the same site-wide canonical on every page via a blanket CDN rule; each page names its own clean URL, exactly as in the HTML tag.
Visible text is 2.6% of HTML weight (14720/558771 bytes). 47% of the document is inline script, 50% is markup.
Voir la marche à suivre
Ce que cela signifie
Of everything your server sends for this page, very little is actual readable text. The rest is code, styling, and markup wrapper. Agents fetched a lot of bytes and found few words.
Pourquoi c’est important
Agents work with retrieval budgets. A page that is 2% text either gets skimmed (and mis-summarised) or skipped. More signal per byte means more of your actual message survives into the agent’s summary.
À faire
Confirm your real copy is server-rendered. See the JavaScript check; these two usually fail together.
Cut boilerplate wrappers: deeply nested divs, inline SVG logos repeated per section, base64 images inlined into HTML.
Move large inline styles and scripts into external files.
Check how much of the document is inline script: your report now says. If most of it is, that is your framework serializing state for hydration, often a second copy of text already in the HTML. Send only the props a component cannot recompute, and render statically where a page does not need to hydrate.
À coller dans Claude Code, Cursor ou tout assistant ayant votre dépôt ouvert. Il contient ce constat, les étapes et les raccourcis à éviter.
Ou copiez-le adapté à votre outil :
À vérifier
Re-scan: "Text-to-markup ratio" improves, and "Page weight" often improves alongside.
À éviter
Don’t pad the page with keyword text to inflate the ratio. The ratio is a proxy for substance, and stuffing is the opposite of substance.
The lang attribute on <html> is not a well-formed BCP 47 tag. The usual culprits: an underscore instead of a hyphen (en_US), or a spelled-out language name (english). Use language[-Script][-REGION]: en, de-DE, zh-Hans-CN.
Voir la marche à suivre
Ce que cela signifie
The lang attribute on <html> declares what language the page is written in, and hreflang link tags list where your translations live. The finding above says which part is broken here: a missing or malformed lang declaration, or translation alternates written in a format machines reject (and therefore ignore).
Pourquoi c’est important
Language routing happens early: assistants serving a German user prefer German sources, translators pick models per language, screen readers pick pronunciation. A missing declaration adds a guess at the base of all of it, and an ignored hreflang alternate makes that translation invisible to agents routing users by market.
À faire
Set <html lang="en"> (or your page’s real language code) in the root template. Valid shapes: en, de-DE, zh-Hans-CN.
If the finding names malformed hreflang alternates, correct those codes to the same valid shape. The classic break is an underscore (en_US) where a hyphen belongs (en-US).
On multilingual sites, each translated page declares its OWN language. The attribute belongs to the document, not the brand.
À coller dans Claude Code, Cursor ou tout assistant ayant votre dépôt ouvert. Il contient ce constat, les étapes et les raccourcis à éviter.
Ou copiez-le adapté à votre outil :
À vérifier
Re-scan: "Declared language" flips to PASS, and "Declared language matches the content" (coherence) should agree with it.
À éviter
Don’t declare English on non-English pages "for SEO". The coherence check compares your declaration to the actual text, and a mismatch is worse than no declaration.
Time to first byte is how long your server thinks before it starts answering: the gap between an agent asking for the page and the first byte of HTML arriving. Yours crossed our threshold (under 200ms scores full marks, over 2 seconds fails).
Pourquoi c’est important
Agents fetch with tight timeouts and many pages in parallel. A server that takes seconds to start answering gets cut off mid-queue, and a page that times out is a page that was never read. Speed here is not polish; it decides whether the content gets fetched at all.
À faire
Cache the HTML itself. Marketing and docs pages rarely change per visitor; serve them from a CDN or static cache so no application code runs per request.
If you are on serverless hosting, cold starts are a common cause: keep the function warm or pre-render the page.
Move slow work (database queries, third-party API calls) out of the first response; render the shell fast and fill personalised details after.
À coller dans Claude Code, Cursor ou tout assistant ayant votre dépôt ouvert. Il contient ce constat, les étapes et les raccourcis à éviter.
Ou copiez-le adapté à votre outil :
À vérifier
Run: curl -o /dev/null -s -w "%{time_starttransfer}\n" https://yoursite.com and watch the number drop.
Hit Re-scan above: "Time to first byte" improves a bucket at a time (under 500ms passes).
À éviter
Don’t answer fast with an empty shell that loads content by JavaScript. That trades this warning for the much worse "content requires JavaScript" failure, since most agents never run your scripts.
Don’t special-case known crawler user agents onto a faster path. Serving different performance to different audiences is the pattern crawlers penalise when they detect it.
No Content-Signal directives. Add e.g. `Content-Signal: ai-train=no, ai-summarize=yes` to declare granular AI usage policy beyond binary allow/disallow.
Voir la marche à suivre
Ce que cela signifie
Content-Signal is a newer robots.txt directive (pushed by Cloudflare) that lets you state a granular AI policy: for example "don’t train on my content, but summarising it in answers is fine". Classic robots.txt only offers all-or-nothing per crawler; this adds the middle ground. We looked for a Content-Signal line in your robots.txt and response headers and found none.
Pourquoi c’est important
Without a granular signal, crawlers infer your intent from blunt allow/block rules, and sites often block more than they mean to just to avoid training use. A declared signal lets you keep answer visibility (summaries, citations) while opting out of what you object to. This is an emerging standard: honoring is voluntary and adoption is early, which is why it is flagged as emerging and weighs little.
À faire
Decide your actual policy first: are you fine with AI training on your content? With summarisation in answers? With search indexing?
Express it as one line in robots.txt, for example: Content-Signal: ai-train=no, ai-summarize=yes.
Keep your existing User-agent rules; the signal adds nuance on top, it doesn’t replace them.
À coller dans Claude Code, Cursor ou tout assistant ayant votre dépôt ouvert. Il contient ce constat, les étapes et les raccourcis à éviter.
Ou copiez-le adapté à votre outil :
À vérifier
Open yoursite.com/robots.txt and confirm the Content-Signal line is live.
Hit Re-scan above: "Content-Signal directives" flips to PASS.
À éviter
Don’t declare signals that contradict your User-agent rules, such as ai-summarize=yes while blocking every AI crawler; conflicting instructions get you treated as unreliable.
Don’t add the line just for the score. It is a public policy statement; say what you mean, because compliant crawlers will act on it.
No valid MCP Server Card at /.well-known/mcp/server-card.json. Publish one so agents can discover your tools without HTML scraping.
Voir la marche à suivre
Ce que cela signifie
MCP (Model Context Protocol) is how AI assistants call tools. A server card is a small JSON file at /.well-known/mcp/server-card.json that announces "this site offers these tools" so an assistant can find them without scraping your pages. We requested that file from your site and found none.
Pourquoi c’est important
Assistants that support MCP look for the card at that exact address. With one, "book an appointment on yoursite.com" can become a tool call instead of screen-driving your UI. This is an emerging standard, so it weighs little today; publishing early costs one static file and makes you visible to the assistants adopting it.
À faire
If you already run an MCP server, describe it: name, description, and endpoint URL in the card.
If you don’t, a minimal truthful card naming your site and linking your API docs is still valid. The generated starter in the Fix it section below is filled in for this site.
Serve it at exactly /.well-known/mcp/server-card.json with content type application/json.