Blog

Manuel Tardivo

llms.txt: what it is good for (and what is not proven)

llms.txt is a machine-readable summary, not a proven ranking lever. What it is for, the limits, and how we serve it from Nitro rather than public/.

Cover image for the article “llms.txt: what it is good for (and what is not proven)”

Problem you solve: you want a canonical plain-text file with links and blurbs that automated tools (crawlers, assistants, internal pipelines) can read without heavy HTML parsing.

What is not proven (being explicit): as of 2026 there is no public vendor documentation proving that /llms.txt alone changes ranking or how often a consumer model (ChatGPT, Perplexity, Gemini, …) cites your brand. There is no published “llms.txt ranking factor”.

What is still worth doing: keep a summary + long-form artefact updated as a source of truth for people building datasets, support flows, or proprietary integrations — and to reduce ambiguity when a system reads your site.

What to put in the file (content)

  • Who you are, what you do, links to marketing pages with one-line descriptions.
  • Contacts and legal lines if partners/compliance need them.
  • A link to /llms-full.txt (or equivalent) if you ship a long transcript.
  • Blog / portfolio entries that are actually public, with short meta (like a sitemap, but plain text).

Typical Markdown-ish structure (plain text is fine):

# Brand name

One line on what you do.

## Pages
- /en/services — …
- /it/services — …

## Blog
- /en/blog/slug — title and SERP description

llms.txt vs classic SEO

AspectSEO (Google Search)llms.txt
GoalIndexing + ranking on SERPsText corpus reusable by tools
Evidence of impactPublic Google guidanceNo public consumer-LLM ranking standard
FormatHTML + structured dataPlain text / light Markdown
MaintenanceOngoing (content + technical)When key pages change

llms.txt does not replace meta tags, canonicals, hreflang, or performance — it complements them.

Implementation on Nuxt / Nitro (Snowinch)

On this site /llms.txt is not a public/ file: it is a Nitro route that generates text at runtime so it stays aligned with blog, portfolio, and i18n (see server/routes/llms.txt.get.ts and utils/buildLlmsSnowinch.ts in the repo). Same pattern for /llms-full.txt.

Why avoid a duplicate public/llms.txt: it conflicts with the dynamic route and risks stale content vs deploy.

Real example (Snowinch)

The public summary is served at:

https://www.snowinch.com/llms.txt

Open it in a browser: UTF-8 text, sensible Cache-Control, no auth. The extended transcript is /llms-full.txt on the same host.

Operational checklist

  1. 200 OK on /llms.txt, Content-Type: text/plain; charset=utf-8.
  2. Consistency with the sitemap and pages that are actually public (no drafts).
  3. Update when services, pricing, team, or blog slugs change.
  4. Do not promise unmeasurable effects on consumer LLMs in sales decks.

Summary

  • llms.txt = machine-readable site documentation — cheap and useful.
  • Do not sell it as a guaranteed AI-search SEO lever.
  • On stacks like Nuxt: prefer server-side generation (or a build step) over a forgotten static file in public/.
Portrait of Manuel Tardivo

Co-founder & CEO, Snowinch

Manuel Tardivo

On LinkedIn