Challenge
MarketLister runs two storefronts, one in Canada (marketlister.ca) and one in the United States (marketlister.com), 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 pulled the Search Console coverage report and found roughly 290,000 pages sitting in "Crawled, currently not indexed". I split the cause into two buckets: about 60% was a discovery gap, where Google could not reach pages efficiently, and about 40% was a quality and trust gap. That split set the order of the work.
For the US domain, I ruled out the easy explanations. It was not a cold start and it was not a manual block. The pattern pointed to algorithmic suppression tied to a history of spammy backlinks from before my involvement, which changed the entire recovery plan.
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 for the 290,000 unindexed pages, prioritized into faceted navigation, sitemap restructuring and a cleaner subcategory layer. On my estimates, that plan addressed close to 94% of the gap.
- A root-cause diagnosis and recovery plan for the US site: a backlink disavow, cutting thin pages, and rebuilding the priority pages so the domain could regain trust.
- A full Services taxonomy of 11 top categories, around 45 mid-level categories and around 130 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 three months, organic clicks rose 31% and impressions 40%. More of the right pages started getting indexed and ranking, and the work left MarketLister with a clear, prioritized roadmap for the indexation backlog and the US recovery, with the data behind every decision.