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 this | Where | Time |
|---|---|---|---|
| Publish llms.txt on Webflow | Upload a .txt file, then publish | Site settings > SEO > LLMs.txt > Upload file | 5 min |
| Know the size limit | UTF-8, under 100 KB | Webflow Help Center | n/a |
| Test before launch | You cannot. Staging is excluded by design | .webflow.io returns nothing | n/a |
| Confirm it passes AIScan C2 | npx aiscan-cli yourdomain.com, read row C2 | aiscan.site | 30 sec |
| Fix a failing C2 row | Add an H1, one ## section and Markdown links | your file | 10 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
- Write your file locally and save it as
llms.txt, UTF-8, no BOM. - In the Designer or the dashboard, open Site settings.
- Open the SEO tab.
- Find the LLMs.txt section and click Upload file.
- Select your file.
- 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 sees | AIScan cannot see |
|---|---|
| The file exists and returns 200 | Whether the URLs inside it still resolve |
An H1, ## sections and Markdown links | Whether your one-line descriptions are true |
| That the response is reachable at the root | Whether your CMS changed since you uploaded |
| The rest of the content dimension: C1, C3, E3, E5 | Whether 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
The State of AI Agent Readiness in 2026: 473 Sites Measured
Half of the web's agentreadiness problem is already solved, and almost nobody has noticed which half. Across 473 real websites scanned by AIScan between 24 August and 3 September 2026, the median…
How to publish a valid llms.txt on Framer
Verified on 2 September 2026. Every path, plan limit and status code below was either read from Framer's own help centre or measured live against www.framer.com on that date. On Framer, llms.txt is…
The complete AI readiness setup for Replit in 2026
Verified 2 September 2026. Every command, config key and file path below was run against live Replit apps or fetched from Replit's own documentation on that date. On most platforms a missing…
How to publish a valid llms.txt on Replit
Verified 1 September 2026. On Replit, publishing /llms.txt is not one job. It is two, and which one you have depends on how the app is published. An app built by Agent runs on an Autoscale Deployment…
