/ โ† llms.txt Fixes / Missing llms.txt
In this guide
  1. What "missing" means to the auditor
  2. Diagnosing it in two minutes with curl
  3. A starter file you can publish today
  4. The fix, step by step
  5. Server rules that make the file reachable
  6. Hosted platforms and when uploading is not possible
  7. Things that look fixed but are not
  8. Questions and answers

What "missing" means to the auditor

A tool that looks for llms.txt has one place to look: the root of the host, at https://www.example.co.uk/llms.txt. It has no way to discover a file elsewhere unless something links to it. So the question is not whether the file exists somewhere on your server, but what happens when that one address is requested by a program rather than a person with a browser.

The auditor treats the file as missing whenever that request does not end in a usable text file. The common results look like this:

What comes backWhat it usually meansWhere to fix it
404 Not FoundNo file at the root, or it is in a subfolder, or the name differs in case (LLMS.txt, llms.TXT) on a case-sensitive Linux serverUpload or rename the file
200 with an HTML page (a soft 404)A CMS or JavaScript app answers every unknown address with its own pageWeb server or app routing
301 or 302 to the home pageA redirect plugin or rule sends all missing pages homeRedirect settings
301 to another host that then failsThe file is on the www host but not the bare domain, or on the old domain onlyHost names and redirects
403 Forbidden or a challenge pageA firewall, CDN bot rule or security plugin blocks non-browser clients, or file permissions are wrongFirewall, CDN or permissions
5xx error or a timeoutThe request is being passed to an application that fails on itServer configuration

Each row has a different fix, which is why the first step is always to look at the raw response rather than opening the address in a browser. A browser hides redirects, runs JavaScript and passes challenges, so it may show you a file that a crawler never gets.

๐Ÿ’ก A missing llms.txt is not an error in any search engine or crawler sense. llms.txt is a proposal from 2024, and no major AI search provider has confirmed using it. The auditor flags it because the file is cheap to add and some tools do read it, not because its absence harms your site.

Diagnosing it in two minutes with curl

Run these commands in a terminal (macOS and Linux have curl built in; recent Windows versions do too). Replace the domain with your own.

curl -sS -o /dev/null -w "%{http_code} %{content_type} %{redirect_url}\n" https://www.example.co.uk/llms.txt
curl -sS -o /dev/null -w "%{http_code} %{content_type} %{redirect_url}\n" https://example.co.uk/llms.txt
curl -sSL -A "Mozilla/5.0 (compatible; test-bot/1.0)" https://www.example.co.uk/llms.txt | head -n 5

The first two lines print the status, content type and any redirect target for the www and bare host. The third follows redirects with a bot-like user agent and shows the first five lines of whatever arrives. Read the results like this:

For comparison, run the same command against /robots.txt. If robots.txt returns a clean 200 text/plain and llms.txt does not, put llms.txt in the same folder as robots.txt and the server will almost certainly treat them the same way. The one exception is a platform that generates robots.txt itself rather than serving a file, which is how WordPress and Shopify behave out of the box.

A starter file you can publish today

An empty or placeholder file helps nobody, but you do not need a perfect one to get started. This is a complete, valid file for a fictional plumbing firm. Copy the shape, change every line, and keep it to the pages you would show a new customer first.

# Ashgrove Plumbing & Heating

> Gas Safe registered plumbing and heating engineers covering Sheffield
> and north Derbyshire. Domestic customers only; no commercial work.

Quotes are free and fixed-price for boiler installations. Emergency call-outs
are available 7am to 10pm.

## Services
- [Boiler installation](https://www.example.co.uk/boilers/): brands fitted, survey process, typical timescales
- [Boiler servicing and repair](https://www.example.co.uk/servicing/): annual service, common faults, call-out charges
- [Bathrooms](https://www.example.co.uk/bathrooms/): full refits, showers, what is included in a quote

## Customers
- [Areas covered](https://www.example.co.uk/areas/): postcodes served and travel charges
- [Contact and booking](https://www.example.co.uk/contact/): phone hours, online booking, emergency line
- [Guarantees](https://www.example.co.uk/guarantees/): workmanship guarantee and manufacturer warranties

That is enough to clear the missing finding. The structure rules are explained in the format guide, and choosing and describing pages well is covered in the content guide. Save the file as UTF-8 plain text named llms.txt, all lower case.

โš ๏ธ Everything in llms.txt is public. Do not list staging sites, private price lists or pages you have kept out of navigation on purpose.

The fix, step by step

Step 1

Check what the address returns now

Before uploading anything, run the curl commands from the diagnosis section against both the www and the bare version of your domain and write down the status code, content type and any redirect for each. This tells you whether you are dealing with a file that genuinely is not there, or with a server, redirect or firewall problem. Uploading a file will not fix a soft 404 or a firewall block, so knowing which case you have saves time.

Step 2

Write a short starter file

In a plain text editor, write an H1 with your business name, a two or three line summary in a blockquote, and one or two H2 sections listing the six to fifteen pages that best explain what you do, each as a Markdown link with a short note. Use full addresses on your main host name. Save it as llms.txt in lower case, encoded as UTF-8, and keep a copy on your computer as the master version you will edit later.

Step 3

Upload it to the document root

Put the file in the same folder that holds robots.txt, favicon.ico or your home page's index file. On Plesk that is usually httpdocs, on cPanel public_html, and on many Linux servers /var/www/html or a site folder under /var/www. Make sure the web server can read it, which normally means permissions of 644. Then request /llms.txt with curl again and check for a 200 status.

Step 4

Stop the app or CMS from swallowing the request

If curl still shows your theme or app shell with a 200 status, the server is passing the request to the application before looking for a real file. Add a rule that serves /llms.txt directly from disk, using the Apache or nginx examples in this guide, or place the file in the framework's public or static folder. Also check redirect plugins and rules that send every missing address to the home page, and exclude this path from them.

Step 5

Let non-browser clients through the firewall

If you get a 403 or a challenge page, look in your CDN, hosting firewall or security plugin for bot protection, JavaScript challenges or rules that block unknown user agents. Add an exception that allows plain requests to the exact path /llms.txt, alongside the one most sites already have for /robots.txt. Keep the exception narrow, limited to that path and to GET and HEAD requests, so the rest of your protection stays in place.

Step 6

Confirm the host name and cache

Check that the host your canonical URLs use serves the file, and that the other host redirects to it in a single step rather than to the home page. Purge the CDN or page cache for /llms.txt, because a cached 404 can survive for hours after the upload. Finally run the llms.txt Auditor again on the canonical domain and confirm that the file is found and that the format and link checks now have something to report on.

Server rules that make the file reachable

On most shared hosting a file placed in the document root is served straight away, because the standard rewrite rules only hand a request to the CMS when no real file matches. Problems start with custom rules, reverse proxies and JavaScript apps. Pick the block for your server.

Apache (.htaccess)

# Serve llms.txt as UTF-8 text and keep it out of the CMS rewrite
<Files "llms.txt">
    ForceType text/plain
</Files>
AddCharset utf-8 .txt
RewriteEngine On
RewriteRule ^llms\.txt$ - [L]

The RewriteRule line with a dash means "do nothing and stop", and it must sit above any rule that sends everything to index.php. Most CMS rules already include RewriteCond %{REQUEST_FILENAME} !-f, which skips real files; if yours lacks it, that is the cause.

nginx

location = /llms.txt {
    charset utf-8;
    try_files $uri =404;
}

An exact-match location wins over the general location / block, so the request never reaches try_files $uri /index.html or a proxy_pass to your app. The block inherits the root of the server block, and the standard mime.types file already maps .txt to text/plain; the charset line adds the encoding. Test with nginx -t before reloading. On Plesk, add the block under the domain's Apache and nginx settings as additional nginx directives.

JavaScript frameworks and static hosts

Next.js, Nuxt, Astro, Vite and similar tools copy anything in their public folder to the site root as-is, so public/llms.txt becomes /llms.txt. Hugo uses static, and Jekyll copies files from the project root unless they are excluded. If the site is a single-page app behind a catch-all rewrite on Netlify, Vercel or similar, real files are normally served before rewrites apply, but a forced rewrite rule can override that; check the rule list for anything marked as forced.

Hosted platforms and when uploading is not possible

Some platforms do not give you a document root at all.

If you cannot serve the file at the root, do not add a redirect from /llms.txt to an ordinary HTML page and consider it done. Some tools follow redirects and some do not, and an HTML page does not meet the format. Where the platform offers no route to a real text file, accept the finding and put the effort into the pages themselves.

Things that look fixed but are not

Questions and answers

1. Do I need an llms.txt file at all?

No. It is optional, and no major AI search or answer provider has confirmed that it reads the file when choosing sources. Your pages are crawled and understood without it. The case for adding one is that it is cheap and some tools, especially developer and research tools, do look for it. If your site is a small brochure site and your time is short, fixing crawl access and page content will matter more than this file.

2. Why does the file open in my browser but the auditor says it is missing?

Your browser may be seeing something different from what a program sees. It could be passing a firewall challenge silently, using a cached copy, or following a redirect to a host that serves the file while the auditor's host does not. Run the curl commands in this guide with a non-browser user agent and compare the status codes. The difference nearly always points to a firewall rule, a cache or a host name mismatch.

3. Can I put llms.txt in a subfolder such as /docs/llms.txt?

You can, and the proposal allows files in subpaths for sections of a site, but tools and the auditor look at the root first. A file only in a subfolder will usually go unnoticed. If your documentation lives under a subfolder, publish a root llms.txt that describes the site and links to the subfolder file in one of its sections, so tools can find their way from the standard location to the detailed one.

4. What permissions should the file have?

On Linux hosting, 644 is normal: the owner can read and write, and everyone else, including the web server, can read. If you see a 403 status and there is no firewall involved, check that the file is readable by the web server user and that the folder above it allows access. Avoid 777 or other world-writable settings. They do not fix reading problems and they create a real security risk on shared servers.

5. Is a redirect from /llms.txt to another address acceptable?

A redirect to another copy of the same text file, for example from the bare domain to the www host, is fine as long as it is a single hop to a 200 response. A redirect to the home page, a login page or an HTML page that merely contains the text is not. Tools may or may not follow redirects at all, so the most reliable arrangement is the canonical host serving the file directly with no redirect.

6. Should I create llms-full.txt at the same time?

Not necessarily. The companion llms-full.txt file holds the full text of your key pages, and it is most useful for documentation sites with a lot of reference material. For a small business site, getting a sound llms.txt in place comes first. Once it passes the auditor, read the llms-full.txt guide and decide whether your content suits it. Adding it later is simple if you generate it from the same page list.

7. Will the missing finding affect my SEO score or Google rankings?

Google has not said it uses llms.txt, so a missing file does not affect Google rankings, and it is not something Search Console reports. The auditor flags it because the auditor's job is to check this file specifically. Treat it as a low-risk improvement for the tools that read it. If your crawl, indexing or Core Web Vitals reports show problems, those deserve your attention before this does, because they affect every visitor and every crawler.

Check whether your llms.txt is found

The llms.txt Auditor fetches your /llms.txt and /llms-full.txt files, validates them against the proposed format, checks that each linked URL responds, confirms robots.txt allows the relevant AI crawlers and scores the quality of the content.

Open llms.txt Fixes โ†’
๐Ÿ’ฌ Got a problem?
Related Guides: All llms.txt Fixes  ·  Fixing llms.txt File Format  ·  Fixing robots.txt Blocking AI Crawlers  ·  llms.txt Guide  ·  Learning Hub

About aiwebpageseo

aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical SEO tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.