Manual fix instructions

Fix the 7 Standards by hand.

If you'd rather edit your codebase directly, here are the exact code snippets for Flask, Express, Apache, Nginx, Cloudflare, and WordPress. Or skip all of this with our free Worker.

llms.txt accessible

How to Add llms.txt

Create a file at the root of your website called llms.txt with this structure:

# Your Site Name

> A concise summary of what your site offers.

## Main Pages

- [Home](/): Brief description of homepage
- [About](/about): What this page contains
- [API](/api): Developer resources

For static sites: Drop the file next to your index.html. For frameworks: Serve it as a static route or template.

Markdown negotiation

Enable Content Negotiation

When an AI agent requests your page with Accept: text/markdown, return clean Markdown.

Flask/Python (2 lines):

from markdownify import markdownify as md

@app.after_request
def negotiate(response):
    if request.headers.get('Accept','').startswith('text/markdown'):
        response.set_data(md(response.get_data(as_text=True)))
        response.headers['Content-Type'] = 'text/markdown; charset=utf-8'
    response.headers['Vary'] = 'Accept'
    return response

Node.js/Express:

app.use((req, res, next) => {
  if (req.headers.accept?.startsWith('text/markdown')) {
    // Use turndown or marked to convert HTML→MD
    res.set('Content-Type', 'text/markdown; charset=utf-8');
  }
  res.set('Vary', 'Accept');
  next();
});

WordPress: Install the "Agent Ready" plugin (coming soon). Cloudflare: Use a Worker to transform responses.

Alternate link tag

Add Alternate Link Tag

Add this line inside your <head> section on every page:

<link rel="alternate" type="text/markdown" href="/index.md">

This tells AI agents: "A Markdown version of this page lives here."

For static sites: Add it to your HTML template. For frameworks: Add to your base layout/head component. WordPress: Add to header.php via child theme or code snippet plugin.

JSON-LD structured data

Add Schema.org JSON-LD

Add this script tag inside your <head>:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Company",
  "url": "https://yoursite.com",
  "description": "What you do"
}
</script>

Pick the right @type for your page: - Homepage → Organization or WebSite - Blog posts → Article - Product pages → Product - FAQ pages → FAQPage - Events → Event

Vary header

Add Vary: Accept Header

This tells CDNs to cache HTML and Markdown versions separately:

Apache (.htaccess):

Header set Vary "Accept"

Nginx:

add_header Vary Accept;

Flask/Python:

response.headers['Vary'] = 'Accept'

Cloudflare: Enable "Respect Vary Headers" in Caching settings.

Link canonical header

Add Canonical Link Header

When serving the Markdown version, include a Link header pointing back to the HTML original:

Flask/Python:

response.headers['Link'] = f'<{html_url}>; rel="canonical"'

Nginx:

add_header Link '<https://yoursite.com>; rel="canonical"';

This prevents duplicate content issues with search engines.

ai.txt present

Create ai.txt

Create a file at your root called ai.txt to define agent rules:

# Agent Permissions for https://yoursite.com
Allow-RAG: yes
No-Training: false
Crawl-Delay: 1
User-Agent: *
Disallow: /admin

Directives: - Allow-RAG: yes|no — permit/block retrieval-augmented generation - No-Training: true|false — opt out of model training - Crawl-Delay: N — seconds between agent requests - Disallow: /path — block specific directories

Tired of editing config files?

Our Worker patches all 7 standards automatically.

Install free Worker