Challenge
The client (name withheld under NDA) runs two storefronts, one in Canada and one in the United States, on a Laravel and Bootstrap 5 stack with GA4 and GTM. A classifieds platform like this generates pages by the thousand, because every city, category and listing is its own URL, which pushes the total into the hundreds of thousands. That scale is both the opportunity and the risk. When a template is wrong, the same mistake repeats across hundreds of thousands of pages. When I came in, indexation was uneven, category and city metadata was inconsistent across templates, and the US domain was barely visible in search. My job was to find what held the site back at the template level and fix it once, so the fix carried across the whole tree.
Approach
I worked four fronts at the same time: technical SEO, information architecture, content and search data analysis.
On the technical side, I audited the site page by page, covering every template type: Real Estate, For Sale, Services, Personals, city pages, province pages and the individual listing view. I delivered each audit as current code next to corrected code, so the engineering team could ship without reverse engineering my intent. The audits focused on heading structure, breadcrumbs with proper Schema.org BreadcrumbList markup, and the listing carousels.
For indexation, I worked from the Search Console coverage report and split the backlog into two buckets: a discovery gap, where Google could not reach pages efficiently, and a quality and trust gap. That split set the order of the work, and the same read told me which of the two domains needed structure first and which needed trust first.
What I delivered
- Page-by-page technical audits with current versus corrected code for Real Estate, For Sale, Services, Personals, city, province and listing templates, including heading fixes, BreadcrumbList schema and carousel corrections.
- A city-pages program across more than ten markets, including Toronto, Ottawa, Calgary, Edmonton, Vancouver, Winnipeg, Montreal, London ON, Hamilton and Kitchener-Waterloo. I built it on a hybrid workflow: dense pages for cold markets that still had to earn trust, and a faster version at about 80% of the depth for cities already showing search demand, with priority set by Search Console impression data.
- An indexation recovery plan prioritized into faceted navigation, sitemap restructuring and a cleaner subcategory layer, sized to cover the large majority of the backlog.
- A full three-level Services taxonomy (top, mid-level and leaf categories), with a matching sitemap restructure and internal cross-linking plan.
- Introductory content blocks for the footer of dozens of city and category combinations, written to a strict natural-tone standard so the pages read like a person wrote them, not a generator.
- A recurring quarterly Search Console routine: filter queries by position, group by page type, and sort opportunities into Quick Win, Medium and Low, which became a phased action plan the team could work through.
Result
In one quarter, organic clicks rose 39.7% and impressions 73.5%. Growth landed where I prioritized: mid-sized markets grew between 67% and 72% while the majors stayed flat, and the job listings started earning clicks as rich results. Both figures were cross-checked against a second independent Search Console export, agreeing within 0.7% on clicks and 0.13% on impressions.