Setting up multiple location pages with Rank Math (the schema is the easy part)

Rank Math’s multi-location setup – enable the Local SEO module, switch on Use Multiple Locations to get the RM Locations post type, drop in the Local Business block, and let it auto-build the KML sitemap – takes about ten minutes and the schema is correct. The hard part is the other 90 percent: giving each location page genuinely distinct, locally-true content so Google does not treat the set as doorway pages. Rank Math configures the markup. It does not write or quality-check the page bodies, and that is where most multi-location rollouts fail a reviewer.

This page is the setup walkthrough and the honest hand-off about what the plugin leaves to you. It does not re-argue which plugin to pick. If you are still choosing, read Rank Math vs Yoast for local business first, then come back here.

How do you set up multiple locations in Rank Math?

The sequence below matches Rank Math’s own documentation as of June 2026. Multiple locations is a Rank Math PRO feature, so the steps assume you have the Pro version active. The plain-text order is kept here deliberately so it stays liftable: HowTo rich results were removed in 2026, so there is no benefit to wrapping these steps in HowTo markup, and we do not.

  1. Enable the Local SEO module. In WordPress admin go to Rank Math then Dashboard, and turn on the Local SEO module. This is the switch that exposes everything else.
  2. Set your base business details. Under Rank Math then Titles & Meta then Local SEO, choose your business type, and enter the name, address, phone number, and opening hours for the main entity. Pick Organization or the most specific LocalBusiness subtype that fits the trade.
  3. Turn on Use Multiple Locations. Still in the Local SEO settings, enable Use Multiple Locations. Rank Math creates a new custom post type called RM Locations, where each branch or service area becomes its own entry.
  4. Add each location as an RM Locations post. Create one RM Locations entry per place. Fill in that location’s address, phone, hours, and any per-location fields. This is the data the LocalBusiness schema is built from.
  5. Place the Local Business block on the page. In the block editor, add Rank Math’s Local Business block to the location page or post. In the block settings you can show the address, opening hours, a map, and a store locator for that location.
  6. Let the KML sitemap generate. Once you have created locations through the multiple-locations CPT, Rank Math automatically builds the KML sitemap (a geographic sitemap that helps Google Maps) and adds it to your main sitemap. The KML sitemap is part of the same Pro feature, so there is nothing to hand-build.

That is the whole technical setup. At this point Rank Math is emitting valid LocalBusiness schema per location, the KML sitemap is live, and Google can read the structured data. If your goal was correct markup, you are finished. For the concepts behind that markup – what LocalBusiness, areaServed and the BreadcrumbList actually represent – see the LocalBusiness schema guide rather than reading them off the field labels.

What does Rank Math not do for multi-location pages?

Rank Math configures and outputs the schema. It does not write the visible body of each location page, and it does not check whether those bodies are distinct enough to be safe. Those are the two jobs that decide whether a multi-location set ranks or gets treated as spam, and the plugin leaves both to you.

Concretely, here is what the setup above does not cover:

  • It does not write the page body. The Local Business block renders structured fields – address, hours, map – not the paragraphs a human reads about working in that town.
  • It does not check whether two location pages are near-identical. Nothing warns you that the Uckfield page and the Lewes page differ only by the town name.
  • It does not verify that what each page claims is locally true. Schema will happily assert opening hours and a service area whether or not the words on the page back them up.
  • It does not score quality or hold a thin page back. Every location you publish goes live regardless of how little real content it carries.

None of that is a criticism of Rank Math. It is a schema and on-page SEO plugin doing its job. The point is that valid markup and a published page are not the same thing as a page Google considers useful, and the gap between them is exactly where multi-location rollouts get into trouble.

Why do schema-only location pages get flagged as doorway pages?

Because correct schema does nothing to make the page content distinct. When you finish the Rank Math setup quickly and move straight to publishing, the natural shortcut is to write one location page and clone it for every town, swapping the place name. That clone-and-swap pattern is precisely what Google’s spam policies describe as doorway and scaled-content abuse.

Google’s Spam policies for Google web search (last updated 15 May 2026) define doorway abuse as “when sites or pages are created to rank for specific, similar search queries”, and give the explicit example of “having multiple domain names or pages targeted at specific regions or cities that funnel users to one page”. In plain terms, that is a set of near-identical pages funnelling visitors to a less useful destination. The same document describes scaled content abuse as “when many pages are generated for the primary purpose of manipulating search rankings and not helping users”, including “creating many pages where the content makes little or no sense to a reader but contains search keywords”. Identical bodies with only the town name changed sit squarely inside both definitions.

This is a content problem, not a markup problem, so the LocalBusiness schema being perfect does not help. For the deeper treatment of why duplicated location bodies fail and what counts as genuinely distinct, see duplicate content on location pages and the multi-location SEO guide.

What does a name-swap rollout look like to a reviewer?

Picture a boiler-repair firm that works ten towns from a single base, finishes the Rank Math steps and publishes ten location pages. Each one carries the same opening sentence – “We provide fast, reliable boiler repair in [town]” – the same three paragraphs about emergency call-outs, the same stock photo, and the same base business schema with the town’s name dropped into areaServed. The only thing that meaningfully changes from page to page is the town: Uckfield, Lewes, Heathfield, Crowborough, and so on.

A reviewer, or a quality classifier reading the rendered text, sees ten pages that are 95 percent identical. The schema is irrelevant to that judgement. What the page demonstrates is that no work was done per location, which is the signal both the doorway and scaled-content policies are written to catch. The fix is not more markup. It is making each page locally true.

What makes a location page locally true instead of name-swapped?

Locally true means the page says something about that specific place that could not be copy-pasted to the next town. For a boiler engineer working across the towns of East Sussex, that might be:

  • The kinds of property and heating systems common in that area – older terraces in Lewes versus newer developments on the edge of Uckfield – and what that means for the jobs you actually get called to.
  • Real specifics: typical response time to that town, the parts merchant you use locally, a named estate or street you cover, parking or access notes a customer there would recognise.
  • Genuine local jobs you have done, described without inventing anything – a recent breakdown call, a system you serviced, the seasonal pattern of call-outs.
  • The honest service-area picture. If you cover Lewes from a base in Uckfield, say so. Do not fabricate a Lewes street address or a separate Lewes phone number you do not have, and never let the schema claim one either.

The test is simple: if you could swap the town name and the paragraph would still read as true, it is not local content yet. For the full pattern of how to build pages this way, see building WordPress location pages.

Where does the content-and-quality layer fit above Rank Math?

Rank Math handles the schema layer well, and Townsmith complements it rather than replacing it – you can run both. Where Rank Math stops, at the visible body and its quality, is exactly the layer the Townsmith engine works on. The two do different jobs: Rank Math owns the markup and the KML sitemap, Townsmith builds and checks the editable content underneath.

The free Townsmith plugin builds real, editable location pages, scores each one from 0 to 100 on substance and distinctiveness, and holds back the thin ones before they publish so a name-swap set never goes live by accident. It does this entirely server-side, with no AI and no external calls. It also includes a Safety Check, an advisory verdict on doorway-page risk across your portfolio – guidance to act on, not a guarantee from Google – and a Twin Finder that flags pages that have drifted into near-duplicates. The detail of how the score is calculated is on the quality score documentation, and the full feature list is on the features page.

To be clear about what the free plugin is not: it does not write your pages for you, and it cannot tell you that a page will rank or that it is compliant with Google’s policies. Those judgements are Google’s, and no plugin can promise them. What it can do is stop the obviously thin pages and show you which ones need real local detail before they go out. Pro adds enforcement at scale and agency tooling, plus an optional assistant that is off by default and only ever works from facts you have typed in – it does not invent local specifics and it does not publish anything for you.

Common questions about Rank Math and multiple locations

Is multiple-location support free in Rank Math?

No. The Local SEO module exists in the free version for a single business, but Use Multiple Locations, the RM Locations custom post type, and the auto-generated KML sitemap are Rank Math PRO features as of June 2026. If you only have one location, you do not need Pro for the schema.

Does the Local Business block write the page content?

No. The Local Business block renders structured fields for one location – address, opening hours, a map, a store locator. It does not produce the readable paragraphs that describe your work in that town. You write those, and they are what Google’s quality systems actually assess.

Do I need a separate address and phone number for every location page?

Only where they genuinely exist. A multi-branch business with a real premises in each town should give each its true address and number. A service-area trade working several towns from one base should describe the service area honestly and never invent a per-town street address or phone line. Whatever the visible page says, the schema must mirror it exactly – inventing a per-area address in markup that is not on the page risks a structured-data manual action.

Will correct LocalBusiness schema stop my pages being flagged?

No. Schema describes the page to a search engine. It does not make the page useful. If ten location pages share one cloned body, valid markup does not change the fact that they read as doorway pages under Google’s spam policies. The schema is the easy ten minutes. The distinct, locally-true content is the work that actually protects the set.

Figures and policy wording current as of 23 June 2026. Written by Stephen Evans. Sources: Google Search Central, Spam policies for Google web search (last updated 15 May 2026); Rank Math Knowledge Base, multiple-locations setup documentation.