OMCA study materials
OMCA study resources

Local SEO Recovery After a Botched Migration

OMCA · Put your knowledge to work in context.

All case studies

Local SEO Recovery After a Botched Migration

Harbor Plumbing operates 14 locations across three states. Organic sessions fell 60% in the Denver market six months after a migration to a new CMS, while other markets are flat. The site has 1,200 URLs, including 400 location-service pages that differ mainly by city name and boilerplate text. Three Denver pages target the same 'emergency plumbing Denver' query and rank positions 11, 14, and 22. Google Business Profiles for five locations show inconsistent names, phone numbers, and hours; two lack recent photos and Q&A. The migration changed URLs without redirects for 180 pages, and the sitemap still lists old URLs. Local pack visibility in Denver dropped from 4 to 11. The owner wants to publish 50 more city pages this month and buy local citations. The SEO manager has one developer for two sprints, a $5,000 budget, and a quarterly revenue target that depends on Denver recovery. What should the team prioritize?

1. What is the most likely cause of the Denver drop and how should the team sequence recovery?

Read the worked answer
Likely cause

The timing and market specificity point to a migration-induced crawl, index, and relevance problem compounded by local signal issues, not a content-volume problem.

  • 180 URLs changed without redirects: old URLs return 404s, and any links and rankings are lost. If those URLs included Denver service pages, that alone can explain a sharp local drop.
  • The sitemap still lists old URLs, sending mixed signals and slowing discovery of new URLs.
  • Three pages targeting the same query split internal links and relevance. Positions 11, 14, and 22 suggest Google sees multiple similar pages and cannot choose a canonical.
  • Inconsistent Google Business Profile data in five locations weakens local pack trust. Denver's local pack drop from 4 to 11 aligns with that.
  • 400 near-duplicate location-service pages are a quality risk, but likely secondary to the migration errors.
Sequence

Sprint 1 - fix the loss. Map all 180 old URLs to the closest new URL, implement 301 redirects, update internal links, rebuild the sitemap with only live canonical URLs, submit it, and check robots and noindex directives. Verify in server logs and Search Console that old URLs are crawled and redirecting.

Sprint 2 - consolidate. Choose one canonical Denver emergency page, merge unique content from the other two, 301 the weaker pages, and update internal links. Do not publish 50 new city pages yet.

Local cleanup. Standardize name, address, phone, hours, and categories across all 14 profiles; add photos and Q&A for the five inconsistent locations. Fix Denver first.

Measure: weekly indexed pages, 404 volume, redirect coverage, rankings for the three Denver pages, local pack rank, and organic sessions by landing page.

2. How should the team handle the 400 location-service pages and the owner's request for 50 more city pages?

Read the worked answer
Handling the location pages

Audit the 400 existing pages before adding any. Segment them by organic sessions, conversions, backlinks, and uniqueness. A page qualifies as a real local asset only if it contains local proof: named technicians or teams, service-area details, local projects, reviews, pricing or offers, photos, and location-specific FAQs.

Decide per page:

  • Keep and improve pages with local proof and any traffic or conversions. Add unique content and internal links.
  • Merge pages that target the same service and city but differ only by boilerplate. Consolidate into the strongest URL and 301 the rest.
  • Noindex or remove thin pages with no local proof and no traffic. Do not redirect all of them to the home page; that creates soft-404 patterns.
The 50 new pages

Do not publish 50 in one month. Run a pilot of 5-10 new city pages with at least three unique local elements: a real service area, local proof, and a local contact or technician. Measure indexation, rankings, and leads for 60-90 days. If the pilot earns impressions and leads without cannibalizing existing pages, scale in batches.

A better use of the $5,000 is fixing redirects, consolidating duplicate pages, and cleaning up local profiles, not buying citations. Citations can help consistency, but they will not compensate for a broken migration and thin pages.

3. What local SEO fixes and measurement plan should accompany the technical work?

Read the worked answer
Local SEO fixes

Google Business Profile: standardize the business name, address, phone, hours, categories, services, and service areas for all 14 locations. Add recent photos, products or services, and Q&A for the five inconsistent profiles. Use the Denver profile as the pilot. Post weekly updates only where there is local news or offers.

On-page consistency: ensure each location page shows the same name, address, phone, and hours as the profile, plus embedded map or directions, local reviews, and a clear call to action. Add LocalBusiness or PlumbingService structured data with location-specific details.

Citations: fix the top aggregators and major directories first, not a bulk purchase. Use the $5,000 for the highest-authority corrections and any listing management needed to keep 14 locations consistent.

Reviews: ask recent Denver customers for reviews and respond to existing ones. Do not gate or incentivize reviews.

Measurement plan

Track weekly: indexed pages, 404s, redirect coverage, organic sessions by landing page, rankings for the three Denver emergency pages, local pack rank for a grid of Denver neighborhoods, GBP calls, direction requests, and website leads. Use call tracking with location-level numbers. Compare Denver against a matched flat market as a control.

Set a 90-day target: restore redirect coverage to 100%, reduce Denver 404s to near zero, and recover local pack rank into the top 5 before scaling new pages. Report leading indicators weekly and revenue monthly.