Grade A 91/10091Grade A
AI access report

ethereum.org

Open to answer engines, publishes llms.txt.

3 failing 0 partial 24 passing Scanned 2 hours ago · 2 scans on record
JSON Monitor this site
Reach
40 / 40

Whether AI crawlers and answer-engine fetchers are permitted to request the page at all, in robots.txt, in robots directives, and at the edge.

Readability
22 / 25

Whether a fetcher that does not execute JavaScript receives the actual content, in markup an extractor can segment.

Structure
20 / 20

Machine-readable markup that states the page's type, entities, canonical URL, and discrete facts instead of leaving them to be inferred.

Attribution
9 / 15

Signals that let an answer engine name the author, date the content, resolve the publisher, and cite it under known terms.

Who is allowed to read this site 0 of 24 answer engines blocked

CrawlerOperatorUses content forrobots.txtLive request
GPTBot
Crawls content that may be used to train OpenAI's generative AI foundation models.
OpenAI Model training allowed
Allow: /
served 200
OAI-SearchBot
Indexes pages so they can be surfaced and cited in ChatGPT search results, not for training.
OpenAI Answer index allowed
Allow: /
served 200
ChatGPT-User
Fetches a page when a ChatGPT user or GPT Action asks for it; user-initiated, so robots rules may not apply.
OpenAI Live retrieval allowed
Allow: /
not probed
OAI-AdsBot
Visits pages submitted as ChatGPT ads to check policy compliance and ad relevance; not used for model training.
OpenAI Live retrieval allowed
Allow: /
not probed
ClaudeBot
Collects web content that may contribute to training Anthropic's models; honors Crawl-delay.
Anthropic Model training allowed
Allow: /
served 200
Claude-User
Retrieves pages on demand when a Claude user's question needs live web content.
Anthropic Live retrieval allowed
Allow: /
not probed
Claude-SearchBot
Indexes content to improve the relevance and accuracy of Claude's search results.
Anthropic Answer index allowed
Allow: /
not probed
anthropic-ai
Legacy token widely blocked for Anthropic training; Anthropic now documents ClaudeBot, Claude-User and Claude-SearchBot.
Anthropic Model training allowed
Allow: /
not probed
Google-Extended
Control token with no user agent of its own; governs Gemini training and grounding use of Googlebot data.
Google Model training allowed
Allow: /
not probed
Googlebot
Crawls and renders pages for Google Search, Images, Video, News and Discover.
Google Answer index allowed
Allow: /
not probed
Googlebot-News
Robots token controlling Google News inclusion; crawling itself uses the Googlebot user agents.
Google Answer index allowed
Allow: /
not probed
Google-CloudVertexBot
Crawls sites at a site owner's request to build Vertex AI agents; no effect on Google Search.
Google Live retrieval allowed
Allow: /
not probed
GoogleOther
Generic Google crawler used by product teams for one-off fetches such as internal research and development.
Google Model training allowed
Allow: /
not probed
Applebot
Crawls for Siri, Spotlight and Safari search; falls back to Googlebot rules and ignores Crawl-delay.
Apple Answer index allowed
Allow: /
not probed
Applebot-Extended
Control token with no user agent; disallowing it excludes crawled content from Apple foundation model training.
Apple Model training allowed
Allow: /
not probed
Bingbot
Indexes pages for Bing search and the Copilot answers that are grounded in the Bing index.
Microsoft Answer index allowed
Allow: /
not probed
msnbot
Legacy Microsoft search crawler token still honored alongside bingbot.
Microsoft Answer index allowed
Allow: /
not probed
PerplexityBot
Indexes and links pages in Perplexity search results; not used to collect foundation model training data.
Perplexity Answer index allowed
Allow: /
served 200
Perplexity-User ignores robots
Fetches a page for a specific user question; Perplexity documents that it generally ignores robots.txt.
Perplexity Live retrieval allowed
Allow: /
not probed
Meta-ExternalAgent
Crawls the web to train Meta's foundation AI models and to index content directly into products.
Meta Model training allowed
Allow: /
not probed
Meta-ExternalFetcher ignores robots
Fetches individual links for agentic AI tasks; Meta documents that it may bypass robots.txt.
Meta Live retrieval allowed
Allow: /
not probed
FacebookBot
Crawls public pages to improve language models behind Meta's speech recognition technology.
Meta Model training allowed
Allow: /
not probed
Meta-WebIndexer
Indexes pages so Meta AI can cite and link them in its search answers.
Meta Answer index allowed
Allow: /
not probed
Meta-ExternalAds
Crawls the web to improve Meta's advertising and other business products and services.
Meta Model training allowed
Allow: /
not probed
facebookexternalhit ignores robots
Fetches shared links for Facebook, Instagram and Messenger previews; may bypass robots.txt for integrity checks.
Meta Live retrieval allowed
Allow: /
not probed
Bytespider ignores robots
Downloads content to train ByteDance LLMs and is widely reported to ignore robots.txt directives.
ByteDance Model training allowed
Allow: /
not probed
TikTokSpider ignores robots
Fetches shared URLs for TikTok link previews and feeds; not expected to follow robots.txt.
ByteDance Live retrieval allowed
Allow: /
not probed
Amazonbot
Crawls for Amazon product and Alexa answers and may use the content to train Amazon AI models.
Amazon Model training allowed
Allow: /
not probed
Amzn-SearchBot
Indexes content for Amazon search experiences such as Alexa; does not crawl for generative AI training.
Amazon Answer index allowed
Allow: /
not probed
Amzn-User ignores robots
Fetches live pages to answer a user's Alexa question; Amazon documents it may not follow all robots.txt rules.
Amazon Live retrieval allowed
Allow: /
not probed
CCBot
Builds the open Common Crawl web archive, a common source of LLM pretraining corpora.
Common Crawl Foundation Archive allowed
Allow: /
not probed
Diffbot
Extracts structured page data for Diffbot's knowledge graph, which is licensed to AI customers.
Diffbot Model training allowed
Allow: /
not probed
omgili
Collects forum, news and blog content that Webz.io sells as web data feeds, including for AI training.
Webz.io Model training allowed
Allow: /
not probed
omgilibot
Legacy Omgili search crawler token still blocked alongside the current omgili agent.
Webz.io Model training allowed
Allow: /
not probed
AI2Bot
Collects web text for Ai2's open datasets used to train open language models such as OLMo.
Allen Institute for AI Model training allowed
Allow: /
not probed
cohere-ai
Retrieves pages to answer user-initiated prompts in Cohere's enterprise AI products.
Cohere Live retrieval allowed
Allow: /
not probed
cohere-training-data-crawler
Downloads training data for the large language models behind Cohere's enterprise AI products.
Cohere Model training allowed
Allow: /
not probed
MistralAI-User
Fetches pages on demand so Mistral's Vibe assistant can answer a question with live, cited web content.
Mistral AI Live retrieval allowed
Allow: /
not probed
MistralAI-Index
Indexes content for Mistral search behind Vibe answers; not used for generative AI training.
Mistral AI Answer index allowed
Allow: /
not probed
MistralAI-Training
Crawls web content to build datasets for training Mistral's generative AI models.
Mistral AI Model training allowed
Allow: /
not probed
DuckAssistBot
Crawls pages in real time for DuckDuckGo's cited AI-assisted answers; not used for model training.
DuckDuckGo Live retrieval allowed
Allow: /
not probed
YouBot
Indexes pages for You.com search results and the AI answers built on that index.
You.com Answer index allowed
Allow: /
not probed
PanguBot
Collects web content used to train Huawei's PanGu family of large models.
Huawei Model training allowed
Allow: /
not probed
Timpibot
Crawls pages for Timpi's decentralized index, which is also used as LLM training data.
Timpi Model training allowed
Allow: /
not probed
ImagesiftBot
Downloads public images plus surrounding text to build ImageSift's searchable image index.
ImageSift (Hive) Model training allowed
Allow: /
not probed
Kangaroo Bot
Scrapes site content into datasets used to train the Kangaroo LLM.
Kangaroo LLM Model training allowed
Allow: /
not probed
SemrushBot-OCOB
Crawls pages to feed Semrush's ContentShake AI writing tool.
Semrush Model training allowed
Allow: /
not probed
Scrapy
Generic scraping framework often used to build AI training datasets; obeys robots.txt only when ROBOTSTXT_OBEY is on.
Zyte (open-source framework) Model training allowed
Allow: /
not probed
Two of these columns matter differently. robots.txt is what the site declares. Live request is what actually happened when we sent a real request using that crawler's user agent from a datacentre IP, which is how edge blocking, rate limits and challenge pages show up even when robots.txt looks permissive.

Reach 40 / 40

Answer-engine fetchers are allowed to retrieve and cite this page

All 24 answer-engine fetchers are allowed to retrieve pages for citation.

12 pt

Training crawlers may fetch this path

All 23 tracked training crawlers are allowed.

8 pt

AI user agents receive the same 200 response as browsers

Live requests as 4 AI user agents were served normally.

6 pt

No blanket disallow applies to this path

The wildcard group does not disallow the entire site.

5 pt

robots.txt served as plain text with a 200 response

robots.txt served, 93 bytes, 1 group(s).

3 pt

No Crawl-delay directive constrains fetchers

No Crawl-delay directive.

2 pt

Page is indexable, with no noindex directive

No noindex directive on the homepage.

2 pt

Full-length snippet extraction is permitted

Snippets are not restricted by meta tags.

1 pt

X-Robots-Tag header is absent or permissive

No restrictive X-Robots-Tag header.

1 pt

Readability 22 / 25

Visible text is a small fraction of the HTML payload

Text is 1.9% of the 303 KB document; 206 KB is inline script.

Why it matters. Extractors strip scripts, styles, and wrapper markup before passing text to a model, and a page where content is a small fraction of the payload loses more of it to boilerplate removal. Inline JSON state blobs and deeply nested wrappers also push real text past the truncation limit of a retrieval context.
Fix. Move inline hydration state and large inline scripts out of the document, or fetch them after load instead of embedding them. Flatten wrapper `div` trees and let semantic elements carry the content, and keep utility-class soup out of the article body. Serve the same text without the boilerplate at a stable URL if you need a clean extraction target.
4 pt

Substantive text is present in the server-rendered HTML

863 words of text are present in the raw HTML. Most AI fetchers do not run JavaScript.

9 pt

Primary content is wrapped in a semantic landmark

An <article> element marks the primary content.

3 pt

Headings form a single, ordered outline

1 H1 and 22 headings total.

3 pt

Title is unique and describes the page in specific terms

Title is 47 characters: "Ethereum - The complete guide from ethereum.org"

3 pt

Meta description provides an author-written summary

Meta description is 149 characters.

2 pt

Document language is declared on the html element

Declared language: en.

1 pt

Structure 20 / 20

Page ships JSON-LD structured data

5 JSON-LD node(s): Organization, WebSite, EducationalAudience, Thing.

7 pt

Structured data uses a specific type that matches the page

Recognized types: organization, website.

4 pt

JSON-LD parses cleanly with recognised schema.org terms

All JSON-LD blocks parse cleanly.

3 pt

Page declares a self-referential canonical URL

Canonical: https://ethereum.org/

3 pt

XML sitemap is declared in robots.txt and returns 200

Sitemap found at /sitemap.xml (25 URLs on the first document).

2 pt

Key facts are available in lists or tables

0 tables, 10 lists, 0 code blocks, 0 question headings.

1 pt

Attribution 9 / 15

No machine-readable author is attached to the page

No author or Person entity, which weakens the authority signals answer engines use.

Why it matters. An `author` property in structured data is what lets an answer engine name a person or organisation as the source and link the byline to a stable profile. A byline that exists only as styled text is not reliably associated with the document during extraction.
Fix. Add an `author` property to the page's `Article`, `BlogPosting`, or `NewsArticle` node, typed as `Person` or `Organization`, with a `name` and a `url` pointing at a real profile page. Give each author a stable `@id` and reuse it across posts so the entity consolidates. Keep the visible byline identical to the structured value, and avoid generic names such as "Admin" or "Staff Writer" where a real author exists.
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Allow AI answer engines in robots.txt",
  "author": {
    "@type": "Person",
    "@id": "https://example.com/authors/dana-reyes#person",
    "name": "Dana Reyes",
    "url": "https://example.com/authors/dana-reyes",
    "jobTitle": "Infrastructure Engineer",
    "sameAs": ["https://github.com/danareyes"]
  }
}
Reference
3 pt

No machine-readable published or modified date

No publication or modification dates in structured data.

Why it matters. Answer engines prefer recent sources for questions about current state and use `dateModified` to decide whether a cached copy needs refetching. With no machine-readable date the page is treated as undated and loses to competitors that publish one.
Fix. Publish `datePublished` and `dateModified` in the page's structured data as ISO 8601 values with a timezone offset. Update `dateModified` only when the content actually changes, since bumping it on every deploy trains crawlers to ignore it. Mirror the value in a visible `<time datetime>` element so the rendered text and the metadata agree, and keep the sitemap `lastmod` consistent with it.
<time datetime="2026-08-04T14:20:00-04:00">Updated August 4, 2026</time>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Allow AI answer engines in robots.txt",
  "datePublished": "2026-02-11T09:00:00-05:00",
  "dateModified": "2026-08-04T14:20:00-04:00"
}
</script>
Reference
3 pt

/llms.txt lists canonical pages in the documented format

/llms.txt is present and well formed (7 sections, 96 links).

4 pt

Organization entity declares the publisher and its identifiers

Organization entity with sameAs links is present.

3 pt

Reuse terms are declared in machine-readable form

Content licence declared.

2 pt

Evidence raw measurements

robots.txt
Size
93 bytes
Groups
1
Sitemaps
https://ethereum.org/sitemap.xml
View the file as our crawler received it
User-Agent: *
Allow: /

Host: https://ethereum.org
Sitemap: https://ethereum.org/sitemap.xml
Machine-readable extras
llms.txt
valid, 12,985 bytes, 96 links
ai.txt
absent
Sitemap
/sitemap.xml (25 URLs)
Feeds
none
Schema types
Organization, WebSite, EducationalAudience, Thing
Edge
Cloudflare
Final URL
https://ethereum.org/
HTML size
303 KB, 863 words of text

Publish the score free

Sites that score well embed the badge. It links back to this live report, which re-measures on every scan.

AI access score badge
<a href="https://crawlcensus.com/site/ethereum.org"><img src="https://crawlcensus.com/badge/ethereum.org.svg" alt="AI access score for ethereum.org" width="150" height="20"></a>

Track changes on this domain pro

Crawler policy is edited quietly. We re-scan monitored domains daily, keep the history, and email you the moment a crawler is blocked or unblocked, an llms.txt appears, or the score moves.

One address, unlimited domains during the beta. No newsletter, only change alerts.