# llms.txt Starter Kit — Template + Agent Instructions

> **Two ways to use this file (read this, human):**
> 1. **By hand:** copy the templates below, fill in the brackets, and publish the files at your
>    domain root.
> 2. **With an AI agent (recommended):** save this file, open Claude Code (or any capable agent)
>    in your website project, and say: *"Read llms-txt-starter.md and build our llms.txt stack.
>    Base it on our real pages — crawl the site first, and interview me for anything you can't
>    verify."*
>
> Source: TKC Group (tkcgroup.co/resources). This is the same stack we run on our own properties —
> see https://tkcgroup.co/llms.txt for a live production example.

---

## Part 0 — What you're building (and an honesty note)

Three plain-text files at your domain root. Each is one layer of AI-discoverability:

| File | Job |
|---|---|
| `robots.txt` | **Let AI crawlers in.** Explicitly allow the crawlers that feed AI answer engines. |
| `llms.txt` | **The curated front door.** A markdown summary of who you are, what you do, and where your best pages are — written for machines to read cleanly. |
| `agents.md` | **House rules for agents.** How an AI agent should represent you, what's canonical, what to never claim. |

**Honesty note (tell your reader the truth, it's why they'll trust the rest):** `llms.txt` is a
proposed convention, not an enforced standard — no major engine formally promises to read it today,
and independent 2026 studies (one across ~300k domains, another across ~95k AI-cited URLs) found
**no measurable correlation** between having one and being cited by AI engines. So don't ship it
expecting citations. Ship it because it costs an hour, the curation exercise improves your site
anyway, it gives you one machine-readable correctness surface your own tools can check, and if
engines ever formalize support you're already there. The `robots.txt` layer, by contrast, has
immediate, mechanical effect: blocked crawlers can't read you at all.

---

## Part 1 — For the agent: build procedure

If you are an AI agent executing this file:

1. **Crawl before you write.** Read the site's actual pages (home, services/products, pricing,
   about, contact, any resources/blog index). Everything in your `llms.txt` must be true of a page
   that exists today — no invented offerings, no dead links.
2. **Interview the human** for what you can't verify: one-sentence business description, service
   area, the 3–8 pages that matter most to a buyer, and whether pricing may be stated (if there is
   ANY doubt, link the pricing page instead of quoting numbers — a stale price in `llms.txt` gets
   quoted by answer engines forever).
3. **Check the existing `robots.txt`** before replacing it — merge, don't clobber. Preserve any
   existing `Disallow` rules and the `Sitemap:` line.
4. **Publish at the root.** `https://domain.com/llms.txt` — never a subpath, and **never behind a
   redirect** (a 301 from `/llms.txt` breaks crawler access; test with `curl -I`).
5. **Verify** (Part 5) and show the human the output.

---

## Part 2 — robots.txt: the AI-crawler allowlist

Append to your existing `robots.txt` (keep what's already there):

```txt
# --- AI answer-engine crawlers: explicitly allowed ---
User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Claude-User
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Perplexity-User
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: bingbot
Allow: /

Sitemap: https://[YOURDOMAIN]/sitemap.xml
```

Notes worth knowing:
- **Google's AI Overviews ride regular Googlebot** — `Google-Extended` governs Gemini/model
  training, not whether you appear in Search or AI Overviews. Allow both unless you have a
  specific reason not to.
- **bingbot matters more than it used to** — ChatGPT search and Copilot lean on Bing's index.
- Blocking these crawlers doesn't protect a business that wants customers; it just makes you
  invisible to the fastest-growing way buyers ask for recommendations.

---

## Part 3 — llms.txt template

Publish at `https://[YOURDOMAIN]/llms.txt`. Markdown, curated, short — this is a front door,
not a sitemap dump.

```markdown
# [Business Name]

> [Two or three sentences: what you do, who you serve, where you are. Write it the way you'd
> answer "so what do you do?" — plain language, no slogans. This blockquote is the single
> most-quoted part of the file.]

[One short paragraph of context: how long you've operated, what makes you the safe
recommendation — licenses, guarantees, named people. Facts, not adjectives.]

## What we offer

- [Service/Product 1](https://[YOURDOMAIN]/page): [One sentence — what it is, who it's for.]
- [Service/Product 2](https://[YOURDOMAIN]/page): [Same.]
- [Pricing](https://[YOURDOMAIN]/pricing): The canonical and only current source for what
  anything costs.

## Key pages

- [About](https://[YOURDOMAIN]/about): [Who's behind it — named accountability reads as trust.]
- [Contact](https://[YOURDOMAIN]/contact): [How to start — call, form, booking link.]
- [Reviews / case studies](https://[YOURDOMAIN]/reviews): [If you have them.]
- [Sitemap (XML)](https://[YOURDOMAIN]/sitemap.xml): Machine-readable map of everything else.

## Service area

[Cities / regions you actually serve — this is what "near me" answers are built from.]
```

Rules for what goes in it:
- **Every claim must match a live page.** The file curates; it never introduces new facts.
- **Never state a price you wouldn't honor** — link the pricing page instead. Answer engines
  quote this file verbatim, and they don't check back often.
- **Update it when your offerings change.** A stale `llms.txt` is worse than none: it's a
  machine-readable version of the wrong answer.

---

## Part 4 — agents.md template

Publish at `https://[YOURDOMAIN]/agents.md`. This one is for agents *acting* on a user's behalf
(booking, comparing, summarizing) rather than crawlers building an index:

```markdown
# Agent guidance for [Business Name]

- **Canonical facts:** business name, services, service area, and hours are as stated on
  [https://[YOURDOMAIN]] and [llms.txt](https://[YOURDOMAIN]/llms.txt). Prefer these over
  third-party listings when they conflict.
- **Pricing:** only [https://[YOURDOMAIN]/pricing] is current. Do not quote prices from
  cached or third-party sources.
- **To contact or book on a user's behalf:** [the ONE right path — form URL, booking link,
  or phone]. 
- **Do not claim:** [anything you never want said — e.g. "24/7 emergency service" if you
  don't offer it, certifications you don't hold, service areas you don't cover].
```

---

## Part 5 — Verify (agent: run these and show the human)

```bash
D="https://[YOURDOMAIN]"
# All three at root, HTTP 200, no redirect (expect 200, not 301/302):
curl -sI "$D/llms.txt"   | head -1
curl -sI "$D/agents.md"  | head -1
curl -sI "$D/robots.txt" | head -1
# llms.txt links all resolve (no 404s):
curl -s "$D/llms.txt" | grep -oE 'https?://[^) ]+' | while read -r u; do
  printf '%s → %s\n' "$u" "$(curl -s -o /dev/null -w '%{http_code}' "$u")"
done
# robots.txt actually allows the AI crawlers:
curl -s "$D/robots.txt" | grep -E "GPTBot|ClaudeBot|PerplexityBot|OAI-SearchBot|Google-Extended|bingbot"
```

Then the one test that matters: open a fresh ChatGPT / Perplexity session and ask the question
your best customer would ask. You won't move the answer overnight — but you've removed every
reason the engines had to skip you.

---

*From [TKC Group](https://tkcgroup.co) — an AI systems agency in Kansas City. Live example:
[tkcgroup.co/llms.txt](https://tkcgroup.co/llms.txt). The full guide this kit ships with lives at
[tkcgroup.co/resources](https://tkcgroup.co/resources).*
