---
title: "llms.txt checker: validate your llms.txt"
description: "Check your llms.txt for free: can AI crawlers fetch it, does it follow the llms.txt format, are its links described, and is there an llms-full.txt?"
url: "https://goodforbots.com/tools/llms-txt-checker"
---

# llms.txt checker

Check your llms.txt for free: can AI crawlers fetch it, does it follow the llms.txt format, are its links described, and is there an llms-full.txt?

Run it at https://goodforbots.com/tools/llms-txt-checker: enter a domain in the form, which needs JavaScript.

Each run reads robots.txt first, then /llms.txt, the start of /llms-full.txt and your homepage asked for as Markdown, as [GoodForBotsBot](https://goodforbots.com/bot). Results are not saved, and no listing is created.

## What the llms.txt checker checks

It runs these checks from the full scan, under the same rules, and the descriptions below come from our [standards catalogue](https://goodforbots.com/standards). Unlike the full scan, it never retries through a browser, so a file behind bot protection can fail here and still pass in a report.

### llms.txt

We request /llms.txt and read it as Markdown: its H1 title, its length and its link entries, each a list item that starts with a link. Numbered items, bold links and notes after a dash count; lines inside fenced code blocks are examples, not structure. The structural check is separate from the quality check below.

**Results:** Pass: a usable file has an H1, at least one link entry and at least 100 characters. Warn: the file is shorter than 100 characters, or lacks the H1 or the links. Fail: the file is absent, refused to our crawler, answered by a bot challenge, unreachable or disallowed by robots.txt, or the address answers with an HTML page, with JSON, or with text that has neither an H1 nor a link, as a catch-all route does.

[Full methodology and sources](https://goodforbots.com/standards#llms-txt)

### llms.txt quality

We inspect the parsed root llms.txt for a summary blockquote and the proportion of links with descriptions. Any text after a link that says something counts as its description, whether it follows a colon, as the format specifies, or a dash or other separator; the report points out descriptions that do not use the colon. This is a usefulness test on top of the file’s structure.

**Results:** Pass: a summary and descriptions on at least 60% of links. Warn: at least 25% are described, but the summary or the higher threshold is missing. Fail: no usable file, no links or fewer than 25% described links. The note about separators never changes the result.

[Full methodology and sources](https://goodforbots.com/standards#llms-txt-quality)

### Markdown at its own URL

We read the first 64 KB of /llms-full.txt and count Markdown or MDX links in llms.txt. A bundle and individual page mirrors are alternative ways to satisfy this check. A bundle must be Markdown content: not an HTML page or JSON, with at least one heading or link, and neither a copy of llms.txt nor the homepage the address redirects to.

**Results:** Pass: a usable bundle of at least 2,000 bytes, or at least three Markdown links in llms.txt. Warn: a smaller bundle or fewer linked mirrors. Fail: neither route is present, and the report says why when the bundle address was refused, answered by a bot challenge, disallowed by robots.txt, unreachable, a copy of llms.txt or a redirect to the homepage; negotiation alone does not pass this check.

[Full methodology and sources](https://goodforbots.com/standards#llms-full-txt)

## Fix what it finds

- [How to write a useful llms.txt](https://goodforbots.com/guides/llms-txt): Write an llms.txt that tells AI agents what your site covers: a complete tested example, the format explained, publishing checks and fixes for common mistakes.

[Run the full scan](https://goodforbots.com/#scan) · [All free tools](https://goodforbots.com/tools)

## Structured data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://goodforbots.com/tools/llms-txt-checker#webpage",
      "url": "https://goodforbots.com/tools/llms-txt-checker",
      "name": "llms.txt checker: validate your llms.txt",
      "description": "Check your llms.txt for free: can AI crawlers fetch it, does it follow the llms.txt format, are its links described, and is there an llms-full.txt?",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://goodforbots.com/#website"
      },
      "breadcrumb": {
        "@id": "https://goodforbots.com/tools/llms-txt-checker#breadcrumb"
      },
      "mainEntity": {
        "@id": "https://goodforbots.com/tools/llms-txt-checker#app"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://goodforbots.com/tools/llms-txt-checker#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://goodforbots.com/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Tools",
          "item": "https://goodforbots.com/tools"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "llms.txt checker",
          "item": "https://goodforbots.com/tools/llms-txt-checker"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://goodforbots.com/tools/llms-txt-checker#app",
      "name": "llms.txt checker",
      "url": "https://goodforbots.com/tools/llms-txt-checker",
      "description": "Check your llms.txt for free: can AI crawlers fetch it, does it follow the llms.txt format, are its links described, and is there an llms-full.txt?",
      "applicationCategory": "DeveloperApplication",
      "browserRequirements": "Requires JavaScript.",
      "isAccessibleForFree": true,
      "provider": {
        "@id": "https://goodforbots.com/#organization"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://goodforbots.com/#organization",
      "name": "Good for Bots",
      "url": "https://goodforbots.com",
      "logo": "https://goodforbots.com/icon-512.png",
      "founder": {
        "@id": "https://goodforbots.com/#person-mateusz-pawlica"
      },
      "contactPoint": {
        "@type": "ContactPoint",
        "contactType": "customer support",
        "email": "support@goodforbots.com",
        "url": "https://goodforbots.com/contact"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://goodforbots.com/#website",
      "name": "Good for Bots",
      "url": "https://goodforbots.com",
      "description": "Check if AI crawlers can access and read your website, free. Get a score out of 100 with every finding and fix prompts, then browse reports in the directory.",
      "inLanguage": "en",
      "publisher": {
        "@id": "https://goodforbots.com/#organization"
      },
      "potentialAction": {
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://goodforbots.com/directory?q={q}"
        },
        "query-input": "required maxlength=120 name=q"
      }
    },
    {
      "@type": "Person",
      "@id": "https://goodforbots.com/#person-mateusz-pawlica",
      "name": "Mateusz Pawlica",
      "givenName": "Mateusz",
      "familyName": "Pawlica",
      "jobTitle": "Founder of Good for Bots",
      "description": "Web developer who builds directories and AI-powered products, and the founder of Good for Bots.",
      "url": "https://goodforbots.com/about#founder",
      "sameAs": [
        "https://pl.linkedin.com/in/mateusz-pawlica-65238816b",
        "https://pawlicaweb.pl/o-mnie"
      ],
      "knowsAbout": [
        "llms.txt",
        "robots.txt",
        "AI crawlers",
        "Markdown content negotiation",
        "Structured data",
        "Technical SEO",
        "Web directories",
        "Next.js",
        "TypeScript",
        "Generative AI"
      ],
      "worksFor": {
        "@id": "https://goodforbots.com/#organization"
      }
    }
  ]
}
```
