apprun.icuGenerator

Generator · SEO and AI access

Write llms.txt and decide which AI crawlers get in.

Build the file that maps your site for language models, then set allow or block for every documented AI crawler token in one robots.txt. Paste a sitemap to fill the page list, catch structural mistakes before you upload, and download both files.

21 crawler tokens each linked to its vendor Private runs in your browser No account no upload, no tracking Export copy, download, share link

What is llms.txt

llms.txt is a markdown file you publish on your own site so that a language model can find out what the site contains without crawling it first. It is a curated map, not a copy: a name, a short summary and a set of links, each with one line saying what an agent will get if it follows it. The current specification is version 2 of the proposal at llmstxt.org.

The format is markdown with a fixed order. The H1 with the project or site name is the only required element. After it comes an optional blockquote summary, an optional details paragraph, and then any number of H2 sections, each holding a markdown list of links:

# Example Company

> Example Company publishes documentation, SDKs and a changelog for the Example API.

Optional details go here: how to read the links, what is not listed, anything an agent should know before it fetches a page.

## Docs

- [Example API quick start](https://example.com/docs/quickstart): Install the client and make a first request.
- [Example API reference](https://example.com/docs/reference): Every endpoint, parameter, rate limit and error code.

## Optional

- [Example changelog](https://example.com/changelog): Dated release notes; secondary detail an agent can skip.

Three things the specification asks for, in its own words: concise, clear language; a brief informative description on each link; and avoid ambiguous terms or unexplained jargon. It also expects the file itself to stay small enough to fit in a context window while the detail sits behind the links, fetched only when it is needed. Its own test for a finished file is blunt: ask an agent a question about your site, give it only your llms.txt as a starting point, and see whether it finds the right page.

Two clarifications that matter in 2026. First, the proposal says the information is used on demand, when an agent needs information about a topic while assisting a user, and that its authors expected it to be useful mainly for inference rather than training. Second, there is no llms-full.txt any more: version 1 described a tool for expanding the file into a full context, and version 2 removed that context-expansion tooling, which also removed the special meaning the old Optional section carried. Optional sections are still allowed as a convention for links an agent can skip. Both points are from the v2 change log.

Nothing in the specification promises a ranking benefit or an automatic upload. The file is a courtesy to agents that are already reading your site, and it costs one text file to publish.

Where the file goes, and why /llms.txt

The file is named llms.txt and lives at /llms.txt on your host. The specification ties that name to two conventions you already have: /robots.txt and /sitemap.xml sit at the root for the same reason, and index.html gives every path a conventional place for its human-readable entry point. An llms.txt file is the LLM-readable version of that idea.

The path is not decoration. A file placed at any subpath, such as /docs/llms.txt, covers every URL under that path, and where more than one file applies an agent should use the most specific one. That is the rule that lets a project published to a subdirectory on a shared host take part. The specification considered and rejected the /.well-known/ prefix of RFC 8615 for exactly that reason: well-known URIs exist only at the origin root, and anyone who controls only a path can never add one.

Version 2 also adds a way for a page to point at its markdown version and at the file that covers it, using the standard link relations rel="alternate" type="text/markdown" and rel="describedby", as HTML link elements or as an HTTP Link header. If you want an agent to find the file and the markdown versions of your pages without guessing, those two relations are worth adding to your head.

Check yours the same way you check anything else: fetch the URL in a browser and confirm it returns 200 and plain text rather than a redirect to a page. This site publishes its own file at /llms.txt if you want a worked example of the finished format.

Build llms.txt and your AI crawler rules

Everything below runs in this tab. Nothing is uploaded, and nothing is stored unless you copy a share link.

The site

H1 and summary
Also used for the default Sitemap line.
One or two sentences. This is what an agent reads before following anything.

Pages

sections and links
Rows with no section are grouped under Pages. Titles and URLs are required; the note is what makes a link worth following.

Paste a sitemap

or a URL list
Parsed in the page with DOMParser. Nothing is fetched over the network.
Titles fall back to the last URL segment, humanised.

Output

spec v2

                    
The share link carries this whole configuration in the URL fragment, so anyone with it sees exactly this file. Nothing is stored on the server.

AI crawler rules

one group per token
Follows your domain until you edit it here.

Groups match the crawlers own product token, case-insensitively. When several rules match one URL the longest match wins and Allow wins a tie. No Crawl-delay line is emitted: RFC 9309 defines no such field. Blocking Googlebot here removes you from Google Search, so the recommended preset leaves search and grounding crawlers open.

AI trainingCrawlers that collect pages for training corpora. Blocking these is the decision most sites are actually making.

GPTBotOpenAI · Training crawler for OpenAI models.
ClaudeBotAnthropic · Training crawler. Anthropic says its bots follow robots.txt.
Google-ExtendedGoogle · Vertex AI grounding and Gemini training control. Does not affect Google Search.
Applebot-ExtendedApple · The training crawler in the Applebot family.
meta-externalagentMeta · Meta crawler used for AI training.
AmazonbotAmazon · Amazon crawler for product data and AI training.

Search and groundingCrawlers that fetch pages to answer searches or to ground an answer with citations.

OAI-SearchBotOpenAI · Powers search results in ChatGPT.
Claude-SearchBotAnthropic · Search and grounding crawler for Claude.
PerplexityBotPerplexity · Indexes pages for Perplexity search answers.
GooglebotGoogle · Google Search itself. Blocking it removes the site from Google Search.
ApplebotApple · Apple search crawler used for Siri and Spotlight suggestions.
Amzn-SearchBotAmazon · Amazon search indexing.
Meta-WebIndexerMeta · Indexing for Meta AI and social link previews.

User-triggered fetchersSent when a person asks a model to read a specific page. The user initiated it.

ChatGPT-UserOpenAI · User-initiated. OpenAI states that robots.txt rules may not apply to it.
Claude-UserAnthropic · User-initiated. Anthropic says site owners can control this crawler.
Perplexity-UserPerplexity · User-initiated. Perplexity says it generally ignores robots.txt rules.
Amzn-UserAmazon · User-initiated fetches for Alexa and shopping answers.
Meta-ExternalFetcherMeta · User-initiated. Meta says it may bypass robots.txt and sends the visitor IP.

AdsCrawlers that check ad and campaign measurement.

OAI-AdsBotOpenAI · Ad campaign measurement for ChatGPT ads.
Meta-ExternalAdsMeta · Meta ads measurement.

Research crawlersOpen research datasets. Common Crawl feeds a large share of what many vendors train on.

CCBotCommon Crawl · Publishes the Common Crawl corpus, a common source for training sets.

All other crawlersAny crawler that does not match a group above, including search engines you have not listed.

User-agent: *The fallback group. Matched only when no other group applies.

How to use it

five steps
  • 1. Name the site Set the domain, the site name and a one-line summary. That is the H1 and the blockquote, the only two parts most readers will ever see.
  • 2. List the pages worth reading Add rows with a section, a title, a URL and a one-line note. Group pages under Docs, Guides or Optional.
  • 3. Review the checks The panel flags relative links, duplicate titles, sections with no links and files too large to sit in a model context.
  • 4. Set the crawler rules Allow or block each vendor token by hand, or start from a preset. The Sitemap line is filled in from your domain.
  • 5. Copy, download or share Take llms.txt and robots.txt as files, or share the whole configuration as a URL.

Which AI crawlers exist in 2026

Each token below comes from that vendor own documentation, and the last column links to the page it was taken from. A robots.txt rule matches the product token a crawler sends in its own User-agent string, so a rule written for one vendor never covers another vendors bot.

User-agent token Owner Group What it fetches Vendor
GPTBotOpenAIAI trainingTraining crawler for OpenAI models.docs
ClaudeBotAnthropicAI trainingTraining crawler. Anthropic says its bots follow robots.txt.docs
Google-ExtendedGoogleAI trainingVertex AI grounding and Gemini training control. Does not affect Google Search.docs
Applebot-ExtendedAppleAI trainingThe training crawler in the Applebot family.docs
meta-externalagentMetaAI trainingMeta crawler used for AI training.docs
AmazonbotAmazonAI trainingAmazon crawler for product data and AI training.docs
OAI-SearchBotOpenAISearch and groundingPowers search results in ChatGPT.docs
Claude-SearchBotAnthropicSearch and groundingSearch and grounding crawler for Claude.docs
PerplexityBotPerplexitySearch and groundingIndexes pages for Perplexity search answers.docs
GooglebotGoogleSearch and groundingGoogle Search itself. Blocking it removes the site from Google Search.docs
ApplebotAppleSearch and groundingApple search crawler used for Siri and Spotlight suggestions.docs
Amzn-SearchBotAmazonSearch and groundingAmazon search indexing.docs
Meta-WebIndexerMetaSearch and groundingIndexing for Meta AI and social link previews.docs
ChatGPT-UserOpenAIUser-triggered fetchersUser-initiated. OpenAI states that robots.txt rules may not apply to it.docs
Claude-UserAnthropicUser-triggered fetchersUser-initiated. Anthropic says site owners can control this crawler.docs
Perplexity-UserPerplexityUser-triggered fetchersUser-initiated. Perplexity says it generally ignores robots.txt rules.docs
Amzn-UserAmazonUser-triggered fetchersUser-initiated fetches for Alexa and shopping answers.docs
Meta-ExternalFetcherMetaUser-triggered fetchersUser-initiated. Meta says it may bypass robots.txt and sends the visitor IP.docs
OAI-AdsBotOpenAIAdsAd campaign measurement for ChatGPT ads.docs
Meta-ExternalAdsMetaAdsMeta ads measurement.docs
CCBotCommon CrawlResearch crawlersPublishes the Common Crawl corpus, a common source for training sets.docs

What the vendors say, and what it means for your rules

  • Robots rules are a request, not a lock. RFC 9309 says plainly that “these rules are not a form of access authorization”. A crawler that ignores robots.txt will ignore yours, so anything that must stay private belongs behind a login, not behind a Disallow line. RFC 9309: Robots Exclusion Protocol
  • Some user-triggered fetchers do not follow the rules. OpenAI states that for ChatGPT-User “robots.txt rules may not apply”, and Perplexity states that Perplexity-User “generally ignores robots.txt rules”. OpenAI: crawler and fetcher documentation
  • Meta sends the visitor IP with a user-initiated fetch. Meta documents that Meta-ExternalFetcher may bypass robots.txt and that the request carries the user IP address, which is why a blocked path is not a privacy control for that crawler. Meta: web crawler documentation
  • Anthropic bots honour robots.txt. Anthropic states its crawlers follow robots.txt and that site owners can control Claude-User. Anthropic: Claude crawlers and fetchers
  • Google-Extended is not a ranking switch. Google states that Google-Extended “does not impact a site’s inclusion in Google Search nor is it used as a ranking signal”. Blocking it does not deindex you. Google: common crawlers and fetchers
  • There is no standard crawl-delay. RFC 9309 defines no crawl-delay field, so a Crawl-delay line is a vendor convention that some crawlers read and others ignore. This generator never emits one. RFC 9309: Robots Exclusion Protocol

llms.txt vs robots.txt

They answer different questions, they live at different layers, and confusing them is the most common mistake in this area.

llms.txt robots.txt
Question it answersWhat is worth reading here?Who is allowed to fetch?
Who reads itAn agent that has already decided to look at your siteEvery crawler, before it fetches anything
FormatMarkdown with a fixed section orderLine-based directives per User-agent group
Effect if ignoredNone. It is advice, not a permissionNone. A crawler may ignore it entirely
Path semanticsCovers the URLs under its own path; the most specific file winsMatches per User-agent group, longest path match wins, Allow wins a tie
Typical useInference: helping a model answer a question about your contentAccess control and crawl budget for every bot, search engines included

A third file often gets confused with both. A sitemap.xml is the complete list of indexable pages; the specification says plainly why it is not a substitute for llms.txt, because it rarely lists the markdown versions of pages, it excludes useful external links, and in aggregate it is far too large to read in one context. Read the proposal

How to check whether a crawler is allowed

Four checks, from cheapest to most convincing.

  • Read the file itself. Open https://yourdomain.com/robots.txt in a browser. A 200 and plain text means the file is being served, which is the failure people hit most often: a redirect, a 404, or an HTML error page all look like a missing file to a crawler.
  • Find the group, then read it. Locate the User-agent: line for the exact token. Matching is case-insensitive on the token the crawler sends. If the group has only Allow: / the crawler may fetch everything; Disallow: / blocks everything; Disallow: /path blocks one area.
  • Resolve overlaps by hand. When more than one rule matches a URL, the longest matching path wins, and if two rules match with the same length, Allow wins. That rule is what makes Disallow: /admin plus Allow: /admin/public behave the way you expect.
  • Watch a real fetch. Server logs are the ground truth for your own traffic, and a console crawling tool from a vendor will show you what its crawler is actually allowed to reach. Check the log after the deploy rather than trusting the file alone.

Two cautions. First, robots.txt is a request: RFC 9309 states that these rules are not a form of access authorization, so anything that must stay private needs authentication. Second, user-triggered fetchers are the least predictable group, because the vendors themselves say so. OpenAI states that robots.txt rules may not apply to ChatGPT-User, Perplexity states that Perplexity-User generally ignores robots.txt rules, and Meta states that Meta-ExternalFetcher may bypass robots.txt while sending the visitor IP address. A Disallow line tells those crawlers what you would prefer; it does not stop them.

Finally, do not expect a Crawl-delay line to be honoured. RFC 9309 defines no such field, and support for it is a vendor convention that some crawlers implement and others ignore. The generator above emits none.

Questions

What is llms.txt and where does it go?

llms.txt is a markdown file you publish on your own site to give language models a curated map of it. Serve it at https://yourdomain.com/llms.txt, or at any subpath such as /docs/llms.txt, which then covers every URL under that path. Where more than one file applies, an agent should use the most specific one. Only the H1 line carrying your site or project name is required; a blockquote summary, a details paragraph and H2 sections of links are all optional.

Does llms.txt control whether AI bots can crawl my site?

No. llms.txt is the map you hand over once a crawler is already fetching your pages. Access is decided in robots.txt, one User-agent group per crawler product token. Treat the two files as separate jobs: robots.txt says who may fetch, llms.txt says what is worth reading once they do.

Does llms-full.txt exist?

Not in the current specification. Version 1 described a tool that expanded llms.txt into a full context file, and version 2 dropped that context-expansion tooling, along with the special meaning the old Optional section had. Optional sections are still allowed as a convention for secondary links. The change log is at https://llmstxt.org/changes.html.

Which AI crawlers should I block?

Start from intent. Block the training tokens such as GPTBot, ClaudeBot, Google-Extended, Applebot-Extended, meta-externalagent, Amazonbot and CCBot if you do not want your pages in training corpora. Keep search and grounding tokens allowed if you want to be found and cited, which means leaving Googlebot and OAI-SearchBot open. The user-triggered fetchers are a separate decision, because they only run when a person asks a model to read the page. This page lists each token with the vendor page that documents it.

Can robots.txt actually block an AI crawler?

Only for crawlers that choose to honour it. OpenAI says robots.txt rules may not apply to ChatGPT-User, Perplexity says Perplexity-User generally ignores robots.txt rules, and Meta says Meta-ExternalFetcher may bypass robots.txt and sends the visitor IP address. RFC 9309 puts it the same way: these rules are not a form of access authorization. Anything that must stay private should require authentication.

How many links should an llms.txt file contain?

Enough to navigate, few enough to read. The specification asks for concise language, a brief informative description on each link and no unexplained jargon, and it expects the file itself to stay small enough to fit in a model context while the detail sits behind the links. A few dozen links across a handful of clear H2 sections is a sensible working size. A sitemap with thousands of URLs is not a substitute: it rarely lists the markdown versions of pages and is far too large to read as a whole.

Is llms.txt worth adding to a small site?

It costs one file and it is aimed at inference rather than training: an agent uses it on demand when a user asks about something your site covers, then follows the links to the detail. Nothing in the specification promises a ranking benefit, so treat it as cheap insurance for how your pages read to an assistant rather than as a growth channel. Test it the way the proposal suggests, by asking an agent a question about your site with only your file as the starting point.

Where do the crawler tokens on this page come from?

Each one is taken from that vendor own documentation, and the table links to the page it came from. Tokens are matched case-insensitively against the product token the crawler sends in its own User-agent string, so a rule written for one vendor never covers another vendor bot. When more than one rule matches a URL, the longest match wins and Allow wins a tie.