Table of contents
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 not a file you commit and it is not a text box you fill in. It is an upload in
a hosting panel, and that panel is switched off below a certain price. Get the plan and the path right
and the file works on the first publish. Get either wrong and Framer returns a clean 404 that tells you
nothing about why.
Quick summary
| Question | Answer |
|---|---|
| Where does the file live? | Uploaded under Site Settings → Hosting → Files, with the path set to the domain root |
| Which plans can do it? | Pro and Enterprise only. Free and Basic sites cannot host a static file at all |
| What formats are accepted for llms.txt? | TXT for a standard file, JSON for structured data |
| Does it work before publishing? | No. The file appears only after the site is published |
| Does Framer generate it for you? | No. Framer auto-generates robots.txt and sitemap.xml, not llms.txt |
| Which AIScan check is this? | C2, in the content dimension |
| Time to fix | About ten minutes, once you are on a plan that allows it |
The plan gate comes first
This is the part that wastes an afternoon if you skip it. Framer's static files article says, in its own words, "This feature is available on Pro and Enterprise plans." There is no workaround. Framer's URL handling gives you nothing to redirect to, and the Markdown twin of a page is not a substitute for an index file.
The llms.txt article and the static files article disagree slightly on wording, so here is the honest version of what each one states:
| Source | What it says about plans | Last updated |
|---|---|---|
| Framer help, "Static files" | "available on Pro and Enterprise plans" | 10 August 2026 |
| Framer help, "Add an llms.txt file to your site" | Pro and Enterprise in the body, and again in its own FAQ | 10 August 2026 |
Framer pricing, snapshot in Framer's own llms.txt | Pro is $30 per month, billed monthly | 30 August 2026 |
Framer's file settings also moved recently. According to the same article, "These settings used to live in the Domains dashboard and are now in your project's Site Settings, under Hosting." Older tutorials still point at the Domains dashboard, so ignore them.
Upload the file in Site Settings
Write the file first, locally, then upload it. The steps below are Framer's, verbatim in order:
- Open your dashboard.
- Open Site Settings.
- Go to Hosting → Files.
- Click the Add button.
- Upload your file.
- Set the file path. Framer's step wording is "do not include the file name", and its worked example
is a path of
/pdfsproducingexample.com/pdfs/example.pdf. Its FAQ then answers the root case directly: "You can upload a file and assign it to a root-level path such as/ads.txtor/llms.txt." So upload a file namedllms.txtand give it the root path. - Publish the site.
Two constraints worth knowing before you upload. According to the same article, Framer accepts TXT, CSV, JSON, XML, MD, PDF, JS and
several media types, but delivery depends on the MIME type: text/plain, text/xml,
application/json, application/pdf and the image, audio and video families render in a browser, and
in Framer's phrasing "all other file types will automatically download instead of rendering." Upload
Markdown with an .md extension and a crawler gets a download prompt rather than a body. Use .txt.
The same panel is how Framer does .well-known files. The help URL well-known-files now permanently
redirects to the static files article, and setting the path to /.well-known puts a file there. That
is the door for security.txt, assetlinks.json and an AI plugin manifest on a Framer site.
Point the links at Framer's Markdown twins
Here is the part no other builder in this series can offer. Framer already serves a Markdown version of
every optimised page at the same URL, either through an Accept: text/markdown request header or by
appending ?md to the address. Measured on 2 September 2026, www.framer.com/pricing with that header
returned 200, text/markdown; charset=utf-8, 11,651 bytes, opening with YAML front matter.
So the link targets inside your llms.txt should carry ?md. Framer does this in its own file: fetched from
www.framer.com/llms.txt on 2 September 2026 it is 5,900 bytes, and it points at
https://www.framer.com/ai/?md and its siblings rather than the HTML pages. Its own header line tells
an agent to "follow a link instead of guessing paths". Most llms.txt files in the wild link to HTML and make an agent parse a page it did not need to
parse. On Framer that work is already done.
Keep the file itself plain: an # H1 with your site name, a > blockquote summary, then ## sections
holding - bullets of [name](url): description. If you would rather start from a generated draft,
the AIScan llms.txt generator writes a spec-shaped file you
can edit and upload. The common mistakes are catalogued in
our llms.txt validator guide.
One caveat, stated in Framer's own AI agents article: "Markdown is only generated for optimized pages."
Verified on 2 September 2026, that is not theoretical. Framer's own help articles are not optimised, and
Accept: text/markdown on /help/articles/static-files/ returns text/html. Test any URL before you
put a ?md version of it in your index.
Verify it landed
Run the scan first. It answers the question the file exists to answer, and it checks the rest of the
content dimension in the same pass:
npx aiscan-cli yoursite.com
Read the C2 row. C2 passes when the file exists, returns 200, and contains an H1, at least one ##
section and Markdown links. A blank file at the right URL fails it.
By hand, if you prefer:
curl -sI https://yoursite.com/llms.txt
# expect: HTTP/2 200 and content-type: text/plain
| What you see | What it means |
|---|---|
200 and text/plain | Working. Framer serves it from the edge with server: Framer |
404, tiny body | The upload is missing, the path is wrong, or the site has not been published since |
| A download prompt in the browser | Wrong extension. Re-upload as .txt |
200 but empty content | The file uploaded is empty; C2 will still fail |
Framer returns a real 404 for a missing root file, which is more helpful than it sounds. Verified on
2 September 2026, www.framer.com/llms-full.txt returned 404 with a ten-byte body, while an unknown
page path returned the site's own 404 page. Framer does not answer 200 with the homepage the way
Ghost does, so a status-code check on Framer is trustworthy.
Where AIScan fits, and where it doesn't
| C2 can tell you | C2 cannot tell you |
|---|---|
| The file exists at the root and returns 200 | Whether the pages it lists are your important pages |
It has an H1, ## sections and Markdown links | Whether the ?md targets you listed are optimised |
| It is reachable without JavaScript | Whether the descriptions are accurate today |
Which of the other content checks pass alongside it | Whether your plan will still allow file hosting next month |
The rest of the dimension is documented on our content checks page.
Your next ten minutes
Draft the file, check your plan, upload it at the root path, publish, then scan. If Framer is not your only stack, the same check behaves differently elsewhere: on Webflow the upload is free but invisible on the staging domain, and on Squarespace there is no file at all, only a settings field. Whether the file changes anything is a separate question, and we measured it in does llms.txt actually work.
Run npx aiscan-cli yoursite.com, read row C2, and browse the rest of the fix guides at
aiscan.site/guides.
Frequently asked questions
Which Framer plans can host an llms.txt file?
Pro and Enterprise. Framer's static files article states the feature is available on Pro and Enterprise plans, and its llms.txt article repeats that in its own FAQ. Free and Basic sites cannot host a static file at the domain root at all, so there is no workaround on those tiers. Framer's pricing snapshot, dated 30 August 2026 in Framer's own llms.txt, puts Pro at $30 per month billed monthly.
I uploaded the file and /llms.txt still returns 404. What went wrong?
Three causes, in order of likelihood. You have not published the site since uploading, and Framer only serves the file after a publish. The path field is wrong, so the file is sitting at something like /files/llms.txt instead of the root. Or the site is on Free or Basic, in which case the Files panel would not have accepted the upload in the first place. Re-open Site Settings, Hosting, Files, confirm the path, and publish again.
My browser downloads the file instead of showing it. How do I fix that?
Framer decides between rendering and downloading by MIME type. Its static files article lists text/plain, text/xml, application/json, application/pdf and the image, audio and video families as the types that render, and says all other file types will automatically download instead. A file uploaded with an .md extension falls outside that list. Re-upload the same content as llms.txt with a .txt extension and it will render as text/plain.
AIScan says C2 fails but the file loads in my browser. Why?
C2 requires more than a 200. The file must contain an H1, at least one ## section and Markdown links. An empty file, a file that is only a paragraph of prose, or a file that lists bare URLs without link syntax will all load fine in a browser and still fail C2. Open the file and check it has the three structural elements before assuming the hosting is broken.
Does Framer generate llms.txt automatically like robots.txt and sitemap.xml?
No. Framer generates robots.txt and sitemap.xml for every published site automatically, and its AI agents article confirms that. llms.txt is not in that set. It is a file you write and upload, and nothing regenerates it when you add a page or a CMS entry, so it needs a manual refresh whenever your site structure changes meaningfully.
Should the links inside my llms.txt point at ?md URLs?
On Framer, yes, and this is the platform's real advantage. Framer serves a Markdown version of every optimised page at the same URL through an Accept: text/markdown header or a ?md query parameter. Framer's own llms.txt links to ?md addresses throughout. The one caveat comes from Framer's own documentation: Markdown is only generated for optimised pages, so test each URL before listing its ?md form.
Can I put other files at /.well-known on Framer?
Yes, through the same panel. Set the path to /.well-known and the file is served from there with its name appended. Framer's own documentation lists security.txt, assetlinks.json, apple-app-site-association, apple-developer-merchantid-domain-association, atproto-did and an AI plugin manifest as common uses. The help URL for well-known files now permanently redirects to the static files article, because they are one feature.
How do I check whether my Framer site is serving the file to crawlers that do not run JavaScript?
Run npx aiscan-cli yoursite.com and read the C2 row, which fetches the file the way a crawler would. By hand, curl -sI https://yoursite.com/llms.txt should return 200 with content-type: text/plain. Framer returns a genuine 404 for a missing root file rather than the homepage, so unlike some hosts a plain status check on Framer can be trusted.
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…
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…
The complete AI readiness setup for Lovable in 2026
Two Lovable apps can look identical in a browser and differ by a factor of fifty in what an AI crawler actually receives. On 1 September 2026 we fetched fifteen published Lovable apps twice each,…
