How this check works
Scanaris requests /llms.txt at the root of your domain and counts it as present only if it responds 200, the content type is not HTML, the body contains no <html> tag and it is not empty. That rules out single-page apps that return their HTML for any path. If it does not find it, it opens an informational finding that costs no points: not having it is not a flaw, it is an opportunity few sites have taken yet.
What llms.txt is
It is a 2024 proposal (llmstxt.org) to give AI assistants a curated summary of your site in Markdown: who you are, what you do and which pages are worth reading to understand it. The idea is the same as robots.txt for crawlers or the sitemap for search engines, but aimed at language models: instead of ChatGPT, Claude or Perplexity having to crawl twenty pages full of menus and cookie banners to find out what you sell, you tell them in a short, clean file. It is worth being honest about its status: no major provider has confirmed using it officially to answer questions, but several documentation tools and frameworks already generate it, adding it takes ten minutes, and it is the natural place for the "machine-readable" version of your site when assistants go looking for one.
How to create it
# Scanaris
> Security, SEO and AI-visibility scanner for websites and apps built with AI tools. A 60-second scan returns every flaw with its fix.
## Key pages
- [What we check](https://yourdomain.com/checks): all 47 checks, each with a fix guide.
- [Pricing](https://yourdomain.com/pricing): free plan and Pro plans.
- [Blog](https://yourdomain.com/blog): security guides for Cursor, Lovable, Supabase, Next.js and Vercel.
## Optional
- [API documentation](https://yourdomain.com/docs/api)
- Structure: a single level-1 heading with the site name, a blockquote with the description in one or two sentences, then sections with link lists, each with a short description after the colon. The
## Optionalsection is for what can be skipped when context is short. - Content: write for someone who does not know your site and has thirty seconds. What problem you solve, for whom and where the important information lives. No empty marketing and no listing of all 300 blog pages.
- Where: in the project's public folder (
public/llms.txtin Nuxt, Next.js, Vite or Astro), served astext/plainortext/markdown. If your application catches all routes, add an exception. - Full version: the standard also provides for
/llms-full.txtwith the entire content of the key pages in Markdown, useful for technical documentation.
Check it is fixed
curl -si https://yourdomain.com/llms.txt | grep -iE "^(HTTP|content-type)"
curl -s https://yourdomain.com/llms.txt | head -5
Expected: 200, a text type and the first lines of your Markdown, not HTML.
Frequently asked questions
Does this make ChatGPT recommend me?
Not on its own. Whether an assistant knows you depends on it having read about you in many sources, and that is measured by AI visibility. llms.txt is one of the pieces, the cheapest one, and it helps most when an assistant visits your site live to answer a specific question.
Do I have to keep it updated?
Like the sitemap: whenever something important changes. If you generate it from your framework using the same routes as the sitemap, it maintains itself.
What if I block AI bots in robots.txt?
Then llms.txt is of little use, because they will never get to read it. Which bots you are blocking is covered by AI crawlers, and the full picture is in what AEO is.