Skip to content
Go back

llms.txt v2 Is Here: What Changed, and What You Should Update

Published:  at  10:00 AM

llms.txt v2 Is Here: What Changed, and What You Should Update

On August 10, 2026, Jeremy Howard published v2 of the llms.txt proposal, the first revision since the format launched in September 2024. Two years of adoption produced a clear list of things that were missing, ambiguous, or simply not being used the way the spec assumed.

Here’s the reassuring part first: your existing llms.txt file is still valid. The file format itself did not change. What changed is everything around the file, mostly the answer to a question thousands of adopters kept asking.

The problem v2 solves

v1 told you to publish an llms.txt full of links, and to serve clean Markdown versions of your pages at page.html.md. But it never connected the two ends.

As Howard put it, the file “pointed agents toward pages, but nothing in the spec told them where the Markdown versions actually lived.”

So an agent landing on https://example.com/docs/auth had no reliable way to answer two basic questions:

  1. Is there a Markdown version of this page, and where?
  2. Is there an llms.txt covering this page, and where?

It had to guess: try appending .md, try /llms.txt at the root, hope for the best. v2 replaces guessing with declaration.

This is the headline change. v2 recommends two standard HTML link relations:

You can ship them as <link> elements in your <head>:

<link rel="alternate" type="text/markdown" href="/docs/page.html.md" />
<link rel="describedby" href="/docs/llms.txt" />

Or, better for most teams, as an HTTP Link: response header:

Link: </docs/page.html.md>; rel="alternate"; type="text/markdown", </docs/llms.txt>; rel="describedby"

Why the header version matters: you can add it in your web server or CDN config without touching a single template. It also works for non-HTML resources, including the Markdown files themselves. If you’re on Cloudflare, Netlify, Vercel, or nginx, this is a config change, not a migration.

These aren’t invented conventions, by the way. alternate and describedby are existing IANA-registered link relations. v2 chose to reuse the web’s plumbing instead of inventing new plumbing.

Change 2: two Markdown URL patterns are now blessed

v1 specified one convention: append .md to the full URL, so /docs/tutorial.html becomes /docs/tutorial.html.md.

In practice, plenty of publishing tools did the other obvious thing and replaced the extension: /docs/tutorial.md. v2 accepts both.

PatternOriginalMarkdown version
Append .md/docs/tutorial.html/docs/tutorial.html.md
Replace extension/docs/tutorial.html/docs/tutorial.md
Extensionless URL/docs/tutorial//docs/tutorial/index.html.md or /docs/tutorial/index.md

The spec’s own note on this: practice “diverged from v1 in ways worth blessing.” That’s a healthy way to run a standard. Neither pattern is preferred, so use whichever your stack produces naturally, then declare it with rel="alternate".

Change 3: subpath coverage is now precisely defined

An llms.txt file covers the URLs under its own path, and where several files apply, agents should use the most specific one. So /docs/llms.txt covers everything in /docs/, and it takes precedence over a root /llms.txt for those pages.

This is more than a clarification. It’s the reason llms.txt sits at a path rather than under /.well-known/ (RFC 8615). Well-known URIs only exist at the origin root, and plenty of authors control only a subdirectory, a GitHub Pages project site, a docs folder on a shared host, a team’s section of a corporate domain. Under v2, anyone who can publish a file at a path can publish an llms.txt for it.

If you run docs, a blog, and a marketing site under one domain, you can now give each one its own scoped file, with confidence about which wins.

Change 4: llms_txt2ctx is out, and so is the “Optional” mechanic

v1 shipped a CLI tool, llms_txt2ctx, that expanded an llms.txt into one large context blob, with the ## Optional section carrying mechanical meaning (skip it when the context gets tight).

v2 drops both from the spec. Not because context expansion is bad, but because it isn’t how agents actually behave. Real agents view or search the llms.txt, then follow only the links they need. The file stays small enough to sit in context; the detail lives behind the links and gets fetched on demand.

## Optional still exists, but now purely by convention: secondary links an agent can skip when it wants a shorter context. No tooling semantics attached.

Change 5: the framing caught up with reality

The 2024 background section was a prediction, that agents would routinely read websites. v2 rewrites it as description, because that’s now just Tuesday.

The spec now cites the evidence: thousands of sites publish the file, documentation platforms generate it automatically, Chrome’s Lighthouse audits for it as part of its agentic browsing checks, and the AI labs publish their own, OpenAI, Anthropic, and Google’s Gemini team all serve llms.txt for their developer docs.

What the format still requires (unchanged)

Worth restating, because this is the part people get wrong and none of it moved in v2:

Each file list is a Markdown list where every item has a required link, then optionally a : and notes:

# Title

> Optional description goes here

Optional details go here

## Section name

- [Link title](https://link_url): Optional link details

## Optional

- [Link title](https://link_url)

Your v2 checklist

  1. Keep your existing file. It’s still spec-compliant. Don’t rewrite it.
  2. Serve Markdown versions of your important pages, using either URL pattern.
  3. Add the two link relations, ideally as an HTTP Link: header at the CDN or server level so you skip template edits entirely.
  4. Scope your files by path if one domain hosts several distinct areas.
  5. Point your links at Markdown, not HTML. The links inside llms.txt should lead to LLM-friendly content. This was true in v1 and it’s the most common thing done wrong.
  6. Validate before you ship, so the file you publish actually parses.

One thing v2 didn’t change

llms.txt is still a proposal, not a ratified web standard, and it’s still not a Google ranking factor. Google has said plainly that it doesn’t use the file. v2 makes the format more useful to the agents that do read it, which is a real and growing set, but it doesn’t turn the file into an SEO lever.

If someone sells you v2 as a ranking upgrade, read Is llms.txt a Google Ranking Factor? first.

The bottom line

v2 is a small, sensible revision that fixes the one structural gap in v1: agents could read your file but couldn’t find it, or find the Markdown it pointed at. Two link relations close that gap, and one of them is a CDN config line.

Ready to update? Generate a spec-compliant file with our llms.txt generator, then check it against the format with the llms.txt validator. If you’re still deciding whether the file is worth it for your site, start with When llms.txt Makes Sense.



Next Article
Is llms.txt a Google Ranking Factor? No. Here's What It's Actually For