agentspeed.

indianexpress.com

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

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

indianexpress.com is solidly ready for AI agents (composite 81, grade B). Strongest sub-score: actionability (89). Weakest: structured data (60).

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 · 3/5 fields resolvedmedium
B
grade81/100
8 findings · 2 critical · 6 medium
discoverability82
readability85
structured_data60
actionability89
performance80

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

Governance & crawler policy

How indianexpress.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.

Critical2

1 required-field error(s).

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

Medium6
weight 2

1 access agent(s) blocked: PerplexityBot.

mediummarkup.titleauto-fix
weight 2

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

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

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

weight 0

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

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)
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": 0,
  "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/indianexpress.com/scan/b1208c71-7d67-4d90-948f-2a59e0fdd390#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": [
    "WebPage",
    "ViewAction",
    "NewsMediaOrganization",
    "ImageObject",
    "PostalAddress",
    "ContactPoint",
    "Person",
    "QuantitativeValue",
    "SiteNavigationElement",
    "WebSite",
    "SearchAction"
  ],
  "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/indianexpress.com/scan/b1208c71-7d67-4d90-948f-2a59e0fdd390#structured_data.type_coverage
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://indianexpress.com/robots.txt

Your current /robots.txt disallows this AI agent: PerplexityBot. 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 indianexpress.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: /

Sitemap: https://indianexpress.com/sitemap.xml
save as https://indianexpress.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"
  ],
  "declaredMarkets": [
    "CA",
    "IN",
    "US"
  ],
  "regionalBlocked": [],
  "trainingBlocked": [
    "ClaudeBot",
    "anthropic-ai",
    "Applebot-Extended",
    "Bytespider",
    "cohere-ai",
    "Diffbot",
    "Meta-ExternalAgent"
  ]
}
Remediation

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

full remediation →
See the spechttps://datatracker.ietf.org/doc/html/rfc9309
Cite this findingagentspeed.com/score/indianexpress.com/scan/b1208c71-7d67-4d90-948f-2a59e0fdd390#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/indianexpress.com/scan/b1208c71-7d67-4d90-948f-2a59e0fdd390#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/indianexpress.com/scan/b1208c71-7d67-4d90-948f-2a59e0fdd390#discoverability.link_headers
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.02673704203109178,
  "htmlBytes": 762388,
  "textBytes": 20384,
  "styleBytes": 394021,
  "markupBytes": 131121,
  "scriptBytes": 216862
}
Remediation

Visible text is 2.7% of HTML weight (20384/762388 bytes). 28% of the document is inline script, 17% is markup.

full remediation →
Cite this findingagentspeed.com/score/indianexpress.com/scan/b1208c71-7d67-4d90-948f-2a59e0fdd390#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>Indianexpress: 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": 80
}
Remediation
<title> is 80 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/indianexpress.com/scan/b1208c71-7d67-4d90-948f-2a59e0fdd390#markup.title
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/indianexpress.com/scan/b1208c71-7d67-4d90-948f-2a59e0fdd390#actionability.web_mcp
Checks (37)
Every check that ran. Switch to ELI5 for plain-language explanations.
checkstatusweightduration
actionability.web_mcpfail1.003ms
content.text_ratiomin text ratio = 15%fail1.007ms
robots_txt.content_signalsfail1.000ms
structured_data.type_coveragematch = type-to-purpose inferencefail1.001ms
structured_data.validatesfail2.001ms
discoverability.link_headerswarn1.000ms
markup.titlewarn2.0042ms
performance.ttfb_msthreshold = 800mswarn1.000ms
robots_txt.allows_known_agentswarn2.002ms
actionability.agent_skillsskip1.000ms
actionability.commerce_protocolsskip1.000ms
coherence.jsonld_name_matches_visibleskip1.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.0043ms
performance.full_render_msthreshold = 4sskip1.000ms
readability.markdown_negotiationskip1.000ms
auth.cookie_consent_blocks_contentdetector = consent overlay heuristicpass2.0051ms
auth.paywall_or_login_wall_on_landingdetector = paywall/login-wall heuristicpass2.0055ms
coherence.language_declared_matches_contentdetector = stopword/script profile, >=40 words, WARN-onlypass1.004ms
content.headings_hierarchyrule = single H1, no skipped levelspass1.0058ms
content.js_required_for_primary_contentdetector = no-JS visibility heuristicpass2.001ms
journey.primary_probemodel-assistedpass2.001315ms
llms_txt.presentpass0.001ms
markup.canonicalpass2.0039ms
markup.languagepass1.000ms
markup.meta_descriptionpass2.0044ms
operability.primary_action_in_dompass2.0031ms
performance.payload_kbthreshold = 3MBpass1.000ms
reachability.statuspass2.000ms
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 08:43 UTC. Each check is defined in /rubric §6.

Competitive context

How indianexpress.com compares against other news domains scanned by AgentSpeed. Peer average requires ≥ 3 peers; percentile requires ≥ 9. Empty values mean we’re still gathering data.

categoryNews
peers27
peer average66.9
top in category77.0
percentile100%
News 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-25T08:43:14Z
POST /api/scans: run a fresh scan
curl -sS -X POST https://agentspeed.com/api/scans \
  -H 'content-type: application/json' \
  -d '{"url": "https://indianexpress.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 81/100
HTML snippet
<a href="https://agentspeed.com/score/indianexpress.com" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/indianexpress.com?variant=dark" alt="AgentSpeed grade B for indianexpress.com" width="220" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade B for indianexpress.com](https://agentspeed.com/badge/indianexpress.com?variant=dark)](https://agentspeed.com/score/indianexpress.com)
Light220×32

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

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

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

AgentSpeed B
HTML snippet
<a href="https://agentspeed.com/score/indianexpress.com" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/indianexpress.com?variant=compact" alt="AgentSpeed grade B for indianexpress.com" width="130" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade B for indianexpress.com](https://agentspeed.com/badge/indianexpress.com?variant=compact)](https://agentspeed.com/score/indianexpress.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/indianexpress.com" target="_blank" rel="noopener">
  <img src="https://agentspeed.com/badge/indianexpress.com?variant=score-only" alt="AgentSpeed grade B for indianexpress.com" width="60" height="32" />
</a>
Markdown snippet
[![AgentSpeed grade B for indianexpress.com](https://agentspeed.com/badge/indianexpress.com?variant=score-only)](https://agentspeed.com/score/indianexpress.com)
Certified250×32

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

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