Skip to content
mid-market-playbookorganic-growthlocal-seomulti-location90-day-planmid-market-playbook

The 90-Day Organic Growth Plan for a Multi-Location Business

Week-by-week multi location seo plan for a 5-to-50-location B2B services business to triple indexable footprint and double organic conversions in one quarter.

rj-murray, Contributor · April 25, 2026 · 14 min read

90-day multi-location growth roadmap

title: "The 90-Day Organic Growth Plan for a Multi-Location Business" slug: the-90-day-organic-growth-plan description: "Week-by-week multi location seo plan for a 5-to-50-location B2B services business to triple indexable footprint and double organic conversions in one quarter." pillar: mid-market-playbook author: rj-murray publishedAt: "2026-04-25T00:00:00Z" tags: ["organic-growth", "local-seo", "multi-location", "90-day-plan", "mid-market-playbook"] coverImage: /posts/the-90-day-organic-growth-plan/cover.png coverAlt: "90-day multi-location growth roadmap" featured: false faq:

  • q: "What does a multi location seo plan actually need that a single-location plan does not?" a: "Three things. A redirect map that survives template changes across every location URL. A schema baseline with LocalBusiness emitted on every location page with the same structural shape. A uniqueness floor on geo copy so the pages do not get classified as doorway pages. Single-location plans skip all three."
  • q: "Is 90 days realistic for a 5-to-50-location rebuild?" a: "Yes. We have shipped 20+ mid-market rebuilds inside 90 days. Karpentor went from contract to 36 pages plus 10 geo pages plus 8 launch posts in 24 days. Burris and Sons shipped 30 pages including 8 neighbourhood pages in 21 days. Rebuilds at this size are not the constraint. Editorial review and approvals are."
  • q: "What if we already rank well in our headquarters city?" a: "Then the plan still applies, you just skip days 1 to 14 of the audit and start at the geo expansion. The asset that ranks for the HQ city does not transfer to the satellite locations without per-page work. Neighbouring cities are not free."
  • q: "How does AEO fit into a 90-day plan?" a: "AEO is the days 61 to 75 layer. Schema, FAQ blocks, llms.txt, and citation work on third-party sites. It is not a substitute for the rebuild and the geo pages, it is the layer on top of them that makes the pages quotable by ChatGPT, Perplexity, Claude, and Gemini."
  • q: "What is the biggest mistake mid-market teams make on a multi-location organic push?" a: "Spinning up 50 location pages from a template with the city name swapped in. Google has been deindexing those at scale since the 2024 helpful-content updates. The fix is a real uniqueness bar of 500 words and a real local data shape per page, which is the days 31 to 45 work."

tl;dr

A 5-to-50-location B2B services business can triple indexable footprint and double organic conversions inside one quarter. The plan is not a sprint, it is six 15-day phases. Audit and redirect map. Template rebuild. Geo pages. pSEO scale. AEO layer. Measurement and retainer hand-off. We have shipped this exact arc twice in the last three months at Karpentor and Burris and Sons. The pace works.

The starting state at day zero

Most multi-location sites we audit share the same shape. WordPress with somewhere between 8 and 20 active plugins. A locations page that lists every branch as a link to a thin City landing page that was generated from a template five years ago. A blog with 40 to 200 posts written by three different agencies, none of them tagged or interlinked. Core Web Vitals scores sitting between 35 and 55 on mobile.

The Google Business Profile for each location is decent, because somebody on the marketing team has been keeping reviews flowing. The website itself is not pulling its weight against those profiles. Search Console shows the same pattern every time. The HQ city ranks. The other locations rank for branded queries only. Non-branded local intent traffic goes to the GBP map pack, never to the site.

That is the day-zero baseline. The plan rebuilds outward from there.

A useful early read: why mid-market companies keep getting stuck on WordPress explains why patching the existing build is the wrong answer at this size, and WordPress to Next.js migration path is the operational version of the same argument.

Days 1 to 14: audit, redirect map, schema baseline

The first two weeks are not glamorous. They are the part most engagements skip and then regret in week eight when a template change breaks 800 ranked URLs.

The audit covers four artifacts.

1. The full URL inventory. Pull every URL Google has indexed from Search Console, every URL the sitemap declares, and every URL the crawler finds. Reconcile the three lists. Anything indexed but not in the sitemap is a leak. Anything in the sitemap but not indexed is a quality signal we need to fix or remove.

2. The redirect map. Every URL that will change in the rebuild gets a 301 destination written down before any code is touched. We keep this in a CSV with old_path, new_path, status, note. The status column matters because a non-trivial slice will resolve to "drop, do not redirect" rather than a 1:1 mapping. Thin location pages without traffic do not need to be preserved.

3. The schema baseline. Every location page needs LocalBusiness JSON-LD with the same structural shape. The schema.org/LocalBusiness spec lists the fields. The non-negotiable ones for multi-location work are name, address (full PostalAddress), geo (lat and long), telephone, openingHoursSpecification, and areaServed. We emit these on every page, every location, identical shape, populated values from a single MongoDB collection so the source of truth is one document per location.

4. The Core Web Vitals audit. Run web.dev/articles/vitals thresholds against every template, not just the homepage. Most multi-location WordPress sites pass on the homepage and fail on the location template, because the location template is rendering an embedded Google Map with three trackers attached.

Day 14 deliverable is a single document. The redirect CSV, the schema gap list, the CWV report by template, and the rebuild scope. The CMO signs that document. After that signature the rebuild can run on autopilot.

Days 15 to 30: rebuild the 10 highest-traffic templates

Days 15 to 30 are the highest-impact build window in the plan. The rule is brutal and works. Identify the ten templates that produce 80 percent of organic sessions. Rebuild them first. Everything else waits.

The ten almost always include: homepage, top three service pages, location index, location detail, top two case-study pages, the contact page, and one of either the about page or a flagship resource page. That is the list. We rebuild all ten in this window, on Next.js 16 with Tailwind v4, with proper schema on every one, with the new design system applied consistently.

Why this order. Templates are the unit of compounding. A location detail template that ships clean propagates to every location instance. Rebuilding 47 location pages individually is wasted motion. Rebuilding the template once and re-rendering 47 instances is the correct shape of the work.

By day 30 the homepage and the ten templates are live in a preview environment. The CMO has reviewed every one. The redirect map is wired. Lighthouse is hitting 95 plus on mobile and desktop on every route in the preview. We are not yet in production.

For the underlying rebuild philosophy and what the deltas typically look like, see real Lighthouse scores before and after 6 mid-market rebuilds. For why we do not patch instead, see Core Web Vitals changed in 2025.

Days 31 to 45: geo pages with a real uniqueness bar

This is the phase where most multi-location plans collapse. The temptation is to take the location detail template, populate it with the 47 location records from the database, and call the geo expansion done. That produces 47 pages of near-identical copy. Google has been deindexing those at scale since 2024.

The uniqueness bar is 500 words of genuinely distinct copy per page, plus a real local data shape behind each page. By "real data shape" we mean not just the address, but a populated set of fields the user can actually use. Hours by day, services available at this specific location, the team members who work there, the year the branch opened, neighbourhoods served, parking notes, public transit notes, photos taken at this specific location.

Burris and Sons is the cleanest example we have shipped. Eight Chicago neighbourhood pages, each one written with a paragraph on the actual neighbourhood (housing stock, typical heating systems, common HVAC failure modes for the era of construction), the specific service team that covers it, response time data, and a real photo of a recent install in that neighbourhood. The pages took three writer-days each. They are not generated. They are written.

Karpentor took the same bar to ten Ontario towns. Each page covers what the town's housing mix actually looks like (post-war bungalows in Welland vs. infill builds in north Burlington), which deck and fence permits the town requires, and the specific Karpentor team members who service that area. Ten pages in 12 days, no template fill, no city-name search-and-replace.

The full operational rules live in geo pages that don't get penalized. The pSEO context for why uniqueness is the floor lives in pSEO in 2026, what changed.

By day 45 the geo pages for the actual operating cities are live in preview. Production deploy of templates plus geo pages happens at day 45, with the redirect map switched on the same day. Search Console gets the new sitemap submitted that afternoon.

Days 46 to 60: pSEO scale on the entity axis

With templates and geo pages live, days 46 to 60 are the programmatic expansion. The shape we use for multi-location B2B services is services × locations. If the business has 12 distinct service offerings and operates in 10 cities, the matrix is 120 pages. The matrix is generated from a Payload CMS content model with one document per service and one document per location, joined at render time by a route handler.

Two things make this not-a-doorway-pages disaster.

First, the n-gram uniqueness check in CI. Every generated page is scored against every other generated page on the site. Minimum 40 percent token differentiation per page. We learned this on the Jetlak rebuild where we ran 178 product pages through the same gate. The check runs on every PR. A page that fails fails the build.

Second, the data shape per cell of the matrix. A page like "deck building in Burlington" does not get the same generic three paragraphs as "deck building in Welland." It gets the specific permitting rules in Burlington, the specific subcontractors Karpentor uses there, the specific past projects with their specific Instagram thumbnails, and the specific lead time given the local trades market. The data is the differentiator. The copy is a thin layer over real data.

For the underlying engine pattern, see pSEO in 2026, what changed. For why this is structurally different from the 2019-era pSEO that died in helpful-content updates, the same post is the reference.

By day 60 the entity matrix is live. For a 10-location 12-service business that is around 120 new pages, on top of the 10 templates plus 10 geo pages already shipped. Indexable surface has gone from roughly 60 pages on the old site to roughly 200 pages on the new site, and every one of them clears the uniqueness bar.

Days 61 to 75: the AEO layer

By day 60 the site is shaped right for classical SEO. Days 61 to 75 add the answer-engine layer. AEO is not a replacement for SEO, it is the newer half of the same job, and at multi-location scale it compounds because the volume of answerable queries is large.

Three workstreams run in parallel.

Schema enrichment. Every page that answers a question gets FAQPage schema with the question and answer pulled from the FAQ block on the page. Service pages get Service schema with provider set to LocalBusiness referencing the location. Case studies get Article with about references to the service entity. The schema is not decoration, it is the structured-data signal the answer engines parse.

llms.txt and the citation file. Every site we ship gets an /llms.txt file at the root. It declares the canonical pages we want LLMs to cite, the entity model of the business, and the last-verified date for each fact. The full mechanic, with our reference template, is in the llms.txt file. For the broader play of ranking on ChatGPT, Perplexity, Claude, and Gemini, see AEO, how to rank on ChatGPT, Perplexity, Claude, Gemini.

Citation farming. This is the slow lane. Identify the ten directory and aggregator sites the answer engines actually cite for queries in the business's vertical and geography. For HVAC in Chicago that includes BBB, Yelp, Angi, HomeAdvisor, Nextdoor, plus three or four trade-association directories. For residential renos in Ontario the list is different. Submit clean, schema-rich profiles to each. Ensure NAP (name, address, phone) consistency across all of them, every location, every entry. The answer engines weight citation consistency heavily.

By day 75 the schema is enriched, llms.txt is published, and citation submissions are out. First measurable lift on answer-engine queries shows up around day 90 in our experience. The lag is real and worth waiting for.

Days 76 to 90: measurement, second cohort, retainer hand-off

The last 15 days are the part most engagements skip. They are the part that determines whether the work compounds.

Measurement. Wire Search Console properly to PostHog or to whichever product analytics tool the business already runs. Every organic landing page gets a session-replay sample so the marketing team can watch what users actually do. Set up the eight dashboards in the mid-market SEO reporting framework. The framework is not optional. Without it the CMO has no defence to the CFO when the quarterly review hits.

The second cohort. The first geo expansion targets the cities the business actually operates in. The second cohort targets the cities it could plausibly operate in within 18 months. For Karpentor that is a second tier of 12 Ontario towns inside the geographic reach of the existing crews. For Burris and Sons it is the suburbs north and west of Chicago that share the housing stock of the existing service area. We do not ship the second cohort in the 90-day window. We scope it in days 76 to 90 so the retainer cohort starts day 91.

The retainer hand-off. A 90-day rebuild ends at day 90. A 90-day organic growth plan does not, because organic compounds. The hand-off is to a content retainer that ships two long-form pieces a week, audits one slice of the schema each month, and adds 8 to 12 new pSEO cells per month based on the entity matrix expansion. The retainer is what turns the day-90 surface into the day-365 surface.

By day 90 the deliverable list is concrete. Templates rebuilt and live. 10 to 50 geo pages live with real uniqueness. 100 to 200 pSEO cells live. Schema and llms.txt live. Citation farming submitted. Reporting framework wired. Second cohort scoped. Retainer engaged.

This is also the point at which the CFO can see the math. Indexable footprint is roughly tripled. Organic sessions on the rebuilt templates are running 60 to 120 percent over baseline. Lighthouse is 95 plus on every route. The cost of the rebuild has been a fraction of the run-rate paid-search spend, which is the argument made fully in why CMOs should kill paid-search budget.

How Karpentor hit 10 geo pages and 8 launch posts in 24 days

Karpentor came in as a residential reno business in southern Ontario with 25 years of operating history and three distinct service lines: decks, fences, and interior renovations. The pre-rebuild site treated all three as one undifferentiated blob.

We shipped 36 pages in 24 days. Three service trees, one per vertical. Ten geo pages for the Ontario towns the crews actually serve. Eight launch blog posts on scope, permits, and material choice. The Instagram archive went into the gallery module so we did not need a second photo shoot.

The pace is the proof. A multi-location plan that takes 90 days is not a 90-day plan because the work takes that long. It takes 90 days because measurement and retainer hand-off need to be in place before the engagement closes. The actual rebuild and geo expansion can ship in 24 to 30 days with a real pipeline. Most of the calendar is spent on the parts that are not code.

How Burris and Sons preserved 1917 heritage while shipping 8 neighbourhood pages

Burris and Sons has run HVAC in Chicago since 1917. The temptation on a 100-year-old brand is to modernize visually and lose the heritage signal. The temptation on the SEO side is to crank out 30 thin neighbourhood pages because Chicago has 77 official neighbourhoods.

We did neither. The rebuild kept the existing family photography because the heritage look was an asset, not a liability. The site went from 12 static pages to 30 pages of Next.js in 21 days. Eight neighbourhood pages, not 77, because eight is what the business actually services with same-day response. Every one of those eight pages was written with genuine local detail by the writer team, then reviewed by the operations manager who has been at Burris for 14 years.

Staff bios were preserved from the old site and expanded with tenure and trade-school detail. Schema went on every page including LocalBusiness with foundingDate set to 1917, which the answer engines pick up cleanly when somebody asks ChatGPT or Perplexity about long-running Chicago HVAC firms. The business is now quotable in answer engines for that query class, which it was not before.

The plan respected the brand. The brand survived the plan. That is what the 90-day arc is meant to do.

When 90 days is wrong

The plan is not universal. Three cases where it is the wrong shape.

Single-location businesses. A 90-day plan with this much geo expansion is overbuilt for a single-location business. The work compresses to roughly 45 days because there is no second cohort, no entity matrix at scale, and the citation work is one set of profiles instead of one set per location.

Brand crisis or rebrand mid-flight. If the business is mid-rebrand, mid-acquisition, or mid-name-change, the 90-day organic plan is wrong because the canonical entity is unstable. Schema needs a stable entity. Wait for the rebrand to ship, then start day 1.

M&A inside the window. If two multi-location businesses are merging inside the 90-day window, the redirect strategy is materially different and the entity matrix has to be redrawn from the merged portfolio. We have done this once. The plan stretches to 130 to 150 days because the merge consolidation work is real and worth doing right.

Outside those three cases the 90-day arc is the default for a 5-to-50-location B2B services business that wants a multi location seo plan that ships and a local seo playbook the team can run after we leave.

The pace is real. The work is hard. The compounding starts at day 91.

If this maps to where you are sitting, the 48-hour before-and-after demo is the way we open every multi-location engagement. Send the URL. We will show you the rebuilt homepage and one location template inside two business days.

Frequently asked

What does a multi location seo plan actually need that a single-location plan does not?
Three things. A redirect map that survives template changes across every location URL. A schema baseline with LocalBusiness emitted on every location page with the same structural shape. A uniqueness floor on geo copy so the pages do not get classified as doorway pages. Single-location plans skip all three.
Is 90 days realistic for a 5-to-50-location rebuild?
Yes. We have shipped 20+ mid-market rebuilds inside 90 days. Karpentor went from contract to 36 pages plus 10 geo pages plus 8 launch posts in 24 days. Burris and Sons shipped 30 pages including 8 neighbourhood pages in 21 days. Rebuilds at this size are not the constraint. Editorial review and approvals are.
What if we already rank well in our headquarters city?
Then the plan still applies, you just skip days 1 to 14 of the audit and start at the geo expansion. The asset that ranks for the HQ city does not transfer to the satellite locations without per-page work. Neighbouring cities are not free.
How does AEO fit into a 90-day plan?
AEO is the days 61 to 75 layer. Schema, FAQ blocks, llms.txt, and citation work on third-party sites. It is not a substitute for the rebuild and the geo pages, it is the layer on top of them that makes the pages quotable by ChatGPT, Perplexity, Claude, and Gemini.
What is the biggest mistake mid-market teams make on a multi-location organic push?
Spinning up 50 location pages from a template with the city name swapped in. Google has been deindexing those at scale since the 2024 helpful-content updates. The fix is a real uniqueness bar of 500 words and a real local data shape per page, which is the days 31 to 45 work.

Want your site to read like this does?

We use analytics to understand which pages help, with PII redacted and session inputs masked. Your form submissions always reach us regardless of this choice.