Title: Townsmith Local Pages Engine – Service Area &amp; Location Page Generator
Author: thestephenevans
Published: <strong>June 19, 2026</strong>
Last modified: July 7, 2026

---

Search plugins

![](https://ps.w.org/townsmith-local-pages-engine/assets/banner-772x250.png?rev=
3578234)

![](https://ps.w.org/townsmith-local-pages-engine/assets/icon.svg?rev=3578234)

# Townsmith Local Pages Engine – Service Area & Location Page Generator

 By [thestephenevans](https://profiles.wordpress.org/thestephenevans/)

[Download](https://downloads.wordpress.org/plugin/townsmith-local-pages-engine.1.2.1.zip)

[Live Preview](https://vec.wordpress.org/plugins/townsmith-local-pages-engine/?preview=1)

 * [Details](https://vec.wordpress.org/plugins/townsmith-local-pages-engine/#description)
 * [Reviews](https://vec.wordpress.org/plugins/townsmith-local-pages-engine/#reviews)
 * [Development](https://vec.wordpress.org/plugins/townsmith-local-pages-engine/#developers)

 [Support](https://wordpress.org/support/plugin/townsmith-local-pages-engine/)

## Description

Townsmith Local Pages Engine is a location and service-area page generator for local
service businesses and the agencies that build their sites. Define your services
and the areas you cover, design one page blueprint in the block editor, and generate
the matrix of city landing pages as real WordPress pages, each individually editable,
never auto-published, and held to a per-page Quality Score before it goes live. 
It suits any business that needs a page for every city, town or “near me” area it
serves, including firms working across multiple locations.

It is built for the local SEO work real businesses actually do: a plumber, electrician
or HVAC firm that needs a clear page for every city and service area it covers, 
with genuine local detail on each one. It is the quality-first alternative to bulk
page generators. It generates fewer pages, scores each one against its siblings 
for uniqueness, and flags thin or near-duplicate pages before they publish, which
is what Google’s scaled-content and doorway-page policies actually target.

**What it does**

 * **Real pages, never virtual.** Generated pages are ordinary WordPress pages you
   own and edit in the block editor. Deactivate the plugin and they stay fully intact.
   Merge tokens are resolved at generation time, not at render time.
 * **One blueprint, deterministic variation.** Design a single template with merge
   tokens, copy variations that rotate deterministically per page, and a local content
   slot that starts empty on every page, because the genuinely local part is yours
   to write.
 * **A Quality Score with teeth.** Every generated page is scored 0–100: similarity
   against its sibling pages (5-word shingle comparison), local substance (filled
   slots, area descriptors, local imagery), and a thin-content floor. The pre-publish
   panel shows exactly what to fix and links to the spot, and warns before a below-
   threshold page publishes.
 * **A safety check, before Google’s.** A portfolio Safety Check reads every page’s
   score into one plain-English verdict: how many pages are safe to publish and 
   which look like the near-duplicate “doorway” pages Google demotes. In the block
   editor, Twin Finder shows the exact sentences a page shares with its closest 
   sibling, so you know precisely what to rewrite in local terms. It is guidance
   computed entirely on your own site, never a guarantee from Google and never a
   call home.
 * **Schema that cooperates.** One JSON-LD graph per page: LocalBusiness, Service
   with areaServed, breadcrumbs, FAQ. If Yoast SEO, Rank Math, All in One SEO or
   SEOPress is active, Local Pages Engine steps back and emits only the Service 
   piece, wired to the host plugin’s organisation, never a duplicate LocalBusiness.
 * **Hub-and-spoke linking that survives.** Each service gets a hub page; each area
   page carries an “Areas we cover” block and a breadcrumb back to its hub. The 
   links are baked into the saved markup, refreshed automatically as the area set
   changes, and keep working even with the plugin deactivated.
 * **Safe sync.** When the blueprint changes, a review screen shows exactly what
   would change on each page. Blocks you have edited are yours: sync never overwrites
   them, and a deleted block is never re-added. No silent background rewrites, ever.
 * **Resumable background generation.** Generation runs through a batched queue 
   built for cheap shared hosting. Interrupt it anywhere and it resumes without 
   duplicates.

Generation is unlimited: every service across every area, with no page caps.

Local Pages Engine runs entirely on your own site: no external services, no API 
calls, no AI generation, no telemetry. Your data never leaves your install.

**The Pro add-on**

This plugin is complete as it stands: unlimited generation across every service 
and area, the full Quality Score, deterministic variant rotation, the pre-publish
warning, schema, linking and sync. A separate Pro add-on, distributed from townsmithwp.
com, builds on this plugin’s public extension points. It adds:

 * A reusable local-proof library for the area content slot, so genuine local detail
   is faster to write.
 * A portfolio duplicate radar and a pre-generation saturation planner, for spotting
   overlap before you build.
 * An enforceable publish gate and noindex-below-threshold, for turning the free
   plugin’s warnings into hard blocks.
 * Bulk re-scoring and sync, geo-ordered related areas, and slug updates that serve
   their own 301 redirects or report each move to your redirect manager.
 * Bulk CSV import and export, scheduled drip publishing, and portable blueprint
   kits.
 * Self-hosted conversion attribution and a signed defensibility dossier.
 * A multi-site command centre for agencies running this across many client sites.

The Pro add-on is optional; the free plugin needs none of it to generate, score,
and publish pages.

**Documentation and guides**

Full documentation lives at [townsmithwp.com/docs](https://townsmithwp.com/docs/).
The guides library covers the strategy side, including [doorway pages and the line Google draws](https://townsmithwp.com/guides/doorway-pages/)
and [how many location pages you should build](https://townsmithwp.com/guides/how-many-location-pages/).

### Development

The human-readable source of the compiled files in `build/` ships in this plugin’s`
src/` directory, alongside `package.json` and `webpack.config.js`. To rebuild: `
npm install && npm run build` (uses @wordpress/scripts). Development happens in 
a private repository; the distributed zip always contains the complete, current 
source.

## Screenshots

[⌊The dashboard: every service across every area in one matrix. Each cell shows 
the page's Quality Score against a colour key, and empty cells generate the missing
page in place.⌉⌊The dashboard: every service across every area in one matrix. Each
cell shows the page's Quality Score against a colour key, and empty cells generate
the missing page in place.⌉[

The dashboard: every service across every area in one matrix. Each cell shows the
page’s Quality Score against a colour key, and empty cells generate the missing 
page in place.

[⌊One blueprint in the block editor: merge tokens, copy variants that rotate per
page, and a local content slot that starts empty for you to fill.⌉⌊One blueprint
in the block editor: merge tokens, copy variants that rotate per page, and a local
content slot that starts empty for you to fill.⌉[

One blueprint in the block editor: merge tokens, copy variants that rotate per page,
and a local content slot that starts empty for you to fill.

[⌊The Quality screen: every generated location page scored against its closest sibling,
with a plain-English list of what to fix.⌉⌊The Quality screen: every generated location
page scored against its closest sibling, with a plain-English list of what to fix
.⌉[

The Quality screen: every generated location page scored against its closest sibling,
with a plain-English list of what to fix.

[⌊The setup wizard: define your business, your services and the areas you cover,
then pick a blueprint.⌉⌊The setup wizard: define your business, your services and
the areas you cover, then pick a blueprint.⌉[

The setup wizard: define your business, your services and the areas you cover, then
pick a blueprint.

[⌊The pre-publish Quality Score panel inside the block editor: every page scored
before it goes live, with the breakdown and what to fix.⌉⌊The pre-publish Quality
Score panel inside the block editor: every page scored before it goes live, with
the breakdown and what to fix.⌉[

The pre-publish Quality Score panel inside the block editor: every page scored before
it goes live, with the breakdown and what to fix.

[⌊The blueprint sync review: change the blueprint once and see what would update
on each location page, with your edited blocks kept untouched.⌉⌊The blueprint sync
review: change the blueprint once and see what would update on each location page,
with your edited blocks kept untouched.⌉[

The blueprint sync review: change the blueprint once and see what would update on
each location page, with your edited blocks kept untouched.

## Blocks

This plugin provides 4 blocks.

 *   Related Areas Links to sibling area pages, baked in at generation so they keep
   working without the plugin.
 *   Content Variation Holds two to five alternative content sets; each generated
   page deterministically uses one of them.
 *   Local Content Slot A named slot that starts empty on every generated page and
   is filled with genuinely local content, page by page.
 *   Variant One alternative content set inside a Content Variation block.

## FAQ

### How do I create location pages in WordPress?

Activate the plugin and a setup wizard opens: it collects your business details,
your services and the areas you cover, then a page blueprint you build in the block
editor. From the services-by-areas dashboard, generate a real, editable WordPress
page for every service-and-area combination. Each page starts with an empty local
content slot for you to fill and is scored for quality before it publishes, so you
are building genuine city pages, not spun duplicates. You can reopen the wizard 
at any time from the plugin menu.

### What is a service-area or location page?

A landing page targeted at one service in one place you cover, for example “Boiler
Repair in Leeds” or “Emergency Electrician in Bristol”. Local Pages Engine builds
the matrix of these pages from your services and areas, but leaves a local content
slot empty on each so the genuinely local writing is yours.

### Can I create pages for lots of cities or service areas at once?

Yes. Local Pages Engine builds the full matrix of your services across every area
you cover, with no page caps, through a resumable batched queue that runs on cheap
shared hosting. It stays quality-first, so you get a scored, editable page per city
rather than thousands of near-identical ones.

### Is this a bulk page generator?

No, and deliberately so. Local Pages Engine is a quality-first take on programmatic
SEO, with sibling-similarity scoring, a thin-content floor and publish gates. It
is designed to keep the pages it produces defensible under Google’s scaled-content
and doorway-page guidance, not to spin thousands of near-identical pages.

### Does this plugin send my data anywhere?

No. Everything runs on your own WordPress install. There are no external API calls,
no AI services, and no telemetry of any kind.

### What happens to generated pages if I deactivate or uninstall the plugin?

Nothing. Generated pages are real WordPress pages and remain fully intact, editable,
and rendering, including their internal links, which are baked into the saved markup.
Uninstalling removes the plugin’s settings and queue table only (and even that can
be kept with a setting).

### Will it conflict with my SEO plugin?

No. Yoast SEO, Rank Math, All in One SEO and SEOPress are detected at render time.
When one is active, Local Pages Engine suppresses its own meta description and emits
only the Service schema piece, referencing your SEO plugin’s organisation data.

### Can it overwrite content I’ve edited?

No. The moment you edit a generated block, that block is yours. The sync flow updates
only untouched blocks and shows you a per-page preview before anything is applied.

### Why did publishing my page get blocked?

Its Quality Score is below your threshold and the Pro add-on’s enforcement mode 
is switched on (this plugin only warns). The pre-publish checklist lists exactly
what to fix: usually filling the local content slot, writing an area descriptor,
or making the copy less similar to a sibling page.

### Will location pages get my site penalised by Google?

Not for being location pages. Google’s scaled-content and doorway-page policies 
target near-identical pages built only to rank: many pages that read the same with
a town name swapped. That is exactly what this plugin is built to prevent: every
page is scored against its closest sibling, thin pages are flagged before they publish,
and the Safety Check gives your whole portfolio a plain-English verdict before Google
sees it.

### Does it use AI to write my content?

No. This plugin contains no AI and makes no external calls: generation merges your
own blueprint and copy variants deterministically, and the local content slot stays
empty until a human fills it. The optional Pro add-on includes an off-by-default
assistant that can reword a single sentence you select. It assists, never generates
pages, and the free plugin needs none of it.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Townsmith Local Pages Engine – Service Area & Location Page Generator” is open 
source software. The following people have contributed to this plugin.

Contributors

 *   [ thestephenevans ](https://profiles.wordpress.org/thestephenevans/)

[Translate “Townsmith Local Pages Engine – Service Area & Location Page Generator” into your language.](https://translate.wordpress.org/projects/wp-plugins/townsmith-local-pages-engine)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/townsmith-local-pages-engine/),
check out the [SVN repository](https://plugins.svn.wordpress.org/townsmith-local-pages-engine/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/townsmith-local-pages-engine/)
by [RSS](https://plugins.trac.wordpress.org/log/townsmith-local-pages-engine/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.1

 * Usability pass across the admin. The setup wizard no longer emits a notice on
   activation and now has a proper page title. Areas and Services gained labelled
   edit fields (area type, local descriptor, coordinates, service description, default
   FAQs) in place of the raw Custom Fields box, and their list tables show type,
   descriptor, hub and page count at a glance. On a generated page, each local content
   slot shows its prompt instead of a bare button, and the Quality Score is now 
   visible in the editor sidebar while you draft, not only at publish. The dashboard
   labels empty cells with “Generate”, explains the score colours, and reminds you
   to set a business name so pages read as whole sentences (your site name is used
   until you do). The Sync screen describes what changed by date rather than by 
   revision number. No change to generation, scoring, schema, linking or sync behaviour.

#### 1.2.0

 * New: an area-first URL option. Alongside flat (/service-area/) and hierarchical(/
   service/area/), generated pages can now nest as /area/service/ beneath an area
   landing page. Designate an area’s hub page from the command line (`wp townsmith
   hub --area=<id> --page=<id>`) or the REST route, the same way service hubs work.
   Useful for rebuilds that need to keep an existing area-first URL structure without
   redirects.

#### 1.1.2

 * Copy editing pass across the admin screens and this description. No change to
   generation, scoring, schema, linking or sync.

#### 1.1.1

 * Added bundled translations for German, French, Spanish, Italian, Dutch and Brazilian
   Portuguese, covering the admin screens and the editor panels. Official language
   packs from translate.wordpress.org take over automatically as each locale is 
   approved. No change to generation, scoring, schema, linking or sync.

#### 1.1.0

 * New: a Page Safety check. On the Quality screen, a plain-English verdict shows
   how many of your location pages are safe to publish and which look too similar
   or too thin, before Google sees them. In the block editor, Twin Finder reveals
   the exact sentences a page shares with its closest sibling so you can rewrite
   them in local terms. Both run entirely on your own site: no external services,
   no data leaves your install. No change to generation, schema, linking or sync.

#### 1.0.4

 * Added two optional, dismissible prompts on the plugin’s own admin screens: a 
   review invitation that appears only after you have published pages with the plugin,
   and a single pointer to the Pro add-on. Both are easy to dismiss for good, neither
   is incentivised, and nothing is sent anywhere. No change to generation, scoring,
   schema, linking or sync.

#### 1.0.3

 * Renamed the plugin to describe what it does (a service-area and location page
   generator) and refreshed the readme. No change to generation, scoring, schema,
   linking or sync.

#### 1.0.2

 * Added the plugin homepage and author links to the plugin header.

#### 1.0.1

 * Generation runs are now unlimited: every selected service and area is generated,
   and variation blocks rotate through all authored variants.
 * Hardened capability checks: page disposal, bulk sync, bulk re-scoring and slug
   updates now verify edit or delete rights on each affected page rather than a 
   broad role capability.

#### 1.0.0

 * First public release: blueprint blocks and merge engine, resumable batched generation,
   the Quality Score with pre-publish panel and publish gate, schema output with
   SEO-plugin cooperation, hub-and-spoke linking with deactivation-safe markup, 
   blueprint sync with human-edit protection, and the admin app (wizard, dashboard,
   quality, settings).

## Meta

 *  Version **1.2.1**
 *  Last updated **57 minutes ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 8.0 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/townsmith-local-pages-engine/)
 * Tags
 * [local seo](https://vec.wordpress.org/plugins/tags/local-seo/)[location pages](https://vec.wordpress.org/plugins/tags/location-pages/)
   [page generator](https://vec.wordpress.org/plugins/tags/page-generator/)[programmatic seo](https://vec.wordpress.org/plugins/tags/programmatic-seo/)
   [service area pages](https://vec.wordpress.org/plugins/tags/service-area-pages/)
 *  [Advanced View](https://vec.wordpress.org/plugins/townsmith-local-pages-engine/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/townsmith-local-pages-engine/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/townsmith-local-pages-engine/reviews/)

## Contributors

 *   [ thestephenevans ](https://profiles.wordpress.org/thestephenevans/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/townsmith-local-pages-engine/)