# Build a local site AI can find | AI SEO course, lesson 5

> 5 steps to a local business website AI search can find: page structure, robots.txt for AI crawlers, llms.txt, then a disclosed LocusPilot walkthrough.

URL: https://aiseocourse.net/lessons/build-a-local-site-ai-can-find/
Last-Modified: 2026-09-21
Author: Adam Yong

would turn main into a scroll container and break every \`position: sticky\` inside it. --> 

Skip to main content

[#main-content →](#main-content)

Lesson 5 of 8

# Build a local site AI can find, in one afternoon

Published 21 September 2026 · Last reviewed 21 September 2026

The method (structure, pages, the profile link, llms.txt, crawler permissions), then a walkthrough building the plumber site with LocusPilot. Disclosure included.

schedule 9 min read lock\_open Free, no signup person Written by Adam Yong

Next: lesson 6 arrow\_forward

[/lessons/reviews-mentions-and-citations/ →](/lessons/reviews-mentions-and-citations/)

 

All 8 lessons

[/lessons/ →](/lessons/)

![Crawler request reaching a server and returning rendered HTML, with sitemap and robots file markers](/images/misc/flat-editorial-illustration-of-a-crawler-request-r.webp)

verified 100% Free, no signup, no paywall

group 1,100+ readers

schedule 8 lessons · ~80 minutes

What it fixes

[#what-it-fixes →](#what-it-fixes)

 

The lesson

[#lesson →](#lesson)

 

Key takeaways

[#takeaways →](#takeaways)

 

Figures

[#figures →](#figures)

 

Steps

[#steps →](#steps)

 

Guides

[#guides →](#guides)

 

FAQ

[#faq →](#faq)

What it fixes

## Site problems this lesson fixes

web

### You have a profile and no site worth pointing it at

A one-page site with a phone number gives an engine nothing to quote. The structure in this lesson is eight to fifteen pages, each answering one question.

gpp\_maybe

### Something is blocking AI crawlers and nobody noticed

A default plugin setting or an inherited robots file is enough to shut GPTBot, ClaudeBot and PerplexityBot out of a site whose owner is actively trying to win AI answers.

code\_off

### Your content only appears after JavaScript runs

A page that looks fine in your browser can arrive empty to a fetcher. Google says not all bots can run JavaScript, and the ones that cannot simply move on.

## What this lesson covers

check

The page structure a local site needs, and why eight to fifteen pages beats one

check

Linking the site and the Google Business Profile so they tell one story

check

Crawler permissions for the named AI bots, with a copy-paste robots.txt

check

llms.txt and agent-ready basics, with Google's position quoted

check

A walkthrough building the plumber site with LocusPilot, disclosed as the publisher

## A profile needs a site worth pointing at

Lessons 2 to 4 assumed you have pages to write on and a footer to put your phone number in. Plenty of local businesses do not. They have a one-page site from 2017, a Facebook page, and a profile that links to one or the other. This lesson is the build: the structure a local site needs, the technical floor that lets a crawler read it, and a walkthrough of building the site for Halvorsen Plumbing, the fictional Boise plumber from Lesson 1.

The second half uses LocusPilot, which publishes this course. The disclosure is stated where it applies, and the method in the first half works with any builder.

## The page structure

A local site is a small set of pages that each answer one question. For Halvorsen that is:

| Page | Question it answers | Count |
| --- | --- | --- |
| Homepage | Who are you, where, and what is the promise | 1 |
| Service pages | How much, how fast, what is included, for each service | 6 |
| Service area page | Do you come to Meridian, Nampa, Eagle, and on what terms | 1 |
| About | Who is Britt Halvorsen, how long, which licence | 1 |
| Contact | Phone, hours, address, a form | 1 |
| Guides | The five questions customers ask on the phone every week | 5 |

Fifteen pages. The six service pages are drain clearing, water heater replacement, burst pipe repair, gas line work, fixture installation and sewer camera inspection, one each, per Lesson 3. Not "Services" as a single page. Not a page for every suburb either; the service-area page names all four cities with the 90-minute promise and the $40 travel fee for Kuna and Star, and the schema in Lesson 4 carries the same list.

## The site and the profile tell one story

Three links hold the whole thing together.

The profile's website field points at the homepage, and the homepage's first screen states the service area, the emergency promise and the $89 callout fee, so the page an engine lands on from the profile answers the question the profile implied.

The footer of every page carries the name, phone, address and hours as plain text, character for character as they appear on the profile. Lesson 2's audit sheet is the source; copy from it, not from memory.

The LocalBusiness block from Lesson 4 sits on the homepage, and its `sameAs` array includes the profile's public URL along with the Facebook and Yelp pages. That is the machine-readable version of "these are all the same business".

## Plain HTML that a crawler can read

Open your most important service page, view the source, and search for a sentence from the middle of the service description. If it is not there, your content depends on JavaScript executing. Google's own guidance says that while Googlebot renders JavaScript, server-side or pre-rendering is still a great idea because it makes the site faster and not all bots can run JavaScript (Google Search Central, checked 21 September 2026). Static generation or server rendering removes the question entirely.

Then check the plumbing:

-   Every important page returns a 200, not a redirect chain or a soft 404.
-   One canonical version of the site, so `www` and non-`www` do not both serve content.
-   No `noindex` left behind from a staging environment.
-   A sitemap. Google says small sites with good internal linking may not need one (Google Search Central, checked 21 September 2026), but it costs nothing and gives you a list of pages to submit in Search Console.
-   Every service page reachable within two clicks of the homepage, linked with descriptive anchor text.

## Crawler permissions, on purpose

AI crawlers announce themselves with user agents, and the operators document what each one does. OpenAI names GPTBot for training, OAI-SearchBot for ChatGPT search, and ChatGPT-User for user-triggered fetches (OpenAI, checked 21 September 2026). Anthropic names ClaudeBot, Claude-SearchBot and Claude-User with the same split (Anthropic, checked 21 September 2026). Perplexity names PerplexityBot for its index and Perplexity-User for live fetches, and says the user fetcher generally ignores robots.txt because a person asked for the page (Perplexity, checked 21 September 2026). Google-Extended controls whether your content trains future Gemini models and, Google says, does not affect inclusion or ranking in Search (Google Search Central, checked 21 September 2026).

| Crawler type | What blocking it costs you | Typical local business policy |
| --- | --- | --- |
| Search (OAI-SearchBot, PerplexityBot, Claude-SearchBot) | Removal from live AI answers | Allow |
| On-demand (ChatGPT-User, Perplexity-User, Claude-User) | Your page cannot be fetched mid-conversation | Allow |
| Training (GPTBot, ClaudeBot, Google-Extended) | Less general model familiarity with your brand | Allow |

For most local businesses the sensible policy is to allow all of them. You are trying to appear in AI answers, and blocking the fetcher that builds those answers is self-defeating. Halvorsen's file:

```
User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: *
Allow: /
Disallow: /admin/

Sitemap: https://halvorsenplumbing.example/sitemap-index.xml
```

Google's robots.txt documentation is worth one read: the file manages crawler access and, in Google's words, is not a mechanism for keeping a page out of Google (Google Search Central, checked 21 September 2026). The 

robots.txt guide for AI crawlers

[/guide/robots-txt-for-ai-crawlers/ →](/guide/robots-txt-for-ai-crawlers/)

 has block variants if you have a genuine reason, plus the syntax errors that quietly make a file do nothing.

## llms.txt and the agent-ready basics

llms.txt is a proposal by Jeremy Howard, first published 3 September 2024, for a markdown file at `/llms.txt` that tells AI agents what a site contains (llmstxt.org, checked 21 September 2026). Google's position is that you do not need AI text files to appear in AI Overviews or AI Mode (Google Search Central, page updated 10 December 2025, checked 17 September 2026). So: not required, thin adoption, ten minutes, harmless. Halvorsen's version lists the fifteen pages with one line each and the phone number at the top. The 

llms.txt guide

[/guide/llms-txt-for-local-businesses/ →](/guide/llms-txt-for-local-businesses/)

 has the template.

The rest of "agent-ready" for a local site is unglamorous: plain HTML, one H1 per page, clean H2s that match customer questions, a sitemap, no bot-protection rule in front of the site that challenges legitimate fetchers. Aggressive firewall settings blocking AI user agents are a common and invisible failure.

## The walkthrough: building Halvorsen's site with LocusPilot

Here is how the fifteen pages above get built in an afternoon. LocusPilot is an AI site builder for local service businesses; the numbers below are from its public site (locuspilot.com, checked 21 September 2026).

**Step 1, the form (about ten minutes).** Britt enters the business name, the trade, the four cities served and the six services. The exact strings from the Lesson 2 audit sheet go in here: "Halvorsen Plumbing", (208) 555-0147, 1420 W Main Street, Suite B. Optional: a link to a site whose design to follow.

**Step 2, the structure (about five minutes).** The tool proposes a page list. Britt trims it to the fifteen pages in the table, deletes a suggested page per suburb, and approves.

**Step 3, the build (about two hours, unattended).** LocusPilot states that its agents build 30 to 60 pages per site with LocalBusiness and other schema types, llms.txt, robots.txt and a sitemap included, and deploy to Cloudflare Pages. Halvorsen's build comes out smaller because the structure was trimmed on purpose.

**Step 4, the facts (about an hour, by hand).** This is the part no tool does for you. Britt opens the water heater page and replaces the generated price range with the real one, $1,600 to $2,900 installed. The homepage gets the 90-minute promise and the $89 callout fee in the first screen. The service-area page gets the $40 travel fee line. Photos of the vans and the shop replace the generated images. The hours in the footer are checked against the profile.

**Step 5, the checks (about twenty minutes).** View source on the water heater page and find the price sentence in the HTML. Load `/robots.txt` and `/llms.txt`. Run the Lesson 4 validators on the homepage. Submit the sitemap in Search Console. Update the profile's website field to the new URL.

What it costs, as of the check date: a $20 starter trial covers up to 20 pages, and monthly plans run $29 to $297 depending on volume (locuspilot.com, checked 21 September 2026). Hosting on Cloudflare Pages is free, and the source is yours to export.

**Disclosure.** LocusPilot publishes this course, and the lessons draw on what its builds and their Search Console data show. That is a commercial interest, stated here so you can weigh it. The method above works on WordPress or any builder that outputs plain HTML; the 

website builder versus WordPress guide

[/guide/website-builder-vs-wordpress-for-ai-findable-site/ →](/guide/website-builder-vs-wordpress-for-ai-findable-site/)

 carries the same disclosure and gives a decision rule rather than a recommendation.

## Confirm it worked

This is the one part of AI SEO you can verify directly. Open your server or hosting access logs and filter for the user agents above. You are looking for three things: that they arrive at all, that they receive 200 responses rather than errors or blocks, and that they are reaching your service pages rather than only the homepage.

If a named crawler never appears, check robots.txt, then any firewall or bot-protection rule in front of your site. Each operator publishes IP ranges so you can tell a real fetcher from a spoofed user agent.

## Exercise

Build or restructure your own site to the page list above.

1.  Write your page list: homepage, one page per service, service area, about, contact, and up to five guides. Eight to fifteen pages.
2.  Put the profile's exact name, phone, address and hours in the footer template.
3.  Rewrite the homepage first screen so it states where you work, your promise and one fee.
4.  Publish robots.txt with the block above, adapted, and a sitemap. Submit the sitemap in Search Console.
5.  Add llms.txt with one line per page.
6.  View source on your main service page and confirm the price sentence is in the HTML. Then check the logs a week later for the named crawlers.

## Check your work

-   Every service you want to be named for has its own page, and there is no single "Services" page doing all the work.
-   The footer facts match the profile character for character.
-   The homepage's first screen states area, promise and one fee.
-   `/robots.txt` loads as plain text at the root and names the AI crawlers on purpose.
-   `/sitemap-index.xml` or `/sitemap.xml` lists every page and is submitted in Search Console.
-   The service description is present in the page source without JavaScript.
-   A week after launch, at least one of OAI-SearchBot, PerplexityBot or Claude-SearchBot appears in the logs with a 200.

## Sources

-   Google Search Central, "Understand JavaScript SEO basics": 
    
    https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics
    
    [https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics →](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics)
    
     (checked 21 September 2026)
-   Google Search Central, "What is a sitemap": 
    
    https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview
    
    [https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview →](https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview)
    
     (checked 21 September 2026)
-   Google Search Central, "Introduction to robots.txt": 
    
    https://developers.google.com/search/docs/crawling-indexing/robots/intro
    
    [https://developers.google.com/search/docs/crawling-indexing/robots/intro →](https://developers.google.com/search/docs/crawling-indexing/robots/intro)
    
     (checked 21 September 2026)
-   Google Search Central, "Google's common crawlers", Google-Extended entry: 
    
    https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers
    
    [https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers →](https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers)
    
     (checked 21 September 2026)
-   Google Search Central, "AI features and your website", page updated 10 December 2025: 
    
    https://developers.google.com/search/docs/appearance/ai-features
    
    [https://developers.google.com/search/docs/appearance/ai-features →](https://developers.google.com/search/docs/appearance/ai-features)
    
     (checked 17 September 2026)
-   OpenAI, crawler and user agent documentation: 
    
    https://developers.openai.com/api/docs/bots
    
    [https://developers.openai.com/api/docs/bots →](https://developers.openai.com/api/docs/bots)
    
     (checked 21 September 2026)
-   Anthropic, "Does Anthropic crawl data from the web": 
    
    https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler
    
    [https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler →](https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler)
    
     (checked 21 September 2026)
-   Perplexity, crawler documentation: 
    
    https://docs.perplexity.ai/guides/bots
    
    [https://docs.perplexity.ai/guides/bots →](https://docs.perplexity.ai/guides/bots)
    
     (checked 21 September 2026)
-   llms.txt proposal, Jeremy Howard: 
    
    https://llmstxt.org/
    
    [https://llmstxt.org/ →](https://llmstxt.org/)
    
     (checked 21 September 2026)
-   LocusPilot, public product page and pricing: 
    
    https://locuspilot.com/
    
    [https://locuspilot.com/ →](https://locuspilot.com/)
    
     (checked 21 September 2026)

![Monospace robots.txt panel with AI crawler user-agent directives highlighted](/images/content/monospace-robots-txt-panel-with-ai-crawler-user-ag.webp)

Monospace robots.txt panel with AI crawler user-agent directives highlighted

Ask AI about this lesson:

travel\_explorePerplexity

[https://www.perplexity.ai/search?q=Read%20https%3A%2F%2Faiseocourse.net%2Flessons%2Fbuild-a-local-site-ai-can-find%2F%20and%20summarise%20what%20it%20says%20about%20Build%20a%20local%20site%20AI%20can%20find%20for%20a%20local%20business%20owner%2C%20then%20list%20the%20three%20actions%20it%20recommends%20first. →](https://www.perplexity.ai/search?q=Read%20https%3A%2F%2Faiseocourse.net%2Flessons%2Fbuild-a-local-site-ai-can-find%2F%20and%20summarise%20what%20it%20says%20about%20Build%20a%20local%20site%20AI%20can%20find%20for%20a%20local%20business%20owner%2C%20then%20list%20the%20three%20actions%20it%20recommends%20first.)

chatChatGPT

[https://chatgpt.com/?q=Read%20https%3A%2F%2Faiseocourse.net%2Flessons%2Fbuild-a-local-site-ai-can-find%2F%20and%20summarise%20what%20it%20says%20about%20Build%20a%20local%20site%20AI%20can%20find%20for%20a%20local%20business%20owner%2C%20then%20list%20the%20three%20actions%20it%20recommends%20first. →](https://chatgpt.com/?q=Read%20https%3A%2F%2Faiseocourse.net%2Flessons%2Fbuild-a-local-site-ai-can-find%2F%20and%20summarise%20what%20it%20says%20about%20Build%20a%20local%20site%20AI%20can%20find%20for%20a%20local%20business%20owner%2C%20then%20list%20the%20three%20actions%20it%20recommends%20first.)

auto\_awesomeGemini

[https://gemini.google.com/app?q=Read%20https%3A%2F%2Faiseocourse.net%2Flessons%2Fbuild-a-local-site-ai-can-find%2F%20and%20summarise%20what%20it%20says%20about%20Build%20a%20local%20site%20AI%20can%20find%20for%20a%20local%20business%20owner%2C%20then%20list%20the%20three%20actions%20it%20recommends%20first. →](https://gemini.google.com/app?q=Read%20https%3A%2F%2Faiseocourse.net%2Flessons%2Fbuild-a-local-site-ai-can-find%2F%20and%20summarise%20what%20it%20says%20about%20Build%20a%20local%20site%20AI%20can%20find%20for%20a%20local%20business%20owner%2C%20then%20list%20the%20three%20actions%20it%20recommends%20first.)

Visual reference

## Figures from this lesson

Diagrams you can screenshot and keep beside you while you work through the steps.

 

Why it matters

## Why the site structure decides whether any of this lands

foundation

### It is the floor everything else stands on

A perfect profile and a beautifully written service page are invisible if the page returns a timeout or renders empty to a bot.

build

### Most of it is one-off work

Structure, rendering, robots rules and internal links are set once and checked occasionally, rather than maintained weekly.

fact\_check

### It is testable

Unlike most of AI SEO, you can prove this part. Server logs show which crawlers arrived and what they got.

visibility

### It shows a real build, with the relationship disclosed

The walkthrough uses LocusPilot, which publishes this course. That is stated in the lesson, and the method works with any builder.

Steps

## How to build a local business website AI can find

1.  1 list
    
    ### Write the page list
    
    Homepage, one page per service you want to be named for, a service-area page, about, contact. Eight to fifteen pages for most single-location businesses.
    
2.  2 fact\_check
    
    ### Put the facts on every page
    
    Name, phone, address or service area and hours in the footer, identical to the profile. The homepage states the promise and the fee in its first screen.
    
3.  3 visibility
    
    ### Make it plain HTML
    
    Server-rendered or static. View the source of your service page and confirm the description text is there without JavaScript.
    
4.  4 policy
    
    ### Set crawler permissions and publish a sitemap
    
    Write robots.txt rules for the named AI bots, add a sitemap, submit it in Search Console.
    
5.  5 receipt\_long
    
    ### Check the logs
    
    Filter your server logs for the named user agents. Confirm they arrive, get 200 responses and reach the service pages.
    

## Site live and reachable? Now work on what others say about you.

Lesson 6 covers reviews, structured citations and brand mentions, which is the part of your footprint you do not write yourself.

play\_arrow Continue to lesson 6

[/lessons/reviews-mentions-and-citations/ →](/lessons/reviews-mentions-and-citations/)

 

Open the 90-day checklist

[/checklist/ →](/checklist/)

## Guides that go deeper on AI crawlers, robots.txt and site builds

Short, evergreen answers that go deeper than the lesson itself.

definition

### llms.txt for local businesses: what it is and whether it helps

What the proposed standard is, which engines consume it today, a minimal example, and an honest verdict on effort versus payoff.

[llms.txt for local businesses: what it is and whether it helps →](/guide/llms-txt-for-local-businesses/)

process

### robots.txt for AI crawlers: allowing GPTBot, ClaudeBot and PerplexityBot

Per-bot user-agent strings, allow and disallow blocks to copy, what blocking actually costs you, and how to verify the file is live.

[robots.txt for AI crawlers: allowing GPTBot, ClaudeBot and PerplexityBot →](/guide/robots-txt-for-ai-crawlers/)

comparison

### Website builder vs WordPress for an AI-findable local site

What each platform makes easy or hard for schema, speed and control, migration cost, and a decision rule by situation.

[Website builder vs WordPress for an AI-findable local site →](/guide/website-builder-vs-wordpress-for-ai-findable-site/)

Reader feedback

## What readers said about the build lesson

Feedback from owners and SEOs working through the lessons. These are reader comments, not Google Business Profile reviews.

> "We had blocked PerplexityBot through a robots file nobody had read in two years. The crawler table made it a ten-minute fix, and the log check afterwards proved it."

Tomas K.

In-house SEO, regional HVAC company

Common questions

## Building a local site for AI search: common questions

Should a local business block GPTBot? expand\_more

Generally no. Blocking the training crawler removes your content from a channel you are trying to win, and blocking the search-side crawlers removes you from live answers entirely. Publishers with paid archives have a different calculation. A local service business usually does not.

Does my site need to be server-rendered? expand\_more

It needs to return your content in the HTML a crawler receives. Google's JavaScript SEO guidance says server-side or pre-rendering is still a great idea because not all bots can run JavaScript. Static generation does the same job.

How many pages does a local site need? expand\_more

Eight to fifteen for most single-location businesses: a homepage, one page per service you want to be named for, a service-area page, about and contact, plus a few guides answering real customer questions. More pages than that only helps if each one answers a different question.

Where does robots.txt go? expand\_more

At the site root, reachable at yourdomain.com/robots.txt, served as plain text. A file in a subfolder does nothing, and a syntax error can silently allow or block everything.

Do I need llms.txt? expand\_more

Google says you do not need AI text files to appear in its AI features. llms.txt is a community proposal from September 2024 with limited adoption. It is harmless, takes ten minutes, and the guide on llms.txt gives the honest verdict.

Is LocusPilot the only way to build this? expand\_more

No. The method in the first half of the lesson works on WordPress, a hosted builder or hand-written HTML. LocusPilot is shown because it is the publisher's own tool and the site's builds are where the course's observations come from. That relationship is disclosed in the lesson.

## Related lessons

Lesson 4

### Schema for local AI SEO

LocalBusiness, Service, FAQPage and sameAs markup so AI engines can resolve your business as one entity, plus how to validate it and what not to mark up.

[Schema for local AI SEO →](/lessons/schema-and-structured-data-for-local-ai-seo/)

Lesson 7

### Measure your AI search visibility

A manual prompt set, a weekly log template, the Search Console signals that mean something, free trackers, and what a realistic 90-day curve looks like.

[Measure your AI search visibility →](/lessons/measure-your-ai-search-visibility/)

![Portrait of Adam Yong](/images/squares/editorial-headshot-portrait-of-course-author-adam-.webp)

Adam Yong

Founder, LocusPilot

Founder of LocusPilot and Agility Writer; leads GEO strategy at ADE Marketing.

verified Founder, LocusPilot (AI website builder for local businesses)

More about the author

[/author/adam-yong/ →](/author/adam-yong/)

Open access · immediate start

## Ready for Lesson 6?

Reviews, mentions and citations AI trusts. It picks up exactly where this lesson stops.

Read lesson 6 arrow\_forward

[/lessons/reviews-mentions-and-citations/ →](/lessons/reviews-mentions-and-citations/)

 

View the 90-day checklist

[/checklist/ →](/checklist/)

No signup. No paywall. 8 lessons, ~80 minutes.
