We Turned Our S&P 500 Audit Method Into Two Free Tools
A checker that refuses to call a 200 response proof, and a generator that builds a file following the proposal. Both free, no signup. Neither one will improve your rankings, and we will say so on the page.
- llms.txt
- tools
- S&P 500
- AI visibility
- GEO
The check most tools get wrong
We checked /llms.txt on the corporate website of all 500 companies in the S&P 500. One hundred and ten of them returned a successful response. Only 71 served an actual file.
The other 39 returned 200 and handed back something else. A redirect to the homepage. A generic error page dressed as plain text. A body that was 15 bytes long and said "Be Right Back." Any checker that trusts a status code counts all of those as adoption.
So we built the checker we wanted to exist, and put it up for free.
What the checker does
Five steps, in order. Each one is there because a real company fooled a simpler version of the test.
- Fetch the path, follow redirects, and record where the request actually landed.
- Reject HTML twice: once on the content type, once on the first bytes of the body. Some servers label a web page as plain text.
- Compare the final path with the requested one. A hop from http to https that still ends at /llms.txt is fine. A hop to the homepage is not a file.
- Request a randomized path that cannot exist on the same domain. If the response matches, the server answers 200 for everything.
- Keep unknowns unknown. A 403, a timeout, or a server error is reported as inaccessible, never as absent.
That last one matters more than it sounds. Ninety-four of the 500 sites we audited blocked or dropped our request. Counting those as "no file" would have turned our inability to measure into a claim about them. T-Mobile blocked us with a 403 and has a 22,368-byte file with a title and links.
Five answers, not two
Valid and invalid are the wrong buckets. The proposal makes the H1 the only required part of the file. Link sections are optional. A file with a title and no links is thin, but calling it invalid is just wrong.
- Title and links. A real text file with a Markdown H1 and at least one Markdown link. Only 54 of 500 S&P 500 companies cleared this bar.
- Detected, title only. The file is there and the proposal is satisfied. Nothing is curated for a reader.
- Nonstandard. Something is served at the path, but no line starts with a Markdown H1.
- No file. A redirect, an HTML page, a generic fallback, an empty body, or an honest 404.
- Could not check. Blocked, timed out, or errored. Your file may well exist.
And a generator, because the file is small
A title, one sentence about what you do, and links to the pages worth reading. That is the whole file. The generator runs in your browser, sends nothing anywhere, and gives you something to copy or download.
It writes the shape the checker looks for, which is the point. Build a file, then check the URL after you deploy it. Plenty of servers quietly return a web page instead.
What we are not going to tell you
We have no evidence that publishing llms.txt causes an AI assistant to mention you, cite you, or describe you accurately. Google says Search ignores it, including for generative features. The proposal itself promises a curated map, not a ranking effect.
So the honest version is short. Publish a clean file if it is cheap and useful to you. Keep your site crawlable, which matters far more. Then go measure whether AI assistants actually mention and cite you, because that is the number that pays.
Presence is plumbing. Citations are the outcome. The tools are free either way.
Notes
- Both tools apply the method from our July 2026 S&P 500 census: a 15-second timeout, a one-megabyte read cap, redirects followed, and a randomized control request on the same origin.
- The checker reports what your server returned at one path at one moment. It is a publishing check, not a measurement of AI visibility.