The starting point

The company had a newly built WordPress site with little search history. GA4 for June 1 to July 26, 2024 shows the baseline: 658 sessions from all channels, and only 109 of them from organic search.

Its Google Business Profile wasn’t active yet, which our July 2024 report flagged as the main limit on local results. So the first phase leaned on the website itself, following a staged plan we wrote in May 2024: on-page SEO for up to 25 indexable pages, then profile work, then local citations.

What we did

  1. Research keywords per service We shortlisted keywords for each roofing service with Semrush and competitor research, then mapped them to pages and set up a rank tracking sheet for Duluth terms.
  2. Write and set up the core pages We wrote content for 6 pages, set titles, meta descriptions and H1/H2 tags, compressed images and added alt text, and configured Yoast. Organization, LocalBusiness and search box schema went in, and Search Console and GA4 were connected with the sitemap submitted.
  3. Link pages and build citations Internal links grouped service pages into clusters, and we created citations and business profiles on directory sites to back up the new site.
  4. Add city pages across two states A January 2025 plan targeted seven towns. By May 2025 pages for seven nearby towns in Minnesota and Wisconsin were live, with the two state pages recommended as overview hubs. We mapped 30 more towns, 16 in Minnesota and 14 in Wisconsin, on one URL pattern.
  5. Run the social accounts From June 2025 we wrote and published roofing posts to Facebook, Instagram and LinkedIn, logging every live link in a shared calendar. Topics followed the weather: leak checks in summer, winter prep in fall, post-winter inspections in spring.

Delivered

  • Local SEO stacking plan (May 2024) and SEO plan (January 2025)
  • Keyword research and content for 6 website pages
  • Schema, robots.txt, Search Console and GA4 setup
  • Rank tracking sheet for Duluth keywords
  • 7 city landing pages and a 30-town expansion map
  • Social posts live on Facebook, Instagram and LinkedIn, June 2025 to May 2026

What changed

Over nine days of tracking in July 2024, ‘duluth roofing company’ went from position 28 to 17, ‘roof replacement duluth’ from 35 to 18 and ‘roof repair duluth’ from 26 to 18. ‘Construction roofing duluth’ moved from 14 to 10.

Not every term moved up. ‘Roofing duluth mn’ went from 28 to 29, and ‘roof cleaning duluth’ slipped from 6 to 12 in the same window.

What we’d point out

Nine days is a short window, and rankings bounce around over that span. We show it because it’s the tracked data from right after the on-page work went live, before the Google Business Profile was active. Citations and directory profiles were also created in that phase, so the moves can’t be credited to any one task.

The longer-term work is the town pages. A roofer covering two states has dozens of small towns, and each one needs its own page with a consistent URL and links back to a state overview. See our home services work and social media management.