Case study 02
Google quietly changed how it ranks business listings. Every multi-service profile this client owned lost visibility at once. Working out why took a morning. Working out what to do about it took considerably longer.
Part one
Every listing was slipping. Except one, and it wouldn't stop winning.
Local was meant to be the easy half of this account. The client ran programmes in around 300 locations across the country. Real venues, real footfall, parents actively searching for exactly what they sold. On paper it should have been the simplest work I did.
Then the listings started sliding. Not a crash. A drift. A position here, a local pack drop there, spread across markets that had nothing else in common. I went looking for a pattern and found something more useful: an exception.
Google had shifted toward rewarding specialised primary categories. A profile that says it does one thing now beats a profile that says it does five, even when all five are perfectly true. Every listing in this estate was configured the way multi-programme businesses naturally configure themselves: one location, one profile, a general category, every service stacked underneath.
The estate wasn’t broken. It had been built correctly for rules that no longer applied. That distinction matters, because it changes the conversation you have with a client from “someone made a mistake” to “the ground moved.”
Before any of the category work, I checked something basic that turned out to be the single biggest problem across the locations. Every business profile has a landing page, the website it sends people to. It’s the most powerful field on the profile and the most commonly ignored.
Every one of these profiles was pointing at the homepage.
Think about what that asks Google to do. It reads a profile for a specific address in a specific city, follows the link to verify, and lands on a page written for the whole country. Nothing about that city. Nothing about that pool. No address, no local programme, no reason to believe the listing.
I said in a client meeting that this wasn’t neutral, it was doing harm. Every profile in the locations was making a promise the website refused to confirm. There were no city pages to point them at, because city pages belonged to a different workstream that hadn’t shipped yet. Once those pages existed, repointing the profiles was a ten-minute job per location with a big payoff.
Before designing anything I checked the fundamentals across the priority markets. Name, address, phone. The things that are supposed to be identical everywhere and never are.
All worth fixing. None of it the ceiling.
The ceiling was reviews, and the client had worked that out before I did.
Months earlier, in one of our first meetings, she told me she’d been taking meetings with a third-party review platform. Not because she preferred it, but because she’d done the maths on Google reviews and didn’t like the answer.
"The gap is that it's going to take us a long time to get the local piece. So how can we build brand trust that isn't at a local level, using something else?"
Client marketing lead, four months before I audited the profiles
That’s a smart read of a bad situation. It also explains why the locations looked the way they did. They had plenty of happy customers and a healthy review presence. It was just building up on a platform Google doesn’t count for local ranking, because the one Google does count felt out of reach.
So when I pulled the competitor numbers, I wasn’t breaking news. I was putting a figure on something she’d already sensed.
This changed what I told them to spend money on. Local had been framed as a content problem. It was a reputation-routing problem wearing a content problem’s clothes.
And it changed my advice on the review platform. Not “don’t”, because brand trust is real and those reviews do work on the website. But it can’t stand in for the local piece, because the local algorithm doesn’t read it. Two jobs, two tools, and the expensive one wasn’t solving the problem costing them rankings.
Part two
The fix was obvious within a morning. Then four constraints showed up.
If specialisation was winning, the answer was to stop asking one profile to represent several services. Split them. One primary service per profile, each pointed at a landing page that says the same thing the listing says.
Simple enough on a whiteboard. Then I started pressure-testing it against reality, and four things came back that changed the shape of the plan entirely.
Every location carried 30 to 40 citations, the directory entries that back up name, address and phone across the web. Change the profile name and all of them are instantly wrong. Rebuilding takes about two weeks to propagate. Which means every improvement starts by making things worse.
Push changes in bulk and Google may re-verify, sometimes by asking for video from the site. This is a seasonal business. The person at a location in August isn’t there in October, and probably isn’t the person who can walk around filming a pool.
Programmes run inside third-party pools and facilities. Name a listing after the host venue and Google may read it as a duplicate of a business that already exists at that address. Getting flagged for gaming the system is much worse than ranking third.
None of this closes a 180-review gap. I could do everything right and still sit below competitors who’d been collecting reviews for years.
While comparing profiles in one market I noticed the competitors ranking above us listed opening hours until 10pm and 10:30pm. This client's listing closed at 3:45.
The local algorithm is extremely sensitive to that. Search in the evening and a closed business is quietly demoted regardless of how well optimised it is. It isn't something an SEO can fix, but the client could, and telling them was worth more than another round of posts. Half of local SEO is spotting operational facts nobody filed under marketing.
Three hundred locations. A fix that costs two weeks of ranking each. Staff who move with the seasons. The tempting move is to go wide and go fast, and it would have been a disaster: flagged listings, broken citations, no gain, and a client watching their rankings fall for a quarter.
I also didn’t rank the shortlist by search volume. I ranked it by market. One affluent suburb on the list has a small population, few competitors and almost nobody searching who doesn’t already live there. Little to win, whatever we did. Two others are growing fast, have real competitors fighting over the same queries, and a population that turns over every year. Those went first. Competitive markets score worse on keyword difficulty and are usually where the upside actually is.
Part three
Order of operations, an expected dip, and the results that followed.
The sequencing mattered more than any individual tactic, so I fixed it and refused to vary it. Website changes ship first. Profile renames second. Citations rebuild third.
The reason is simple. If Google runs a verification check, the site should already say what the listing says. Do it the other way round and you’re asking Google to verify a business whose own website contradicts it.
Every profile got a real local phone number forwarding to the central contact centre. Better local signal, and it means somebody actually answers when Google calls to verify.
Citation building is usually sold by volume, and volume is the wrong metric. Plenty of directories are low authority, irrelevant to the sector, or already flagged by Google as spam. A listing on one of those isn’t neutral. It’s a liability attached to your name.
So we built to a shortlist per market rather than a target number, and skipped anything that failed a quality check even though it would have made the dashboard look busier. Five cities reached full coverage on that basis.
The profiles were being posted to three or four times a week on automation. Nobody could show me what it was achieving, because it wasn’t achieving much. Post frequency is a weak ranking input and always has been.
I cut it to weekly and moved the effort into monthly profile products, each linked to a specific service page. Those feed the same internal architecture the organic programme runs on, so the work compounds instead of disappearing. Post content got templated by programme mix, so a profile never advertises something that location doesn’t actually run. Obvious, until you’re generating content for a hundred sites with different offerings.
I extended reporting to AI results, because local behaves oddly there. Answers are highly location-sensitive, they change between sessions, and a brand's position in an AI answer isn't necessarily its position in the local pack.
I treated that as monitoring, not strategy. What improves AI visibility for a local business is the same work as everything else: consistent data across every profile, genuine specialisation, and reviews. The one properly AI-shaped recommendation I made was publishing starting prices by region, because pricing is one of the most common things people ask an answer engine and this client had no answer anywhere.
The clearest evidence is at market level. These are position changes on local service queries across two priority cities, over the same six months.
Seasonal camp queries that had never appeared in a local pack started appearing in one.
The review gap is still open. It was never going to close inside a rollout window, and I’d rather say that plainly than dress a structural fix up as a reputation win.
What the work did was clear everything that sits below reviews in the ranking hierarchy. When the client resources a review programme, it’ll land on profiles that are correctly categorised, consistently cited, and pointed at pages that back them up. That’s a much better starting line than the one they had.
Organic search is a system you can reason about. Local is a system you negotiate with.
Reviews, verification, citation propagation, and a platform that changes its mind
Recommending a smaller programme than the client could afford was the most valuable call I made here, and the one I found hardest to make. Nobody gets excited about a proposal that starts with "let's do a third of this."
Most local SEO advice is a list of individually true things. What actually decides whether it works at scale is the order you do them in, and how honestly you brief the client on what happens in between.
Sources. Figures come from the six-month client review deck and from recorded optimisation workshops. SEMrush position tracking, the client's Google Business Profile dashboard and Search Console, read live in session. Nothing modelled, nothing estimated.
Client name, locations, personnel and vendor relationships withheld. Happy to talk through the reasoning in more detail.