AI SEO·April 10, 2026·12 min read·Dr. Kebar Y
Why every contractor should publish llms.txt in 2026 (the AI-first SEO file nobody talks about)
If you are a contractor in Central Florida who has not yet published an llms.txt file on your website, you are behind. Not behind in the sense of being a few weeks late to a trend, but behind in a structural way that gets more expensive to fix the longer you wait. Every week that passes without your business having an llms.txt file is another week that ChatGPT, Claude, Perplexity, and every other language model is answering homeowner questions about your metro without any clean, machine-readable information about who you are, what you do, and why you are different from your competitors.
I run AI search research at Reimagine Digital Marketing and my background is a PhD in marketing focused on small business survival patterns plus two years inside Google and the last year inside Meta. I spent most of late 2025 studying how the major language models actually cite local businesses in their answers, which citations they trust, and what the operators of cited businesses were doing differently from the operators of ignored ones. I published the long version of that research in a previous post called What ChatGPT and Perplexity actually cite for local services. This post is the followup: the single specific file you can ship this week that moves the needle faster than almost any other AI-SEO optimization.
The file is called llms.txt. It lives at the root of your domain, it is written in plain Markdown, and any contractor with a basic website can publish one in under an hour. I am going to explain what it is, why it matters, who has already adopted it, and exactly how to write one for a contractor business. If you have heard about llms.txt before and dismissed it as a developer-only thing, I hope this post changes your mind. If you have never heard of it, you are about to learn about the single highest-leverage AI-SEO move of the current year.
Important disclaimer before we start: llms.txt is still a community-driven proposal, not an official web standard like robots.txt (which is an IETF RFC). Jeremy Howard of Answer.AI proposed the format in September 2024. Adoption exploded in late 2024 and through 2025, and today thousands of sites ship one, including Anthropic, Cloudflare, Vercel, Cursor, and many of the docs sites hosted on Mintlify. But the format is still evolving, LLM crawlers are still updating how they use it, and the impact measurements are preliminary. I am confident the return on one hour of work is positive for any contractor. I am not promising a specific dollar outcome, and I am skeptical of anyone who does.
The file on your server that tells ChatGPT what to say about your business
When a homeowner in Winter Haven opens ChatGPT and types 'best garage door repair Polk County Florida,' the model has a decision to make. Does it cite a business by name? Does it punt with a generic 'here are some things to look for when hiring a contractor'? Does it surface three businesses from a scraped directory that may or may not still exist? Or does it confidently recommend a specific local contractor and explain why that one is worth calling first? The answer depends on what information the model has been able to find and trust about each contractor in that metro, and the cleanest possible source of that information is an llms.txt file at the root of the contractor's website.
Think about how an LLM experiences your website today without llms.txt. It fetches your home page. It tries to parse a 200KB HTML document full of navigation, footer links, advertising scripts, tracking pixels, CSS for dark mode, JavaScript that loads asynchronously, image alt text, social media embeds, cookie banners, and marketing copy wrapped in nested divs. Somewhere inside that noise is the information the model actually needs, but finding it is computationally expensive and error-prone. The model has a limited context window. It cannot process your entire site every time someone asks a question about your metro. It has to pick what to read, and raw HTML is the worst possible format to offer it.
An llms.txt file solves that problem at the source. It is a single file, written in plain Markdown, that tells a language model exactly who you are, what you offer, where you operate, and what the most important pages on your site are. No navigation noise. No ads. No JavaScript. Just the information, in the format the model actually wants. When a model fetches your llms.txt, it can read and understand your business in under 2,000 tokens, which is about one percent of what it would cost to scrape and parse your home page. The cheaper and easier you make it for the model to learn about your business, the more likely it is to cite you correctly.
What llms.txt actually is, and where it came from
llms.txt was proposed in September 2024 by Jeremy Howard, co-founder of Answer.AI and one of the most respected researchers in the applied AI community. Howard is also the creator of fastai, a widely used deep learning library, and a former president of Kaggle. He is not a marketing vendor selling a snake oil product. He is a researcher who identified a specific technical problem (LLMs waste compute parsing HTML) and proposed a specific technical solution (give them Markdown instead).
The format itself is simple. You create a file called llms.txt and put it at the root of your website, so it is accessible at https://yourdomain.com/llms.txt. The file is written in Markdown. It starts with an H1 heading that contains the name of the business. It continues with a blockquote that describes the business in one or two sentences. After that, you add Markdown sections that expand on the details: services, location, founders, pricing, whatever you want the model to know. At the end, you can include a list of links to the most important pages on your site, which tells the model where to fetch additional information if it needs to go deeper.
There is also a secondary format called llms-full.txt, which is a comprehensive version intended for models that have the context window to process more information. For most local contractor businesses, the standard llms.txt is sufficient and llms-full.txt is overkill. Start with llms.txt and add llms-full.txt later only if you find yourself consistently hitting its limits.
Adoption has moved fast. Anthropic publishes one. Cloudflare publishes one. Vercel publishes one. Cursor (the AI coding tool) publishes one. The entire network of documentation sites hosted on Mintlify started auto-generating llms.txt files in November 2024, which brought thousands of developer-facing sites into the ecosystem overnight. As of early 2026, the IETF has launched an AI Preferences Working Group to formalize standards for AI agent interactions with web content, and while llms.txt is not formally part of that effort yet, the direction of travel is clear. This is not a passing fad. It is the plain-text layer that the AI-first web is building underneath everything.
Why HTML is broken for language models
If you have ever opened your website's View Source in a browser (Ctrl+U in Chrome) and tried to read it as a human, you know immediately why HTML is hostile to language models. A typical contractor home page returns 100KB to 500KB of HTML, the vast majority of which is layout, scripts, tracking code, and structural markup. The actual human-readable content, the sentences that describe what your business does, is maybe 5 to 10 percent of the bytes. The rest is noise from a language model's perspective.
Language models parse HTML the same way a human would if they were forced to read source code directly. It is possible, but it is slow, expensive, and error-prone. Every token the model spends on a div tag is a token it is not spending on actually understanding your business. Modern models have tokenizers that handle HTML reasonably well, but the efficiency loss is real and cumulative. When a model is answering a question that involves comparing ten local businesses, it cannot afford to read every home page in full. It has to skim, pattern-match, and make best-guess associations. Your business loses exposure not because the model dislikes you but because it gave up on parsing your HTML and moved on.
llms.txt flips the math. A well-written contractor llms.txt is 2,000 to 5,000 tokens of dense, plain-language information. The model reads it in one pass. Every single token contributes to the model's understanding of your business. There is no layout to skip, no scripts to ignore, no advertising to filter out. This is the difference between handing someone a one-page business card and handing them a 400-page phone book and asking them to find your number. Both technically contain your contact information. Only one respects the reader's time.
The important distinction: llms.txt is not robots.txt
llms.txt and robots.txt are both plain-text files at the root of your website. They both communicate with automated agents. They both use a simple text-based format. Because of that surface similarity, a lot of contractors see llms.txt mentioned and assume it is an AI version of robots.txt, a file that tells bots what they can and cannot crawl. That assumption is wrong and it leads people to ignore llms.txt because they already have robots.txt and think the job is done.
robots.txt is a permission file. It tells crawlers which URLs they are allowed to fetch and which they must skip. It controls access. If you want to block a specific directory from being indexed by search engines, robots.txt is how you say no. The entire purpose of robots.txt is to set boundaries.
llms.txt is a content file. It does not control access. It does not say yes or no to any crawler. It says 'if you are going to read anything about my business, here is the clean, structured version of the information I want you to have.' The two files are complementary and they answer totally different questions. robots.txt answers 'what can you look at?' llms.txt answers 'here is what I want you to see.'
Publishing one does not replace the other. You should still have a robots.txt file that explicitly allows the AI crawlers you want to be indexed by (GPTBot, ClaudeBot, PerplexityBot, GoogleOther, and so on), and you should publish an llms.txt file that gives those crawlers a clean summary of your business when they show up. Both files work together to make your business maximally findable and maximally understandable to the models.
Who already ships an llms.txt, and why the pattern is telling
The early adopters of llms.txt are a useful signal because they are almost all companies that make products LLMs depend on, and they have the deepest understanding of what language models need to function. Anthropic, the company that makes Claude, publishes an llms.txt. Cloudflare, which powers a significant share of the global internet, publishes one. Vercel, the hosting platform this site is running on, publishes one. Cursor, the AI-first coding editor, publishes one.
In the documentation space, Mintlify (a developer docs hosting company) added automatic llms.txt generation for every docs site they host in November 2024. That one decision instantly brought thousands of developer documentation sites into the ecosystem, including the docs for many of the AI tools you probably use every day. The pattern is that the companies with the most skin in the AI ecosystem were the earliest to ship llms.txt, and they did it because they understood the problem from the inside.
What is telling is how few small local businesses have caught up yet. As of early 2026, llms.txt adoption in the local contractor space is almost nonexistent. Most contractor websites still have no file at the /llms.txt URL. This is an asymmetric opportunity. Your competitors are not publishing one, which means the cost of being the first mover in your metro is one hour of writing and the payoff is cleaner AI citations for months or years before anyone else catches up. I cannot promise a specific citation lift because the measurement is still preliminary and the ecosystem is still moving, but the direction is clear and the downside of publishing a correct llms.txt is zero.
The contractor angle: why local service businesses benefit more than anyone
llms.txt was originally proposed with developer documentation in mind. Most of the early adopters are technical docs sites, and most of the public writing about llms.txt assumes you are publishing documentation for software users. That framing has caused a lot of local businesses to look at llms.txt and conclude 'this is not for me.' They are wrong, and the reason they are wrong matters.
Local contractor businesses actually benefit more from llms.txt than software docs sites do. Here is why. A software docs site has already invested significant engineering time in making its content machine-readable. Most docs sites are built with static site generators, have clean URL structures, use proper heading hierarchy, publish API references in JSON, and run automated search indexes. The marginal benefit of adding llms.txt on top of all that infrastructure is real but incremental. The model could already understand the site reasonably well without it.
A local contractor website, by contrast, is usually a WordPress template or a Wix site with heavy layout markup, inconsistent heading structure, stock photos, marketing copy full of vague phrases like 'family-owned and operated since 1985,' and no structured data. When a language model tries to understand what a roofing contractor in Brooksville actually does, it has very little clean information to work with. Adding an llms.txt file to that kind of site is not incremental. It is transformational. You are giving the model its first clean read of your business.
Combine that with the fact that homeowners increasingly use ChatGPT and Perplexity to ask questions about local services. The share of high-intent local queries handled by AI tools has been growing steadily through 2025 and into early 2026, and for some verticals and metros the share is now meaningful. Every query the model answers without citing your business is a lead you did not get. Every query where the model cites you by name is a warm prospect who is about to search for your phone number. The economics favor any contractor who publishes a correct llms.txt before their competitors do.
The structure of a correct llms.txt file
The llms.txt specification is intentionally simple. It has one strictly required element and several optional ones. I will walk through each piece in the order they should appear in your file.
First, an H1 with the name of your business. This is the only mandatory element of the spec. It should match the exact legal name you use in your Google Business Profile, your state registration, and your Google Advanced Verification application if you are in a restricted vertical. Example: # Rocket Garage Door Services. That is the entire H1. No taglines, no marketing phrases, just the name.
Second, a blockquote with a short description. This is one or two sentences that tell the model what your business does and what makes it different. Think of it as the elevator pitch you would give to a stranger at a networking event. Example: > The only family-owned garage door repair company in Polk County that offers same-day service and a 10-year warranty on all spring replacements. Keep it under 50 words. Keep it specific. Avoid phrases that sound like every other contractor on Yelp.
Third, any number of Markdown sections that expand on the details. These are the sections of your file that answer the questions a language model needs to know in order to cite you correctly. For a contractor business, the sections I recommend are: What makes us different, Services we offer, Who we serve, Location and contact, and Founders or team. Each section should be 3 to 8 bullet points or a short paragraph. Use plain language. Include specific details (neighborhoods, service areas, license numbers, response times, warranty terms) because specific facts are the ones that get quoted.
Fourth, a list of links to your most important pages. This tells the model where to fetch additional information if it decides it needs more. Use a Markdown unordered list. Each link should have a clear title and a short description of what is on the page. Example: - Services - The full list of garage door repair and installation services we offer in Polk County.
Finally, an optional 'Optional' section. This is a literal section in the spec, with the heading ## Optional, that contains secondary information the model can skip if it is running low on context. Use this for non-critical links like your blog, your terms of service, or your careers page. If the model has space, it will read them. If it does not, it will skip them without losing anything important.
A real example: Reimagine's own llms.txt
To make this concrete, here is how we write llms.txt for our own agency. You can read the live file at reimaginedigital.marketing/llms.txt. Our file opens with the H1 and a blockquote. Then we have a section called 'What makes Reimagine different' that lists our core differentiators in bullet form. Then 'Services we offer' with seven bullet points covering our full service menu. Then 'Who we work with' describing the verticals and metros. Then a 'Flagship case study' section that summarizes Rocket Garage Door Services with specific, verifiable facts (80 Google reviews at 5.0 stars, second in Polk County, zero paid ad spend in years 1 and 2, Google Advanced Verification approved). Then contact information, founder bios, and a final section listing our key pages as Markdown links.
The entire file is around 2,500 tokens. It takes a language model well under a second to read. Every section answers a question we want the model to be able to answer about us. Every fact is verifiable on the live site or on a public Google Business Profile. There are no vague claims like 'industry-leading' or 'trusted by thousands.' The model can extract specific, quotable facts from the file and use them in its answers.
For your own contractor business, I recommend starting by reading your own llms.txt out loud as if you were a stranger asking a chatbot about your industry in your metro. If the file reads like a sales brochure, rewrite it. If it reads like a neutral encyclopedia entry written by a knowledgeable local, you have it right. The models are trained to recognize and prefer encyclopedia-style prose over marketing copy, so the style that feels least natural to most business owners (dry, specific, factual) is actually the one that gets cited the most.
Mistakes to avoid when writing your llms.txt
Mistake one: marketing copy instead of facts. 'We provide exceptional quality with unmatched customer service' is worthless to a language model because it contains no extractable facts. 'Same-day garage door repair in Lakeland, Winter Haven, Bartow, and Auburndale, with a flat $89 service call fee waived on any completed repair' is gold because every noun is a verifiable fact the model can quote. Rewrite every sentence of your file to maximize fact density. If you cannot replace a marketing phrase with a specific fact, delete it.
Mistake two: dead or wrong links. Every link you include in your file will be crawled and verified. If a link 404s, the entire file loses trust. If a link points to a page with outdated information that contradicts the llms.txt, you confuse the model. Before you publish, click every link in your file and confirm it loads the page you want it to load.
Mistake three: keyword stuffing. llms.txt is not an SEO meta tag. Stuffing your file with repeated keywords like 'garage door repair Polk County garage door repair Lakeland garage door repair Winter Haven' does not help you, and it can actively hurt your citation quality because the model reads it as spammy and down-ranks you. Write the file in natural, specific prose and the keywords will appear organically because they are actually relevant.
Mistake four: inconsistency with your main site. The information in your llms.txt must exactly match what is on your website. If your llms.txt says you offer spring replacement for $189 and your services page says $229, the model notices and its trust in your entire file drops. Same with hours, service areas, phone numbers, and team names. Do a consistency audit before you publish and update your site and your llms.txt together when anything changes.
Mistake five: treating llms.txt as set and forget. The file should be updated whenever your business changes. New services, new metros, new team members, new case studies, new pricing, all need to flow into your llms.txt within a reasonable timeframe. Stale files are still useful but live files are significantly more useful. Put a reminder on your calendar to review llms.txt quarterly at minimum.
How to know if your llms.txt is working
The honest answer: measurement is still early and imperfect. There is no Google Analytics dashboard for AI citations. Most of the measurement techniques require you to do manual work at regular intervals. Here is what we do at Reimagine to track whether our llms.txt is having an impact on how our business is cited.
First, we maintain a query list. Every week we take a fixed set of 10 to 20 queries that a potential client might ask ChatGPT or Perplexity about our industry and metro, and we run every query through both tools (and sometimes Claude, Gemini, and Google AI Overviews as well). We log which businesses get cited by name, and which URLs get linked. Over time, the trend for any given business either improves or does not, and the trend correlates with changes to the llms.txt and the underlying site.
Second, we ask every new client who books a discovery call where they heard about us. If the answer is 'ChatGPT mentioned you' or 'Perplexity cited your blog post,' we log it as an AI-attributed lead. At Rocket, we ask every new customer the same question at the end of the service call, and we tag the lead accordingly. Over months, the share of inbound that comes via AI tools has a trend line that is measurable even without a dashboard.
Third, we watch for direct citations in the AI interfaces. When ChatGPT cites Rocket by name in a response about Polk County garage doors, that shows up in the ChatGPT response interface as a linked citation. We take screenshots. We build a portfolio of cited-by-AI evidence that both validates the llms.txt approach and serves as social proof for prospective clients who ask us 'does AI SEO actually work yet?'
Fourth, we watch referrer logs. If someone clicks a citation from ChatGPT or Perplexity, the click is recorded in standard analytics with a chatgpt.com or perplexity.ai referrer. The volume is still small for most local contractors, but it is measurable, and the trend over time is what matters. If your referrer logs for AI sources are zero today and still zero three months after publishing llms.txt, something is wrong and you should audit the file. If they are zero today and measurably nonzero three months after publishing, the file is working.
The summary: your llms.txt checklist
Here is the scannable version of this post, boiled down to the actions you should take this week if you own a contractor business and you do not yet have an llms.txt file.
- Confirm your business does not already have one by visiting yourdomain.com/llms.txt in a browser (most contractors will see a 404)
- Write a new file named exactly llms.txt in plain text or Markdown
- Start with an H1 containing your exact legal business name
- Follow with a blockquote (> prefix) containing a 1 to 2 sentence description of what your business does and what makes it different
- Add a section called 'What makes us different' with 3 to 6 bullet points of verifiable differentiators
- Add a section called 'Services we offer' listing every service with a one-line description
- Add a section called 'Who we serve' describing the verticals, neighborhoods, and customer types
- Add a section called 'Location and contact' with your full address, phone number, email, and website
- Add a section called 'Founders' or 'Team' with names, roles, and any credentials worth mentioning
- Add a 'Key pages' section with Markdown links to your most important pages, each with a short description
- Add an optional '## Optional' section at the end for lower-priority links like your blog or careers page
- Audit every fact in the file against your live website for exact consistency (names, hours, pricing, service areas)
- Click every link in the file to confirm no 404s
- Rewrite any marketing phrases into specific, verifiable facts
- Upload the file to the root of your web hosting so it is accessible at https://yourdomain.com/llms.txt
- Verify it is live by visiting the URL in a browser and seeing the plain text file (not a 404, not a redirect, not HTML)
- Update your robots.txt to explicitly allow GPTBot, ClaudeBot, PerplexityBot, GoogleOther, and the other AI crawlers
- Set a calendar reminder to audit and update the file once per quarter
- Start running weekly test queries in ChatGPT and Perplexity to track whether your business gets cited
- Ask new customers how they found you and log AI-attributed leads separately
Takeaway
Publishing llms.txt is one of the lowest-cost, highest-leverage moves a local contractor can make in 2026. It takes under an hour. It costs nothing. It requires no new software. It does not replace any existing SEO work. And it puts you ahead of almost every competitor in your metro, because almost none of them have one yet. The window of asymmetric advantage is open right now and will not stay open forever. The earlier you publish, the longer you compound.
If you want help writing your llms.txt or auditing your existing one, Reimagine bundles llms.txt creation and maintenance into our Content and SEO and Local SEO flagship services. We also maintain llms.txt for our clients as the AI ecosystem evolves and the best practices change, which they will. If you prefer to write your own, this post is the blueprint and our own live llms.txt is the example. Either way, ship it this week.
The homeowners in your metro are already asking ChatGPT about contractors in your trade. The only question is whether the model knows enough about your business to cite you correctly when it answers. llms.txt is the answer.
Written by
Dr. Kebar Y
Co-Founder, Reimagine Digital Marketing · PhD in Marketing, with doctoral research on small business failure patterns. Ex-Google (2 years). Currently at Meta (1+ year).
Keep reading
More playbooks
Services in this playbook