agentspeed.

vodafone.es

frozen · permalinkr2026.11.0sha fd2d068us-eastscan 5cec2255checked 2026-08-25 21:43 UTC
Compare this site →Simulate an agent task →

Publicly-generated scan via agentspeed.com. Not affiliated with vodafone.es.

vodafone.es is weakly ready for AI agents (composite 67, grade D). Strongest sub-score: readability (86). Weakest: structured data (50). The most actionable gaps detected: no markdown content negotiation and no published MCP server card.

Agent preview

What an AI agent fetching this site today is likely to understand. Each row is backed by a real signal that ran on this scan, or labels itself “not detected”. We never invent values.

confidence · 4/5 fields resolvedhigh
D
grade67/100
8 findings · 3 critical · 5 medium
discoverability54
readability86
structured_data50
actionability67
performance70

Based on 37 checks · 26 deterministic · 10 heuristic · 1 model-assisted. see /rubric.

Governance & crawler policy

How vodafone.es declares its policy toward AI agents and crawlers. These rows are a presentation view over checks already counted under Discoverability and Readability, so they don’t add to the composite a second time.

Has robots.txtrobots_txt.presentpass
Allows well-known agentsrobots_txt.allows_known_agentspass
Declares Content-Signalrobots_txt.content_signalsfail
Supports Web Bot Authdiscoverability.web_bot_authfail
Cookie consent does not block contentauth.cookie_consent_blocks_contentpass
Crawler access
robots.txt-derived snapshotpass

robots.txt allows the major AI agents (GPTBot, ClaudeBot, PerplexityBot, …).

For a live UA-by-UA fetch matrix (status, redirects, content similarity, cloaking detection across GPTBot, ChatGPT-User, ClaudeBot, Claude-User, PerplexityBot, Google-Extended, Googlebot, Bingbot, CCBot, and a default browser), run the matrix tool against this domain.

Run live crawler matrix →Fix robots.txt →
Top fixes (8)

Findings grouped by severity. Critical and high-severity items move the composite the most; medium and low items are quality improvements. Each finding links to a full remediation page.

Critical3

1 required-field error(s).

Page looks like Article|BlogPosting|NewsArticle; missing JSON-LD type(s): Article|BlogPosting|NewsArticle.

JSON-LD declares 5 price(s) (20.00, 59.99, 11.00), but the served HTML shows no price at all.

Medium5

A Link: header is present but carries none of canonical/alternate/describedby, the relations agents consume.

No Content-Signal directives.

weight 0

An MCP Server Card is reachable at `/.well-known/mcp/server-card.json` (or referenced from a Link header) and validates against the Model Context Protocol spec.

`/.well-known/oauth-authorization-server` is reachable and conforms to RFC 8414, letting agents discover authorization endpoints without out-of-band setup.

`/.well-known/oauth-protected-resource` is published per RFC 9728 so agents can discover required scopes and authorization servers programmatically.

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.

Start watching free →How it works

first scan. History starts after the next scan.

Top findings (8)
critical
Failing: structured_data.validates
structured_data.validates
expand ›
What we looked for

JSON-LD validates against the declared schema.org type.

What we found
{
  "warns": 4,
  "errors": 1,
  "firstError": {
    "path": "$.name",
    "message": "WebSite requires \"name\".",
    "severity": "error"
  }
}
Remediation

1 required-field error(s). First: WebSite requires "name".

full remediation →
See the spechttps://schema.org
Cite this findingagentspeed.com/score/vodafone.es/scan/5cec2255-a377-4136-b681-d9f8ed9baa15#structured_data.validates
critical
Failing: structured_data.type_coverage
structured_data.type_coverage
expand ›
What we looked for

Declared JSON-LD types cover the apparent page purpose (e.g. a product page has Product, a blog post has Article).

What we found
{
  "missing": [
    "Article|BlogPosting|NewsArticle"
  ],
  "declared": [
    "WebSite",
    "SearchAction",
    "BreadcrumbList",
    "ListItem",
    "Organization",
    "PostalAddress",
    "ContactPoint",
    "Product",
    "Brand",
    "ImageObject",
    "AggregateOffer",
    "ItemList"
  ],
  "expected": [
    "Article|BlogPosting|NewsArticle"
  ]
}
Remediation

Page looks like Article|BlogPosting|NewsArticle; missing JSON-LD type(s): Article|BlogPosting|NewsArticle.

full remediation →
Cite this findingagentspeed.com/score/vodafone.es/scan/5cec2255-a377-4136-b681-d9f8ed9baa15#structured_data.type_coverage
critical
Failing: coherence.jsonld_price_matches_visible
coherence.jsonld_price_matches_visible
expand ›
What we looked for

A price declared in JSON-LD appears among the prices visible on the served page, compared by numeric value ("79.00" matches "$79"). Fails only when NO declared price is visible - a page whose machine channel and human channel disagree makes agents quote a number customers never see. Both price lists are recorded as evidence.

What we found
{
  "jsonLdPrices": [
    "20.00",
    "59.99",
    "11.00",
    "45.00",
    "0.00"
  ],
  "visiblePrices": []
}
Remediation

JSON-LD declares 5 price(s) (20.00, 59.99, 11.00), but the served HTML shows no price at all. An agent reading the page sees a price humans never see, or the visible price only renders via JavaScript. Either way the two channels disagree.

full remediation →
See the spechttps://schema.org/Offer
Cite this findingagentspeed.com/score/vodafone.es/scan/5cec2255-a377-4136-b681-d9f8ed9baa15#coherence.jsonld_price_matches_visible
medium
Failing: robots_txt.content_signals
robots_txt.content_signals
expand ›
What we looked for

robots.txt advertises Content-Signal directives (e.g. `Content-Signal: ai-train=no, ai-summarize=yes`) that let agents respect granular usage preferences.

What we found
{}
Remediation

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.

full remediation →
See the spechttps://contentsignals.org
Cite this findingagentspeed.com/score/vodafone.es/scan/5cec2255-a377-4136-b681-d9f8ed9baa15#robots_txt.content_signals
medium
Warning: discoverability.link_headers
discoverability.link_headers
expand ›
What we looked for

HTTP `Link:` response headers carry useful relations (canonical, alternate, describedby) that agents consume without parsing HTML.

What we found
{}
Remediation

A Link: header is present but carries none of canonical/alternate/describedby, the relations agents consume.

full remediation →
See the spechttps://datatracker.ietf.org/doc/html/rfc8288
Cite this findingagentspeed.com/score/vodafone.es/scan/5cec2255-a377-4136-b681-d9f8ed9baa15#discoverability.link_headers
medium
Failing: discoverability.mcp_server_card
discoverability.mcp_server_card
expand ›
What we looked for

An MCP Server Card is reachable at `/.well-known/mcp/server-card.json` (or referenced from a Link header) and validates against the Model Context Protocol spec.

Fix this issue
Generated fixnew filehttps://vodafone.es/.well-known/mcp/server-card.json

AgentSpeed didn't find an MCP Server Card. The Model Context Protocol is how AI agents discover the tools your site exposes, and a server card at the canonical .well-known location lets capability-aware agents pick the right one without HTML scraping.

{
  "schemaVersion": "2024-11-05",
  "name": "Vodafone",
  "description": "One-sentence description of the tools your site exposes to agents.",
  "url": "https://vodafone.es",
  "contact": {
    "email": "mcp@vodafone.es"
  },
  "capabilities": {
    "tools": [
      {
        "name": "search",
        "description": "Search the public catalogue of <your-content>."
      }
    ]
  }
}
save as https://vodafone.es/.well-known/mcp/server-card.json
  • Save as `/.well-known/mcp/server-card.json` (note the dot prefix).
  • The schemaVersion field tracks the MCP spec version; update when MCP publishes a new draft.
  • See modelcontextprotocol.io for the canonical schema and examples.
What we found
{
  "status": 404
}
Remediation

No valid MCP Server Card at /.well-known/mcp/server-card.json. Publish one so agents can discover your tools without HTML scraping.

full remediation →
See the spechttps://modelcontextprotocol.io
Cite this findingagentspeed.com/score/vodafone.es/scan/5cec2255-a377-4136-b681-d9f8ed9baa15#discoverability.mcp_server_card
medium
Failing: discoverability.oauth_authorization_server
discoverability.oauth_authorization_server
expand ›
What we looked for

`/.well-known/oauth-authorization-server` is reachable and conforms to RFC 8414, letting agents discover authorization endpoints without out-of-band setup.

What we found
{
  "status": 404
}
Remediation

No RFC 8414 metadata at /.well-known/oauth-authorization-server. Agents that act on behalf of users need this to discover your authorization endpoints.

full remediation →
See the spechttps://datatracker.ietf.org/doc/html/rfc8414
Cite this findingagentspeed.com/score/vodafone.es/scan/5cec2255-a377-4136-b681-d9f8ed9baa15#discoverability.oauth_authorization_server
medium
Failing: discoverability.oauth_protected_resource
discoverability.oauth_protected_resource
expand ›
What we looked for

`/.well-known/oauth-protected-resource` is published per RFC 9728 so agents can discover required scopes and authorization servers programmatically.

What we found
{
  "status": 404
}
Remediation

No RFC 9728 metadata at /.well-known/oauth-protected-resource. Publish it so agents can discover required scopes without hand-coded credentials.

full remediation →
See the spechttps://datatracker.ietf.org/doc/html/rfc9728
Cite this findingagentspeed.com/score/vodafone.es/scan/5cec2255-a377-4136-b681-d9f8ed9baa15#discoverability.oauth_protected_resource
Checks (37)
Every check that ran. Switch to ELI5 for plain-language explanations.
checkstatusweightduration
actionability.agent_skillsfail1.000ms
actionability.commerce_protocolsfail1.000ms
actionability.web_mcpfail1.001ms
coherence.jsonld_price_matches_visiblefail2.002ms
content.text_ratiomin text ratio = 15%fail1.002ms
discoverability.api_catalogfail1.000ms
discoverability.mcp_server_cardfail1.000ms
discoverability.oauth_authorization_serverfail1.000ms
discoverability.oauth_protected_resourcefail1.000ms
discoverability.web_bot_authfail1.000ms
readability.markdown_negotiationfail1.000ms
robots_txt.content_signalsfail1.000ms
structured_data.type_coveragematch = type-to-purpose inferencefail1.001ms
structured_data.validatesfail2.001ms
discoverability.link_headerswarn1.000ms
performance.ttfb_msthreshold = 800mswarn1.000ms
operability.filters_addressableskip2.0033ms
operability.primary_action_in_domskip2.0084ms
performance.full_render_msthreshold = 4sskip1.000ms
auth.cookie_consent_blocks_contentdetector = consent overlay heuristicpass2.0071ms
auth.paywall_or_login_wall_on_landingdetector = paywall/login-wall heuristicpass2.0018ms
coherence.jsonld_name_matches_visiblepass1.001ms
coherence.language_declared_matches_contentdetector = stopword/script profile, >=40 words, WARN-onlypass1.005ms
content.headings_hierarchyrule = single H1, no skipped levelspass1.0033ms
content.js_required_for_primary_contentdetector = no-JS visibility heuristicpass2.000ms
journey.primary_probemodel-assistedpass2.001265ms
llms_txt.presentpass0.000ms
markup.canonicalpass2.0031ms
markup.languagepass1.000ms
markup.meta_descriptionpass2.00101ms
markup.titlepass2.0085ms
performance.payload_kbthreshold = 3MBpass1.000ms
reachability.statuspass2.000ms
robots_txt.allows_known_agentspass2.001ms
robots_txt.presentpass1.000ms
sitemap.presentpass2.000ms
structured_data.jsonld_presentpass2.000ms

Sorted failures first. Every row was produced by the scan on 2026-08-25 21:43 UTC. Each check is defined in /rubric §6.

Competitive context

How vodafone.es compares against other e-commerce domains scanned by AgentSpeed. Peer average requires ≥ 3 peers; percentile requires ≥ 9. Empty values mean we’re still gathering data.

categoryE-commerce
peers28
peer average72.7
top in category82.0
percentile18%
E-commerce leaderboard →All leaderboards →
Reproduce this scan

This scan is content-addressable. Download the JSON and confirm that the composite matches score(rubric, checks) for the referenced rubric. Re-running the command below executes against the current rubric; scores agree within ±1 point unless the target site changed.

↓ Download scan.json→ View rubric
rubricr2026.11.0
rubric shafd2d068
regionus-east
user-agentAgentSpeedBot/1.0
viewport1280x800
finished2026-08-25T21:43:17Z
POST /api/scans: run a fresh scan
curl -sS -X POST https://agentspeed.com/api/scans \
  -H 'content-type: application/json' \
  -d '{"url": "https://vodafone.es"}'
Download this scan: scan.json (cache-forever, immutable). Includes per-check raw values, rubric sha, and the full finding list with remediation.
What AgentSpeed scanned

What AgentSpeed scanned

Every scan is based on public website behaviour, fetched from a public client, no auth, no plugins, no private data. The nine signals below are what AgentSpeed reads about your site.

Embed an AgentSpeed badge

Show your AgentSpeed score in your README, footer, or sales deck. Four variants below; each is a static SVG served from /badge/<your-domain> with no JS, no tracking, no API calls. Documentation: /docs/badge.

Dark220×32

Default. Brand mark + grade + score on a dark base. Pairs well with most footers and READMEs.

AgentSpeed D 67/100
HTML snippet
<a href="https://agentspeed.com/score/vodafone.es" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/vodafone.es?variant=dark" alt="AgentSpeed grade D for vodafone.es" width="220" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade D for vodafone.es](https://agentspeed.com/badge/vodafone.es?variant=dark)](https://agentspeed.com/score/vodafone.es)
Light220×32

Same dimensions as the dark variant; light background with dark text. For light-mode docs and pages.

AgentSpeed D 67/100
HTML snippet
<a href="https://agentspeed.com/score/vodafone.es" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/vodafone.es?variant=light" alt="AgentSpeed grade D for vodafone.es" width="220" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade D for vodafone.es](https://agentspeed.com/badge/vodafone.es?variant=light)](https://agentspeed.com/score/vodafone.es)
Compact130×32

Brand mark + grade only. Use when you have horizontal space constraints.

AgentSpeed D
HTML snippet
<a href="https://agentspeed.com/score/vodafone.es" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/vodafone.es?variant=compact" alt="AgentSpeed grade D for vodafone.es" width="130" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade D for vodafone.es](https://agentspeed.com/badge/vodafone.es?variant=compact)](https://agentspeed.com/score/vodafone.es)
Score-only60×32

Just the grade chip. Smallest variant, fits inline next to a heading or metric.

A·S D
HTML snippet
<a href="https://agentspeed.com/score/vodafone.es" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/vodafone.es?variant=score-only" alt="AgentSpeed grade D for vodafone.es" width="60" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade D for vodafone.es](https://agentspeed.com/badge/vodafone.es?variant=score-only)](https://agentspeed.com/score/vodafone.es)
Certified250×32

Shows your certification tier while your certificate is valid; falls back to the score badge when it is not.

AgentSpeed D 67/100
HTML snippet
<a href="https://agentspeed.com/score/vodafone.es" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/vodafone.es?variant=certified" alt="AgentSpeed grade D for vodafone.es" width="250" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade D for vodafone.es](https://agentspeed.com/badge/vodafone.es?variant=certified)](https://agentspeed.com/score/vodafone.es)
FAQ
What does this AgentSpeed score mean?expand ›

The composite is a 0–100 weighted average of five sub-scores measuring how well a website performs for AI agents (ChatGPT, Claude, Perplexity, Operator, etc.). The full rubric (every check, weight, and grade band) is published at /rubric.

Is this an official score from the website owner?expand ›

No. AgentSpeed scores are publicly generated against vodafone.es's public surfaces (robots.txt, sitemap, the landing URL, /llms.txt, /.well-known/* discovery endpoints). AgentSpeed is not affiliated with or endorsed by vodafone.es. The score reflects what we observed at scan time, nothing more.

How often is this site scanned?expand ›

Public scans happen when someone submits the URL on the homepage. Once a domain is claimed in the (forthcoming) monitoring tier, the site is rescanned daily and a history is kept. For now, every public score reflects the most recent submission.

How can this score be improved?expand ›

Each failing check on the page expands to a remediation step with the exact change to make. The "Top fixes" section ranks them by score impact. Most domains move 5–10 points by adding an llms.txt, allowing well-known agent user-agents in robots.txt, and emitting JSON-LD that matches the page purpose.

What rubric version was used?expand ›

This scan was computed against rubric r2026.11.0. The rubric is versioned and immutable: historical scans always render against the rubric they were computed on, even after a new version ships. The current rubric and its full changelog are at /rubric.