Case study 03

The last agency built a page for every pest in every city

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.

8,400+
Non-branded keywords ranking top 100
English and French
76%
Of all site traffic now organic
paid under 1%
16.7→9
Average keyword position
across the tracked set
#2
On "pest control near me"
8,100 searches a month
Client national pest control groupMarkets Toronto, Montreal, Vancouver, Calgary, Ottawa, Quebec City and Atlantic CanadaRole SEO strategist

Part one

The problem

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.

How the page count multiplied One pest split into commercial and residential, multiplied across every Canadian city, then repeated for every pest the company treats. HOW ONE TOPIC BECAME HUNDREDS OF PAGES Ant control one real topic commercial ant control residential ant control /ant-control-toronto /ant-control-vancouver /ant-control-calgary /ant-control-montreal …and every other city × every pest rodents, wasps, spiders, bed bugs… What that produces Rodent control and rodent removal existing as exact duplicates of each other Every city page competing with the national page for the same query A robots.txt placing no restriction at all on crawling any of it Source: Screaming Frog crawl of every HTML page, English and French
Each split looks reasonable on its own. Multiply three reasonable decisions together and you get a site where every page has a rival.

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.

How I framed it

"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

How I came up with the solution

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.

Consolidation into one page per pest Nine near-duplicate rodent pages across Canadian cities redirected into the single strongest page, which inherits the authority the duplicates accumulated. BEFORE AFTER /rodent-control /rodent-removal /rodent-pest-control /commercial-rodent /residential-rodent /rodent-toronto /rodent-vancouver /rodent-calgary /rodent-ottawa nine pages, one query, no winner 301301 301301 /rodent-control the strongest existing page one page, carrying everything the others earned
The rule was "identify the most powerful page for each pest." Not build a new one. The winner was whichever URL had already accumulated the most authority, so the redirects fed something with history rather than starting from zero.

The keyword they wanted, and why I said no

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.

The topical ladder Winning individual pest terms first so the parent category term is earned rather than attacked directly. EARN THE PARENT TERM, DON'T ATTACK IT "pest control" the category term, granted not taken ants rodents wasps silverfish bed bugs win these individually, and the category follows because "pest control" is composed of them
A parent term is a summary of the child terms you already own. Chasing it directly means competing on a keyword you have no evidence you deserve.

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.

A tactic I stopped selling

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

How the strategy got executed

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.

The technical master sheet Every crawled URL with its action, destination, status code and indexability, sorted so a developer can work top to bottom. THE TECHNICAL MASTER SHEET URL Action Destination Status Indexable /commercial-ant-control-toronto /ant-control /residential-ant-control-toronto /ant-control /ant-control /wp-content/… Deploy 301301No Deploy 301301No Change URL, keep200Yes Disallow in robotsNo Actions sorted A–Z so the developer works top to bottom and never has to decide anything.
Written for someone who knows nothing about SEO. Every row is an instruction, not a recommendation. That's the difference between a deck that gets admired and a change that gets shipped.

The order mattered more than the actions

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.

What it produced

8,400+
Non-branded keywords in the top 100
brand name excluded entirely
76–80%
Of all site traffic now organic
paid under 1%
16.7→9
Average keyword position
across the tracked set
#1
On the national category term, mobile
from position 8

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

Query1 Apr30 AprChange
pest control canada81+7
silverfish extermination51+4
bed bug extermination service51+4
wasp removal services445+39
insect control services405+35
pest control firms345+29
home exterminator235+18
near me pest control144+10

Toronto

Query1 Apr30 AprChange
pest control services71+6
silverfish extermination81+7
bed bug extermination service184+14
ant pest control toronto84+4
wasp removal services319+22
near me pest control2413+11

Montreal

Query1 Apr30 AprChange
pest control services151+14
bee exterminator near me277+20
insect removal companies249+15
ant control near me239+14
pest exterminators near me167+9
bug exterminator125+7

The French half is not an afterthought

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.

QueryPositionMonthly volume
exterminateur fourmis#11,300
exterminateur guêpes#1480
exterminateur frelons#1170
exterminateur rongeurs#150
exterminateur de fourmis#2210

And the part that went the other way

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.

National organic up, local visibility down Non-branded organic rankings improved nationally while Google Business Profile impressions fell year over year in eight of nine Canadian markets. NATIONAL ORGANIC LOCAL PROFILE IMPRESSIONS, YEAR OVER YEAR Non-branded keywords, top 100 8,400+ Average position 16.7 → 9 Share of all site traffic 76% Calgary, AB St. John's, NL Vancouver, BC Saint John, NB Fredericton, NB Quebec City, QC Chatham, ON London, ON Ottawa, ON −58% −58% −38% −37% −36% −34% −33% −14% +25% Google Business Profile impressions, three-month period vs same period prior year
Two results from one engagement, pointing opposite ways. Any case study showing only the left-hand side would be lying by omission.

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.

What I took from it

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.

← Back to harisjilani.com