vibecheck0.3.0
AI readinessaeollms-txt-missinginfo

Missing llms.txt in Vanilla JS

llms.txt is the emerging convention for handing LLMs a clean, curated markdown map of your site — what it is, and links to the pages you most want read — instead of leaving them to scrape rendered HTML full of navigation and markup. As assistants increasingly answer questions using your content, an llms.txt is a cheap way to steer them to the right, accurate source.

Symptoms

  • Assistants summarise your site from noisy scraped HTML
  • No single machine-readable index of your key pages for LLMs
  • A GET to /llms.txt returns 404
  • You have no control over which pages LLMs prioritise

How VibeCheck catches it

In your widget · Problems

infoaeoNo llms.txt

To your coding agent · MCP

agent › get_detected_issues
{ detector: "aeo", issue: "No llms.txt", threshold: "/llms.txt is not served as a 2xx text/plain or markdown response" }

The same string in your widget and in your agent’s context — no screenshot, no copy-paste.

Root causes

  • The file simply hasn’t been created yet
  • It exists but isn’t served with a text/plain or markdown content type
  • It’s not deployed to the site root

The fix for Vanilla JS

Place a static llms.txt at the web root and ensure your server sends a text/plain content type for it.

html
# served from https://acme.com/llms.txt with Content-Type: text/plain

Steps

  1. Write /llms.txt: an H1 title, a one-line summary, then curated link sections
  2. Link your most important, canonical pages with a short description each
  3. Serve it from the site root with a text/plain or markdown content type

See the general, framework-agnostic fix →

FAQ

Is llms.txt an official standard?
It’s an emerging convention, not a formal standard, but it’s increasingly recognised. It costs almost nothing to add and gives you a curated surface for LLMs, which is why it’s worth doing.
What’s the difference between llms.txt and robots.txt?
robots.txt controls what crawlers may access; llms.txt is a positive, curated markdown summary that points LLMs to your best content. They’re complementary.
What should I put in it?
A title, a one-line description of the site, and grouped links to your most important canonical pages, each with a short description. Keep it concise and current.