ubuntu.com: what it tells AI crawlers

On 27 October 2026, ubuntu.com's robots.txt allowed all of GPTBot, OAI-SearchBot, ClaudeBot, Claude-SearchBot, Google-Extended, PerplexityBot and CCBot; it also published llms.txt.

Last verified 2026-10-28 03:59 UTC (daily run of 2026-10-27). Proof for that day.

Panel
top 1k (Tranco)
robots.txt
ok (HTTP 200) · https://ubuntu.com/robots.txt
unchanged since 2026-10-26 · sha256 aab936ae074e1cf7… · view as recorded
The * group
allows applies to every agent without its own group

Per AI bot, 2026-10-27

User agentVerdictHow
GPTBotallowsnamed in its own group
OAI-SearchBotallowsnamed in its own group
ChatGPT-Userallowsnamed in its own group
ClaudeBotallowsnamed in its own group
Claude-SearchBotallowsnamed in its own group
Claude-Userallowsthrough the * group
PerplexityBotallowsnamed in its own group
Perplexity-Userallowsnamed in its own group
Googlebotallowsthrough the * group
Google-Extendedallowsnamed in its own group
Applebot-Extendedallowsnamed in its own group
CCBotallowsthrough the * group
Bytespiderallowsnamed in its own group
Meta-ExternalAgentallowsnamed in its own group
Amazonbotallowsthrough the * group
anthropic-aiallowsnamed in its own group
Claude-Weballowsnamed in its own group
cohere-aiallowsnamed in its own group

Other signals

Publishes /llms.txtyes
Publishes /ai.txtno
Publishes /.well-known/tdmrep.jsonno
Reserves TDM rights (TDMRep file, header or meta)no
Declares Content Signals (robots.txt or header)no
Says ai-train=no in a Content Signalno
Points to an RSL licence (robots.txt License line or Link header)no
Answers with an x402 payment offer (lower bound: only the homepage is probed)no
Answers HTTP 402 Payment Required (lower bound: only the homepage is probed)no
Sends noai / noimageai directivesno
Refused our fetcher (403 / challenge)no

llms.txt: "Ubuntu", 12,879 bytes, 65 links.

robots.txt as recorded sha256 aab936ae074e1cf7…

# ===========================================
# ubuntu.com robots.txt
# Strategy: 
#   - Block private/transactional/search paths for all.
#   - Group major AI Retrieval & Crawling bots to optimize crawl budget.
#   - Allow high-value product/doc paths; block noise.
# ===========================================

# ===========================================
# DEFAULT RULES — all crawlers
# ===========================================
User-Agent: *
Disallow: /search
Disallow: /search*
Disallow: /*/search*
Allow: /certified/search
Disallow: /account
Disallow: /account/*
Disallow: /login
Disallow: /logout
Disallow: /pro/dashboard
Disallow: /pro/users
Disallow: /pro/account-users
Disallow: /pro/subscribe
Disallow: /pro/activate
Disallow: /pro/attach
Disallow: /pro/offer
Disallow: /pro/offers
Disallow: /pro/renewals/
Disallow: /pro/contracts/
Disallow: /pro/trial/
Disallow: /pro/set-auto-renewal
Disallow: /pro/user-subscriptions
Disallow: /pro/distributor/users
Disallow: /pro/distributor/invoice
Disallow: /pro/distributor/thank-you
Disallow: /account.json
Disallow: /mirrors.json
Disallow: /pro/subscriptions.json
Disallow: /pro/offers.json
Disallow: /pro/channel-offers.json
Disallow: /thank-you
Disallow: /*/thank-you
Disallow: /blog/draft-blogs
Disallow: /blog/draft-blogs/*
Disallow: /tests/
Disallow: /tests/*
Disallow: /sentry-debug
Disallow: /mobile
Disallow: /mobile/*
Disallow: /phone
Disallow: /phone/*
Disallow: /tablet
Disallow: /tablet/*
Disallow: /tv
Disallow: /tv/*
Disallow: /devices
Disallow: /devices/*
Disallow: /credentials/exam*
Crawl-delay: 1

# ===========================================
# AI OPTIMIZED RULES
# Includes: OpenAI (Browsing & Crawling), Perplexity, Anthropic, and Apple
# ===========================================
User-agent: GPTBot
User-agent: ChatGPT-User
User-agent: OAI-SearchBot
User-agent: ClaudeBot
User-agent: Claude-Web
User-agent: anthropic-ai
User-agent: Claude-SearchBot
User-agent: Google-Extended
User-agent: meta-externalagent
User-agent: PerplexityBot
User-agent: Perplexity-User
User-agent: Applebot-Extended
User-agent: cohere-ai
User-agent: Bytespider

# Nudge toward Markdown endpoints
Allow: /*?format=md

# High-value Content Priority
Allow: /server
Allow: /desktop
Allow: /cloud
Allow: /openstack
Allow: /kubernetes
Allow: /ceph
Allow: /containers
Allow: /core
Allow: /ai
Allow: /pro
Allow: /landscape
Allow: /security
Allow: /internet-of-things
Allow: /embedded
Allow: /hpc
Allow: /real-time
Allow: /confidential-computing
Allow: /enterprise-store
Allow: /kernel
Allow: /toolchains
Allow: /robotics
Allow: /certified
Allow: /about
Allow: /community
Allow: /download
Allow: /pricing
Allow: /training
Allow: /credentials
Allow: /support
Allow: /managed
Allow: /managed-infrastructure
Allow: /aws
Allow: /azure
Allow: /gcp
Allow: /dell
Allow: /ibm
Allow: /nvidia
Allow: /hpe
Allow: /supermicro
Allow: /blender
Allow: /blog
Allow: /tutorials
Allow: /appliance
Allow: /cpu-compatibility
Allow: /what-is-enterprise-linux

# Block "Noise" (Forms, fragments, and archives that exhaust context windows)
Disallow: /search
Disallow: /search*
Disallow: /*/search*
Allow: /certified/search
Disallow: /account
Disallow: /account/*
Disallow: /account.json
Disallow: /mirrors.json
Disallow: /login
Disallow: /logout
Disallow: /contact-us
Disallow: /contact-us/*
Disallow: /*/contact-us
Disallow: /thank-you
Disallow: /*/thank-you
Disallow: /engage
Disallow: /engage/*
Disallow: /takeovers
Disallow: /takeovers.json
Disallow: /templates/
Disallow: /frame
Disallow: /marketo/submit
Disallow: /blog/feed
Disallow: /blog/archives
Disallow: /blog/tag/
Disallow: /blog/author/
Disallow: /blog/topic/
Disallow: /blog/group/
Disallow: /blog/latest-news
Disallow: /blog/events-and-webinars
Disallow: /blog/draft-blogs
Disallow: /blog/draft-blogs/*
Disallow: /engage/resources.json
Disallow: /engage/metadata.json
Disallow: /pro/dashboard
Disallow: /pro/users
Disallow: /pro/account-users
Disallow: /pro/subscribe
Disallow: /pro/activate
Disallow: /pro/attach
Disallow: /pro/offer
Disallow: /pro/offers
Disallow: /pro/renewals/
Disallow: /pro/contracts/
Disallow: /pro/trial/
Disallow: /pro/set-auto-renewal
Disallow: /pro/user-subscriptions
Disallow: /pro/subscriptions.json
Disallow: /pro/offers.json
Disallow: /pro/channel-offers.json
Disallow: /pro/distributor/users
Disallow: /pro/distributor/invoice
Disallow: /pro/distributor/thank-you
Disallow: /subscription-centre
Disallow: /rfp
Disallow: /tests/
Disallow: /tests/*
Disallow: /_image-testing/
Disallow: /sentry-debug
Disallow: /credentials/exam*
Disallow: /mobile
Disallow: /mobile/*
Disallow: /phone
Disallow: /phone/*
Disallow: /tablet
Disallow: /tablet/*
Disallow: /tv
Disallow: /tv/*
Disallow: /devices
Disallow: /devices/*
Disallow: /kubeconeurope2020
Disallow: /masters-conference

# Performance
Crawl-delay: 2

# ===========================================
# SITEMAPS
# ===========================================
Sitemap: https://ubuntu.com/sitemap.xml

# High-Value Content Trees (Prioritized for AI Crawlers)
Sitemap: https://ubuntu.com/sitemap_tree.xml
Sitemap: https://ubuntu.com/blog/sitemap.xml
Sitemap: https://ubuntu.com/tutorials/sitemap.xml
Sitemap: https://ubuntu.com/server/docs/doc-sitemap.xml
Sitemap: https://ubuntu.com/openstack/docs/sitemap.xml
Sitemap: https://ubuntu.com/ceph/docs/sitemap.xml
Sitemap: https://ubuntu.com/security/notices/sitemap.xml
Sitemap: https://ubuntu.com/security/cves/sitemap.xml
Sitemap: https://ubuntu.com/security/vulnerabilities/sitemap.xml
Sitemap: https://ubuntu.com/community/docs/sitemap.xml

robots.txt versions

FromThroughStateVersion
2026-10-262026-10-28ok 200aab936ae074e

Timeline of changes

DateWhat changed
No changes since the first observation (2026-10-26).

Reconstructed history (Common Crawl)

From Common Crawl's robots.txt captures: what CCBot was served, one crawl per quarter. A separate series from the daily observations above; a 403 here means Common Crawl was refused, not this ledger.

CrawlHostStateGPTBotOAI-SearchBotChatGPT-UserClaudeBotClaude-SearchBotClaude-UserPerplexityBot
2026-09-21 CC-MAIN-2026-39ubuntu.comok viewallowsallowsunknownallowsallowsunknownallows
2025-09-15 CC-MAIN-2025-38ubuntu.comredirect-onlyunknownunknownunknownunknownunknownunknownunknown
2024-09-16 CC-MAIN-2024-38ubuntu.comredirect-onlyunknownunknownunknownunknownunknownunknownunknown
2023-10-02 CC-MAIN-2023-40ubuntu.comredirect-onlyunknownunknownunknownunknownunknownunknownunknown
2022-10-03 CC-MAIN-2022-40ubuntu.comredirect-onlyunknownunknownunknownunknownunknownunknownunknown
2021-09-27 CC-MAIN-2021-39ubuntu.comredirect-onlyunknownunknownunknownunknownunknownunknownunknown
2020-09-28 CC-MAIN-2020-40ubuntu.comredirect-onlyunknownunknownunknownunknownunknownunknownunknown
2019-09-23 CC-MAIN-2019-39ubuntu.comredirect-onlyunknownunknownunknownunknownunknownunknownunknown
2018-09-24 CC-MAIN-2018-39www.ubuntu.comabsentallowsallowsunknownallowsallowsunknownallows
2018-01-29 CC-MAIN-2018-05www.ubuntu.comabsentallowsallowsunknownallowsallowsunknownallows
2017-10-23 CC-MAIN-2017-43www.ubuntu.comabsentallowsallowsunknownallowsallowsunknownallows
2017-09-25 CC-MAIN-2017-39www.ubuntu.comabsentallowsallowsunknownallowsallowsunknownallows
2017-07-24 CC-MAIN-2017-30www.ubuntu.comabsentallowsallowsunknownallowsallowsunknownallows
2017-04-24 CC-MAIN-2017-17www.ubuntu.comabsentallowsallowsunknownallowsallowsunknownallows
2017-01-23 CC-MAIN-2017-04ubuntu.comabsentallowsallowsunknownallowsallowsunknownallows
2016-10-03 CC-MAIN-2016-40www.ubuntu.comabsentallowsallowsunknownallowsallowsunknownallows
2016-09-05 CC-MAIN-2016-36ubuntu.comabsentallowsallowsunknownallowsallowsunknownallows

Evidence

Every daily observation of ubuntu.com is a leaf in that day's Merkle tree. Proof of the robots.txt line for 2026-10-27: audit path (JSON), day root and OpenTimestamps proof (complete (bitcoin block 973493)).

API: https://infrarabbit.com/crawlers/api/v1/policy/ubuntu.com