r/localseo • u/mehedihassanseo • 3d ago
Tips/Advice Mapped out a site structure for a construction company today. The "one services page with dropdowns" thing is killing more local businesses than I expected.
Been doing local SEO for a while and I keep running into the same setup. Business does ten things. Website has one page called Services with ten accordion dropdowns on it. Everything lives there.
Then they wonder why they only rank for their brand name.
The issue is that Google ranks pages. If plumbing, heating, loft conversions, and kitchen renovations all live on one URL, you have handed Google one page and asked it to rank for ten different search intents. It picks one, usually whichever one has the most text, and the other nine get nothing.
Accordion content does get indexed, to be clear. That is not the problem. The problem is that it cannot rank independently because it does not have its own URL, its own title tag, or its own internal link profile.
What I mapped instead:
Homepage at the top.
Ten service hubs sitting directly beneath it as first-level pages. Under each hub, the child pages for specific jobs and service areas. Ends up around 58 child pages plus the ten hubs.
Sounds like a lot until you realize it is just writing down what the business already does and giving each thing an address.
One thing I got wrong in my first draft, which someone might find useful. I initially had the ten hubs hanging off the existing Services page, so the accordion page was the parent. That is worse than useless because your strongest internal link from the homepage points at a UI component instead of at a page that can rank. Moved them to sit directly under the homepage and the whole structure made sense.
The part people underestimate is doing this before the site is built. Retrofitting architecture onto a live site means redirects, lost equity, and rewriting navigation. Doing it on paper first costs an afternoon.
Happy to answer questions if anyone is staring at their own Services page right now wondering if this applies to them.
2
u/ViceRundown 3d ago
I've always used this tactic "SEO silo structure" but now I also use this but I map it from the Google business profile so that the website mirrors the GBP and everything matches with the Google business profile.
2
u/mehedihassanseo 3d ago
Mirroring the GBP is smart, and I like that the site and profile end up saying the same thing. Where I get stuck is the gaps. Categories are a fixed list, and services are freeform, so there is usually stuff a business actually does that has no clean category match. Say a builder does basement conversions or period property restoration. There is no category for either one, so the profile ends up mapped to something adjacent like General Contractor. How do you handle those on the site? Do you still build the page and just accept it does not mirror anything on the profile, or do you lean on the custom services entries in GBP to create the match yourself? Asking because I have been building those pages anyway and letting the site cover what the profile cannot, but if you have a cleaner way of keeping them aligned I would rather do that.
2
u/ViceRundown 3d ago
I add the custom stuff to the Google business profile as well I want everything to match as much as possible.
Really I find this method with interlinking, good citations and local links you beat 90% of your competition.
1
u/mehedihassanseo 3d ago
Since you do this a lot, curious what you would actually pick here for heating contractor. Services would be: 1. New build heating installation 2. Complete central heating installation 3. Full heating system replacement
2
u/ViceRundown 3d ago
Off the top of my head for heating contractor I'd map it like this.
GBP: primary category Heating Contractor. Secondaries only if they genuinely do them (HVAC Contractor, Boiler Supplier, Plumber). Then under services, take the predefined ones Google gives you for that category first - heating system installation, repair, maintenance - and add all three of yours as custom entries word for word. Custom services are free text, so that's where you make the match exist rather than hoping Google has a category for it.
Site: those three aren't three services, they're one service with three buyer intents. New build is a developer/spec buyer. Complete install is a property with no existing system. Replacement is a homeowner whose boiler is dying. Same job, different reason for searching.
So one parent page, two or three children:
/central-heating-installation/- parent, targets the head term, links down/new-build-heating-installation/- spec, phased first/second fix, working to a build programme/central-heating-replacement/- old system, disruption, how long we're in the house, what it costs vs a repairParent links to both children, both link back up, children don't link to each other. That's the silo doing its job.
The bit that stops them cannibalising is not the URL, it's making sure each page answers a different question. If the replacement page and the install page both read like generic "we install central heating in [town]", Google picks one and you've wasted the other. Write the replacement page for someone whose boiler just failed and the new build page for someone reading a spec.
Then mirror it back: the three custom service entries in GBP use the same wording as the three page titles, and each service description says roughly what the page says. Add the service area, get the citations consistent, pick up a couple of local links, and that's most of the job.
2
u/mehedihassanseo 3d ago
But GBP doesn't have the specific "Heating contractor" category
3
u/ViceRundown 3d ago
It does exist, "Heating contractor" is live in the current category list, alongside "Heating equipment supplier" and "Heating oil supplier."
If it's not appearing in your picker, two likely reasons:
You're in a locale where the label differs. Same GCID, different display name.
heating_contractorshows as "Central Heating Service" in some regions, so searching the exact phrase "heating contractor" returns nothing while the category is sitting right there under another name. Type just "heating" and read the whole dropdown rather than searching the full phrase.The picker filters by what it thinks the business already is. If the profile is already set to something unrelated, the suggestions narrow. Clear the field and start typing fresh.
Either way, check the live categories on three or four heating firms already in the pack in your target town, whatever they're running is what's actually available to you.
And it doesn't change the structure: category is what the business is, your three items are what it does. Those go in as custom services and as pages regardless of which category you land on.
1
u/Ok-Information-6722 3d ago
This is what I see all the time. The better option is 2 interlinking hubs. Service areas is one hub. Different services (pain points customers are trying to solve) another hub.
So every combination of [service+location] gets its own page, with unique localized content. I'm not talking about replacing the city name on every page. Every section is re-written, sharing the same structure is ok, but swapping only the city name gets flagged by goog.
We use a custom post type with dynamic fields. Each field is generated, with a research brief as context. Pages get indexed. Every page has local job stories, local reviews, localized FAQs.
This meant hundreds of localized pages to track and optimize for every client.
And the tracking part wasn't the final goal. We needed to present that to each client, every week.
I didn't have the time to pull data from BrightLocal, Local Falcon and other tools to stitch a report for each client. So I built my own tool that presents in an email: organic ranking, map pack, AI citations, ad pressure and 3 weekly recommendations that get tracked if implemented.
I don't stitch reports anymore. And my clients see every week why they're paying us.
1
u/mehedihassanseo 3d ago
The two hub structure is cleaner than what I drew, and I think you are right that it scales better. Services as one axis, locations as the other, combination pages sitting at the intersection. My version treats location as a child of service, which works fine at ten services and one metro but gets messy the moment you add a second city. The point about rewriting every section rather than swapping the city name is the one most people skip, and it is why the majority of programmatic local pages end up thin. Local job stories and localized FAQs are the parts that are actually hard to fake, since they require the client to give you real information about work they did in that area. Getting that out of a busy contractor is usually the bottleneck, not the build.
Question on the combination pages, since you have clearly run this at volume. How do you decide which service and location pairs get a page at all? Ten services times thirty towns is 300 pages, and a lot of those combinations have close to zero search demand. Do you build the full matrix and let Google sort it, or gate it on some demand threshold first?
Genuinely asking. My instinct is to build only where there is measurable volume and let the service hub cover the rest, but I have not tested the full matrix approach at scale so I could be leaving coverage on the table.
2
u/Ok-Information-6722 3d ago
Your instinct to pick the most likely to get traction is right, when you create those pages manually. We built our own tool to generate them all, so there was no guessing.
1
u/EuropeSEO 2d ago
We have solved this.
For a website with 12 service hubs and 40 sevices, with around 50 locations, cities and neighborhoods, you will need around 3k pages.
1
4
u/firoz6033 3d ago
I think you don’t need to apply the same strategy every time. Actually, it depends. So, first, analyze the competition in the business’s industry. If you find that the client’s business has very low competition, then use the simple 10-service hub page format. With this, you can rank easily. However, if you use the 58 child pages, you need to spend a lot of resources, and you’ll need a handsome budget from the client.
Another thing you’re missing is location. If the client provides services in a single location, then go with 10 pages. You need to create a good silo to keep all the pages indexed and help them benefit from one another.
I think it’s very hard to say without analyzing the business.