What a $12k Local SEO Campaign Actually Looks Like from Start to Debrief
A 90-day local SEO engagement, what we promised, what we built, what moved, and what we would do differently. No vanity metrics. No NDA violations. The real decision log.
The brief
A local service business with three locations. Primary goal: increase inbound calls from Google. Secondary goal: improve map pack visibility for the top ten service keywords in each market. Budget: $4k per month for three months.
What we built
Month one: Technical foundation. Fixed crawl errors, consolidated duplicate pages, rebuilt the GMB profiles with correct category assignments and photo consistency. Added schema markup to every service page.
Month two: Content layer. Wrote and published 18 location-specific service pages using a programmatic template with manual review on each. Built a local citation profile across 40 directories. Ran a competitor gap analysis and identified six keyword clusters we were not targeting.
Month three: Authority and link building. Secured 12 local placements including chamber of commerce listings, a local news feature, and three industry directory submissions. Monitored ranking movement weekly and adjusted content targeting mid-month when we saw early movement on two keyword clusters.
What moved
Map pack visibility improved across all three locations. Inbound call volume tracked via UTM and call tracking showed a 34% increase by end of month three versus the 90 days prior.
Organic keyword rankings moved on 6 of the 10 target terms. Four terms did not budge.
What did not work
The programmatic content layer performed worse than expected on two of the three locations. The template worked in the primary market but did not differentiate enough in the secondary markets where the competitor content was more locally specific. We caught it at the month-two review and spent two weeks manually rewriting those pages. That is time we did not budget for.
What we would do differently
More competitive analysis before writing anything. We assumed the same template would work across all three markets because the keywords were similar. They were — the search intent was not. One market was dominated by review-heavy, listicle-style content. The template we used was transactional. Mismatch.
Lesson logged: keyword similarity does not equal intent similarity. Audit the SERP before you build the content structure.