The file most personal brand sites are missing
There is a standard quietly working its way through the AI-discoverability conversation. It has a one-page spec at llmstxt.org. The format is plain markdown. The file lives at the root of your site as /llms.txt. The point is to give AI assistants, agents, and AI search tools a clean overview of your site so they have a better chance of understanding who you are, which pages matter, and what content to reference.
I added one to anthonytran.ai in the first week of the build. It took an evening. The file has been sitting at the root of the site ever since, doing quiet work for any AI tool that knows to look for it.
Most personal brand sites do not have this file yet. That is the part that makes it worth writing about. The cost is low. The upside is a layer of search that is growing fast and that an XML sitemap alone does not cover.
What an llms.txt actually is
The format was proposed by Jeremy Howard at Answer.AI in September 2024. The full spec lives at llmstxt.org. The short version: an llms.txt is a markdown file at the root of your domain that introduces your site to large language models. Identity, positioning, key links, content index. It sits in the same family of boring website infrastructure as robots.txt and sitemap.xml, but it serves a different job. It helps LLM-based tools orient themselves around your site at inference time, not just at crawl time.
One core file and one useful companion. The required convention is /llms.txt: a short markdown document with narrative context up top, then H2 sections that are link lists pointing to the most important pages. Many sites also add a companion file like /llms-full.txt that holds a longer content index, one entry per post. The short file is for orientation. The long file is for content discovery. The short file links to the long one so a tool that wants the full picture can find it.
Plain markdown all the way down. No JSON. No XML. No schema. A human can read it and an AI can parse it without any special tooling. The format earns its place by being boring.
Whether it actually works
Honest answer: adoption is uneven. Some documentation platforms, agent workflows, and developer tools support or generate these files. Major consumer AI products have not universally committed to using them. The standard is proposed, not enforced. There is no guarantee that adding an llms.txt gets you cited in ChatGPT or surfaced in a Perplexity answer.
What is true: AI crawlers do read public files at the root of a site. The llms.txt format is structured the way a language model wants to consume content. Writing one is a single sitting and maintenance is light. The downside is small. The upside is a discoverability surface that is growing every month. This is not a replacement for good content, crawlable pages, schema, or a sitemap. It is a complement.
I treat it the same way I treat the disclaimer page in the trust-infrastructure post. Cheap insurance, sitting in the footer. The page does its quiet work whether anything is pointing at it yet or not. The llms.txt is the same shape of decision.
What you need before you start
Three things.
A site you control. The file has to live at the root of your domain, served at https://yoursite.com/llms.txt. If you cannot put a file at the root, you cannot do this.
A way to deploy a file to that root. On a static site, that means dropping the file into the public or static directory before deploy. On WordPress or another CMS, that usually means uploading to the root over SFTP or through a file manager plugin. On a managed builder, check the platform’s documentation for “custom files at root” or “robots.txt access.” If the platform does not let you place or route a file at the root, you may need a workaround like a redirect, an edge route, or a different hosting setup.
A list of your existing pages and posts. If your site is brand new, the list is short. If you already have a content library, you will paste it into the prompt at the end of this post and let the AI do the heavy lifting on the first draft.
That is it. No accounts, no paid tools, no plugins.
Step 1. Write the short llms.txt
The structure the spec expects: an H1 with the site name, a blockquote with a one-line summary, then narrative context as plain paragraphs, then H2 sections that are markdown link lists. Narrative goes up top. Links go in the H2s.
Here is what mine looks like, lightly trimmed:
# Anthony Tran AI
> Personal brand of Anthony Tran. Marketer and Air Force veteran. Solo
> operator building a personal brand with AI, in public.
Anthony Tran is a longtime marketer with 23 years of career experience
across military logistics planning, corporate marketing leadership, and
entrepreneurship. He is currently building his personal brand using AI
tools and documenting every step publicly. He writes for solopreneurs
and longtime professionals who want to build a personal brand but do
not know where to start.
Content focus: brand strategy, content strategy, AI tools for creators,
and building in public. Every piece follows a practical, no-fluff
approach with actionable takeaways.
Methodology: See it. Plan it. Build it. A three-phase approach to
building a personal brand. See where you are going, plan the
foundation, then build consistently.
## Key Pages
- [Home](https://anthonytran.ai/): Main homepage for Anthony Tran AI.
- [About](https://anthonytran.ai/about): Background, positioning, and
story.
- [Blog](https://anthonytran.ai/blog): Articles about personal branding,
AI tools, and building in public.
- [Resources](https://anthonytran.ai/resources): Tools and resources
for personal brand builders.
- [Contact](https://anthonytran.ai/contact): Contact page.
## Content Index
- [Full content index](https://anthonytran.ai/llms-full.txt): Complete
list of articles, major pages, and descriptions.
## External Profiles
- [YouTube](https://youtube.com/@anthonytranai): Video versions of blog
posts.
- [Medium](https://medium.com/@anthonytranai): Cross-posted articles.
Keep it short. The whole file is one screen of markdown. The blockquote near the top is the elevator pitch. The narrative paragraphs that follow are the longer answer to “who is this and why should an AI tool care.” The H2 sections are link lists. That last part matters because the spec expects H2 sections to contain markdown link lists, not paragraphs. Narrative context belongs above the first H2.
Spec note. The official proposal expects H2 sections in
/llms.txtto be link lists. Keep narrative context before the first H2, then use H2s like “Key Pages,” “Articles,” “Docs,” or “Content Index” for markdown links. That keeps the file both human-readable and easier for simple parsers to process.
Step 2. Write the llms-full.txt
The long file is a companion pattern, not part of the core spec. It is a content index. One entry per blog post or major page. Each entry includes a title, URL, category, and a short description in plain language.
The format I use:
### [Why I wrote my disclaimer page before any affiliate link](https://anthonytran.ai/blog/disclaimer-before-affiliate-links)
- Category: Foundation
- Description: A personal essay about why I wrote a full disclaimer
page before adding any affiliate links to my personal brand site.
Covers what the page does as trust infrastructure, what plain-English
sections it includes, and why early is the cheap version.
The linked H3 anchors the entry as a navigable item. The bulleted Category and Description give an AI tool enough signal to surface the post when relevant.
Three rules for the descriptions.
Write them in your voice, not in marketing copy. The AI is going to read this and pull from it. If the description sounds like an SEO meta tag, the AI gets a flatter version of your work. Write the description the way you would describe the post to a friend.
Cover the actual lesson, not the title topic. A description that just rephrases the title gives the AI nothing new. Add the takeaway. “Argues that X. Includes a worked example of Y. Useful for readers who Z.”
Keep each entry under five sentences. The full file is meant to be scannable. AI engines that read it are not looking for an essay per post. They are looking for enough signal to know what each link is about and when to surface it.
Group the entries any way that helps an AI orient. I group mine by blog post first, then by major site pages (About, Resources, Newsletter), then by external profiles. Other groupings work. The point is that an AI reading top to bottom should be able to build a clean mental model of the site.
Step 3. Deploy both files at the site root
For a personal brand site, put both files at the domain root: https://yoursite.com/llms.txt and https://yoursite.com/llms-full.txt. The spec can support subpaths in some contexts, but root is the convention most likely to be discovered automatically.
On a static site, drop both files into the public or static directory and deploy. On a CMS, upload to the document root over SFTP. On a managed builder, check the platform documentation for root-level file upload. If the platform does not allow it, you may need a redirect or edge route.
Verify by hitting the URLs in a browser or with curl. You want a 200 OK response and readable plain text or markdown. A 404, a redirect loop, a login wall, or a blocked response means something is wrong.
That is the deployable artifact. Two markdown files at the root of the site. No build step. No JavaScript. No database.
Step 4. Keep the index in sync
The maintenance pattern is the part most operators get wrong. The first version of the file is fine for an evening of work. The second version is the test of whether you actually keep it current.
Two options.
Manual updates after every new post. Open the long file, paste a new entry at the top of the right section, push the change. Two minutes per post. Works fine if you ship one piece a week or less.
A small generator that builds the long file from your content collection at deploy time. On a static site that uses a content collection, you can write a script that reads each post’s frontmatter and outputs a fresh llms-full.txt every build. Pushed code generates the file. New posts auto-appear. Removed posts auto-disappear. Worth the engineering only if you ship often enough that manual updates start feeling like friction.
Either way works. Pick the one that matches your cadence. A long file that lists eight posts while your blog has thirty teaches tools an incomplete picture of the site.
Common mistakes to avoid
Five places I see people get tripped up.
Treating the file as a marketing pitch. AI engines are not your customers. The file should describe what is actually on the site, in plain language, the way you would describe it to a curious stranger. No superlatives. No “industry-leading.” Just facts.
Forgetting to link your deeper index. If you create a longer companion file, make sure /llms.txt points to it. Otherwise, tools may never discover the deeper index exists.
Stuffing the file with keywords. The format is for language models, not 2014-era SEO. If a sentence sounds keyword-stuffed to a human, it sounds the same to a model. Write naturally.
Skipping the maintenance pass. A stale long file teaches tools an incomplete picture of your site. If you cannot keep it current manually, automate it.
Hiding the file where tools are unlikely to find it. For a personal brand site, use the root: /llms.txt. Subpaths may work in some contexts, but root is the discoverable default. Not /static/llms.txt, not /assets/llms.txt.
What this gets you
A better chance of an accurate AI answer when someone asks a tool about you, your topic, or your site.
A cleaner content index for any agent or assistant a reader points at your domain.
One more piece of the discoverability stack alongside an XML sitemap, a clean robots.txt, and good schema. None of them are sufficient on their own. Together they cover the field.
Cheap insurance for a layer of search that is still figuring itself out. One evening of work. The file sits at the root from launch and does its work in the background.
Put This Into Practice
If you have an existing site with a few posts and you want to draft both files in one sitting, paste this into Claude or ChatGPT. The prompt assumes you already have a list of pages and posts you can copy in.
Help me draft both an llms.txt and an llms-full.txt for my personal brand website, written around the standard at llmstxt.org. Walk me through these questions one at a time and wait for my answer before moving to the next:
- What is your site name, your one-line description, and your domain?
- What is your two- to four-sentence About paragraph (background, audience, what you write about)?
- What are your two to four content pillars or main topics?
- What is your methodology, framework, or signature approach if you have one (skip if you do not)?
- What are the key pages on your site (Home, About, Blog, Resources, Contact, anything else)? Paste the URLs.
- Paste a list of your blog posts and major content pieces. Each line: title, URL, category, and a one-sentence description in your own voice.
After I answer all six, draft two markdown files. The first is
llms.txt. Structure it as: an H1 with the site name, a blockquote with a one-line summary, then narrative paragraphs (About, content focus, methodology) BEFORE the first H2. Then add H2 sections that are markdown link lists only, including a “Key Pages” H2 and a “Content Index” H2 that points to llms-full.txt. The H2 sections must be link lists, not paragraphs. The second file isllms-full.txt: a deeper content index that begins with my About paragraph, then groups my blog posts under a## Blog Postsheading. For each post, output a### [Title](URL)linked heading, then a bulleted list with Category and a three- to five-sentence Description in plain language that covers the actual lesson of the post, not just a rephrasing of the title.Do not invent posts I did not give you. Do not write marketing copy. Plain language only. Reference the standard at https://llmstxt.org/ in your reply once so I have the link.
Then list three concrete next steps: where to put both files in my site, how to verify they are live, and how often to update the long file.
The prompt produces two markdown files and the deploy plan. Read both files top to bottom before pushing them live. The descriptions in the long file are the part most worth refining by hand. The AI gets the structure right. The voice is your job.
The cheap move that compounds
The whole point of an llms.txt is that it sits there. No popups, no nags, no UI work. The file does its work passively, the way a disclaimer page does. Most readers never see it. The AI tools that find it get a cleaner picture of your site than they would have built from scraping pages alone.
A personal brand site is a living document. The infrastructure pages are part of the document. The llms.txt is one of the cheapest pieces to add and one of the easiest to forget. Add it once. Keep the long file in sync. Move on to the next thing.
Come build with me.
~ Anthony
The build log.
New post drops, tool tests, and the occasional honest look at what isn't working. One email at a time. Unsubscribe in one click.
Frequently asked.
What is an llms.txt file?
An llms.txt file is a markdown document placed at the root of your website that gives AI search engines a clean overview of who you are, what your site covers, and where the best content lives. It was proposed by Jeremy Howard at Answer.AI in September 2024 and is documented at llmstxt.org. The format is plain markdown, which means a human can read it and an AI can parse it without any special tooling.
Do I need both an llms.txt and an llms-full.txt?
Not strictly, but the pair is the cleanest setup. The short llms.txt covers identity, positioning, and key links in a single page. The longer llms-full.txt is a full content index with every post listed by title, URL, and a one-paragraph description. Short file for orientation, long file for content discovery. Both files are linked from the short file, and both are served at the root of the site.
Will adding llms.txt actually get my site cited by ChatGPT or Perplexity?
There is no guarantee. The standard is proposed and adoption across AI engines is uneven. What we know: AI crawlers do read public files at site roots, llms.txt is structured exactly the way an LLM wants to consume content, and writing one costs an evening. It is cheap insurance for a layer of search that is growing fast. Treat it as one more discoverability move alongside an XML sitemap, a clean robots.txt, and good schema.