Blog

llms.txt & .md files - Important AI Visibility helper or hoax?

Malte Landwehr

CMO, Peec AI

Jul 30, 2025

Inside the page

Share this

Large language models (LLMs) often struggle to understand websites effectively. Unless they rely on grounding (connecting to real-time data sources), they can’t tell which pages matter most on your site.

Some say that the llms.txt solves this problem. A few create a .md version of every page. Others call it pointless. Let’s take a look at what it actually does and whether it’s worth your time.

What is the llms.txt?

llms.txt is a simple, machine-readable text file that gives LLMs (such as ChatGPT and Claude) context about your website. Think of it like a helpful guide that points AI agents toward your most important content.The file uses markdown formatting and lives in the root of the domain.

The protocol actually includes two files: 

  • llms.txt: Links to your most important pages.

  • llms-full.txt: Contains detailed content in a single file, often with examples and concrete steps to perform certain tasks.

Both use standard markdown formatting to organize the information.

An abstract example of an llms.txt file.

An abstract example of an llms.txt file.

Where did llms.txt come from? 

In September 2024, Jeremy Howard published the proposal for the llms.txt protocol. Howard is the founder of FastAI and AnswerAI, two research labs in the AI and deep learning space, and a lecturer at the Universities of Queensland and Stanford

As of July 2025, more than 600 websites have adopted the standard. Among them Perplexity, Anthropic, Cursor, Stripe, Solana, ElevenLabs, Hugging Face, Raycast, Yoast, DataForSEO, Zapier, and Cloudflare.

How does it compare to existing standards?

llms.txt vs robots.txt

These serve completely different purposes. robots.txt is a file webmasters use to tell crawlers which areas of a website they’re allowed to crawl. This is relevant for all kinds of crawlers. SEOs have been using the robots.txt to handle how search engines crawl their websites for more than 20 year. If you want to control how LLM crawlers access your website, that still happens in the robots.txt as well.

The llms.txt is just a helper file with no directives. You can use it neither to allow nor forbid crawling of your website.

Ilms.txt vs sitemap.xml

Both help make crawlers aware of certain content, but they work at different scales. 

Traditional crawlers aim to crawl a website in its entirety and recrawl pages after an update. That’s where the XML sitemap shines.

The llms.txt usually contains only a small subset of pages.

Let’s take an online shop as an example. In your XML sitemap, you’d want to include every single product and category page - potentially millions of URLs. In your llms.txt, you’d probably only want to link to the return policy, and explain that product and category pages exist. And in the llms-full.txt you would explain how to use the search function and the checkout process. And maybe how to integrate all of that via an API.

What does the llms.txt look like in practice?

llms.txt example

Here’s how Perplexity structures their llms.txt:

# Perplexity
## Docs
- [List Async Chat Completions](https://docs.perplexity.ai/api-reference/async-chat-completions-get.md): Lists all asynchronous chat completion requests for the authenticated user.
[...]
- [API Groups & Billing](https://docs.perplexity.ai/getting-started/api-groups.md): Learn how to use the Perplexity API Portal to manage access, usage, billing, and team collaboration.
- [Pricing](https://docs.perplexity.ai/getting-started/pricing.md)
[...]
- [System Status](https://docs.perplexity.ai/status/status.md)
## Optional
- [Forum](https://community.perplexity.ai)
- [Blog](https://perplexity.ai/blog)
- [Changelog](https://docs.perplexity.ai/changelog/changelog)

Notice how Perplexity makes heavy use of headlines (including a hierarchy), lists, and labeled links.

llms-full.txt example

Perplexity’s llms-full.txt goes much deeper. The file has more than 7,000 lines and contains over 30,000 words. Here’s a short extract:

[...]
## 🔑 API Key Setup
All examples require a Perplexity API key. You can set it up in several ways:
### Environment Variable (Recommended)
```bash
export PPLX_API_KEY="your-api-key-here"
```
### .env File
Create a `.env` file in the example directory:
```bash
PERPLEXITY_API_KEY=your-api-key-here
```
[...]

The file contains detailed instructions and examples on how to work with the Perplexity API.

SEOs & the llms.txt

In recent months, some members of the SEO community have started to create llms.txt files that either contain links to all their SEO landing pages - or outright include all website content.

There are already 10+ tools that automatically create your llms.txt for you.

The markdown copy-paste approach (and why it doesn’t work)

A few SEOs have even started creating markdown copies of every blog article as .md files, then linking all these .md files from their llms.txt. This approach creates unnecessary duplicate content without clear benefits.

This trend has led to questions in the Google Search Console Help Community, where people ask whether they need separate markdown versions of all their content. Here is a recent example:

My website may serve two versions of the same content via different URLs:

https://mywebsite.com/about-my-website
https://mywebsite.com/about-my-website.md

The llms.txt file will reference the .md (markdown) versions

John Müller from Google addresses this directly:

AFAIK none of the AI services have said they're using LLMs.TXT (and you can tell when you look at your server logs that they don't even check for it). To me, it's comparable to the keywords meta tag - this is what a site-owner claims their site is about ... (Is the site really like that? well, you can check it. At that point, why not just check the site directly?)

llms.txt & Answer Engines

Not a single LLM-driven search and answer engine has announced support for the llms.txt protocol. With limited evidence of actual usage and no official backing from major AI companies, widespread adoption seems unlikely.

When you see Generative Engine Optimization (GEO) checklists claiming everyone needs an llms.txt, or consultants recommending markdown copies of every blog post, there’s no credible evidence this helps with GEO. It might actually hurt by creating duplicate content, diluting your ranking signals across multiple URLs, and wasting crawl budget.

However, if you have an API or a website/app that you want AI agents and vibe coders (AI-assisted developers and builders) to use, investing in an llms.txt, with a focus on your API documentation, seems like a good bet.

Getting started with llms.txt

If the llms.txt fits your specific use case, here’s how to approach it:

  1. Create the basic file

  2. Create a plain text file named llms.txt.

  3. Add a list of your most relevant pages.

Host it at the root of your domain: example.com/llms.txt

Follow these best practices:

  • Keep it short and curate strictly - quality over quantity.

  • Use plain URLs, or even better, markdown with one URL per line.

  • Add brief comments or page titles to give context on links.

  • Focus on pages that help AI agents complete specific tasks on your website.

Testing your llms.txt

We recommend a multi-tiered approach to verify your implementation actually works:

Test 1: Verify retrieval 

Ask ChatGPT to retrieve your llms.txt file. You might want to repeat this with multiple LLMs if your IT team has blocked AI bots in the past.

Test 2: Chat

Upload or copy and paste your file content into a new chat session. If possible, disable web search / grounding. Then instruct the LLM to answer questions based only on your file.

Then chat away. Ask the LLMs questions and see if the answers are correct.

Especially with the llms-full.txt file, the LLM should be able to answer even complex questions.

Test 3: Test agent performance (optional)

If you want AI agents to interact with your website, give an OpenAI (or other) agent a task on your website that typically takes too long or fails regularly. Then give it the llms.txt as context and measure whether performance improves.

Test 4: Test vibe coding tools (optional)

Provide a vibe coding tool (like Cursor, or Claude in coding mode) of your choice with your llms.txt and see if you can build a simple prototype that interacts correctly with your API.

Our verdict on llms.txt

The llms.txt is a helpful tool to give AI agents and coding tools a pointer on how to interact with your website. And the llms-full.txt can give AI coding tools all the context they need in a single place.

If AI gents, AI coding tools, and vibe coders are your target audience, you should seriously consider adding an llms.txt.

If you are an SEO looking to get more traffic from ChatGPT, Perplexity & Co, llms.txt and .md files are a distraction without any upside. And the .md files are potentially hurting your traditional SEO performance, which can negatively impact your AI visibility via web search / grounding.

Malte Landwehr
Malte is the Chief Marketing Officer of Peec AI. After co-founding an SEO agency, and a stint in management consulting, he spent 10 years in leadership roles at the SEO behemoths idealo and Searchmetrics. Malte has a degree in Computer Science and is a regular speaker at SEO conferences. In his free time, he maintains a Github repository of LLM-related http referers.

© Copyright 2025 Peec AI GmbH. All rights reserved.

Follow us

© Copyright 2025 Peec AI GmbH. All rights reserved.

Follow us

© Copyright 2025 Peec AI GmbH. All rights reserved.

Follow us