llms.txt for Insurance Sites
Insurance is the most regulated consumer vertical that publishes this file, so it should have
the most careful one. We fetched /llms.txt from 40 insurance, insurtech, brokerage
and reinsurance domains: nine answered with real text, and not one of those nine tells an AI
assistant what it may not say. Here is the full sample, the defects inside the live files, and
the buckets an insurer actually needs.
What 40 Insurance Domains Serve Today
On October 16, 2026 we requested /llms.txt from 40 domains with a research
user agent, redirect following and a 15-second timeout. Thirteen produced something usable and
nine of those were a genuine plain-text or Markdown file. Twenty returned a 404, and six refused
the request at the edge before the origin ever saw it.
| Response | Count | Examples |
|---|---|---|
200 with a real text file | 9 | geico.com, lemonade.com, libertymutual.com, metlife.com, zurich.com, nextinsurance.com, policybazaar.com, beazley.com, qbe.com |
404 | 20 | allstate.com, statefarm.com, travelers.com, axa.com, aig.com, chubb.com, swissre.com, admiral.com, saga.co.uk and 11 more |
403 from the edge | 6 | progressive.com (383 bytes), farmers.com (369), esurance.com (380), amfam.com (145), allianz.com, lv.com |
200, but HTML behind the path | 3 | root.com (redirects twice to the joinroot.com homepage), usaa.com, aaa.com |
| No response at all | 2 | prudential.com, auto-owners.com (connection never completed) |
Two details in that table matter more than the headline count. First, the 403s are cheap
blocks: four of the six refusal bodies are under 400 bytes, which is a WAF answering, not an
editorial decision — the same pattern we found across marketplaces and directories. Second,
a 404 is not always a miss: nationwide.com returned 404 with a 9-byte body, and markel.com
with 103 bytes, while allstate.com and chubb.com returned 404s with 551,710 and 288,164 bytes
of HTML behind them. A crawler that only reads status codes is fine either way; a human running
curl to check their own CDN is not.
Inside the Nine Live Files
The nine real files total 114,768 bytes across 66 H2 sections and roughly 8,812 words. Every one opens with an H1 and a blockquote summary, which means the spec's basic shape has reached this vertical. What has not reached it is link discipline.
| Domain | Bytes | H2 | Links | Optional |
|---|---|---|---|---|
| policybazaar.com | 46,087 | 18 | 247 | no |
| beazley.com | 23,978 | 5 | 169 | yes |
| lemonade.com | 16,282 | 8 | 140 | no |
| zurich.com | 11,532 | 12 | 59 unparseable + 1 | no |
| libertymutual.com | 6,342 | 10 | 59 | no |
| nextinsurance.com | 4,875 | 6 | 43 | yes |
| geico.com | 2,706 | 3 | 20 | no |
| metlife.com | 2,197 | 2 | 8 unparseable | no |
| qbe.com | 769 | 2 | 5 | yes |
Across the nine files there are 751 link-shaped references and 67 of them — 9% — are written as
[title] (url) with a space before the parenthesis. Markdown does not parse that as
a link; it renders as literal brackets followed by bare text, which means MetLife's entire file
and 59 of Zurich's 60 references reach a model as flat prose with the URLs loose in it. It is a
generator or template defect, not a typo a human made eight times, and it is the single most
common defect we found in this vertical. For the record, it is also invisible to the
checker if you only validate the front
matter and headings — link syntax has to be parsed.
The other number worth noting is a zero: not one of the 751 references points at a
.md twin of the page it names. In the developer documentation files we audited a
few days earlier, half of all links pointed at Markdown renditions, which is why those files
work with agents. Insurance sites list HTML marketing pages — correct for a crawler, thin for
a model that has to strip navigation to read them. GEICO is the exception that proves the
rule, and it says so in the file.
The YMYL Gap: No File Restricts What an Assistant May Say
Insurance sits in the category search teams call YMYL — your money or your life — where an
inaccurate answer is a real loss, so the useful part of an llms.txt here is not the
product list. It is the block that tells an assistant what it may not state. We searched all
nine files for restriction language: must not, do not state,
not assert. The result was zero files.
That is a striking contrast with the two-sided platforms we probed the day before, where the
best files open with sections such as "What you can state confidently" and "What you must not
assert" — see
the marketplace audit
for that pattern. The closest thing in the insurance sample is Lemonade's
## Footer & Compliance section, which links the terms of service, the electronic
transmissions consent notice, the legal page, the privacy pledge and an accessibility statement,
and QBE's ## Optional block pointing at its robots.txt and an
ai.txt. Both are routing, not limits. The only file in the sample that even uses the
phrase should not is Zurich's, once, about the summary block itself.
The rule for a regulated vertical is simple: for every claim an assistant could make on your behalf that you would have to correct in writing, write the sentence that forbids it. Premiums require a completed quote. Eligibility is a per-state underwriting decision. A claim is paid after adjudication, never before. Coverage for a named loss cannot be confirmed from a page. Those four lines cost 40 words and they are the reason the file exists.
GEICO's Agent Stack and NEXT's Working MCP Server
Two files in the sample point past plain links, and both check out. GEICO's file ends with a
section called ## For agents & crawlers that links a sitemap, an agent-skills
index, an API catalog and a capability manifest; all three resolve from this server —
/.well-known/agent-skills/index.json returns 200 with 1,548 bytes of JSON,
/.well-known/api-catalog returns 200 with 505 bytes as
application/linkset+json, and /.well-known/ai-catalog.json returns 200
with 1,625 bytes. The file also promises a Markdown rendition of any content page via an
Accept: text/markdown header, and that works: a request to the auto-insurance page
came back 200 as text/markdown; charset=utf-8 in 1,255 bytes — though the rendition
itself carried a Source: line for the homepage and a Section: Home
label, so verify the mapping before you rely on it.
NEXT Insurance is the only insurer here that documents a live machine interface. Its file names
a quote MCP server, and an MCP initialize call to
quote-mcp.nextinsurance.com/mcp returns 200 over Server-Sent Events with
serverInfo of com.nextinsurance/quote, version 1.0.60, protocol
version 2025-06-18. A plain GET to the same endpoint returns 403 with a 919-byte HTML body, so
if you are auditing a competitor's declared MCP endpoint with curl and only trying
GET, you will record a false negative. The setup page it links,
app.nextinsurance.com/llms.txt, is a separate 4,193-byte file explaining how to
connect — an approach worth copying if your product has an API:
document the interface in its own file
and keep the marketing index short.
The Seven Buckets an Insurance File Needs
- Identity and licence. Who the legal entity is, which states or countries it is licensed in, and the regulator that supervises it — the line that stops an assistant describing a regional carrier as national.
- Products. One link per coverage line with a one-line note: auto, home, renters, life, commercial, specialty. Not per-state variants; those belong in the sitemap.
- Quotes and eligibility. The quote page as the only source of a price, plus whatever page explains underwriting and state availability.
- Claims. First notice of loss, documents required, typical timeframes and the status-lookup page — the block that decides whether an assistant routes a stressed user to a form or to a phone tree.
- Licensing, complaints and disputes. Licence numbers by state, the complaints route and the regulator's contact page. This is what makes the file credible to a compliance reviewer.
- Representation limits. The four to six sentences forbidding price, eligibility, coverage and settlement claims. Add tax and investment advice while you are there.
- Optional. Investor relations, newsroom, careers, sustainability. Everything a reader can safely skip.
# Example Mutual: reference for AI assistants
> Example Mutual sells auto, home and term life coverage in 12 U.S. states
> through its own agents. Prices depend on the applicant, the state and the
> coverage chosen; only a completed quote is a price. This page defines what
> AI systems may state about the company and its products.
## Products
- [Auto insurance](https://example.com/auto): Coverage, discounts, state availability.
- [Home insurance](https://example.com/home): Includes renters and condo policies.
- [Term life](https://example.com/life): Terms, riders, underwriting basics.
## Quotes and eligibility
- [Get a quote](https://example.com/quote): The only source of a price.
- [Where we operate](https://example.com/states): Products sold in each state.
## Claims
- [File a claim](https://example.com/claims): Steps, documents, timeframes.
- [Claim status](https://example.com/claims/status): Requires a policy login.
## Licensing and complaints
- [Licences](https://example.com/licenses): Entity names and licence numbers by state.
- [Complaints](https://example.com/complaints): Internal review and regulator contacts.
## Must not assert
- That a premium, discount or approval applies without a completed quote.
- That coverage applies to a specific loss, person or property.
- That a claim will be paid, or for how much, before adjudication.
- Investment, tax or legal advice, on any page.
- Anything from a page behind a policy login.
## Optional
- [Investor relations](https://ir.example.com): Filings and results.
- [Newsroom](https://example.com/newsroom): Announcements and media contact.
- [Sitemap](https://example.com/sitemap.xml): Every indexable page. Draft the structure with the llms.txt generator, validate it, then read what not to include before you publish — the exclusion list matters more in a regulated vertical than the link list does.
robots.txt, llms-full.txt and Verifying Delivery
Two companion files are worth checking at the same time, because their state explains the
403s. We fetched /robots.txt from all 40 domains: 32 answered 200, six returned the
same 403 as /llms.txt (progressive.com, allianz.com, farmers.com, esurance.com,
amfam.com, lv.com) and two never connected. Of the 32 readable files, exactly two name an AI
crawler token — geico.com lists all eleven we tested (GPTBot, ClaudeBot, PerplexityBot,
Google-Extended, CCBot, Bytespider, Amazonbot, Applebot-Extended, meta-externalagent,
anthropic-ai, cohere-ai) and libertymutual.com names ten of the eleven. The rest of the
vertical leaves AI crawling entirely unaddressed, which is the honest state of most regulated
industries today. See
the crawler-token reference
for the names to use.
As for llms-full.txt: none of the three insurers we probed serves it — geico.com,
lemonade.com and zurich.com all return 404 with HTML bodies between 22,708 and 114,327 bytes.
That is defensible for a site whose long-form content is marketing copy, and the reason to have
it, or not, is set out in
the full-file comparison.
Whatever you build, verify it from outside with the three commands that produce the numbers in this article:
# 1. Status, content type and redirect chain — a 403 here is your WAF, not your copy
curl -sI -L -A "Mozilla/5.0 (compatible; GPTBot/1.2; +https://openai.com/gptbot)" \
https://example.com/llms.txt | grep -iE "^(HTTP|content-type|location)"
# 2. Parse the links the way a model would: strict Markdown only
curl -sL https://example.com/llms.txt | grep -oE "\[[^]]+\]\(https?://[^)]+\)" | wc -l
curl -sL https://example.com/llms.txt | grep -oE "\][[:space:]]+\(" | wc -l
# 3. Confirm every listed target still answers 200
curl -sL https://example.com/llms.txt | grep -oE "https?://[^)]+" | while read u; do
printf "%s %s\n" "$(curl -s -o /dev/null -w '%{http_code}' -L "$u")" "$u"
done | grep -v "^200"
Command two is the one this vertical needs most: a non-zero result from the second
grep means you are publishing links that no model will follow, which is precisely
the state of two of the nine live insurance files we measured today.
Status codes, content types, redirect counts, byte sizes, section counts, link counts and
on-page strings referenced were captured from this server on October 16, 2026 using a
research user agent with redirect following and a 15-second timeout, plus one MCP
initialize call to a declared quote endpoint. Edge bot rules, generated files and
platform policies change without notice, so re-check your own paths rather than treating this
table as current configuration for any company named.