Here's what got built, in order, and what the search numbers show at the end of it.
What the site carries
- Pages
- 50250+
- Town and neighborhood pages
- 40+
- Project pages
- 30+
- Videos in the Knowledge Center
- 200+
The engagement started with a single location
Phase one was single-location local SEO. That has a set shape.
One Google Business Profile
Set up and worked as the map pack entry for the home base.
One primary service area
The suburb the business is in.
Service pages for the jobs the company wants to sell
Roof repair, roof replacement, and the rest of the list.
A push to rank where the business is based
For the repair and replacement searches that happen there.
It also has a ceiling, and roofing companies hit it faster than most. Once you rank where you're based, the next customer isn't in your suburb. He's in the next one. And he isn't searching the way you'd think.
Then the towns around Austin, one at a time
Phase two widened the program to multi-location local SEO. The site now has pages for more than 40 towns and neighborhoods in Central Texas, including Buda, Bastrop, Kyle and Georgetown.
How homeowners search when a roof is leaking
They rarely type the metro name. They type the name of their suburb, or their zip, or the neighborhood a real estate agent used when they bought the house.
One Austin page competes for one term
A page for each town competes for the terms people really use. They type them while standing in a wet hallway, looking at a ceiling stain.
None of which is true if the pages aren't real
Google's spam policies name doorway abuse directly: pages made to rank for specific, similar searches. Location pages that swap the place name and keep every other sentence the same fit that policy exactly. The pull to do it is huge, and the penalty for giving in is the whole program.
None of which is true if the pages aren't real.
The location pages were written, not generated
Driftwood's location pages were written from the real local traits of each area. For a roofing company, what sets one Austin area apart from another is concrete.
The age of the housing stock
The roof materials that dominate there
The permitting and HOA requirements that apply
What a given storm season does to that particular set of streets
What a replacement typically costs on those house sizes
Two things follow.
A homeowner can tell within two sentences
Whether the company knows the area or has pasted the name in.
Real substance gives you something to link
A page with real local detail gives you something to link from and to. A cloned page never does.
After a video is published
- PublishedA roofing video goes up on YouTube.
- Taken inThe Knowledge Center picks it up, matching the YouTube interface.
- WrittenA roofing post is generated from the video.
- IndexedKihan Schema and the Internal Linker run, then Kihan Indexer submits it.
No one touches it in between.
Metro-level SEO and a full roofing website build
Phase three moved to metro-level SEO with a full website build. The site went from roughly 50 pages to more than 250. At that size, a roofing site is a structure problem before it's a design problem.
Service pages
One per job the company sells, the spine of the site.
Area pages
One per town or neighborhood, written as above.
Project pages
More than 30, each a completed job.
The video library
The Knowledge Center, 200+ videos, each also a written post.
Each of those needed its own template, its own place in the menu, and its own linking rules. That way a page added in month nine lands somewhere that makes sense, not off on its own. That part is dull work, and it decides whether the other 249 pages do anything.
Search engines don't watch video. Neither do AI assistants.
More than 30 project pages built to show completed work
Each one documents a specific job from start to finish.
They answer the question a homeowner is really asking
Which isn't whether you do roofing. It's whether you've done a roof like mine.
They're the only content a competitor can't copy
No one else can reword a record of work only one company did. They also add photographed detail to the areas the location pages cover.
The YouTube Knowledge Center
Kihan Marketing built a roofing video library inside the website that looks like YouTube. It works the way a viewer expects a video site to work, with browsing, categories and a player. But it sits on Driftwood's own domain, not on YouTube's. More than 200 videos live in it. Those videos also create roofing posts, so the library makes written content as well as video.
Attention earned on your own domain
A roofing company that makes video normally uploads it to YouTube and embeds the odd clip in a blog post. Every minute of attention that video earns is earned on YouTube's domain. Building the library into the site flips that. The browsing, the watching and the next-video click all happen on the roofing company's own pages. Say a homeowner comes for one video about hail damage and stays for four. They spend that time inside the site that also holds the quote form.
Text is what gets indexed
Search engines don't watch video. Neither do AI assistants. They read the text on the page around it. Two hundred videos sitting on YouTube are invisible to a crawler. Two hundred videos wrapped in written pages on your own domain are a roofing library that search engines can index.
How the Knowledge Center runs itself
A video goes up on YouTube and a page comes out the other end. No one touches it in between.
A video goes up on YouTube
Recorded on a job, published as usual.
The Knowledge Center takes it in
It shows up in the library on the site.
A roofing post is written from it
The written version a crawler can read.
Schema and internal links are applied
So the page describes itself to search engines and links to the service and the city.
The page is submitted for indexing
Through Kihan Indexer, rather than waiting for a crawl.
Roofing 101 sits beside it. It answers the questions people really ask, in a form an AI assistant can quote. That is the gap between being ranked and being cited. A ranking earns a click. A citation earns the answer.
The structure that made it a metro-level site
The site root at driftwoodbuildersroofing.com sits above a city service page for each place Driftwood covers. Under each city sits the work done there.
Asphalt shingle replacement in Cedar Park, an example of a completed job page
The Kihan Internal Linker ties the levels together as the page loads. So a city page points at the jobs done in that city, and each project points back at the service. Local SEO carries the city pages, and the whole site gains the authority they build.
The tooling underneath it
Four tools Kihan Marketing built were used on this site.
Kihan Indexer
Gets new and updated URLs submitted for indexing. That matters when a site adds two hundred pages.
Kihan Schema
Handles structured data across the site.
Kihan SEO plugin
Handles on-page SEO controls.
Kihan Internal Linker
Handles links between pages. It's the difference between 250 pages that support each other and 250 pages that sit alone.
They're built in-house, not bought off the shelf, because of scale. Doing schema, indexing and internal links by hand across 250 pages isn't a workflow. It's a backlog. AI citation work was also part of the program. The aim was to make the site's content quotable by AI assistants, not only rankable in the classic search results.
What the search numbers show
Three windows, each named.
90 days against the same period a year earlier
Average Google position moved from 48 to 20. The site holds 3,147 keywords in Google's top 10. Organic clicks are up 25 percent year over year.
Over 12 months
4,169 organic clicks at an average position of 21.9. The site was shown in Google's results 1,244,708 times.
The most recent six months against the six months before
Organic clicks moved from 1,491 to 2,671. Average position moved from 26.7 to 19.1.
How to read them.
Position 48 is page five
Nobody scrolls to page five. A term ranked there is worth about as much as a term no one searches for. Moving the average to 20 doesn't create new demand. It makes the company visible for searches that were already happening every week and going to somebody else.
1,244,708 impressions puts the rest in proportion
A roofing company with one location doesn't get shown that many times a year. The searches that would produce those impressions happen in suburbs it has no page for. A page for each town and neighborhood, then coverage across the metro, is what turns those searches into results the site shows up in. Position 21.9 tells you how much of that visibility is still lower on the page than it needs to be.
Both six-month numbers moved the same way
Worth saying plainly, because it often doesn't happen. A site that adds a lot of new pages usually gains clicks while its average position gets worse. New terms that rank deep drag the average down. Here the average improved while clicks grew. The gain came from pages the site already had moving up, not just from new terms showing up at the bottom.
What this means if you run a roofing company
The part you can copy isn't the page count. It's the order of the steps.
Prove the model in one location
Profile, service area, service pages, technical baseline.
Expand into the areas your customers name when they search
Suburb, zip, neighborhood.
Write those area pages well enough to survive a Google spam review
Housing stock, materials, permits, storms, costs.
Then build the content your competitors can't copy
Project pages, and a video library on your own domain.
Want to know where your own roofing company ranks for the searches that bring in calls? Call (425) 954-3452 or email info@kihanmarketing.com.

