📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Build An SEO-Perfect Website With AI

Caleb Ulku22:24

Transcription

Most agencies spend 60 hours or more and

$5,000 in labor to rank a local plumber.

My AI agent, which I built in Claude

Code, does it in 15 minutes of active

time. Entity research, GBP audit, gap

analysis, content production, schema

markup, image generation, video

generation, even WordPress deployment.

All of it. And I'm going to show you

exactly how it works. But first, you

need to understand the system behind it

because AI without a proven system is

just a faster way to do the wrong thing.

So, I'm going to break down the exact

local SEO process that my agency uses to

rank businesses in the top three on

Google Maps. The same process that's

worked across hundreds of clients since

2016. Then, I'm going to show you how

this AI agent does all of it for you.

And the tool I'm going to show you is

available at no extra cost inside my pro

community. There's a link in the

description. Now, let's start with this.

This is the rank map for a client of

mine, a plumber in Malden,

Massachusetts. average rank map of 6.18.

Only 15% of the map is in the top three.

And look at all that orange. Seven,

eight, barely cracking the top three

anywhere except right on top of their

address. And here's what makes this

interesting. Their website was basically

a sample site built in go high level

with Lauram Ipsum placeholder text. And

they're still averaging position six.

Look at this website. It's literally

Lauram Ipsum all the way through. Fake

madeup testimonials. We have good H2s,

but just Lauram Ipsum over and over

again. Now look at the after rank map.

Average rank 3.22 74% green coverage

even down into the Boston area. Green

dots everywhere. Somerville, Cambridge,

Ravier, Medford, all the way out to Lynn

and Sais. That's not a small

improvement. They went from invisible in

most of the greater Boston area to

dominating their service area. And the

spots where they're not the top three,

they're ranked fourth. Another

deployment and we'll turn those green.

Also, the difference between those two

maps, it's not six months of blogging.

It wasn't hundreds of backlinks. It was

the system I'm about to show you

executed almost entirely by an AI agent

built in clawed code. So, how does this

system actually work? And why do most

agencies get this completely wrong? Most

agencies treat local SEO like it's

regular SEO. They write blog posts. They

build backlinks. They tell their client

to wait 6 months and then the client

cancels at month three because their

phone isn't ringing. Now, I've watched

this happen hundreds of times. And the

reason it fails is because local SEO

isn't about keywords, it's about

entities. In 2018, Google made a massive

shift in how its algorithm works. It

stopped matching keywords and started

matching entities. Oh, sorry. I just hit

him in the head accidentally. An entity

is just Google's way of understanding

what something actually is. Not what

words are on a page, but what the

business is, where it operates, and what

it does. Your Google business profile is

an entity for your business. Your

website is an entity. Your business is

an entity. The services you provide are

entities. And Google is constantly

checking whether these entities match.

The closer they match, the better you

rank. When they do match, Google doesn't

trust you. And when Google doesn't trust

you, you don't rank. It really is that

simple. All right, so think about it

this way. It's not about what words are

on your website. It's about Google

knowing that you're a real business with

a real truck that actually shows up to

fix someone's pipes. That's what entity

matching is. Google is trying to figure

out whether you can be trusted based on

everything it finds about you online.

whether everything it finds about you is

telling the same story. So the very

first thing we do with any new client is

entity research. We need to understand

how Google currently sees this business.

What categories does the GBP have? What

services are listed? What's the primary

category? What are the secondary

categories? Because everything we do

after this point is built on that

foundation. Then we're going to run a

GBP audit. And this is where most

agencies already start falling behind.

The average local business has maybe one

category, maybe two on their GBP when

Google allows up to 10. They have maybe

five services listed when they should

have 30 or more. Their business

description is two sentences. Half of

the fields aren't even filled out at

all. Don't get me started on special

hours. Every empty field on your GBP is

a missed signal to Google, or more

accurately, a signal to Google that you

don't care. Every missing category is a

service entity you'll never rank for.

Every service you didn't list is a

search where Google is going to show

your competitor instead of you. So for

this client, the GVP was thin. Not

terrible, but thin. Couple categories,

10 services, and a description that

didn't do much heavy listing. That's the

norm for most local businesses, and it's

also why most of them are stuck on page

two or page 10. But even a fully

optimized GBP won't save you if your

website doesn't match it. look at the

before for this client. And that's where

the gap analysis comes in. This is the

step that most agencies skip entirely.

And it's the reason their clients say

stuck for months. Do you do gap

analysis? Do you? You should. A gap

analysis is exactly what it sounds like.

We're comparing what's on the Google

business profile to what's on the

website and finding, excuse you, and

finding every single gap between them.

If your GBP lists water heater

installation as a service, there's no

page on the website about water heater

installation. That's a gap. If your GP

has drainage service as a secondary

category, but the website never mentions

drainage service, that's a gap. Every

single one of those gaps is Google

trying to figure out and saying, "Boy, I

don't know if this business actually

does this." And it's not just Google.

ChatGpt, Perplexity, Gemini, all of

these AI models recommend local

businesses in a very similar way to how

Google's algorithm evaluates them. The

technology that Google introduced to its

algorithm in 2019 is the transformer.

That's what the T in chat GPT stands

for. They're all looking at the same

entity signals, the same consistency

between what a business claims to do and

what its online presence actually shows.

So when you build the structure

correctly for Google, you're

simultaneously making the business

visible to every AI model that's

starting to replace traditional search.

Two birds, one system. Now, here's the

thing. Most local business websites have

massive gaps, even if their GBP is done

correctly. The GBP might have four

categories and 30 services, but the

website associated with it has a

homepage, an about page, a contact page,

and maybe a service page that lists a

handful of those 30. That's five, six

pages trying to support 35 services and

categories. Google looks at the

mismatch. Chat GPT looks at the mismatch

and they don't know what to believe. So,

this is why my agency developed the core

30. It's a website structure where you

build one page for every single category

and service on your Google business

profile. Homepage targets primary

category plus city. Each secondary

category gets its own page. Each service

gets its own page. And when you're done,

you have roughly 30 pages that mirror

your GBP perfectly. The homepage links

to your secondary categories. And each

secondary category links to all the

services categories underneath it, the

exact as your GBP. And the structure

matters as much as the content. The

internal linking follows the same

hierarchy as the GBP. You're building a

website that is a mirror image of your

Google business profile. And when Google

and ChatGPT and all the AI systems see

that level of consistency, it gains

massive confidence that your business is

legitimate. We developed the system in

2023 and have used it for every client

since. For the content itself, every

page needs to be locally relevant, not

generic service descriptions you could

copy and paste for any city. The content

needs to mention local neighborhoods.

Reference local conditions sound like it

was written by someone who actually

operates in that market. A plumber in

Malden should be talking about the

triple deckers in Medford. The old pipe

infrastructure in Somerville, the

coastal weather coming off of Revier

Beach. That's what makes Google and the

AI systems believe you are genuinely

local, even if you're not. Now, here's

where this gets real. Even with AI

helping write this content, each article

takes my team one to two hours to do.

It's got to be written, checked,

generate the schema, generate the

images, produce a video, publish to

WordPress, get a developer to organize

it all, set up the internal linking.

It's one to two hours per page, times 30

pages. That adds up fast. 45 60 hours of

work per client to fill out the core 30.

And we'd usually spread that out over a

couple of months just to keep the

client's budget reasonable, which means

the client's waiting months before this

full system is in place. And that's with

a team that's done this hundreds of

times. But what if you didn't have to do

any of that manually? I built an AI

agent in Claude Code that runs this

entire process. Entity research, GBP

audit, gap analysis, content production,

schema markup, image generation, video

generation, video upload to YouTube,

video embeds, and full WordPress

deployment. The same system I just

walked you through, completely

automated. Let me show you exactly what

it does. So, I'm going to walk you

through exactly what this AI agent does

step by step. And I want you to pay

attention to how fast this happens

because it's the same process I just

told you. takes my team 60 hours. So,

here's the actual agent. First thing

we're going to do is we're going to come

into client settings. We're going to

paste in the GBP profile data. Just copy

paste. The system will parse everything

out individually. You don't need to add

all of these uh specific categories and

services. This happens automatically.

Copy paste. Then we're going to fill out

the business location and GBP. And we're

going to fill in this about the business

information. This is important. Don't

skip this. If you skip this, the content

won't be very good. The system is going

to use this information to write better

content. We can select some voice and

tone, point of view, words to use, words

to avoid, target audience. We have a

sample. We you can add writing samples,

uh some onboarding notes, specific

requests. These are blank because this

is an example, not a real client. We

have some brand settings, uh review

data, uh which is important. This will

be used for the schema generation. And

we have some local details, which look

at this. If you don't know the local

area, we can hit autogenerate. And this

system will go scrape Google and other

uh areas looking for these local details

to fill them in. Great. Filled in. Now

we can choose what we want the default

image style to be. And uh we'll hit save

client content and move on. Okay. So the

GBP and service audit. So here we can

put the GBP category in and we can put

the city in Malden, Massachusetts.

When we hit run category audit, what the

tool is going to do is pull up all of

the competitors who have the primary GBP

category of plumber and look at what

their secondary categories are. And it's

going to highlight any missing secondary

categories. So you can say, hm, should I

put electrician, should I put bathroom

or modeler? And depending on uh what

this is showing, you can decide whether

to add them to GBP or not. And here we

have that listing. And down here we have

the service entity overlap. So, we'll

put the seed uh entity in. In this case,

it's the primary category plumber. And

we can import from the GBP all of the

candidate entities. And what this will

do when we run it is it will literally

go out and do the Google searches for

plumber and for this entity and then

tell you how much overlap is between the

GBP results for those two different

searches. The goal is for Google to tell

us whether this is a unique entity or

whether it is a service entity that

lives under the primary. If it lives

under the primary, we don't need to

worry about producing content for it

because Google doesn't see it as a

different service that we need to worry

about ranking for. So something like

sewer line repair, that is a distinct.

Something like bathroom plumbing, that

is overlapping. Now we can head on over

to the site crawler. So we can hit rec

crawl. We'll get the URL and it's going

to find the total number of pages and

all of this information. And then we can

select the service category that each

one of those pages recommends. So we'll

hit rec crawl. So this is the site

crawler. Uh put your URL and then you

hit crawl. And then it's literally going

to just crawl the website, pull all the

pages it can find. All right. So

everything has been crawled. And you can

see that this is the homepage. Uh so all

the other ones it has auto assigned a

series of service and categories to them

based on the URL or title tags. uh we

can override any of them that we want to

or we can just leave it at none and

these are all of the services and

categories that are on the GBP. That way

the tool knows what services and

categories you already have pages for.

Then we can run a gap analysis to see

what actual areas we're missing and

generate a content plan based on that.

And here's where it gets interesting. We

can come into content production. So

this is set for single page, but let's

flip it over to bulk. What we're going

to do then is import from the entity

overlap and import from the GBP. So now

we've listed all of these services. We

can put the target city in as Malden MA.

And uh we're saying we want four images

per page. We're going to generate a

video every fifth item. We can do every

third item, fifth item, whatever we

want. Uh we can automatically humanize

it. We can automatically run the AI

detection. We can auto approve outlines,

autopublish to WordPress, and auto

upload to YouTube. And then this is the

list of content here. Here we have 18

selected, three with video, and it's

estimating it'll take about 70 minutes

to generate all this content. Let me

uncheck a few of these. I'll just do

maybe uh septic service and we'll do

water heater installation. So, we'll do

those two. It's thinking it'll take

about 10 minutes to go. And we'll hit

full auto and start. So, what's

happening here in the background? The

system has a series of prompts to help

it generate an outline uh that is

relevant yet distinct from the other

entities that are currently ranking.

distinct is important. Google needs to

see that this is adding unique

information. So, what we're doing, we're

crawling Reddit, we're crawling local

forums, we're crawling uh sources of

information to figure out what people

are talking about, what competitors are

talking about, what real people in your

area looking for that service are

asking. We're using all of that

information to generate the outline.

Okay. So we can uh hit approve and we

can open it up and see this is the exact

outline that's been generated exactly

how we're going to cover the septic

system service in Malden. We have an FAQ

here below. This is based on what people

are actually asking about for septic

service in that area. It's even giving

us a target snippet uh to go for the AI

overview for this query. All right. Now

that the outlines are done, we're now

generating the content. And this is also

a multi-step process. It's using four

different steps to generate the content.

First, it's generating each individual

block of content in a very slightly

different style for each one of the H2

sections that was on the outline. The

reason it's doing that is so the content

looks and feels human written. Humans

tend to write iteratively. They don't

sit down and bang out a full article in

all the same tonality and all the same

voice. They'll write individual section

by section. They'll take breaks. They'll

do additional research. So, that's what

we're mimicking with this tool. Each

section is written one at a time with a

slightly different tone, slightly

different viewpoint. Then we're using

another prompt to take all of those

sections and combine them into one

article and review the entire article to

make sure the tonality is reasonably

consistent among it. Then we're doing

another run through of this content to

add bursting. So we're then changing

sentence length, uh changing the number

of words and sentences so that we remove

some patterns with this burst analysis.

All right. Then we're running this

through yet another prompt. We're

calling the the this fifth one

perplexity injection. So what it's doing

here is it's looking for uh predictable

words and replacing those words with

multiple words that a human might use.

For example, if something says something

like significant improvements, it's

going to replace that with results that

surprised even us means the same thing,

but it's taking an approach that AI

generated content very rarely does. Then

we're doing a sixth pass on this content

where we're rewriting the first couple

sentences and the last couple sentences

with an extremely conversational,

opinionated uh human style language. The

first couple sentences and last couple

sentences are incredibly important both

for humans reading the site also for

Google's algorithm for all the AI

systems and for AI detectors. Then we're

making another pass to add conversion

optimization so that we can see phone

numbers. Why should the user, the

searcher call this company? Uh what are

they good at? What have they been doing

for a long time? Uh that speaks to what

the searcher's looking for. And then

finally, the last pass, the eighth pass,

is the final check. It's going through

the whole article again to make sure

nothing got weird or discombobulated

with all of these different passes.

We're making sure it has smooth

transitions. We're we're verifying that

there are still facts there, that the

facts are true. We're checking that the

CTAs are strong. It ends up being eight

total passes to generate and humanize

this content with the goal of producing

very very highquality content that when

your team reviews this content, it takes

a very limited time to say, "Yep, this

content is good to publish." And

remember, all that information we

entered at the beginning, all the

specific data about Malden,

Massachusetts, we're also using that

information to make the content hyper

local once the content is finished. And

you can see the step that it's on now is

humanizing this content. I think that's

uh pass four or five. But the tool isn't

stopping at content. Once the content is

done, it then generates schema markup

for every single page. And then it

starts generating images. Here we can

see the system generating the first out

of the four images we told it to create.

Basically, this is using multiple API

calls, multiple AI tools in order to do

this all in one shot. And yes, I'm

sitting here with watching it do this.

You probably shouldn't do that. You

should hit run and then go watch a

television show. And now we can see it

moving to the next step. It's generated

the images and we're now generating the

video script. Video script is done. It's

now rendering the video based on the

article that it wrote. All right. Now

that the video is done rendering, it's

being uploaded to YouTube, the specific

channel we created for this client. All

right. Now it's done with that article.

Moving on to the next article. All

right. So the tool is done. We have the

words, images, video, and the status

published. Let me show you what the back

end looks like. So, this is all the

content we previously generated. And we

can see the septic system and the water

heater installation, both of which are

still here in draft mode. So, let's take

a quick look at the water heater

installation. We can see some images,

uh, table of contents, call to action,

H2 tags, this content steps, same day,

on and on, uh, more images, an FAQ. All

right, let me show you the septic

system. This one has the video embed.

Here's the video.

All of this autogenerated, auto

uploaded. I didn't do anything. I just

let the tool run everything. So, let me

show you. Uh here's an earlier one that

we did. Let me grab that uh URL and run

it through this structured data tester

tool. We can see it has schema, no

errors, no warnings. that gave us uh

organization video article uh FAQ with

every single FAQ correctly put into the

schema here. Now, let me run this speed

test on it. GTMetrics. We'll see how

fast the site is. And remember, this is

the one with the YouTube embed. So, it's

going to be a little bit slower than

pages without the video embed. And

there's the score. Grade A, 100% 98%

structure, LCP 651 milliseconds. That's

pages built, published, linked, and

live. And that's the whole process. The

process that used to take my team 2 to 3

months to spread across an entire client

engagement. The agent can do it in a

single session. About an hour and a half

where it's just running on its own. You

don't need to sit and watch. And let me

show you again. Here's the rank map

after we ran this agent and published

all this content. Average position 3.22

74% green coverage across the greater

Boston area. Malden, Medford,

Somerville, Cambridge, Revier, all the

way out to Lynn and Sus. and the parts

that aren't green. They're ranked fourth

and fifth. All we need to do is come

back to the tool. We'll come into bulk

again and here. And we can add location

pages. This allows us to enter the

landmark, the city again, images,

videos, service name. And this will

allow us to turn those fours into threes

from Laura to dominating the map in a

day. This is not 6 months of work. It's

not even six weeks of work. And this

works because it gives Google and AI

models exactly what they want. And then

the AI agent executes it faster than any

human team possibly could. But rankings

alone aren't going to pay your bills. So

that's the whole system. entity

research, GBP audit, gap analysis,

content production, schema, images,

videos, upload to YouTube, WordPress

deployment, internal linking, all

executed by an AI agent built on the

same processes that's ranked hundreds of

local businesses since 2016. So, you now

understand this system better than 95%

of the agencies that are out there. You

know exactly why entity consistency

matters. You know exactly why the core

30 structure works. You know why generic

blog posts don't move the needle for

local businesses. And you just watched

an AI agent do the whole thing in the

fraction of the time it takes a full

team to do this. Even with AI's help,

the core 30 AI agent is available at no

extra cost inside my AI SEO pro

community. There's a link down in the

description. You're going to get the

agent, every prompt behind it, and we do

a weekly live Zoom where I can help you

implement this for your clients. But

here's the thing. None of this matters

if you can't get clients in the door. I

see agencies with incredible skills,

amazing case studies, but they're

struggling to hit 10K months because

they have no idea how to land local

clients. They can rank a business in 2

weeks, but can't convince a business

owner to pay them $2,000 a month. The

ranking game, honestly, it's completely

different from the client acquisition

game. Different psychology, different

objections, different sales processes.

If you want to see the exact client

acquisition system that got me 97

plumbing clients in 6 months, click on

this video right here before you waste

another month with amazing skills but an

empty bank