To create an llms.txt file, write a short Markdown file that lists your most useful pages with a one-line note for each. Then upload it to the root of your site so it opens at yoursite.com/llms.txt. The six steps below cover what goes in the file, the format, where it goes on your platform and how to test it.
Does llms.txt help get cited by ChatGPT? Not on its own. Nobody has shown that it does, as we explain in Does llms.txt work?. OpenAI's crawler documentation says nothing about llms.txt. It recommends allowing OAI-SearchBot in your robots.txt. The file is still cheap to add, so here is how to do it properly.
What an llms.txt file is, in one paragraph
llms.txt is a plain Markdown file at the root of your site. It gives an AI system a short map of the pages that matter. Jeremy Howard proposed it in September 2024, and the format is published at llmstxt.org. It is not robots.txt, because it doesn't block or allow anything. It is not a sitemap either, because it lists only your best pages, each with a note on what's inside.
How to create an llms.txt file, step by step
Step 1: Pick the pages worth listing
Start with a short list. A good llms.txt picks only your strongest pages. It is not a copy of your sitemap.
List:
- Your homepage and the page for each service or product you sell
- Your pricing page
- Your About page, so an assistant knows who runs the business
- Your best guides: posts that fully answer a real question
- Policies people ask about: service area, refunds, support, delivery
Leave out:
- Tag, category and archive pages
- Thin posts, old news and duplicates
- Login, cart, checkout and thank you pages
- Anything blocked in robots.txt or marked noindex
An easy test: if you wouldn't send a new customer to the page, leave it out.
Step 2: Follow the llms.txt format
The llmstxt.org spec sets the order. Only the first item is required:
- An H1 with the name of your site or business
- A blockquote with a short summary of what you do
- Optional plain paragraphs with key details (no headings)
- H2 sections, each with a list of links in the form
[name](url): note - Optionally, a section called
## Optionalfor links an AI can skip when it has less room
Here is an example for a made up plumbing company:
# Northside Plumbing
> Licensed plumbing company serving Denver homes and small businesses. Repairs, water heaters, drain cleaning and remodel plumbing.
Northside works in Denver, Aurora and Lakewood. Emergency calls are taken every day.
## Services
- Water heater repair and replacement: tank and tankless, gas and electric
- Drain cleaning: kitchen, bathroom and main sewer lines
## Guides
- Why is my water heater making noise?: causes and what to do first
## Company
- Pricing: how quotes work
- About: team and licenses
## Optional
- Blog archive
Step 3: Write notes that say something
The note after each link is where most files get lazy. "Our services page" tells an AI nothing. "Tank and tankless, gas and electric" tells it what the page answers. Write each note the way you'd describe the page to a customer on the phone: what's on it and who it's for, in a few words.
Keep the summary in the blockquote factual too. Say what you sell, where and for whom. Leave out slogans and claims you can't prove.
You don't have to start from a blank file. The free llms.txt generator reads your homepage and sitemap and writes a draft that lists your main pages and articles. Use steps 1 to 3 to review it: cut weak pages, then rewrite any vague notes before you upload it.
Step 4: Save it as plain text
Save the file as llms.txt, all lowercase, in UTF-8. Use a plain text editor like VS Code, Notepad or TextEdit in plain text mode. A word processor adds formatting that breaks the file.
Step 5: Put it at the root of your site
The spec puts the file at /llms.txt. A subfolder like /docs/llms.txt also works for documentation. Where you upload it depends on your platform:
| Platform | Where the file goes |
|---|---|
| Next.js or Astro | The public folder |
| Hugo | The static folder |
| Jekyll | The root of the project |
| WordPress | The root folder of the site, through your host's file manager or SFTP |
| Hosted builders | It depends. Some don't let you upload to the root |
The generator page also has instructions for Next.js, WordPress, Webflow and other builders. If your builder won't let you upload to the root, check its help center before you look for a workaround.
Step 6: Test the file
A file with errors does nothing useful. Check four things:
- It loads. Open yoursite.com/llms.txt in a private browser window. You should see plain text, not a 404 page or your homepage.
- It returns a 200. Run
curl -I https://yoursite.com/llms.txtin a terminal. The first line should say 200. If you see 301 or 302, make sure the file opens at its final address and link to that. - Every link works. Click each one. Remove anything that returns a 404, redirects or points to a noindex page.
- robots.txt doesn't block what you list. Open yoursite.com/robots.txt and make sure the pages in your llms.txt are not disallowed.
To see whether AI bots ever request the file, search your server logs for requests to /llms.txt.
What matters more than the file: pages AI assistants can quote
The file only points to pages. Whether an assistant quotes you depends on the pages themselves:
| What helps | Where it comes from |
|---|---|
| Allow OAI-SearchBot in robots.txt | OpenAI's crawler docs say this helps your site appear in ChatGPT search results |
| Answer the question in the first two sentences | A passage that makes sense on its own is easy to quote |
| Be findable in search engines | ChatGPT search pulls from the web, so pages nobody can find don't get read |
| Sourced facts and clear headings | Headings that match the questions people ask, with a linked source for each claim |
Google says the same about its own AI features: "You don't need to create new machine readable files, AI text files, or markup to appear in these features" (Google Search Central).
So most of the work goes into the pages. Our LLM SEO page shows how AI SEO Crew writes each article to be quoted: the answer up top, a source for every fact, and headings that match real questions. For the rest of the ChatGPT side, read how to rank in ChatGPT.
Keep your llms.txt file current
An llms.txt that points to deleted pages is worse than none. Update it when you:
- Launch or retire a service
- Publish a guide that answers a big question better than your old one
- Change your URLs or move to a new platform
If you publish often, set a monthly reminder to check every link again.
Put the crew on the pages that matter
An llms.txt file maps your site. Citations come from pages that answer real searches, published steadily and checked before they go live. AI SEO Crew finds what your customers search on Google, writes researched articles with their sources, checks every fact and link, and publishes them to your site. You start with a keyword plan built from your own site.
Frequently asked questions
Where do I put my llms.txt file?
At the root of your domain, so it opens at yoursite.com/llms.txt. The spec also allows a subfolder such as /docs/llms.txt for documentation.
Is llms.txt the same as robots.txt?
No. robots.txt tells crawlers what they may or may not fetch. llms.txt is a short guide to your best pages. If you want to appear in ChatGPT search, robots.txt is the file OpenAI's documentation talks about.
Should I list every page of my site in llms.txt?
No. Your sitemap already does that. List the pages a new customer should read first, then put anything less important under an Optional section.
Do I need llms-full.txt too?
Usually not. Some documentation sites publish an llms-full.txt with the full text of their docs in one file. For a business site, a clean llms.txt and strong pages are enough.
Can I write llms.txt without knowing code?
Yes. It's a plain text file with headings and links. The only technical part is uploading it to the root of your site, and that depends on your platform (see step 5).