Skip to content
All resources
llms.txtSchemaGEO

llms.txt: a plain-language primer

What llms.txt is, how it differs from robots.txt, what to include, and how AI answer engines use it in practice.

By Kashif Nazir Khan ·

What is llms.txt?

llms.txt is a plain-text file served from the root of your domain (at /llms.txt) that declares, in natural language, what your business is, what it does, and what you want LLMs to know about it. It is intended to be read directly by large language models during retrieval.

Unlike robots.txt, which is a control file (telling crawlers what they can and cannot access), llms.txt is a declarative file (telling models what is true). It is not a directive. It is a statement of fact that models can quote.

How it differs from robots.txt and schema

robots.txt controls crawler access: a list of user-agents and the paths they are or are not allowed to fetch. It is enforced (to the extent crawlers honor it), not declarative.

Schema.org markup is structured data embedded in HTML pages: JSON-LD nodes declaring entities, properties, and relationships. It is machine-readable and precise, but it is distributed across pages and requires parsing.

llms.txt is centralized, natural-language, and consumable without parsing. A model can fetch it once and have a working understanding of the business. It complements schema (which provides structural precision) and is typically retrieved before or alongside schema-bearing pages.

What to put in llms.txt

There is no strict format yet — the convention is still emerging — but effective llms.txt files typically include:

Business name, URL, and one-sentence description. Contact information (email, booking URL, phone) in plain text. Core services and specialties, with plain-language descriptions. Coverage areas (cities, regions, neighborhoods) declared explicitly. Operating hours, including emergency or 24/7 coverage if applicable. Pricing or pricing ranges where appropriate. Licenses, certifications, and credentials. Languages served. Policies (consultation, cancellation, minimum engagements).

The goal is a file a model can read in 30 seconds and quote accurately for any recommendation question a user might ask.

How AI engines actually use llms.txt

Engines that honor llms.txt currently include Perplexity and several smaller agents, and major engines (ChatGPT, Claude, Gemini) retrieve from it opportunistically when their crawlers encounter it.

In practice, llms.txt contributes to retrieval in two ways. First, as a direct source — an engine may quote from it when answering a specific question. Second, as a consistency check — when directory data, schema, and site content disagree, llms.txt acts as a tie-breaker because it is the most explicit statement of intent.

The coverage is not universal and not guaranteed. Treat llms.txt as a high-leverage declarative surface, not a silver bullet. Pair it with schema and directory consistency.

Common mistakes

Marketing copy. llms.txt should be factual, not promotional. "We are the best roofer in town" is not useful. "We serve Raleigh, Cary, and Durham, and are licensed for NC residential roofing" is.

Inconsistency with the rest of the site. If llms.txt says 24/7 and the site says 8–6, you have made the problem worse. Reconcile first, publish second.

Stale data. An llms.txt that declared 2024 hours in 2026 is actively harmful. Audit it on the same cadence as GBP and directory listings.

Wall of text. Models read structured files more effectively than free prose. Use headings and short paragraphs. Think of it as a spec, not a brochure.

Want this applied to your business?

Thirty minutes, real queries from your category and metro, real findings.