All articles

AI Search

llms.txt for Local Service Businesses: What to Put In It and What It Won't Do

A clear-eyed guide to llms.txt for contractors and local service sites: an annotated example file, what to leave out, and why it's a minor supplement to schema and content — not a ranking mechanism.

Lead Search Pros Editorial·August 30, 2026· 12 min read
llms.txt for Local Service Businesses: What to Put In It and What It Won't Do

llms.txt has generated a disproportionate amount of attention for a file that almost no AI system is confirmed to read reliably. It is a plain-text file, proposed in 2024, meant to give AI systems a concise, curated summary of a site — and it is worth understanding honestly, both what it is and what it demonstrably is not, before you spend time building one.

This guide gives you an annotated example file built for a local service business, a clear list of what does not belong in it, and an honest account of adoption status so you do not walk away thinking you have just installed an AI-visibility switch. It also covers the AI crawler directives in robots.txt that do have a real, immediate effect on whether your content can be used at all — a decision that matters far more than anything in llms.txt.

If you have not yet covered the higher-leverage fundamentals, start with schema markup for local service businesses and answer engine optimization. llms.txt is a supplement to that work, not a substitute for it.

What llms.txt actually is

llms.txt is a proposed plain-text file, placed at the root of a domain (yoursite.com/llms.txt), containing a short Markdown-formatted summary of the site: what the business does, links to key pages with one-line descriptions, and sometimes an expanded version at /llms-full.txt with more detail. The idea, proposed by developer Jeremy Howard in September 2024, is to give a large language model a compact, curated map of a site instead of forcing it to crawl and parse the whole thing.

It is a convention, not a standard ratified by any search engine or AI lab, and no major AI company — not OpenAI, not Anthropic, not Google, not Perplexity — has publicly committed to systematically fetching and using it as part of how they answer questions. Some AI tools built for developers (certain coding assistants and documentation-focused crawlers) have adopted it more directly, particularly for technical documentation sites, but that use case is different from a local roofing or HVAC company hoping a consumer-facing assistant will read it.

How it differs from robots.txt and sitemap.xml

robots.txt is a directive file: it tells crawlers what they are and are not allowed to access, and well-behaved crawlers (including the major AI crawlers) respect it. sitemap.xml is a complete inventory: it lists every URL you want indexed, with no editorializing about which pages matter most. Both have been standard for two decades and are honored by essentially every crawler that matters.

llms.txt is neither a directive nor an inventory. It is a curated, human-written pitch — closer in spirit to an executive summary than to a technical protocol — and it is entirely voluntary on both ends: voluntary for you to publish, and voluntary (currently mostly unconfirmed) for any AI system to read. That distinction is the single most important thing to understand before investing meaningful time in one.

Chart

Illustrative confidence level by file type

Directional comparison only, reflecting how reliably each file type is honored by major crawlers as of 2026 — not a formal measurement or vendor-published figure.

  • robots.txt directives9relative reliability (0-10)
  • sitemap.xml8relative reliability (0-10)
  • Schema / structured data7relative reliability (0-10)
  • llms.txt2relative reliability (0-10) · Voluntary, unconfirmed adoption by major consumer AI assistants

An annotated example file for a local service company

Below is a realistic llms.txt for a hypothetical HVAC company, with the reasoning behind each section. Adapt the specifics to your trade and market.

Business summary

"# Summit HVAC Services\n\n> Summit HVAC Services installs, repairs, and maintains residential and light commercial heating and cooling systems in the Minneapolis–St. Paul metro area. Licensed and insured, operating since 2011, with same-day emergency repair availability." — Keep this to two or three sentences. State what you do, where, and one differentiator that is factually verifiable, not a slogan.

Services list

"## Services\n- AC repair and installation\n- Furnace repair and installation\n- Heat pump installation\n- Ductwork repair and replacement\n- Annual maintenance plans\n- Emergency after-hours repair" — A short bulleted list, not full descriptions; the linked pages carry the detail.

Service areas

"## Service Areas\nMinneapolis, St. Paul, Bloomington, Edina, Eden Prairie, Minnetonka, Plymouth" — Name the actual cities you dispatch to, matching what is stated in your schema and on your service-area pages exactly. Inconsistency between this list and your site content undermines the whole point of the file.

Pricing model (directional, not exact quotes)

"## Pricing\nFree in-home estimates for installations. Diagnostic fee for repair calls, waived if repair is completed. Typical furnace replacement range and typical AC replacement range are published on our cost guide page." — State your pricing model honestly without pretending to give a firm number that varies by job; link to the page with actual ranges.

Key pages with one-line descriptions

"## Key Pages\n- [Furnace Replacement Cost Guide](/blog/furnace-replacement-cost): Typical price ranges and what drives cost\n- [Emergency Repair](/services/emergency-hvac-repair): 24/7 emergency dispatch details and coverage area\n- [Maintenance Plans](/services/maintenance-plans): Plan tiers, what's included, and scheduling" — This is the section doing the most real work: a clean map from topic to URL, similar in spirit to a sitemap but with context attached.

FAQ answers, licensing, and contact

"## FAQ\nQ: Do you offer financing? A: Yes, financing is available through a third-party lender for qualifying installations.\n\n## Licensing & Insurance\nLicensed HVAC contractor, Minnesota license #XXXXXX. Fully insured and bonded.\n\n## Contact\nPhone: 763-280-3155 | Email: info@leadsearchpros.com\n[Book a call](/booking)" — Include the facts that build trust and disambiguate you, and keep contact information identical to what appears in your schema and footer.

What to leave out

Do not use llms.txt as a place to stuff keywords, marketing copy, or claims you would not put on the visible site — there is no evidence it carries special ranking weight, and inflated claims here carry the same reputational risk as anywhere else if a system does surface them. Do not duplicate your entire site's content into it; that defeats the purpose of a concise summary and risks becoming stale immediately.

Do not include private or sensitive information — internal pricing formulas, unpublished phone lines, staff personal details, or anything not already intended for public consumption. And do not treat it as a place to make claims that contradict your schema or your visible pages; any inconsistency across these surfaces undermines the entity corroboration you are trying to build, which matters far more than the file itself.

Hosting, maintenance, and keeping it in sync

Host it as a plain UTF-8 text file at the domain root, same level as robots.txt. It requires no server configuration beyond that — any static file host or CMS that allows a custom file upload can serve it. Keep it under roughly one to two printed pages; the value proposition collapses if it becomes long enough that no summarization benefit remains.

The maintenance burden is the real cost. Every time you add a service, change a service area, update pricing, or retire a page, the file needs a matching edit or it becomes actively misleading rather than merely unused. Assign it to whoever already owns your schema and NAP consistency, and review it on the same cadence — quarterly is reasonable for most local service businesses.

Honest expectations: it is not a ranking mechanism

No AI assistant guarantees it reads llms.txt, and none has published documentation stating it factors into how businesses get named or ranked in consumer-facing answers. Publishing one will not move your share of AI-assistant mentions in any measurable, attributable way for most local service categories, and you should not budget meaningful time against an expectation that it will.

The honest case for building one is small but real: it costs little to create once your content is already organized, it does no harm if kept accurate and in sync, and if adoption among consumer AI assistants does expand over the next few years, having a well-maintained file already in place costs you nothing to have started early. Treat it as a low-priority, low-cost addition — not a project that competes for time against schema, content, or review generation.

The AI crawler directives in robots.txt that actually matter

Unlike llms.txt, the crawler directives in your robots.txt file have a confirmed, immediate effect: they determine whether specific AI companies' bots can access your content at all. The major named user-agents as of 2026 include GPTBot (OpenAI), ChatGPT-User (OpenAI, used for live browsing during a chat), PerplexityBot (Perplexity), ClaudeBot (Anthropic), and Google-Extended (which controls use of your content for Google's AI features, separate from standard Googlebot indexing).

Blocking these bots is a real, binary decision with tradeoffs, not a style choice. Allowing them makes it possible for your content to be cited in AI answers; blocking them removes that possibility entirely for that assistant, full stop, regardless of how good your schema or content is. Some publishers block AI crawlers over content-licensing concerns, which is a legitimate business decision for content-heavy media companies — but for a local service business whose entire objective with AI search is to be named and recommended, blocking these bots directly works against your own goal. Check your current robots.txt for accidental blanket disallows (sometimes left over from a staging site configuration) before doing anything else in this space.

How llms.txt pairs with schema and answer-shaped content

If you think of AI visibility as a stack, llms.txt sits at the very top as an optional, lightweight summary layer. Structured data (schema markup) sits below it as a confirmed, machine-readable layer that both traditional search and AI systems demonstrably use. Below that is the foundation: plainly written, answer-shaped content on your actual pages — content that states your service area, your pricing model, and direct answers to real customer questions in ordinary sentences a system can lift and quote.

In practice, an llms.txt file that points to well-structured, schema-backed, answer-shaped pages is coherent and low-risk to add. An llms.txt file built as a substitute for that underlying work is a wasted afternoon dressed up as an AI strategy. Spend the bulk of your effort on the foundation; treat llms.txt as the last five percent, not the first fifty.

Frequently Asked

Questions & answers

Do I need an llms.txt file to show up in ChatGPT or Perplexity answers?

No. Neither platform has confirmed that llms.txt factors into what they cite, and businesses without one are cited regularly based on their indexed content, schema, and third-party corroboration. It is optional, not a prerequisite.

Will publishing llms.txt improve my ranking in AI Overviews or AI Mode?

There is no published evidence or documentation from Google indicating llms.txt affects AI Overviews or AI Mode. Google's AI features draw on the same indexed content and structured data used for standard search, not on this file.

What's the difference between llms.txt and llms-full.txt?

llms.txt is meant to be a short summary with links, while llms-full.txt (an informal extension of the convention) contains more complete content inline, sometimes an entire condensed version of the site. Most local service businesses only need the short version.

Should I block AI crawlers like GPTBot to protect my content?

For a local service business trying to be recommended by AI assistants, blocking these crawlers works directly against that goal, since it removes any chance of citation from that platform. Blocking makes more sense for content-heavy publishers with licensing concerns, not typically for a contractor or lender site.

How long should an llms.txt file be?

Aim for roughly half a page to two pages of plain text — a business summary, a services list, service areas, key page links, and contact details. Longer files lose the summarization benefit that is the entire point of the convention.

Can I just point an AI tool at my sitemap.xml instead?

A sitemap lists every URL with no context, which is useful for crawling completeness but does not provide the curated, plain-language summary llms.txt is meant to offer. They serve different purposes and are not interchangeable.

Who should maintain the llms.txt file inside a small business?

Whoever already owns your schema markup and Google Business Profile consistency is the natural owner, since the file needs to stay aligned with those same facts. Review it on the same quarterly cadence you use for other NAP and structured data checks.

Is llms.txt worth doing at all?

It is worth a small amount of time once your schema and content foundation is solid, since it costs little and does no harm if kept accurate. It is not worth prioritizing ahead of answer-shaped content, schema markup, or review generation, which carry far more confirmed impact.

Put this into practice

Check your market for exclusive leads

See whether your service area and category are still open for exclusive representation.

Check availability