Local Directory SEO: Case Study
We Built the Asheville Contractor Directory We Wished Existed
AshevillePros.com is not a client. It is ours. We designed it, wrote it, built it, and rank it, in the town we live in, for the contractors we know by name.
Designed, built, written & ranked by Gridwork
56
Local businesses now on page one for searches of their own name
43 → 28
Average Google position over 16 months
686
Pages rebuilt, with every existing web address preserved

About Asheville Pros
AshevillePros.com is a curated directory of contractors, builders, and home service companies across Asheville and Western North Carolina. It is run by John and Brittany Ragon, who have lived in WNC since 2009.
The rule for getting listed is simple and it has never moved: you have to be a real, independent, local company. Franchises and national chains do not get in.
That rule costs the site listings. It is also the entire point.
The Problem
Ask a WNC homeowner how they find a plumber and you get one of three answers. A Facebook group post. A national lead-selling platform. Or a Google results page where the top four slots are ads bought by companies headquartered somewhere else.
None of those serve the homeowner well, and all three are actively bad for the contractor.
The lead marketplaces sell the same lead four times. A contractor pays for the privilege of being one of four people calling the same homeowner back within the hour. That is not marketing. That is an auction where the prize is a race.
Google was filling the trust gap with forum chatter. When we measured the Asheville trade searches, Reddit threads sat at positions two through four and Facebook group posts at seven through eleven. Google wanted to answer “who do locals actually recommend” and had nothing local and editorial to point at, so it pointed at strangers on a forum.
And the pages that did hold page one were thin. One national contractor site holding Asheville rankings gets 864 visits a month across its entire 14,000-keyword site. Another gets 46 visits a month sitewide. They were ranking on domain age, not on knowing anything about Asheville.
Meanwhile, the good local companies had no way to be found. Most of the 303 businesses now in the directory have never hired an SEO in their lives. Many have a website their nephew built in 2016 and a Google profile they have never logged into.
That is the gap. Not a shortage of skilled contractors. A shortage of ways to find them.
The Solution
Website design: a directory built on facts, not plugins
The site ran for years on an off-the-shelf directory plugin. That works right up until you want the pages to be fast, consistent, and cheap to run, and then it stops working all at once.
So we rebuilt it from the ground up. Every business is stored as a clean set of facts rather than a page someone typed by hand, which is what lets 303 listings and 48 categories become 686 pages: a profile for every business, a category page for every trade, town pages for the outlying communities, an events calendar, and an article library. Pages load fast, the data stays consistent, and a change goes live in minutes.
Two decisions shaped everything else.
We preserved every web address exactly. Every page the old site published still lives at the same address. Sixteen months of accumulated search equity carried over untouched, and the move needed no redirects at all. An SEO agency tanking a site during its own rebuild is the wrong case study to write.
We refused the programmatic geo play. The obvious move for a directory is to generate a page for every city and service combination. We measured ours first: 63% of the listings are in Asheville proper, and only 24 city-and-trade pairs have three or more businesses. Generating /asheville/hvac-contractors/ next to /industry/hvac-contractors/ would have produced two near-identical pages competing with each other. We built six town pages where the data actually supported them and stopped there.
Deliberately not building 1,500 thin pages is a design decision. It just does not photograph well.
SEO: the category page is the money page
Directory sites usually pour their effort into individual business profiles. The data says that is backwards. A comparable one-metro directory in Denver pulls roughly 28,500 organic visits a month, and about 90% of it lands on twenty category pages.
So the category pages are where the depth goes. A real curated list with a written blurb per company, editorial framing, a genuine FAQ, and the structured data underneath it. One URL per trade, with all the authority pointed at it, instead of a blog post and a category page splitting the same query between them.
Underneath that sits the licensing cluster, which is the site’s quiet workhorse. One guide on how to verify a North Carolina contractor’s license has pulled 6,779 impressions and holds ninety-one keywords. It exists because it answers a question every homeowner should ask before signing anything, and because the results page above it was a City of Greensboro page, a South Carolina lookup tool, and some Facebook posts.
The primary source that guide is built on, the North Carolina Licensing Board for General Contractors license search, is linked directly in the article. Sending readers to the official record is the whole job. A directory that will not point you to the state database is not a directory, it is a lead form.
Content marketing: the article is the excuse, the relationship is the point
The weekly rhythm on this site is two hours, and only one of those hours is writing.
The first forty-five minutes are spent emailing five contractors in that week’s trade and asking each of them one specific question. Then the answers get written up, published, and sent back to everyone quoted.
That produces something the national platforms structurally cannot copy: named Western North Carolina experts on the page. When the arborist guide went up, it went up with real ISA-certified arborists in it, credential numbers and all, sourced from their own websites rather than guessed at. When the roofing cost piece needed numbers, we asked roofers here what they actually charge.
Angi cannot do that. It does not know anyone in Asheville.
The compounding math is the part worth noticing. Twenty-one weeks of five contractor conversations is roughly eighty-four relationships by New Year’s. Every one is a person with a reason to share the piece, a candidate for a listing, and a possible link. The content calendar and the networking calendar turned out to be the same document.
AI SEO: making the town machine-readable
When someone asks ChatGPT for a plumber in Asheville, the model needs a source that states plainly which businesses exist, what they do, where they are, and who vouches for them. Directory data is exactly that, but only if it is structured.
So every page ships the markup that makes it extractable. LocalBusiness and Organization data on listings. ItemList and CollectionPage on categories. FAQPage blocks on the guides. Event structured data on the community calendar, complete with dates and pricing confirmed with the organizers by email rather than inferred. BreadcrumbList site-wide so the hierarchy is unambiguous.
Three more things matter as much as the schema.
Entity consistency across 303 records. Name, address, phone, hours, and services follow the same shape on every listing because they come from the same fields in the same content model. Inconsistent data is the most common reason an AI answer skips a business.
Answer-shaped content. The licensing and permit guides are written as direct answers to specific questions, because that is the unit an AI assistant quotes. “What does a Buncombe County permit actually require” is a better asset than “Everything you need to know about permits.”
Open access, with one exception. Crawlers get the whole site. The only paths closed off are the per-business claim pages and the API routes, which are outreach tools rather than content and have no business in an index.
We are not going to claim a citation count we cannot verify. What we will say is that the site is built the way a machine-readable local knowledge base needs to be built, and that is the prerequisite for everything else.
Community: the parts that will never show up in an analytics dashboard
Listings are free. A business does not pay to be in the directory. Featured placement exists, it costs $99 a year, and it is optional.
The featured badge links to their listing page, not our homepage. With their business name as the alt text, not “best Asheville plumber.” A badge program that points every link at the home page with keyword anchor text is a link scheme wearing a nice logo. Doing it the defensible way is also doing it the honest way.
We do not sell homeowner information and we do not charge per lead. It says so on the homepage, above the fold, because that is the promise the site is actually making.
Every business can claim its own profile. All 303 listings have a claim page so the owner can take control of what is published about them. Those pages are noindexed on purpose. They are for the business, not for Google.
The events calendar is civic infrastructure. Nine WNC events are listed: the Parade of Homes, the Build and Remodel Expo, the Spring Herb Festival, Buncombe County Household Hazardous Waste Days, pruning workshops from the Cooperative Extension, classes at the NC Arboretum. We emailed every organizer to tell them their event was listed and to invite corrections. Nobody paid for placement and nobody was asked to.
And we show up in person. BABRM, the PHCC Western NC chapter, NCAEC, Green Built Alliance. The link building strategy for this site is, almost literally, going to the meeting.
Before Gridwork vs. After Gridwork
| Before | After |
|---|---|
| An off-the-shelf directory plugin, slow and hard to change | Rebuilt from the ground up, 686 pages, changes live in minutes |
| Listing data trapped in a plugin database | 303 structured business records we own outright |
| Average Google position 43 | Average Google position 28, with a best month of 20 |
| 162 search impressions a day | 613 search impressions a day, and climbing after the relaunch |
| A handful of pages with any search visibility | 325 business listing pages earning impressions, 221 with real volume |
| Thin category pages, only eight ranking for anything | Category pages rebuilt as the primary assets, 32,882 impressions |
| No structured data | LocalBusiness, ItemList, FAQPage, Event, Article, and BreadcrumbList site-wide |
| Homeowners choosing between Facebook posts and lead marketplaces | A curated list of independent local companies, free to join |
The Results
Search visibility roughly quadrupled. Daily search impressions went from 162 in the first month to 613 over the most recent 28 days. Across the full 16 months the site has earned 145,928 impressions and 707 clicks from Google.
Average position moved from page four to the top of page three. 42.7 down to 28.2, with a best month of 19.8. On a directory carrying an Authority Score of 6, that movement came from structure and content, not from links, because the links are not there yet.
The last 28 days beat the 28 before them by 72% on clicks and 63% on impressions. That is the trend line that matters more than the absolute numbers at this stage.
The relaunch showed up immediately. In the nine days after the rebuilt site went live, daily impressions ran at 1,012 against 404 for the prior four weeks. Nine days is not a result and we are not going to pretend it is one. It is a good early signal that the rebuild did not cost the site anything, which is the bar a migration has to clear first.
And 56 local businesses now sit on page one for searches of their own name, on a directory page we built for them for free. Pisgah Home Inspections at position 8.7. Southern Classic Roofing at 7.8. Crown Electric at 9.7. Every one of those is an Asheville company that gets found a little more easily because of a page they never had to pay for.
That last number is the one that made this project worth doing.
Claim Your Free Asheville Pros Listing
If you run a contracting, building, or home service business in Asheville or Western North Carolina, there is a good chance you are already in the directory. There are 303 businesses in it, and most of those profiles were built from publicly available information rather than waiting for anyone to sign up.
Claiming yours takes a few minutes and costs nothing. It is how you make sure the details are right: your phone number, your service area, your hours, the trades you actually work in, and a link to your own website.
Claim or update your business profile on Asheville Pros
Not sure whether you are already listed? Search for your company at AshevillePros.com and look for the “Claim this profile” link on your page.
What We Have Not Done Yet
An honest case study says what is still broken.
The site has an Authority Score of 6 and roughly one legitimate editorial backlink. It has 114 referring domains and nearly all of them are scraper junk. The contractors outranking the directory sit at 300 to 400 real referring domains built over years of chambers, suppliers, and sponsorships.
That is the binding constraint, and no amount of publishing fixes it. The target is 8 to 12 real referring domains by December, earned through memberships and relationships rather than bought. We track every one in the open, and a listing does not count until it is verified do-follow.
We put that in the case study on purpose. Any agency can show you the part that is working.
Our Services on This Project
- Website design and build, a full rebuild with every existing web address preserved
- Information architecture, including the decision not to build 1,500 thin geo pages
- SEO strategy, category-page-first, with keyword difficulty and competitor gap analysis behind every target
- Content marketing on a weekly publishing schedule, built on quotes from named local contractors
- AI SEO, structured data across every template, entity-consistent business records, and answer-shaped content
- Local link building through WNC trade associations, chambers, and sponsorships, every link verified do-follow before it is recommended
- Analytics and conversion tracking, privacy-first, with goals wired to real actions
Ready to Build Results Like This?
We did not build Asheville Pros as a demo. We built it because our neighbors deserved a better answer than a lead marketplace, and because an SEO firm should be willing to run its own playbook where everyone can watch.
If you run a home service business with real skill and no reliable way for people to find you, that is the exact problem we solve.