llms.txt is a small markdown file you publish at the root of your site that lists your most important pages in a clean, AI-friendly format. A sitemap written for language models instead of search crawlers. I publish one on my photography site at henrydavidphotography.com/llms.txt with an extended version at llms-full.txt. This post is a spoke under my AI search visibility playbook, and the honest read is that it might not move the needle for your business in any measurable way. I am still going to tell you what is in mine, why I run it, and when I think you should bother.
Where llms.txt came from
The convention was proposed in September 2024 by Jeremy Howard at answer.ai, the group behind the fast.ai courses. The pitch was simple. Sitemap.xml is built for search crawlers and loaded with metadata they care about (last-modified dates, change frequency, priority). Language models don't need any of that. They need a short, readable list of the most important pages on your site, in markdown, with a one-line summary at the top so the model knows what kind of business it is looking at.
The spec is intentionally minimal. A site title as an `H1`. A blockquote summary. A few `H2` sections grouping links by category. The whole file for a small business is under 100 lines. There is also a longer companion called llms-full.txt that concatenates the actual content of the linked pages into one document, so a model can ingest the site in a single fetch.
That is the entire pitch.

The honest read on whether AI vendors actually use it
Most posts on this topic skip the inconvenient part.
llms.txt is not a W3C standard. It is not an IETF RFC. It is not part of any official AI vendor's documented retrieval pipeline. As of May 2026, no major AI company (OpenAI, Anthropic, Google, Perplexity, Meta) has publicly committed to honoring llms.txt as a primary input to their retrieval systems. Some have made encouraging noises. None have published documentation that says "we read your llms.txt and prioritize it during retrieval."
Public adoption studies are equally mixed. Per AIO research circulating in early 2026, eight out of nine sites that adopted llms.txt saw no measurable change in AI citations or AI referral traffic within the first 60 days. The one site that did see a lift had also rewritten lead paragraphs and shipped FAQ schema during the same window, so the lift cannot be cleanly attributed to llms.txt itself.
If a tactic costs nothing and might do something, the temptation is to ship it and write a triumphant blog post. I am not going to do that here. The data does not support it.
What I put in mine and why
Here is the actual file I publish at henrydavidphotography.com/llms.txt. It is intentionally short and focused on the pages I would want an AI to surface if a prospect asked about corporate headshots in St. Louis or multi-office headshot programs.
```
# Henry David Photography
> Corporate headshot photographer based in St. Louis, serving teams and organizations nationwide. Specializing in consistent, professional headshots for multi-office and enterprise clients with on-site travel and same-week turnaround.
Core Pages
Services
Resources
High-Value Blog Articles
```
A few choices worth flagging. The blockquote summary is one sentence covering service, home base, customer, service area, and differentiator. If a model only reads the first three lines, it still gets a complete picture.
Core Pages is short. Five links. I am not enumerating every page. I am pointing the AI at the pages I would want it to cite. Services and Resources expand the picture without flooding it. The Blog Articles section names the seven posts I have invested the most depth in. If a model is generating an answer about headshot pricing, the pricing post is right there.
llms.txt versus llms-full.txt
The spec defines two files.
llms.txt is the short navigational file. URLs and one-line context. Fetched once, parsed quickly, tells a model where to go next.
llms-full.txt is the long companion. It concatenates the actual prose of the linked pages into one big markdown document, so a model with a large context window can ingest the substance of the site in a single fetch.
For a photography business with a few thousand words of meaningful content, llms-full.txt is feasible if you generate it from your CMS as a build step. For a 200-page editorial site, it becomes large and hard to maintain.
My take: ship llms.txt because it costs almost nothing. Ship llms-full.txt only if you can automate the build. A stale llms-full.txt that contradicts your live site is worse than no llms-full.txt at all.
Want the full AI-Visual Branding Package?
Llms.txt is one small piece of the AI-search puzzle. The shoot day, the FAQ schema, the multi-modal pages, and the citation tracking are the rest of the engagement.
See the packageWhether it actually moves the needle
Attribution for AI citations is genuinely hard. A site that publishes llms.txt and starts getting cited could be cited because of the file, or because the underlying pages were already strong, or because the same site shipped FAQ schema and rewrote lead paragraphs in the same window. Without a clean A/B test, causation is unprovable.
The public studies that exist are not encouraging. Eight out of nine sites in the 60-day adoption study saw no measurable change. That is not zero, but it does not justify prioritizing llms.txt over the higher-leverage work like FAQ schema, robots.txt configuration, and lead-paragraph rewrites.
The cost of running llms.txt is genuinely near zero. Write the file once. Update it when you publish a new high-value page. Roughly 30 minutes the first time and five minutes per update.
My position: the asymmetric payoff makes it worth running. If llms.txt does nothing, I have spent 30 minutes. If a major AI vendor honors it next quarter, I am already set up. The downside is bounded. The upside is uncertain but real.

When to add one and when to skip
Maintenance debt adds up if you are running a 50-page site by yourself.
Add llms.txt if: You have a clear set of 5 to 20 high-value pages a smart human would want pointed at first. You have a one-sentence summary of your business. You can update the file in five minutes when you publish a new page. Your top pages already have FAQ schema and your robots.txt already allows AI retrieval bots. (If those two are not in place, ship them first.)
Skip llms.txt if: You are in the middle of a redesign and the URL structure will change. A file pointing at URLs that 404 in three months is worse than no file. Or your site is small enough that the navigational layer is unnecessary. Or you do not have FAQ schema or AI-aware robots.txt yet. The leverage is higher there.
The trap to avoid is treating llms.txt as the headline AI tactic. It is not. The work that actually moves the needle today is in the AI search visibility playbook: allowing the right crawlers in your robots.txt and Cloudflare settings, shipping FAQ schema on every service page, and rewriting the first 167 words of your top pages to lead with a citable answer.
What to do today
If you decide to ship llms.txt, the workflow takes about 30 minutes.
Open a plain text file. Add an `H1` with your business name. Add a blockquote with one sentence describing what you do, where you are based, who you serve, and what makes you different. Add `H2` sections for your most important page categories (Home, Services, Resources, Blog). Under each `H2`, list 3 to 8 URLs in markdown link format with a short label.
Save it as `llms.txt` at the root of your domain so it is accessible at `yourdomain.com/llms.txt`. On Next.js sites, drop it in `public/`. On WordPress, use a plugin or write it directly to your hosting root. On a static site, commit it next to your `index.html`. Verify it is live by visiting the URL in a browser.
That is the whole job. Then go back to the higher-leverage work: robots.txt, FAQ schema, and lead-paragraph rewrites. Those are where the citations actually come from.
If you want help with your AI search setup as a whole (robots.txt, llms.txt if you have one, FAQ schema, lead paragraphs on your top pages), get in touch and we'll talk it through.