scanned 2026-08-21 05:43 UTC · cached · refresh in 0h · rubric 2026.11.0
○Unverified public scan
Failing
AgentSpeed tests how easily automated agents can discover, understand, and act on yandex.ru. The score weights five categories of machine-readability; the ticks on the arc are the 37 individual checks behind it.
Send this to whoever edits the site. The link shows the score and grade as a preview card, and it stays current: it re-reads the latest scan rather than freezing today’s number.
Top fixes
failSitemap present+3 ptsDiscoverability
No reachable sitemap.xml. Publish one and reference it in robots.txt.
Show me exactly what to do
What this means
A sitemap is a machine-readable list (sitemap.xml) of every page on your site. It is how crawlers find pages that aren’t linked from your homepage.
Why it matters
Agents discovering your site crawl outward from the pages they know. Without a sitemap, anything not linked from a top-level page (docs, older articles, product variants) may simply never be read, so it can’t be quoted or recommended.
Do this
Most platforms generate one automatically: Next.js (app/sitemap.ts), WordPress (Yoast/Rank Math), Shopify and Wix (built in). Turn it on rather than hand-writing.
Add a "Sitemap: https://yoursite.com/sitemap.xml" line to robots.txt so crawlers find it.
Submit it once in Google Search Console and Bing Webmaster Tools for the search side.
Don’t lose this report
Get it in your inbox now, plus a heads-up whenever yandex.ru’s agent-readiness score changes. Free, unsubscribe anytime.
Prefer we just watch it for you? Monitor rescans weekly and emails what changed, $29/mo. Start monitoring →
Fix it
Generated, ready-to-ship files for the gaps above. Copy them, or download and drop them into your repo.
Add JSON-LD structured data
Paste inside <head>. Use Article/Product instead of Organization on those page types.
This scan graded one page. Your site is more than one page.
Weakest on this scan: readability, 20/100 — much of what this page shows people never survives into the text an agent actually reads.
This graded your homepage. Your pricing, docs, and checkout live on other pages: the ones assistants actually quote when they recommend you. A 36/100 here means agents are already missing things on the page you polish most. The $29 Deep Scan grades your homepage plus up to 10 more pages we discover, against all 37 checks, then emails a PDF with every failing check and its exact fix, ranked by what costs you the most visibility. One-time, delivered in minutes, no subscription.
Get this report by email, then a heads-up when yandex.ru’s agent-readiness actually changes: a check regressing, or the composite dropping.
Two things never trigger an email: a score change caused by us publishing a new rubric, because that is a different instrument rather than a change to your site, and movement explained only by timing-derived checks, which shift run to run on a site nobody touched.
Want it on your own schedule, with Slack or a webhook instead of email? Score-drift monitoring is on every paid plan.
This score says whether an AI agent could read yandex.ru. AI traffic analytics says whether one actually came, and which pages turned it away.
Full breakdown
8 pass1 warn20 fail8 skip
Discoverability
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
fail
Sitemap present
No reachable sitemap.xml. Publish one and reference it in robots.txt.
0/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
fail
Canonical URL
No <link rel="canonical"> tag in <head>. Agents use canonical URLs to dedupe and cite.
0/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
Readability
fail
Markdown negotiationemerging
Accept: text/markdown returns HTML, not markdown. Serve a markdown variant of primary content when requested; agents summarize and cite it more reliably.
0/100
fail
Text-to-markup ratio
Visible text is 0.0% of HTML weight (0/2901 bytes). 98% of the document is inline script, 2% is markup.
0/100
skip
Content without JavaScript
Browser pass unavailable and the initial HTML carries little text; cannot measure JS dependency.
—
fail
Heading hierarchy
No headings found. Add at least an <h1>; structure helps agents summarise.
0/100
pass
Cookie wall blocks content
No common consent-modal markers detected.
100/100
fail
Declared language
No lang attribute on <html>. Agents cannot tell what language this document is in without guessing from the content. Declare it: <html lang="en">, <html lang="de-DE">.
0/100
fail
Page title
No non-empty <title>. Agents use it as the page label in citations and answers.
0/100
fail
Meta description
No <meta name="description">. Agents use it as a page summary; add a 50–200 character description.
0/100
Structured data
fail
JSON-LD present
No JSON-LD blocks found. Add a <script type="application/ld+json"> with a schema.org type for this page.
0/100
skip
Structured data validates
No JSON-LD blocks present; nothing to validate (covered by structured_data.jsonld_present).
—
pass
Schema type coverage
Page intent unclear; no specific schema.org type expected.
100/100
Coherence: do your channels agree?
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.)
—
skip
JSON-LD name appears on the pageemerging
No Product/Organization/Store name declared in JSON-LD, so nothing to cross-check.
—
skip
Declared language matches the contentemerging
No lang declared; absence is markup.language’s finding, not a coherence one.
—
Actionability
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
fail
Primary action reachable
Page text too sparse to probe; agent has nothing to read.
0/100
pass
Reachability
HTTP 200 after 1 redirect.
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 1384ms. Slow. Agents time out aggressively.
40/100
skip
Full render time
Full-render time unavailable (browser pass skipped or failed).
—
pass
Page weight
Initial document is a lean 3 KB.
100/100
Beyond the scan
Running AI agents of your own? AgentSpeed also monitors them in production: every run, its latency, cost, and failures, with alerts when something breaks. Free for 10,000 events a month, no credit card.
Run reports like this for every client: white-label PDFs and weekly monitoring for up to 15 domains, $149/mo. AgentSpeed for Agencies →
Methodology & limitations
This score is a measurement of machine-readability for automated agents under the published rubric 2026.11.0. AgentSpeed does not assess security, legitimacy, privacy, or financial trust.
→ https://yandex.ru/sitemap.xml
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Open yoursite.com/sitemap.xml. It should list real page URLs, not error.
Re-scan: "Sitemap present" flips to PASS.
What to avoid
Don’t list URLs that redirect or 404. A sitemap full of dead links teaches crawlers to distrust it.
Don’t include private or staging URLs; a sitemap is a public document.
No <link rel="canonical"> tag in <head>. Agents use canonical URLs to dedupe and cite.
Show me exactly what to do
What this means
A canonical tag is one line in your page’s HTML head that says "THIS is the official address of this page." Without it, yoursite.com/pricing, yoursite.com/pricing?utm_source=x, and www.yoursite.com/pricing all look like different pages with copied content.
Why it matters
When the same content lives at several addresses, agents split your page’s identity across the copies. They may cite a tracking-parameter URL, or treat the duplicates as a signal of low quality. The canonical tag merges them back into one.
Do this
Add <link rel="canonical" href="https://yoursite.com/this-page"> inside <head> on every page.
Each page points at ITSELF (its clean URL, no tracking parameters), not at the homepage.
On most platforms this is a setting, not code: Next.js Metadata API (alternates.canonical), WordPress via Yoast or Rank Math, Shopify themes have it built in.
→ <head>
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
View the page source and confirm exactly one canonical tag pointing at the clean URL.
Re-scan: "Canonical URL" flips to PASS.
What to avoid
Don’t point every page’s canonical at the homepage. That tells agents your entire site is one page, and everything else vanishes.
Don’t leave a copied canonical from a template pointing at someone else’s domain. It is a surprisingly common paste error, and it hands them your pages’ identity.
No non-empty <title>. Agents use it as the page label in citations and answers.
Show me exactly what to do
What this means
The <title> tag is the page’s name: the text in the browser tab. Yours is missing, empty, or generic (e.g. just "Home"), so machines have no usable name for this page.
Why it matters
The title is the single most-quoted identifier for a page; agents cite it verbatim when referencing you. A missing one gets replaced with a guess assembled from headings, which amounts to your page’s name being written by someone else.
Do this
Give every page a unique, descriptive title in the shape "What the page is | Brand", under about 60 characters.
Set it in your framework’s metadata mechanism (Next.js Metadata API, WordPress SEO plugin, Shopify page settings) so it is per-page, not hardcoded site-wide.
→ <head>
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Each page shows its own title in the browser tab.
Re-scan: "Page title" flips to PASS.
What to avoid
Don’t stuff keywords. The title is quoted verbatim in agent answers, and a keyword string reads as spam exactly where customers see it.
Don’t reuse one title across all pages; identical names make pages indistinguishable in citations.
No <meta name="description">. Agents use it as a page summary; add a 50–200 character description.
Show me exactly what to do
What this means
The meta description is a one-sentence summary of the page that you control, embedded in the HTML head. Without it, machines compose their own summary from whatever text appears first, often cookie-notice or navigation boilerplate.
Why it matters
This is the sentence you get to write about yourself. Pages without one are summarised by autopilot, and the autopilot frequently leads with the least representative text on the page.
Do this
Write one honest sentence per page (120–160 characters) saying what the page offers.
Add it as <meta name="description" content="…"> per page via your framework or SEO plugin.
→ <head>
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Re-scan: "Meta description" flips to PASS.
What to avoid
Don’t reuse one description site-wide. A shared summary describes none of the pages.
Describe the page, not your aspirations. Agents compare the description against the content and discount pages where they diverge.
No JSON-LD blocks found. Add a <script type="application/ld+json"> with a schema.org type for this page.
Show me exactly what to do
What this means
JSON-LD is a small block of structured facts (name, what you sell, prices) embedded invisibly in your page’s HTML, written in a vocabulary (schema.org) that machines share. Think of it as the machine-readable caption for the page humans see.
Why it matters
An agent reading prose has to guess which number is the price and which name is the brand. JSON-LD removes the guessing: typed facts it can quote directly. Pages without it get summarised from inference, which is where wrong prices and wrong names come from.
Do this
Add an Organization block (name, url, logo) site-wide, in <head>.
On product pages add Product with offers (price, currency, availability); on articles add Article; on FAQs add FAQPage.
A starter block generated for this site is in the Fix it section below. Copy it, then extend per page type.
On WordPress, Yoast or Rank Math emits this automatically. Shopify themes usually include Product markup already, so check for gaps rather than adding a duplicate.
→ <head>
What to check
Re-scan: "JSON-LD present" flips to PASS, and "Schema type coverage" may improve with it.
Paste a page into validator.schema.org and confirm zero errors.
Our /tools/structured-data-validator shows exactly what an agent extracts from your live page.
What to avoid
The JSON-LD must describe what is actually ON the page. Declaring a price or name that differs from the visible one is incoherence: our coherence checks compare the two, and assistants that notice the mismatch stop trusting both.
Never fabricate aggregateRating or review markup you don’t have. Fake review structured data violates search engines’ spam policies and is precisely the pattern agents learn to discount.
Don’t stuff every schema.org type onto every page; one accurate type per page beats five aspirational ones.
Page text too sparse to probe; agent has nothing to read.
Show me exactly what to do
What this means
We gave an AI model the visible text of your page and asked it two questions: what does this page offer, and what is the price or main action? It could not answer from what your page serves.
Why it matters
This is the same task a shopping assistant performs before recommending you. If a model reading your page can’t name your offer and how to act on it, an assistant answering a customer can’t either, and it routes the recommendation somewhere it can.
Do this
State what you offer in plain text near the top of the page: a sentence a stranger could quote.
Put the price (with currency) or one clear primary action ("Start free trial", "Book a demo") in server-rendered text, not only inside images or scripts.
If the probe found your offer but no price or action, that is the half to add. The check’s finding above says which half was missing.
Paste into Claude Code, Cursor, or any assistant with your repository open. It carries this finding, the steps, and the shortcuts to avoid.
Or copy it written for your tool:
What to check
Re-scan: "Primary action reachable" flips when the model can name both the offering and the price or call to action.
Read your page’s first screen of text aloud. If it doesn’t say what you sell and what to do next, neither does the HTML.
What to avoid
Don’t hide a text summary for bots that humans never see. The probe reads the same visible text extraction as every other check, and divergence between audiences reads as cloaking.
Don’t bury the primary action under five equal-weight buttons; a model (and a customer) should be able to tell which action is THE one.