bloomberg.com
The homepage returned HTTP 403 to an ordinary browser user agent from a datacentre address. Every AI fetcher works from datacentre addresses too, so this is what they see. The readability, structure and attribution measurements below are therefore empty rather than absent.
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.
Whether a fetcher that does not execute JavaScript receives the actual content, in markup an extractor can segment.
Machine-readable markup that states the page's type, entities, canonical URL, and discrete facts instead of leaving them to be inferred.
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 10 of 24 answer engines blocked
| Crawler | Operator | Uses content for | robots.txt | Live request |
|---|---|---|---|---|
| GPTBot Crawls content that may be used to train OpenAI's generative AI foundation models. |
OpenAI | Model training | blocked Disallow: / |
served 403 |
| OAI-SearchBot Indexes pages so they can be surfaced and cited in ChatGPT search results, not for training. |
OpenAI | Answer index | blocked Disallow: / |
served 403 |
| 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 | blocked Disallow: / |
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 | not probed |
| ClaudeBot Collects web content that may contribute to training Anthropic's models; honors Crawl-delay. |
Anthropic | Model training | blocked Disallow: / |
served 403 |
| Claude-User Retrieves pages on demand when a Claude user's question needs live web content. |
Anthropic | Live retrieval | blocked Disallow: / |
not probed |
| Claude-SearchBot Indexes content to improve the relevance and accuracy of Claude's search results. |
Anthropic | Answer index | blocked Disallow: / |
not probed |
| anthropic-ai Legacy token widely blocked for Anthropic training; Anthropic now documents ClaudeBot, Claude-User and Claude-SearchBot. |
Anthropic | Model training | blocked Disallow: / |
not probed |
| Google-Extended Control token with no user agent of its own; governs Gemini training and grounding use of Googlebot data. |
Model training | blocked Disallow: / |
not probed | |
| Googlebot Crawls and renders pages for Google Search, Images, Video, News and Discover. |
Answer index | allowed | not probed | |
| Googlebot-News Robots token controlling Google News inclusion; crawling itself uses the Googlebot user agents. |
Answer index | allowed | not probed | |
| Google-CloudVertexBot Crawls sites at a site owner's request to build Vertex AI agents; no effect on Google Search. |
Live retrieval | blocked Disallow: / |
not probed | |
| GoogleOther Generic Google crawler used by product teams for one-off fetches such as internal research and development. |
Model training | allowed | not probed | |
| Applebot Crawls for Siri, Spotlight and Safari search; falls back to Googlebot rules and ignores Crawl-delay. |
Apple | Answer index | allowed | not probed |
| Applebot-Extended Control token with no user agent; disallowing it excludes crawled content from Apple foundation model training. |
Apple | Model training | blocked Disallow: / |
not probed |
| Bingbot Indexes pages for Bing search and the Copilot answers that are grounded in the Bing index. |
Microsoft | Answer index | allowed | not probed |
| msnbot Legacy Microsoft search crawler token still honored alongside bingbot. |
Microsoft | Answer index | allowed | not probed |
| PerplexityBot Indexes and links pages in Perplexity search results; not used to collect foundation model training data. |
Perplexity | Answer index | blocked Disallow: / |
served 403 |
| Perplexity-User ignores robots Fetches a page for a specific user question; Perplexity documents that it generally ignores robots.txt. |
Perplexity | Live retrieval | allowed | not probed |
| Meta-ExternalAgent Crawls the web to train Meta's foundation AI models and to index content directly into products. |
Meta | Model training | blocked Disallow: / |
not probed |
| Meta-ExternalFetcher ignores robots Fetches individual links for agentic AI tasks; Meta documents that it may bypass robots.txt. |
Meta | Live retrieval | blocked Disallow: / |
not probed |
| FacebookBot Crawls public pages to improve language models behind Meta's speech recognition technology. |
Meta | Model training | allowed | not probed |
| Meta-WebIndexer Indexes pages so Meta AI can cite and link them in its search answers. |
Meta | Answer index | allowed | not probed |
| Meta-ExternalAds Crawls the web to improve Meta's advertising and other business products and services. |
Meta | Model training | allowed | 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 | not probed |
| Bytespider ignores robots Downloads content to train ByteDance LLMs and is widely reported to ignore robots.txt directives. |
ByteDance | Model training | blocked Disallow: / |
not probed |
| TikTokSpider ignores robots Fetches shared URLs for TikTok link previews and feeds; not expected to follow robots.txt. |
ByteDance | Live retrieval | allowed | not probed |
| Amazonbot Crawls for Amazon product and Alexa answers and may use the content to train Amazon AI models. |
Amazon | Model training | blocked Disallow: / |
not probed |
| Amzn-SearchBot Indexes content for Amazon search experiences such as Alexa; does not crawl for generative AI training. |
Amazon | Answer index | allowed | 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 | not probed |
| CCBot Builds the open Common Crawl web archive, a common source of LLM pretraining corpora. |
Common Crawl Foundation | Archive | blocked Disallow: / |
not probed |
| Diffbot Extracts structured page data for Diffbot's knowledge graph, which is licensed to AI customers. |
Diffbot | Model training | blocked Disallow: / |
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 | not probed |
| omgilibot Legacy Omgili search crawler token still blocked alongside the current omgili agent. |
Webz.io | Model training | allowed | 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 | not probed |
| cohere-ai Retrieves pages to answer user-initiated prompts in Cohere's enterprise AI products. |
Cohere | Live retrieval | blocked Disallow: / |
not probed |
| cohere-training-data-crawler Downloads training data for the large language models behind Cohere's enterprise AI products. |
Cohere | Model training | allowed | 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 | not probed |
| MistralAI-Index Indexes content for Mistral search behind Vibe answers; not used for generative AI training. |
Mistral AI | Answer index | allowed | not probed |
| MistralAI-Training Crawls web content to build datasets for training Mistral's generative AI models. |
Mistral AI | Model training | allowed | not probed |
| DuckAssistBot Crawls pages in real time for DuckDuckGo's cited AI-assisted answers; not used for model training. |
DuckDuckGo | Live retrieval | blocked Disallow: / |
not probed |
| YouBot Indexes pages for You.com search results and the AI answers built on that index. |
You.com | Answer index | blocked Disallow: / |
not probed |
| PanguBot Collects web content used to train Huawei's PanGu family of large models. |
Huawei | Model training | allowed | not probed |
| Timpibot Crawls pages for Timpi's decentralized index, which is also used as LLM training data. |
Timpi | Model training | allowed | not probed |
| ImagesiftBot Downloads public images plus surrounding text to build ImageSift's searchable image index. |
ImageSift (Hive) | Model training | allowed | not probed |
| Kangaroo Bot Scrapes site content into datasets used to train the Kangaroo LLM. |
Kangaroo LLM | Model training | allowed | not probed |
| SemrushBot-OCOB Crawls pages to feed Semrush's ContentShake AI writing tool. |
Semrush | Model training | allowed | 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 | not probed |
Reach 31.9 / 40
Answer-engine fetchers are blocked, so you cannot be cited
Blocked from citing you: OAI-SearchBot, ChatGPT-User, Claude-User, Claude-SearchBot, Google-CloudVertexBot, PerplexityBot, Meta-ExternalFetcher, cohere-ai, DuckAssistBot, YouBot.
Fix. Separate the two crawler classes in robots.txt instead of blocking by vendor. Allow `OAI-SearchBot` and `ChatGPT-User` (OpenAI retrieval and user-initiated fetches), `Claude-SearchBot` and `Claude-User` (Anthropic retrieval), and `PerplexityBot` and `Perplexity-User`; keep any opt-out you want on `GPTBot`, `ClaudeBot`, `CCBot`, `Google-Extended`, and `Applebot-Extended`. Order does not decide precedence in RFC 9309 parsers, the longest matching rule does, so make the allow rules at least as specific as the disallow rules. Blocking retrieval buys nothing on training, because the training crawlers are separate user agents with separate rules.
# Retrieval and citation fetchers: allowed.
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: PerplexityBot
User-agent: Perplexity-User
Allow: /
# Training and dataset crawlers: disallowed.
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Google-Extended
User-agent: Applebot-Extended
Disallow: /
User-agent: *
Allow: /
Disallow: /checkout
Sitemap: https://example.com/sitemap.xmlReferenceTraining crawlers are disallowed for this path
Blocked by robots.txt: GPTBot, ClaudeBot, anthropic-ai, Google-Extended, Applebot-Extended, Meta-ExternalAgent, Bytespider, Amazonbot, Diffbot.
Fix. Decide this deliberately rather than by inheriting a template. If you want your content in model weights, remove the `Disallow: /` groups for `GPTBot`, `ClaudeBot`, `CCBot`, `Google-Extended`, and `Applebot-Extended`. If you do not, keep those groups but scope them to the paths that matter and leave retrieval fetchers untouched, because `Google-Extended` and `Applebot-Extended` only control training use and never affect search or answer citation. Record the decision somewhere durable so the next robots.txt edit does not silently reverse it.
# Opt out of model training only.
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Google-Extended
User-agent: Applebot-Extended
Disallow: /ReferenceAI user agents receive the same 200 response as browsers
Live requests as 4 AI user agents were served normally.
No blanket disallow applies to this path
The wildcard group does not disallow the entire site.
robots.txt served as plain text with a 200 response
robots.txt served, 7048 bytes, 98 group(s).
No Crawl-delay directive constrains fetchers
No Crawl-delay directive.
Page is indexable, with no noindex directive
No noindex directive on the homepage.
Full-length snippet extraction is permitted
Snippets are not restricted by meta tags.
X-Robots-Tag header is absent or permissive
No restrictive X-Robots-Tag header.
Readability 13.5 / 25
Raw HTML contains almost no readable text before JavaScript runs
108 words of text are present in the raw HTML. Most AI fetchers do not run JavaScript.
Fix. Render the primary content on the server: server-side rendering, static generation at build time, or prerendering into the HTML response. Keep client JavaScript for interactive extras such as filters and comments, never for the article body, product description, or specifications table. Verify by fetching the page with an AI user agent, stripping tags, and counting words, which is what the fetcher effectively sees. Confirm the numbers match the browser view rather than trusting a framework's hydration claim.
curl -s -A "OAI-SearchBot/1.0" https://example.com/page \
| sed -e 's/<script[^>]*>.*<\/script>//g' -e 's/<[^>]*>/ /g' \
| tr -s '[:space:]' ' ' \
| wc -wReferenceNo <main> or <article> element marks the primary content
No <main> or <article> element, so extractors must guess where the content starts.
Fix. Wrap the page's unique content in exactly one `<main>` element, and use `<article>` for each self-contained item inside it. Put navigation in `<nav>`, site chrome in `<header>` and `<footer>`, and tangential blocks in `<aside>` so they are cleanly separable. Do not nest the content inside a `<div>` whose only meaning is a CSS class.
<body>
<header><nav><!-- site navigation --></nav></header>
<main>
<article>
<h1>How answer engines fetch your pages</h1>
<p>Content that should be extracted and quoted.</p>
</article>
</main>
<aside><!-- related links --></aside>
<footer><!-- legal, contact --></footer>
</body>ReferenceNo meta description summarises the page
No meta description, so answer engines invent their own summary.
Fix. Add a `<meta name="description">` of roughly 110 to 160 characters that states what the page answers, written per page rather than per template. Include the concrete nouns a reader would search for, and do not restate the title word for word. Leave it out entirely rather than shipping the same string sitewide.
<meta name="description" content="Which robots.txt rules block AI training crawlers, which block answer-engine fetchers, and how to allow citation while opting out of training." />ReferenceVisible text is a small fraction of the HTML payload
Text is 5.0% of the 14 KB document; 1 KB is inline script.
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.
Headings form a single, ordered outline
1 H1 and 4 headings total, 2 phrased as questions.
Title is unique and describes the page in specific terms
Title is 28 characters: "Bloomberg - Are you a robot?"
Document language is declared on the html element
Declared language: en.
Structure 5.5 / 20
No JSON-LD structured data found on the page
No JSON-LD structured data on the homepage.
Fix. Add one `<script type="application/ld+json">` block describing the page's primary entity, using the schema.org type that actually fits: `Article` or `NewsArticle`, `Product`, `Recipe`, `Event`, `FAQPage`, or `SoftwareApplication`. Populate the required properties for that type and make every value match visible page content. Prefer JSON-LD over microdata or RDFa, since it is the format the major crawlers document, and render it server-side so non-JavaScript fetchers see it.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Allow AI answer engines in robots.txt",
"description": "How to opt out of model training while staying citable.",
"url": "https://example.com/blog/robots-for-ai",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://example.com/blog/robots-for-ai"
},
"image": "https://example.com/images/robots-for-ai.png",
"inLanguage": "en",
"datePublished": "2026-02-11T09:00:00-05:00",
"dateModified": "2026-08-04T14:20:00-04:00",
"author": {
"@type": "Person",
"name": "Dana Reyes",
"url": "https://example.com/authors/dana-reyes"
},
"publisher": {
"@type": "Organization",
"name": "Example",
"url": "https://example.com",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"width": 512,
"height": 512
}
}
}ReferenceStructured data is too generic for what the page is about
No entity types that answer engines consume.
Fix. Replace bare `WebPage` and `WebSite` nodes with the most specific type that describes the page, and fill the properties that type defines. Use `@graph` to publish several linked nodes on one page, such as an `Article` whose `publisher` points at an `Organization` node by `@id`. Add `BreadcrumbList` for hierarchy and reuse the same `@id` values across pages so the entity resolves to one record.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Product",
"@id": "https://example.com/products/widget#product",
"name": "Widget Pro",
"sku": "WGT-PRO-1",
"brand": { "@type": "Brand", "name": "Example" },
"offers": {
"@type": "Offer",
"url": "https://example.com/products/widget",
"price": "49.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Products", "item": "https://example.com/products" },
{ "@type": "ListItem", "position": 2, "name": "Widget Pro" }
]
}
]
}ReferenceNo canonical URL is declared for this page
No rel=canonical, so duplicate URLs split citation signals.
Fix. Emit an absolute, self-referential `<link rel="canonical">` on every page, using the exact scheme, host, and path you want cited. Point parameterised and paginated variants at the canonical document, and make sure the canonical URL itself returns 200 rather than redirecting. Keep the canonical, the `og:url`, the sitemap entry, and the JSON-LD `url` identical, since conflicting values are treated as a weak hint and may be overridden.
<link rel="canonical" href="https://example.com/blog/robots-for-ai" />
<meta property="og:url" content="https://example.com/blog/robots-for-ai" />ReferenceFacts are only in prose, with no list or table structure
0 tables, 0 lists, 0 code blocks, 2 question headings.
Fix. Put specifications, comparisons, pricing, and steps into real `<table>` markup with `<caption>` and `<th scope>`, or into `<ul>`, `<ol>`, and `<dl>` elements. Do not simulate tables with `div` grids, and avoid images of tables, which carry no extractable text. Keep one fact per row or list item so a chunk stays meaningful on its own.
<table>
<caption>AI fetcher purposes</caption>
<thead>
<tr><th scope="col">User agent</th><th scope="col">Purpose</th></tr>
</thead>
<tbody>
<tr><td>GPTBot</td><td>Model training</td></tr>
<tr><td>OAI-SearchBot</td><td>Retrieval and citation</td></tr>
</tbody>
</table>ReferenceJSON-LD parses cleanly with recognised schema.org terms
All JSON-LD blocks parse cleanly.
XML sitemap is declared in robots.txt and returns 200
Sitemap found at https://www.bloomberg.com/sitemaps/news/index.xml.
Attribution 1 / 15
No /llms.txt index of canonical pages
No /llms.txt.
Fix. Publish `/llms.txt` as `text/plain` markdown: an `#` H1 with the project name, a `>` blockquote summary, optional plain paragraphs of context, then `##` sections whose bullets are `[title](absolute-url): note`. Link the pages you want quoted, put lower-priority links under an `## Optional` section, and prefer URLs that also serve clean markdown. Keep it generated from the same source as your sitemap so it does not drift, and remember it is a hint for assistants, not an access control mechanism.
# Example
> Example publishes reference documentation for the Widget API and guides for
> configuring crawler access.
Prefer the pages below over search results; each URL is canonical.
## Docs
- [Widget API reference](https://example.com/docs/api): endpoints, auth, limits.
- [Quickstart](https://example.com/docs/quickstart): first request in five minutes.
## Policies
- [Crawler policy](https://example.com/legal/crawlers): which agents we allow.
## Optional
- [Changelog](https://example.com/changelog): dated release notes.ReferenceNo machine-readable author is attached to the page
No author or Person entity, which weakens the authority signals answer engines use.
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"]
}
}ReferenceNo machine-readable published or modified date
No publication or modification dates in structured data.
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>ReferenceNo Organization entity identifies the publisher
No Organization entity, so the brand is harder to resolve to a known entity.
Fix. Publish one `Organization` node, usually on the home page, with `name`, `url`, `logo`, and `sameAs` pointing at the profiles that already describe you: Wikipedia or Wikidata, Crunchbase, LinkedIn, and your primary social accounts. Give it a stable `@id` such as `https://example.com/#organization` and reference that `@id` from each page's `publisher` property instead of repeating the block. Add `contactPoint` and `address` when they are public, and keep every value identical to what the site shows.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Example",
"legalName": "Example Holdings, Inc.",
"url": "https://example.com",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png",
"width": 512,
"height": 512
},
"sameAs": [
"https://www.wikidata.org/wiki/Q00000000",
"https://www.linkedin.com/company/example",
"https://github.com/example"
],
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer support",
"email": "support@example.com",
"areaServed": "US",
"availableLanguage": ["en"]
}
}ReferenceNo machine-readable license or usage terms for the content
No licence declaration, so reuse terms are ambiguous.
Fix. Add a `license` property to the page's structured data pointing at a specific license URL, such as a Creative Commons deed or your own terms page, and add `rel="license"` on the visible link. Use `usageInfo` for conditions that are not a standard license, such as attribution wording or an API-only clause. State the terms once, at a stable URL, and reference it from every page rather than restating it per template.
<a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Allow AI answer engines in robots.txt",
"license": "https://creativecommons.org/licenses/by/4.0/",
"usageInfo": "https://example.com/legal/content-reuse",
"creditText": "Example, crawlcensus research desk"
}
</script>ReferenceEvidence raw measurements
- Size
- 7,048 bytes
- Groups
- 98
- Sitemaps
- https://www.bloomberg.com/sitemaps/news/index.xml
https://www.bloomberg.com/sitemaps/news/latest.xml
https://www.bloomberg.com/sitemaps/collections/index.xml
https://www.bloomberg.com/sitemaps/media/video/index.xml
https://www.bloomberg.com/sitemaps/media/audio/index.xml
https://www.bloomberg.com/sitemaps/people/profiles/index.xml
https://www.bloomberg.com/sitemaps/companies/public-company…
https://www.bloomberg.com/sitemaps/companies/private-compan…
https://www.bloomberg.com/sitemaps/securites/index.xml
https://www.bloomberg.com/billionaires/sitemap.xml
View the file as our crawler received it
# Bot rules:
# 1. A bot may not injure a human being or, through inaction, allow a human being to come to harm.
# 2. A bot must obey orders given it by human beings except where such orders would conflict with the First Law.
# 3. A bot must protect its own existence as long as such protection does not conflict with the First or Second Law.
# If you can read this then you should apply here https://www.bloomberg.com/careers/
User-agent: *
Disallow: /polska
Allow: /account/newsletters
Disallow: /account/*
Disallow: /tosv*.html
Disallow: /search
Disallow: /company/search/
Disallow: /professional/search/
Disallow: /impact/search/
Disallow: /ux/search/
Disallow: /wnwi/search/
Disallow: /gei/search/
Disallow: /impact/search/
Disallow: /netzeropathfinders/search/
Disallow: /notices/search/
Disallow: /distribution/search/
Disallow: /ukinnovators/search/
Disallow: /latam/search/
Disallow: /faq/search/
Disallow: /tc/search/
Disallow: /subscriptions/group/manage/
Disallow: /preview/lineup
Disallow: /preview/articles
Disallow: /explore/
Disallow: /press-releases/
Disallow: /artemis/
Disallow: /sessions-publisher/
User-agent: Google-Extended
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: Mediapartners-Google
Disallow: /about/careers
Disallow: /about/careers/
Disallow: /offlinemessage/
Disallow: /apps/fbk
Disallow: /bb/newsarchive/
Disallow: /apps/news
User-agent: Spinn3r
Disallow: /podcasts/
Disallow: /feed/podcast/
Disallow: /bb/avfile/
User-agent: Googlebot-News
Disallow: /sponsor/
Disallow: /news/sponsors/*
Disallow: /news/terminal/*
User-agent: Twitterbot
Allow: /en/news/thp
User-agent: CCBot
Disallow: /
# Development Tools
User-agent: Python-urllib
Disallow: /
User-agent: python-requests
Disallow: /
User-agent: Python-http-client
Disallow: /
# AI/LLM Bots
User-agent: ChatGPT-User
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: GPTBot
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: Claude-Web
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: anthropic-ai
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: PerplexityBot
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: YouBot
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: ClaudeBot
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: Claude-User
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: Claude-SearchBot
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: OAI-SearchBot
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: DuckAssistBot
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: cohere-ai
Disallow: /
# Google Services
User-agent: Google-Apps
Disallow: /
User-agent: Google-Apps-Script
Disallow: /
User-agent: AppEngine-Google
Disallow: /
User-agent: Google-Cloud
Disallow: /
User-agent: Google-CloudVertexBot
Disallow: /
# Major Company Bots
User-agent: AmazonBot
Disallow: /
User-agent: AmazonAdBot
Disallow: /
User-agent: ByteSpider
Disallow: /
User-agent: Meta-ExternalAgent
Disallow: /
User-agent: Meta-ExternalFetcher
Disallow: /
User-agent: Meta-ExternalAgent-Image
Disallow: /
User-agent: Applebot-Extended
Disallow: /
User-agent: Bytespider-Image
Disallow: /
# Feed & Content Aggregators
User-agent: Feedly
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: FeedlyBot
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: FeedlyApp
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: MWFeedParser
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
# Analytics & Marketing
User-agent: comscore
Disallow: /
User-agent: Comscore
Disallow: /
User-agent: HubSpot
Disallow: /
User-agent: hubspot
Disallow: /
User-agent: Criteo
Disallow: /
User-agent: criteo-bot
Disallow: /
User-agent: Peer39_Crawler
Disallow: /
User-agent: rogerbot
Disallow: /
User-agent: linkdexbot
Disallow: /
User-agent: NTENT
Disallow: /
User-agent: AndersPinkBot
Disallow: /
User-agent: IndeedBot
Disallow: /
# Search Engine Bots
User-agent: MJ12bot
Disallow: /
User-agent: PetalBot
Disallow: /
User-agent: YisouSpider
Disallow: /
User-agent: 360Spider
Disallow: /
User-agent: Qwantify
Disallow: /
User-agent: ToutiaoSpider
Disallow: /
# Monitoring & Security
User-agent: Screaming Frog SEO Spider
Disallow: /
Allow: /professional
Allow: /company
Allow: /latam
Allow: /faq
Allow: /tc
User-agent: PRTG
Disallow: /
User-agent: FreshpingBot
Disallow: /
User-agent: Panopta
Disallow: /
User-agent: DatadogSynthetics
Disallow: /
User-agent: Rackspace
Disallow: /
User-agent: censys
Disallow: /
User-agent: burp
Disallow: /
User-agent: Burp
Disallow: /
User-agent: check_http
Disallow: /
User-agent: DotcomMonitor
Disallow: /
User-agent: WatchSumo
Disallow: /
User-agent: WormlyBot
Disallow: /
User-agent: CalibreBot
Disallow: /
User-agent: AudistoBot
Disallow: /
# Social & Content
User-agent: Hatena
Disallow: /
User-agent: Hatena-Bookmark
Disallow: /
User-agent: EveryoneSocialBot
Disallow: /
User-agent: Diffbot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Netvibes
Disallow: /
User-agent: WebCEO
Disallow: /
User-agent: Postano
Disallow: /
User-agent: RebelMouse
Disallow: /
User-agent: Muck-Rack
Disallow: /
User-agent: InstapaperViewer
Disallow: /
User-agent: Twurly
Disallow: /
User-agent: LivelapBot
Disallow: /
User-agent: DatagnionBot
Disallow: /
User-agent: Linespider
Disallow: /
User-agent: Discourse
Disallow: /
# Potentially Malicious
User-agent- llms.txt
- absent
- ai.txt
- absent
- Sitemap
- https://www.bloomberg.com/sitemaps/news/index.xml
- Feeds
- none
- Schema types
- none
- Edge
- Cloudflare
- Final URL
- https://www.bloomberg.com/
- HTML size
- 14 KB, 108 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.
<a href="https://crawlcensus.com/site/bloomberg.com"><img src="https://crawlcensus.com/badge/bloomberg.com.svg" alt="AI access score for bloomberg.com" 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.