Case study 03
A national pest control group operating across Canada in English and French. Thousands of near-identical pages, all competing with each other. My first recommendation was to delete most of them.
Part one
Someone else had already spent a year making this worse.
This one didn't arrive as a mystery. I crawled the site, opened the visualisation, and said the only honest thing available.
"The previous agency did a lot of damage. It's very uncomfortable to look at. That's all I've got to say about that one."
Me, first working session with the client
Here’s what they’d built. Take ants. There was a page for commercial ant control and a page for residential ant control. Then the same split again for Toronto, for Vancouver, for Calgary, for Montreal. Then the whole pattern repeated for rodents, wasps, spiders, cockroaches, bed bugs.
I could see what the previous agency was going for. More pages, targeting more variations, in more cities. On a spreadsheet that looks like coverage. In an index it looks like a site that can’t decide what any of its pages are for.
I told the client where it ends. For every city they’d eventually hold a rodent page, an ant page and a wasp page, each in two flavours, all fighting the national versions of themselves. Google resolves that by ranking none of them well.
"Only after the technical foundation is laid down properly is the whole structure going to be built upon it. If it isn't, it's going to crumble on its own."
Worth saying because it set expectations for the first quarter. Nothing I was proposing would produce a chart worth showing for months, and I'd rather agree that up front than explain it later.
Part two
One question about mice, and a head term I refused to chase.
The commercial-versus-residential split was the load-bearing assumption in the whole structure. Everything multiplied out of it. So I went at that first, and the argument turned out simpler than I expected.
"The kind of mice that you have don't have a preference to go into a commercial location or a residential location. It's all the same."
Me, to the client, on why the split had no basis
The treatment is the same. The technician is the same. The search someone types is the same. The split existed because it was easy to generate pages that way, not because anyone in Toronto or Montreal was searching that way.
Once that goes, the rest collapses cleanly. One parent page per pest. Everything else redirected into it.
The client had one term in mind: pest control. It’s the category. It’s what the business is called. It’s also, in Canada, about as contested as a commercial search term gets, and they were nowhere near it.
I told them we weren’t going to attack it directly, which is not a comfortable thing to say in month one. What I proposed instead was a ladder.
Alongside that, the fastest available wins. I filtered every keyword already sitting between positions four and fifteen and worked only on those pages. Those are close enough that structure and content can push them into the top five inside a quarter. It bought runway for the slow work.
We’d started with paid placements in national newspapers. Expensive, prestigious, useful for a client who wants to see their name somewhere recognisable.
I dropped them. The links were nofollow, which means they pass no authority. We were paying premium rates for something that did nothing for search. Telling a client you’re stopping a tactic you previously recommended is unpleasant. It’s also the entire job.
Part three
One spreadsheet, a strict order, and a result that split in two.
Consolidating a site this size isn't a decision, it's an inventory. So I built one: every HTML page from a fresh crawl, including the French pages, the blog, and the junk that should never have been crawlable.
Canonicals first. Then change the URL of the page that’s going to survive. Then deploy the redirects in bulk. Then disallow the crawl junk.
Do that in any other sequence and you redirect pages into URLs that don’t exist yet, or canonicalise to a page you’re about to move. Across thousands of URLs, one wrong ordering decision is not recoverable in an afternoon.
Over 8,400 non-branded terms ranking in the top hundred, in both official languages, filtered to exclude anything containing the brand name. That’s the ladder working. Nobody bought those individually. They came from a clean structure where each pest owns one page and that page has no rivals.
Canada-wide · one month of movement
| Query | 1 Apr | 30 Apr | Change |
|---|---|---|---|
| pest control canada | 8 | 1 | +7 |
| silverfish extermination | 5 | 1 | +4 |
| bed bug extermination service | 5 | 1 | +4 |
| wasp removal services | 44 | 5 | +39 |
| insect control services | 40 | 5 | +35 |
| pest control firms | 34 | 5 | +29 |
| home exterminator | 23 | 5 | +18 |
| near me pest control | 14 | 4 | +10 |
Toronto
| Query | 1 Apr | 30 Apr | Change |
|---|---|---|---|
| pest control services | 7 | 1 | +6 |
| silverfish extermination | 8 | 1 | +7 |
| bed bug extermination service | 18 | 4 | +14 |
| ant pest control toronto | 8 | 4 | +4 |
| wasp removal services | 31 | 9 | +22 |
| near me pest control | 24 | 13 | +11 |
Montreal
| Query | 1 Apr | 30 Apr | Change |
|---|---|---|---|
| pest control services | 15 | 1 | +14 |
| bee exterminator near me | 27 | 7 | +20 |
| insect removal companies | 24 | 9 | +15 |
| ant control near me | 23 | 9 | +14 |
| pest exterminators near me | 16 | 7 | +9 |
| bug exterminator | 12 | 5 | +7 |
Quebec is a separate search market with separate competitors, and most national brands treat it as a translation job. These are position one, on the French terms, in a market the client’s competitors largely ignore.
| Query | Position | Monthly volume |
|---|---|---|
| exterminateur fourmis | #1 | 1,300 |
| exterminateur guêpes | #1 | 480 |
| exterminateur frelons | #1 | 170 |
| exterminateur rongeurs | #1 | 50 |
| exterminateur de fourmis | #2 | 210 |
National organic climbed. Local visibility fell, in almost every city, and I want to be straight about that because it's in the client's own reports.
The cause wasn’t the SEO work. During the engagement a corporate merger brought two long-established pest control brands under one owner, and for a long stretch both kept operating on separate domains, under overlapping names, at the same addresses in the same cities. Branded search declined for both. Local rankings in Toronto and Montreal, the two biggest markets, slipped hardest.
My read, given to the client plainly, was that Google could no longer tell which entity was real. Two names, two domains, one address, one phone number. The only reason it hadn’t become worse was decades of accumulated trust absorbing the confusion.
That was not a problem I could fix with redirects. It needed a corporate decision about which brand exists, made several levels above the marketing team. What I could do was diagnose it precisely, evidence it in the reporting rather than let it sit as an unexplained decline, and keep the national programme compounding while the brand question got resolved.
Deletion is a growth strategy and nobody wants to buy it. Every incentive in this industry points at producing more — more pages, more posts, more deliverables you can put on an invoice. The most valuable quarter of this engagement produced almost nothing you could show a client, and it's the reason everything after it worked.
And refusing the brief is sometimes the service. They asked for the category term. Taken literally, that meant a year losing to national competitors on one keyword, instead of quietly taking 8,400 others.
Sources. Figures from the client's monthly and quarterly search performance reports, GA4, SEMrush and Google Business Profile, plus recorded working sessions across a twelve-month engagement. Nothing modelled, nothing estimated.
Client name and brands withheld. Happy to talk through the reasoning in more detail.