agentspeed.

weather.com

frozen · permalinkr2026.11.0sha fd2d068us-eastscan 9e8c6d20checked 2026-08-23 17:00 UTC
Compare this site →Simulate an agent task →

Publicly-generated scan via agentspeed.com. Not affiliated with weather.com.

weather.com is solidly ready for AI agents (composite 86, grade B). Strongest sub-score: performance (100). Weakest: discoverability (73). The most actionable gaps detected: no markdown content negotiation.

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 · 2/5 fields resolvedmedium
B
grade86/100
8 findings · 8 medium
discoverability73
readability77
structured_data98
actionability89
performance100

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

Governance & crawler policy

How weather.com 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_agentswarn
Declares Content-Signalrobots_txt.content_signalsfail
Supports Web Bot Authdiscoverability.web_bot_authskip
Cookie consent does not block contentauth.cookie_consent_blocks_contentpass
Crawler access
robots.txt-derived snapshotwarn

robots.txt partially restricts AI agents: some pass, some are blocked. Run the live matrix below for a per-agent verdict.

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.

Medium8
weight 2

2 access agent(s) blocked: PerplexityBot, Amazonbot.

mediummarkup.titleauto-fix
weight 2

<title is 116 characters; keep it under 70 so it isn't truncated.

1 recommended-field warning(s).

No HTTP Link: response headers.

weight 1

Visible text is 0.2% of HTML weight (850/356477 bytes).

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

Requests with `Accept: text/markdown` return a markdown representation of the page (Markdown content negotiation).

weight 0

The page exposes WebMCP (in-browser Model Context Protocol) so on-page agents can invoke tools without leaving the tab.

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)
medium
Warning: robots_txt.allows_known_agents
robots_txt.allows_known_agents
expand ›
What we looked for

robots.txt does not disallow answer-time AI access agents (ChatGPT-User, OAI-SearchBot, Claude-User, Claude-SearchBot, PerplexityBot, Perplexity-User, YouBot, Amazonbot). Training-data crawler blocks (GPTBot, CCBot, Google-Extended, …) are reported as informational and never fail the check.

Fix this issue
Generated fixreplace filehttps://weather.com/robots.txt

Your current /robots.txt disallows these AI agents: PerplexityBot, Amazonbot. Replace your robots.txt with the version below to explicitly allow them while keeping any custom rules you've added below the wildcard block.

# robots.txt for weather.com
# Explicitly allow well-known AI agents that were previously blocked.
# Adjust or remove specific agents as your policy requires.

User-agent: *
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Amazonbot
Allow: /

Sitemap: https://weather.com/sitemap.xml
save as https://weather.com/robots.txt
  • This snippet replaces your existing robots.txt. Merge any custom Disallow rules you have today below the wildcard block.
  • Cloudflare and a few CDNs cache robots.txt aggressively, so purge the cache after deploy to confirm AI agents see the change.
What we found
{
  "blocked": [
    "PerplexityBot",
    "Amazonbot"
  ],
  "declaredMarkets": [
    "US"
  ],
  "regionalBlocked": [],
  "trainingBlocked": [
    "GPTBot",
    "ClaudeBot",
    "anthropic-ai",
    "Google-Extended",
    "Applebot-Extended",
    "Bytespider",
    "CCBot",
    "cohere-ai",
    "Diffbot",
    "Meta-ExternalAgent",
    "FacebookBot"
  ]
}
Remediation

2 access agent(s) blocked: PerplexityBot, Amazonbot. These keep your site out of AI answers. 11 training-data crawler(s) blocked (GPTBot, ClaudeBot, anthropic-ai, Google-Extended, Applebot-Extended, Bytespider, CCBot, cohere-ai, Diffbot, Meta-ExternalAgent, FacebookBot), a licensing choice, not scored.

full remediation →
See the spechttps://datatracker.ietf.org/doc/html/rfc9309
Cite this findingagentspeed.com/score/weather.com/scan/9e8c6d20-8317-42f0-b32e-91319bcce79f#robots_txt.allows_known_agents
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/weather.com/scan/9e8c6d20-8317-42f0-b32e-91319bcce79f#robots_txt.content_signals
medium
Failing: 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

No HTTP Link: response headers. Emit canonical/alternate/describedby relations so HEAD-only or stream-rendering agents get them without parsing HTML.

full remediation →
See the spechttps://datatracker.ietf.org/doc/html/rfc8288
Cite this findingagentspeed.com/score/weather.com/scan/9e8c6d20-8317-42f0-b32e-91319bcce79f#discoverability.link_headers
medium
Failing: readability.markdown_negotiation
readability.markdown_negotiation
expand ›
What we looked for

Requests with `Accept: text/markdown` return a markdown representation of the page (Markdown content negotiation).

What we found
{
  "status": 200
}
Remediation

Accept: text/markdown returns HTML, not markdown. Serve a markdown variant of primary content when requested; agents summarize and cite it more reliably.

full remediation →
See the spechttps://www.rfc-editor.org/rfc/rfc7763.html
Cite this findingagentspeed.com/score/weather.com/scan/9e8c6d20-8317-42f0-b32e-91319bcce79f#readability.markdown_negotiation
medium
Failing: content.text_ratio
content.text_ratio
expand ›
What we looked for

Visible text makes up at least 15% of the rendered DOM weight.

What we found
{
  "ratio": 0.002384445560302628,
  "htmlBytes": 356477,
  "textBytes": 850,
  "styleBytes": 0,
  "markupBytes": 85850,
  "scriptBytes": 269777
}
Remediation

Visible text is 0.2% of HTML weight (850/356477 bytes). 76% of the document is inline script, 24% is markup.

full remediation →
Cite this findingagentspeed.com/score/weather.com/scan/9e8c6d20-8317-42f0-b32e-91319bcce79f#content.text_ratio
medium
Warning: markup.title
markup.title
expand ›
What we looked for

A non-empty <title> is present and under 70 characters.

Fix this issue
Generated fixinline snippet<head>

AgentSpeed didn't find a non-empty <title>, or it was over the recommended limit. Agents cite the title verbatim when they reference the page; an empty or boilerplate title becomes the citation.

<!-- Place inside <head>. Keep under 70 characters; agents often cite verbatim. -->
<title>Weather: what this page is about</title>
paste inside <head>
  • Keep it under 70 characters. Google truncates around there and most agents follow the same convention.
  • Front-load the most-distinctive words: "Stripe Pricing, Per-transaction fees" beats "Pricing | Stripe".
What we found
{
  "length": 116
}
Remediation
<title> is 116 characters; keep it under 70 so it isn't truncated.
full remediation →
See the spechttps://developer.mozilla.org/docs/Web/HTML/Element/title
Cite this findingagentspeed.com/score/weather.com/scan/9e8c6d20-8317-42f0-b32e-91319bcce79f#markup.title
medium
Warning: structured_data.validates
structured_data.validates
expand ›
What we looked for

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

What we found
{
  "warns": 1,
  "errors": 0,
  "skipped": 0,
  "firstWarn": {
    "path": "$.description",
    "message": "WebPage recommends \"description\" (improves agent comprehension).",
    "severity": "warn"
  }
}
Remediation

1 recommended-field warning(s). First: WebPage recommends "description" (improves agent comprehension).

full remediation →
See the spechttps://schema.org
Cite this findingagentspeed.com/score/weather.com/scan/9e8c6d20-8317-42f0-b32e-91319bcce79f#structured_data.validates
medium
Failing: actionability.web_mcp
actionability.web_mcp
expand ›
What we looked for

The page exposes WebMCP (in-browser Model Context Protocol) so on-page agents can invoke tools without leaving the tab.

What we found
{}
Remediation

No WebMCP detected. On pages with first-class actions (cart, support, account), embed a WebMCP server so on-page agents invoke tools directly.

full remediation →
Cite this findingagentspeed.com/score/weather.com/scan/9e8c6d20-8317-42f0-b32e-91319bcce79f#actionability.web_mcp
Checks (37)
Every check that ran. Switch to ELI5 for plain-language explanations.
checkstatusweightduration
actionability.web_mcpfail1.001ms
content.text_ratiomin text ratio = 15%fail1.003ms
discoverability.link_headersfail1.000ms
readability.markdown_negotiationfail1.000ms
robots_txt.content_signalsfail1.000ms
markup.titlewarn2.0019ms
robots_txt.allows_known_agentswarn2.001ms
structured_data.validateswarn2.0013ms
actionability.agent_skillsskip1.000ms
actionability.commerce_protocolsskip1.000ms
coherence.jsonld_price_matches_visibleskip2.000ms
discoverability.api_catalogskip1.000ms
discoverability.mcp_server_cardskip1.000ms
discoverability.oauth_authorization_serverskip1.000ms
discoverability.oauth_protected_resourceskip1.000ms
discoverability.web_bot_authskip1.000ms
operability.filters_addressableskip2.0016ms
performance.full_render_msthreshold = 4sskip1.000ms
auth.cookie_consent_blocks_contentdetector = consent overlay heuristicpass2.0034ms
auth.paywall_or_login_wall_on_landingdetector = paywall/login-wall heuristicpass2.0020ms
coherence.jsonld_name_matches_visiblepass1.000ms
coherence.language_declared_matches_contentdetector = stopword/script profile, >=40 words, WARN-onlypass1.000ms
content.headings_hierarchyrule = single H1, no skipped levelspass1.0020ms
content.js_required_for_primary_contentdetector = no-JS visibility heuristicpass2.000ms
journey.primary_probemodel-assistedpass2.00877ms
llms_txt.presentpass0.000ms
markup.canonicalpass2.0022ms
markup.languagepass1.000ms
markup.meta_descriptionpass2.006ms
operability.primary_action_in_dompass2.008ms
performance.payload_kbthreshold = 3MBpass1.000ms
performance.ttfb_msthreshold = 800mspass1.000ms
reachability.statuspass2.000ms
robots_txt.presentpass1.000ms
sitemap.presentpass2.000ms
structured_data.jsonld_presentpass2.000ms
structured_data.type_coveragematch = type-to-purpose inferencepass1.000ms

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

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-23T17:00:37Z
POST /api/scans: run a fresh scan
curl -sS -X POST https://agentspeed.com/api/scans \
  -H 'content-type: application/json' \
  -d '{"url": "https://weather.com"}'
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 B 86/100
HTML snippet
<a href="https://agentspeed.com/score/weather.com" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/weather.com?variant=dark" alt="AgentSpeed grade B for weather.com" width="220" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade B for weather.com](https://agentspeed.com/badge/weather.com?variant=dark)](https://agentspeed.com/score/weather.com)
Light220×32

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

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

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

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

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

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

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

AgentSpeed B 86/100
HTML snippet
<a href="https://agentspeed.com/score/weather.com" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/weather.com?variant=certified" alt="AgentSpeed grade B for weather.com" width="250" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade B for weather.com](https://agentspeed.com/badge/weather.com?variant=certified)](https://agentspeed.com/score/weather.com)
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 weather.com's public surfaces (robots.txt, sitemap, the landing URL, /llms.txt, /.well-known/* discovery endpoints). AgentSpeed is not affiliated with or endorsed by weather.com. 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.