The situation
A roofing and gutter contractor serving the south metro, trying to rank across Lakeville, Farmington, Rosemount and several neighbouring suburbs at once. Suburb-level searches decide who gets the call in this market, and the site had one generic services page covering all of them.
What we did
- Built service silo pages so each trade had its own depth rather than sharing one page
- Created a real landing page per city, each with its own content rather than a swapped town name
- Implemented LocalBusiness schema with correct service areas per location
- Mapped internal linking so authority flowed from the service silos into the city pages
The result
The contractor now ranks for 106 tracked keywords across the metro and holds #1 in several cities. The gain came from treating each suburb as its own market instead of hoping one page would cover them all.
This campaign was run by Reymark Sapin, who runs WeViaLinks, during his work as an SEO Department Head and consultant. It was delivered through that role rather than through WeViaLinks.
