Local landing pages in WordPress

Create local landing pages for every service and town

LPagery is a WordPress plugin that creates local landing pages from one template page and a spreadsheet. Each row, such as drain cleaning in Hillsboro, becomes a regular WordPress page with its own title, URL and text. The free version creates up to 100 pages per run. LPagery Pro adds per-town photos, internal links and Google Sheet Sync.

See the example
harbor-plumbing.csv
servicetown
Water heater repairBeaverton
Water heater repairHillsboro
Sump pump repairBeaverton
RepipingTigard

86 more rows

Pages LPagery creates

  • /water-heater-repair-in-beaverton/
  • /water-heater-repair-in-hillsboro/
  • /sump-pump-repair-in-beaverton/
  • /repiping-in-tigard/

3 services × 30 towns = 90 pages

What each page needs

What every local landing page needs

A local landing page answers one search, such as "water heater repair in Beaverton". These are the parts each page needs, and the LPagery feature that fills each one in.

  • Free

    The service and town in the title and URL

    Put {service} and {town} in the template's title, and each page gets its own title and URL slug from its row. With LPagery Pro you can also set the URL pattern and a parent page.

    Custom meta data
  • Free

    The services you offer in that town

    A service column turns one template into a page for each service in each town. Your full service list and the call to action can stay the same on every page.

    Flexible templates
  • Pro

    Details only this town's page has

    Give each town fact its own column, such as how quickly you get there or the jobs you do most there. AI columns in the LPagery app can draft an intro for each row from its town and service.

    AI content generation
  • Pro Extended

    Photos from that town

    A column named after an image in your template swaps that image on each page, so the Beaverton page can show a Beaverton job. Each page gets its own file name and alt text.

    Image processing
  • Free

    A map and your contact details

    Placeholders work in any text on the template, including the address field of a map widget. Your phone number goes on the template once, or into a column if each location has its own.

    Flexible templates
  • Local business schema

    LPagery doesn't output schema of its own, so it comes from your SEO plugin or theme. LPagery copies every custom field of the template to each page and fills in its placeholders, so the SEO plugin's settings carry over. Test one page in Google's Rich Results Test.

    Custom meta data
  • Pro Extended

    Links between the town pages

    The [lpagery_link] shortcode links each page to its neighbours in the set. The page set's Copy Shortcode button lists every page on an Areas we serve page.

    Interlinking
  • Pro

    Only the towns you serve

    A page for a town you don't work in brings calls you can't take. The Radius source in LPagery Pro lists the towns around a location, and you keep the ones you cover.

    Local SEO and radius targeting
How it works

How LPagery creates local landing pages

You design one page and fill a spreadsheet, and LPagery creates a page for every row. The steps follow our tutorials, which we tested in a WordPress lab.

  1. Build one template page

    Design the page in the WordPress editor or your page builder. Type a placeholder in curly braces, such as {service} or {town}, wherever the text changes, including the title. Save the template as a draft.

  2. Fill the spreadsheet

    Each row is one page, and each column fills the placeholder with the same name. You can upload a CSV or XLSX file, or connect a Google Sheet by its link with LPagery Pro.

  3. List every service and town

    For a page per service in each town, give every combination its own row. Three services in 30 towns make 90 rows and 90 pages.

  4. Review and create the pages

    Under LPagery > Create Pages, select the template and upload the file. The review lists every page and its URL slug first. The pages are regular WordPress pages, so they stay if you deactivate the plugin.

  5. Keep the pages in sync

    When you change the template, LPagery Pro updates every page of the set and keeps your manual edits unless you choose to overwrite them. With Google Sheet Sync, a new row creates a page, a changed row updates its page and a removed row can delete it.

Every click of the create flow is in our tutorial: How to create service area pages in WordPress

Free and Pro

What the free version does, and what needs Pro

You can build a first set of local landing pages with the free version from WordPress.org. The table shows its limits and the plan that lifts each one.

FeatureFreeStandardExtended and Ultimate
Pages per runUp to 100No limitNo limit
Placeholder columnsUp to 3No limitNo limit
CSV and XLSX uploadIncludedIncludedIncluded
Custom URL slug and parent pageNot includedIncludedIncluded
Radius source for nearby townsNot includedIncludedIncluded
AI credits every monthNot includedIncludedIncluded
Google Sheet SyncNot includedNot includedIncluded
Update all pages of a set at onceNot includedNot includedIncluded
Image processingNot includedNot includedIncluded
InterlinkingNot includedNot includedIncluded
SpintaxNot includedNot includedIncluded

Ultimate adds unlimited websites and priority support. See plans and prices

Example

Example: a plumber with 3 services in 30 towns

Harbor Plumbing is the fictional company from our tutorials, set in real towns around Portland, Oregon. Say it offers water heater repair, sump pump repair and repiping in 30 towns. One row per service and town gives 90 rows, and LPagery creates 90 pages.

Source file, first rows

servicetowncountylocal_note
Water heater repairBeavertonWashington CountyWe have replaced more than 120 water heaters in Beaverton homes since 2019.
Sump pump repairHillsboroWashington CountyMany of our Hillsboro callouts are for sump pumps in basements after heavy rain.
RepipingTigardWashington CountyOur Tigard customers often book us to repipe older homes.

That's one column more than the free version fills. The Pro tutorial adds a column for each fact that differs between towns, such as response_time, local_issue_text and faq_answer, plus image columns named after the template's photos.

What one finished page contains

/areas-we-serve/beaverton-water-heater-repair/

Water heater repair in Beaverton

  • Title and H1 from the template title {service} in {town}Free
  • URL from the URL Slug {town}-{service} under Areas we servePro
  • Local note and intro from the Beaverton rowPro
  • Hero photo from a Beaverton jobPro Extended
  • Map of Beaverton and your phone numberFree
  • Service list and call to action, the same on every pageFree
  • Links to the neighbouring towns and to Areas we servePro Extended
  • Meta title and description from the template's SEO plugin fields
Thin and doorway pages

How to keep local landing pages from being doorway pages

Google's spam policies describe doorway pages with two examples that fit location pages: "pages targeted at specific regions or cities that funnel users to one page" and "substantially similar pages that are closer to search results than a clearly defined, browseable hierarchy". A town page holds up when it tells someone in that town something the next town's page doesn't. Read Google's spam policies

We measured this in our plumber tutorial. With the free version and one local sentence per town, two town pages shared 89% of their visible text. With a column for each town fact, a photo per town and spintax for stock phrases, two pages shared 56%. What they still shared was the service list, one question and the call to action.

How LPagery helps

LPagery puts each column in its place on every page. AI columns in the LPagery app can draft an intro and a meta description for each row, and you review the text there before the pages go to WordPress. Image processing gives each page its own photo.

Spintax such as {Licensed|Local|Family-run} varies stock phrases, and LPagery keeps each page's choice when it updates. Google's policies name synonymizing as a way to disguise scaled content, so use spintax for connecting phrases and put the real differences in columns.

What has to differ from town to town

  • The jobs you do most in that town
  • How quickly you get there
  • Problems common in local homes
  • A question customers there ask, with your answer
  • A photo from a job in that town
  • A review from a customer in that town

What you still have to provide

LPagery can't know which jobs you did in Tigard. The facts come from you: your job history, your travel times and the questions customers ask. If you can't fill a row for a town, that town probably doesn't need a page yet. No plugin can promise rankings. What you control is whether each page is useful.

The plumber tutorial builds both versions and compares them: Location pages for a plumbing business, free and Pro

Case studies

Businesses that built local landing pages with LPagery

Three customers, the pages they built and the results they reported.

  • AnyVan

    Removals and delivery marketplace, UK

    1.4M+ additional Google impressions in 90 days

    Built 1,500+ pages for service and city combinations, such as "Removals London" and "Man and Van Manchester", from a Google Sheet.

    Read the AnyVan case study
  • Macarthur Wealth Management

    Financial planning practice, Sydney

    Google impressions doubled within 2 months

    Created landing pages for over 200 Sydney suburbs, aimed at "financial planner [location]" searches, from one spreadsheet.

    Read the Macarthur case study
  • AppWT LLC

    Web and SEO agency, Michigan

    Organic traffic doubled in 3 months, and local leads rose 35%

    Built 1,000+ location-based landing pages for its clients in 20 minutes, from WordPress templates with placeholders for service and city.

    Read the AppWT case study

Questions about local landing pages

What is a local landing page?

A page about one service in one place, such as "drain cleaning in Hillsboro". It tells people searching in that town that you work there and how to contact you.

What's the difference between service area pages and location pages?

Service area pages are for towns you travel to, and location pages are usually for an office or store people visit. LPagery creates both the same way, from one row per town or location.

How many local landing pages should I create?

One for each town where you take jobs and can say something specific. Start with the towns you serve most, and add more once the first pages are indexed.

Can I create local landing pages with the free version?

Yes. The free version from WordPress.org creates up to 100 pages per run from a CSV or XLSX file and fills up to three placeholder columns. Custom URLs, Google Sheet Sync, per-town photos, internal links and bulk updates need LPagery Pro.

Will Google treat the pages as doorway pages?

It depends on what's on them. Pages that only swap the town name match Google's description of doorway pages. Pages with their own facts, photos and answers for each town are useful to people there, and those details have to come from you.

What happens to the pages if I stop using LPagery?

They stay. LPagery creates regular WordPress pages with their own content, and in our tests they stayed online with all their content after the plugin was deactivated.

Can I change all the pages at once later?

Yes, with the Extended plan or higher. Change the template or the spreadsheet and run an update, or let Google Sheet Sync pick up changes on a schedule. In the free version you edit each page in WordPress.

Does it work with my page builder and SEO plugin?

LPagery uses any existing page as the template, including its page builder layout. It supports Elementor, Divi, Bricks, Gutenberg and other builders, and fills the fields of Yoast SEO, Rank Math, All in One SEO and SEOPress from the template.

WordPress.org
5.0on WordPress.org

Create your local landing pages

Start with the free version from WordPress.org, or choose a Pro plan for per-town photos, internal links and Google Sheet Sync.

7-day money-back guarantee on every Pro plan