Dark green cover graphic reading Publish a valid llms.txt on Webflow, with an illustration of a document card being uploaded into a rounded container.
Dark green cover graphic reading Publish a valid llms.txt on Webflow, with an illustration of a document card being uploaded into a rounded container.
AI Readiness

How to publish a valid llms.txt on Webflow

Publish llms.txt on Webflow in five minutes: Site settings > SEO > LLMs.txt, under 100 KB, UTF-8, and how to verify AIScan check C2 on your live domain.

AAsif Rahman August 29, 2026 6 min read
#llms.txt#Webflow#AI search#AEO

This guide covers C2 · Content.

Table of contents

Verified 29 August 2026.

Webflow added a native llms.txt upload on 23 July 2025, so publishing one now takes about five minutes and no custom code. Go to Site settings > SEO > LLMs.txt, click Upload file, publish the site, and the file answers at https://yourdomain.com/llms.txt. Three Webflow rules decide whether it actually passes: the file must be UTF-8 and under 100 KB, it never appears on your .webflow.io staging domain, and Webflow serves it with an x-robots-tag: noindex header. That last one alarms people. It is deliberate, and it is fine.

Quick summary

If you want to…Do thisWhereTime
Publish llms.txt on WebflowUpload a .txt file, then publishSite settings > SEO > LLMs.txt > Upload file5 min
Know the size limitUTF-8, under 100 KBWebflow Help Centern/a
Test before launchYou cannot. Staging is excluded by design.webflow.io returns nothingn/a
Confirm it passes AIScan C2npx aiscan-cli yourdomain.com, read row C2aiscan.site30 sec
Fix a failing C2 rowAdd an H1, one ## section and Markdown linksyour file10 min

Why Webflow gave llms.txt its own setting

Webflow's changelog entry is one sentence: "You can now upload an llms.txt file within your site's SEO settings." The update, dated 23 July 2025, goes on to say Webflow "will make the llms.txt file you upload available in your domain's root, while also ensuring it does not get indexed by search engines."

The important word is upload. On Shopify the file is generated from your catalogue. On Astro and Next.js it is a build-time route you write in code. On Webflow it is a static artifact you hand to the hosting layer, which means nothing regenerates it when your CMS changes. Whatever you upload is what agents read until you upload something else. Plan for that before you write the file, not after.

Upload the file

  1. Write your file locally and save it as llms.txt, UTF-8, no BOM.
  2. In the Designer or the dashboard, open Site settings.
  3. Open the SEO tab.
  4. Find the LLMs.txt section and click Upload file.
  5. Select your file.
  6. Publish the site to your custom domain. Nothing is live until you publish.

Webflow's own help article states the constraint plainly: the file must be "UTF-8 encoded and under 100 KB", and "after publishing your site, the file will be available at https://example.com/llms.txt." It also warns that "it won't be published to your Webflow staging domain", which is the single most common reason a Webflow reader thinks the feature is broken.

What goes inside the file

The llms.txt spec, proposed by Jeremy Howard of Answer.AI on 3 September 2024, is short. An H1 carrying the project name is the only required section. Everything after it is optional: a blockquote summary, some prose, then H2-delimited lists of Markdown links.

AIScan's C2 check is stricter than the spec's minimum but still small. It wants the file to exist, return 200, and contain an H1, at least one ## section, and Markdown links. A skeleton that passes:

# Acme Studio

> Brand and web design studio in Lisbon. Case studies, services and pricing.

## Services

- [Brand identity](https://example.com/services/brand): Naming, logo, type and colour systems.
- [Web design](https://example.com/services/web): Webflow builds, CMS setup, ongoing support.

## Work

- [Case studies](https://example.com/work): 14 projects with outcomes and timelines.

Keep the description after each colon specific. That is the part an agent reads to decide which link is worth fetching, and nothing can validate it for you.

Three Webflow limits that catch people out

100 KB is a real ceiling, not a guideline. For scale, stripe.com/llms.txt was 65,026 bytes when we measured it on 29 August 2026, and that file is closer to a content dump than a map. If your draft is approaching 100 KB you have written the wrong document. Cut it to a curated index of your best 30 to 60 URLs.

Staging cannot verify anything. Because the file is excluded from .webflow.io, your first proof comes after a production publish. Fetch the live URL straight afterwards rather than assuming.

The noindex header is not a mistake. Webflow sends x-robots-tag: noindex on the file, which stops it appearing as a search result. It does not stop an agent requesting it. Google's own AI optimization guide says Google Search ignores llms.txt files entirely and that maintaining one "won't harm (nor help) your visibility or rankings", so there is no ranking left for the header to cost you.

Check the live URL

Run the scan first. It reads the file the way our checker does and tells you which rule failed:

npx aiscan-cli yourdomain.com

Read row C2. A pass means the file exists, returns 200 and carries the structure above. C1, C3 and E3 sit next to it, covering Markdown negotiation, structured HTML and server-rendered text, so one run answers more than this question.

If you would rather check by hand, two commands do it:

curl -sI https://yourdomain.com/llms.txt | head -5
# expect: HTTP/2 200 and content-type: text/plain
curl -s https://yourdomain.com/llms.txt | head -20
# expect: a "# " H1 on line 1, and at least one "## " section

Webflow's own file is a working reference. On 29 August 2026 https://webflow.com/llms.txt returned 200, content-type: text/plain; charset=utf-8 and x-robots-tag: noindex.

Where AIScan fits, and where it doesn't

AIScan seesAIScan cannot see
The file exists and returns 200Whether the URLs inside it still resolve
An H1, ## sections and Markdown linksWhether your one-line descriptions are true
That the response is reachable at the rootWhether your CMS changed since you uploaded
The rest of the content dimension: C1, C3, E3, E5Whether any model chose to read it

That last row is the honest one. Ahrefs measured 137,210 domains in June 2026 and found 28% publish a valid llms.txt while 97% of those files received zero requests in May 2026, with the caveat that their sample skews technical. We looked at the same question in more depth in does llms.txt actually work. Publish one because it costs five minutes, not because anyone has proven a return.

Keeping it current on a CMS site

A Webflow upload goes stale the moment you add a CMS item. Two habits keep it useful: re-upload whenever you ship a new service page or case study, and diff the link list against your sitemap quarterly. To start from a generated draft, our llms.txt generator builds one from a crawl that you can trim and upload. Shopify stores get this automatically instead, covered in the Shopify guide.

The spec moved on 10 August 2026 too. llms.txt v2 adds rel="alternate" type="text/markdown" and rel="describedby" link relations for discovery, so a file published today is worth revisiting once validators catch up.

What to do next

Upload the file, publish, then run npx aiscan-cli yourdomain.com and read row C2. If it fails, the cause is almost always a missing H1 or a staging URL. The rest of the checks live on the content dimension page, and every platform walkthrough we have published sits in /guides.

Frequently asked questions

My llms.txt is uploaded but AIScan still fails check C2. What is wrong?

Fetch the live URL and look at the first line. C2 needs the file to return 200 and contain an H1, at least one ## section and Markdown links. A file that is only a bullet list of URLs with no heading returns 200 and still fails. Add a '# Site name' line at the top and one '## Section' heading, re-upload, and publish again.

Webflow rejected my file on upload. Why?

Webflow requires the file to be UTF-8 encoded and under 100 KB. Files exported from Word or a Windows editor often carry a byte order mark or a different encoding. Re-save as plain UTF-8 without a BOM. If the file is over 100 KB, cut it down to a curated index rather than a full content export.

/llms.txt returns 404 on my webflow.io preview link. Is the feature broken?

No. Webflow's help article states the file 'won't be published to your Webflow staging domain'. The upload only appears on your custom domain after a production publish. Test on the live domain, not on the .webflow.io preview.

Webflow sends x-robots-tag: noindex on the file. Should I be worried?

No. Webflow does this on purpose so the file does not compete in search results, and it does not stop an agent from requesting the URL. Google's AI optimization guide says Google Search ignores llms.txt files anyway and that publishing one will not harm or help rankings.

Do I still need an XML sitemap if I publish llms.txt?

Yes. They serve different readers. Search crawlers use the sitemap, and llms.txt is a curated summary for language models with one-line descriptions a sitemap cannot carry. Webflow generates the sitemap for you under the same SEO settings, so keeping both costs nothing.

Can Webflow generate llms.txt from my CMS collections automatically?

Not today. The SEO setting takes a file you upload, so nothing regenerates it when a CMS item changes. Treat re-uploading as part of shipping a new service page or case study, and diff the link list against your sitemap once a quarter.

How long should the file be?

Short enough to read in one pass. Webflow caps it at 100 KB, and for comparison stripe.com/llms.txt was 65,026 bytes on 29 August 2026, which is closer to a content dump than a map. A curated index of 30 to 60 URLs with honest one-line descriptions is more useful than an export of every page.

Does any AI system actually read llms.txt?

The evidence is thin. Ahrefs measured 137,210 domains in June 2026 and found 28 percent publish a valid llms.txt while 97 percent of those files received zero requests in May 2026, with the caveat that their sample skews technical. No major AI vendor documents reading third-party llms.txt files. Publish one because it takes five minutes, not because a return is proven.

Related guides