Comparison

LPagery vs Multiple Pages Generator

Both plugins turn a spreadsheet into hundreds of WordPress pages. The difference sits underneath: LPagery writes real pages you can open in the editor, MPG answers each URL from the spreadsheet at request time and writes nothing. We bought an MPG Pro licence, read both codebases and ran a 300-row and a 50,000-row project through MPG on a local install.

Quick verdict

LPagery creates pages that exist in WordPress: they show up in the Pages list, in your SEO plugin's sitemap and in the REST API, you can edit one by hand, and a scheduled Google Sheets sync updates only the rows that changed. MPG keeps everything in the spreadsheet. Publishing 50,000 rows takes seconds because no page is written, a template edit shows everywhere at once, and a removed row is a 404 on the next request. MPG also has the richer template language, with conditional blocks in four places. It has no AI feature in version 4.2.1.

Pick LPagery if

  • You want generated pages to be normal WordPress pages that other plugins, sitemaps and editors can see
  • You edit some generated pages by hand and want those edits kept on the next sync
  • You use Divi, Bricks, Breakdance, Brizy or another builder that keeps its layout in custom fields
  • You want to know when a Google Sheets sync failed
  • You want AI text and images per row without setting up your own API keys

Pick MPG if

  • You need conditional content inside the template, per block or per Elementor widget
  • You publish tens of thousands of URLs and want them live seconds after upload
  • You want removed rows to disappear with no setting to turn on
  • You run Polylang or TranslatePress, or an SEO plugin like Squirrly, The SEO Framework or SmartCrawl

At a glance

At a glance
FeatureLPageryMPG
Pages are real WordPress pages you can open in the editorYesNot found
Pages stay online after the plugin is removedPartlyNot found
Google Sheets re-synced on a scheduleYesYes
Failed sync shown on the page setYesNot found
Adapters for Divi, Bricks, Breakdance, Brizy and other buildersYesNot found
AI credits included with the licenceYesNot found
Conditional content inside the templateNot foundYes
Fewer than five concepts to learn before the first pageYesNot found
Yes
Verified in the version we tested
Partly
Works with a limitation, explained in the text above the table
Not found
Not found in the version we tested
Not checked
Not checked

Feature by feature

1.Data input

Both plugins accept a spreadsheet upload or a public Google Sheet link, and neither needs a Google API key. LPagery reads CSV and XLSX in your browser and shows the columns before anything is saved. MPG uploads the file to the server and its reader handles CSV, XLSX and ODS; XLS is offered in the file picker but the reader rejects it. Neither plugin has a manual row editor: the spreadsheet is the editor.

MPG starts you off with a dataset library on its Create New screen: hotels, real estate, jobs, world cities, US cities, plumbing and locksmith services, downloadable as ready-made source files. LPagery has a Radius source instead, which builds a row per city around a location, and it can export a finished page set back to XLSX. MPG's export is of the project settings, on the Pro plan.

Data input
FeatureLPageryMPG
CSV uploadYesYes
XLSX uploadYesYes
ODS uploadNot foundYes
Google Sheets by linkYesYes
No Google API key or sign-in neededYesYes
File read in the browser before anything is savedYesNot found
Cities around a location, by radiusYesNot found
Ready-made starter datasetsNot foundYes
Export a page set's data back to XLSXYesNot found

2.Google Sheets sync

Both plugins re-read a Google Sheet on a schedule, and both treat the sheet as a public CSV link. LPagery's sync runs hourly by default and up to weekly. Each run downloads the sheet, creates pages for new rows, updates pages whose row changed, skips rows that did not change, and deletes pages for removed rows when you turn that option on. A failed download marks the set with the error, and a failed row is retried before it is recorded.

MPG's sync is a fresh download of the sheet's CSV export URL, which replaces the project's data file and rebuilds the URL index. No page is written, because there are no pages. On the Pro plan you can pick hourly, twice daily, daily, weekly or monthly, an On Demand mode with a signed webhook that an external system can call, and a Live mode that re-downloads the sheet on the next visit once the cache is older than fifteen minutes. On the free plan only Manual is available. Added rows are live immediately, changed rows show on the next request, and removed rows return a 404 with nothing to configure.

Where the two differ is what happens when the download fails. In MPG 4.2.1 the download function swallows its own error, the sync continues with the previous file, and the success email still goes out. We reproduced that with a connection error in the lab. LPagery stops the run and shows the error on the set.

Google Sheets sync
FeatureLPageryMPG
Scheduled sync without a manual runYesYes
Manual sync or refreshYesYes
New rows create pagesYesYes
Changed rows update their pagesYesYes
Removed rows can remove their pagesYesYes
Unchanged rows skippedYesNot found
Failed download shown on the set and failed rows retriedYesNot found
Sync triggered by a webhook from another systemNot foundYes
Sheet re-fetched on the next visit with no cronNot foundYes

3.Template source

In both plugins the template is a page or post you already have. MPG lists any published post of a public post type and finds the template by a search box that needs three typed characters. LPagery lists pages, posts and the custom post types you enable in its settings.

The difference is how deep the placeholders reach. MPG replaces them in the title, in the content and in everything an SEO plugin prints in the page head. Elementor gets its own hook, and every Gutenberg block gets a conditions attribute. Builders that keep their layout in custom fields have no substitution path in version 4.2.1: adapters for Divi, Bricks, Breakdance, Oxygen, WPBakery, Brizy and SeedProd were not found, and Avada and Thrive Architect only work behind a developer constant. LPagery copies every custom field of the template with placeholders replaced, and eleven builders have their own adapter on top.

MPG handles WPML, Polylang and TranslatePress in code: the template is swapped for its translation and the language switcher points at the generated URL. LPagery assigns the WPML language on Classic pages only, and no Polylang or TranslatePress code was found in 3.0.

Template source
FeatureLPageryMPG
Any existing page or post as the templateYesYes
Custom post types as outputYesYes
Placeholders replaced in every custom field of the templateYesNot found
Elementor templatesYesYes
Gutenberg templatesYesYes
Divi, Bricks, Breakdance, Brizy, SeedProd and other builder adaptersYesNot found
WPML language handlingPartlyYes
Polylang and TranslatePress handlingNot foundYes

4.Generation model

This is the biggest difference between the two. MPG writes nothing to the posts table. When a request comes in, MPG looks the path up in the project's URL index, loads the template, replaces the placeholders and presents the result as the page. In our 300-row test the Pages screen still listed three items while all 300 URLs returned 200. The pages are also absent from the core sitemap and from the REST API, so MPG rebuilds those surfaces itself with its own sitemap, its own search and an opt-in for the home and search loops.

LPagery writes real pages. In Classic Mode each page is fully independent: you can open it in the editor, change one sentence, and it stays a normal page if you deactivate LPagery. Live Mode is LPagery's virtual option: each page is a small stub with its own slug, title and status, and the content is rendered from the template when someone opens it. A template edit shows on every live page at once, and you can switch a page or a whole set between the two modes. Live pages need the plugin active to render their content, so Convert to Classic is the exit.

URL resolution is the other consequence. LPagery's pages have real slugs, so WordPress core routes them and no plugin code takes part. MPG resolves each request with a linear scan over the project's URL list: on the 50,000-row project the scan to the last row took 0.012 seconds on top of a 0.035 second index load, and a miss walks the whole list.

Generation model
FeatureLPageryMPG
Real WordPress pages in the posts tableYesNot found
Pages rendered from the template on requestYesYes
Switch a page between real and virtualYesNot found
Edit a single generated page in the editorYesNot found
Template edits reach every page without a re-runYesYes
Generated pages listed on the Pages screenYesNot found
Generated pages in the REST APIYesNot found
Pages stay online after the plugin is removedPartlyNot found
URLs routed by WordPress core without a plugin scanYesNot found

5.Background processing

The two plugins do not have the same problem here. LPagery writes one page per row, so a large run needs a queue. Rows go into a queue on your server, a worker drains it, and each page is generated in its own request, so the PHP time limit applies to one page and never to the whole run. Failed rows are retried with a pause between attempts, a run with no progress for ten minutes is shown as stalled so you know WP-Cron is not running, and you can close the tab once the run is queued.

MPG has no queue and needs none. Publishing a project parses the file and writes a URL index: 300 rows in 0.07 seconds, 50,000 rows in 2.08 seconds at 94 MB peak memory. A 50,000-row CSV published with the PHP time limit set to ten seconds. The only long step is the upload itself.

The cost moves to the visitor instead. On the 50,000-row project a generated page took 0.33 to 0.66 seconds against 0.20 seconds for a static page on the same site, and MPG's loop block loads every project's URL index on every request, including admin screens and pages MPG never touches. A Classic page in LPagery costs nothing extra to serve; a Live page costs one indexed lookup.

Background processing
FeatureLPageryMPG
Run finishes after the browser tab closesYesYes
Run not bound by one PHP requestYesYes
50,000 rows live seconds after uploadNot foundYes
Queue on your server with a background workerYesNot found
Failed rows retried automaticallyYesNot found
Stalled run detected and shownYesNot found
No plugin lookup on every visit once pages existYesNot found

6.Updates and re-sync

When you upload a changed file, LPagery lets you create, ignore or update existing pages. A page is updated only when its row or its settings changed. If someone edited a generated page by hand, LPagery notices that from the save and leaves the page alone unless you choose to overwrite manual changes. Pages are matched by an internal record, so they are still found after you change the permalink pattern. A removed row deletes its page when the delete option is on.

MPG replaces the whole dataset on every sync or re-upload and rebuilds the index. There is no per-row decision, no row hash and nothing to protect, because there are no pages to edit. That also means a removed row disappears on its own, which LPagery only does with the delete flag set. A template edit in MPG reaches every URL on the next request; LPagery gives you the same in Live Mode, while Classic pages need an update run after a design change. Both let you point a project or a page set at a different template.

Updates and re-sync
FeatureLPageryMPG
Create, ignore or update existing pages per runYesNot found
Unchanged rows skipped automaticallyYesNot found
Hand edits detected and keptYesNot found
Removed rows drop their pages with no settingNot foundYes
Template edits reach every page without a re-runYesYes
Point a page set at a different templateYesYes
Pages still found after the permalink pattern changesYesNot found

7.Scale and limits

Neither paid plan has a page cap you will meet. MPG Pro reads up to 1,000,000 rows per project and we verified 50,000 pages from one project; its index is written in chunks of 5,000 rows and its sitemap splits above 50,000 URLs per file. No page cap was found in LPagery's paid plans. LPagery's worker takes 1,000 rows per tick by default, and a large upload is split into parts so a small upload limit on the host does not block it.

We ran no large lab run against LPagery for this page, so the 50,000-row figure is MPG's alone. The durability of a large LPagery run is covered under background processing.

Scale and limits
FeatureLPageryMPG
No page cap on paid plansYesYes
50,000-row run verified in the labNot checkedYes
Batch or chunk size configurableYesYes
Large files split into parts for the uploadYesNot checked

8.SEO surface

Both plugins replace placeholders in the title, slug and content, and both fill the fields of Yoast SEO, Rank Math, All in One SEO and SEOPress. MPG does this with a filter integration per plugin and covers three more by name: Squirrly, The SEO Framework and SmartCrawl. LPagery copies every custom field of the template page, so the SEO plugin's own fields are filled without a special integration, and All in One SEO gets its own handler because it stores data in its own table.

Sitemaps work differently because the pages are different. LPagery's pages are normal posts and show up in the core and SEO plugin sitemaps; in Live Mode the modified date moves on every page when you save the template. MPG's pages are absent from those sitemaps, so it writes its own XML file into the site root and adds a line to robots.txt. That file is only rebuilt on a sync, a library deploy or a manual click: after we shrank a project from 15 rows to 3, the removed URLs returned 404 while the sitemap kept listing all 14. MPG also emits its own canonical tag, and its trailing-slash redirect is sent with a 200 status, so both URL forms serve the page.

For images, both plugins take a featured image from a column. MPG prints the row's URL as the image source and imports nothing, so there is no per-page filename and no attachment. LPagery copies, downloads or references the image into the media library with the filename and alt text substituted per page.

SEO surface
FeatureLPageryMPG
Placeholders in title, slug and contentYesYes
Placeholders in every custom fieldYesNot found
Yoast SEO fields filled from the templateYesYes
Rank Math fields filled from the templateYesYes
All in One SEO fields filled from the templateYesYes
SEOPress fields filled from the templateYesYes
Squirrly, The SEO Framework, SmartCrawlNot foundYes
Canonical tag written by the pluginNot foundYes
Pages appear in core and SEO plugin sitemapsYesNot found
Own XML sitemap file and robots.txt entryNot foundYes
Sitemap drops removed rows on its ownYesNot found
Featured image from a columnYesYes
Per-page image filename and alt text in the media libraryYesNot found
Trailing slash handled by WordPress coreYesPartly

9.Content tools

MPG has the richer template language, and it is free in version 4.2.1. An mpg-if shortcode takes up to six conditions with all or any logic, every Gutenberg block gets an MPG conditions attribute, there is an MPG Conditional block, and every Elementor widget gets a conditions control in its Advanced tab. Eleven operators are available, from has value and equals to greater than and regex. A loop shortcode and block list rows of the project with filters, ordering and a limit, a match shortcode lists rows that share a value with the current one, and an mpg_search shortcode gives visitors a search over generated pages.

LPagery has no conditional blocks. If a sentence should only appear for some rows, you put that sentence in its own column and leave the cell empty for the others. Placeholders can be nested, so a cell can contain another placeholder, which MPG's single replacement pass does not resolve. Views build a styled list or grid of related pages on each page, ordered by name, date or a column of your choice. Columns can set the author, parent page, status and taxonomy terms of each page; MPG has no parent relations and no taxonomy output, because there is no post to attach them to.

Spintax works in both and stays stable in both. LPagery stores a seed per page, MPG stores the picked variant per URL in its own table, so neither rewrites the wording on the next visit or update. LPagery also reads MPG's double-brace placeholder syntax and converts it, so a template written for MPG can be reused.

Content tools
FeatureLPageryMPG
SpintaxYesYes
Spintax variant kept stable across visits and updatesYesYes
Nested placeholdersYesNot found
Conditional content in the templateNot foundYes
Conditions per Gutenberg block and per Elementor widgetNot foundYes
Related pages list or grid on each pageYesYes
Own search box over generated pagesNot foundYes
Generated pages in WordPress searchYesPartly
Taxonomy terms from column valuesYesNot found
Author, parent and status from column valuesYesNot found
Reads placeholders written in MPG syntaxYesYes

10.AI content

No AI content feature was found in MPG version 4.2.1. We searched the models, controllers, helpers, views and blocks for any provider or API key handling and found only Elementor's own control name. The vendor's documentation points you at spreadsheet add-ons that fill columns with AI text before you import the file.

LPagery generates AI text and images per row in the LPagery app and pushes the finished page set into the plugin. You pick the text model per website from six options across OpenAI and Google. Image prompts carry style, format, mood and your brand colours, and text prompts exist in more than twenty languages, picked from your website's country. Every paid licence gets a monthly credit top-up, so there is no API key to set up. There is no bring-your-own-key option in either product.

AI content
FeatureLPageryMPG
AI text per rowYesNot found
AI images per rowYesNot found
Credits included with the licenceYesNot found
Choice of AI modelYesNot found
Brand colours and image style per promptYesNot found
Prompts in the language of your siteYesNot found
Bring your own API keyNot foundNot found

11.Quality signals

Figures from the WordPress.org plugin directory on the verification date. MPG's listing is older and was updated two days before we verified it. Its Pro build has no WordPress.org listing and carries the same version number as the free one.

Quality signals
FeatureLPageryMPG
Active installs (free listing)3,000+2,000+
Rating5.0 (31 ratings)3.9 (27 ratings)
Last updated2026-07-172026-09-03
Tested up toWordPress 7.0.4WordPress 7.1
First published20222018

12.What only one of them has

Only LPagery has two render modes with conversion in both directions, Virtual Image URLs that serve one image file under a different name per page, a stall check for dead WP-Cron, AI text and images with included credits, and an import path for MPG's placeholder syntax.

Only MPG has the zero-write model that puts 50,000 URLs live in seconds, a dataset library with starter files, a signed webhook that triggers a sync, a front-end search over generated pages, its own sitemap file, a publication schedule from a created_date column that keeps a URL 404 until that date, and Polylang and TranslatePress handling. It also lets you move the hook it intercepts requests on, an escape hatch for themes that fight the default.

13.Time to first page

We walked both admin screens with the same five-row file and counted what a new user has to learn and click before the first page is live. LPagery needs three concepts (template page, placeholder, source file) and one required setting, the template. Everything else has a default. The first page was live after six clicks on three screens with no stall.

MPG does it on two screens, the dataset library and one long builder page, and nine clicks. It needs seven concepts, among them virtual pages and the URL format template, and four settings have to be filled. One stall: the template picker lists nothing until you type three characters, so you need to know the title of your template page. The source type also defaults to a link, so a user with a CSV has to change a dropdown before an upload control appears.

Time to first page
FeatureLPageryMPG
Clicks to the first page69
Screens visited32
Concepts to learn first37
Settings that must be filled14
Stalls on the way01

Where MPG is the better fit

MPG is the right choice when your template needs logic. Conditions per block, per Elementor widget or per shortcode, with eleven operators, let one template cover cases that would take several columns in LPagery. The loop and match shortcodes and the front-end search give you listing and search over generated pages out of the box.

It is also the right choice when volume is the whole point. A project with tens of thousands of rows is live seconds after upload, a removed row is gone on the next request, and a template edit reaches every URL at once with nothing to re-run. If your site runs Polylang or TranslatePress, or an SEO plugin like Squirrly, The SEO Framework or SmartCrawl, MPG has the integration and LPagery does not.

The price of the virtual model is that WordPress does not know the pages exist. They are missing from the Pages screen, the core sitemap, the REST API and most plugins that read posts, MPG rebuilds each of those surfaces itself, and every visit pays for a lookup. If you want pages you can open in the editor, edit one by one and keep after the plugin is gone, LPagery is built for that.

Free tier notes

The verdicts above compare the paid tiers. These notes are about the free versions and did not count towards any verdict.

  • LPagery's free plan caps a run at 100 pages and three placeholder columns on new installs. It accepts CSV and XLSX uploads.
  • MPG's free plan advertises one project and 50 rows. In version 4.2.1 the row cap is not enforced: a 300-row project on the free build produced 300 working URLs. That is a defect in 4.2.1, so do not plan on it.
  • Free MPG pages carry a fixed Generated by MPG footer badge that links to the vendor. Only its side is configurable.
  • In MPG, conditional content and spintax are free. Scheduled sync, the webhook, Live mode, email notifications, project import, export and clone, and the created_date and modified_date columns need the Pro plan.

How we verified this

Every claim on this page comes from the plugin code, the vendor documentation, or a run on a local WordPress install. We wrote down where we looked for anything we could not find, and the verified facts are kept in one place so this page can be updated when either product changes.

LPagery version
3.0
MPG version
4.2.1 (free and Pro share the version)
Verified on
2026-09-05
Licence
MPG Pro licence bought (entry paid plan) and active in the lab
Test run
300-row and 50,000-row projects on WordPress 7.0 and PHP 8.x

Questions people ask before choosing

Is Multiple Pages Generator better than LPagery?

It depends on what you want the pages to be. MPG answers URLs from the spreadsheet, which makes very large projects fast and gives you conditional content. LPagery writes real pages that the rest of WordPress can see and that you can edit one by one, keeps them in step with a changing Google Sheet, and adds AI text and images. Most agencies and local businesses we talk to want the second.

Can I move from MPG to LPagery?

Yes. MPG's pages are virtual, so there is nothing to migrate except your spreadsheet and your template page. LPagery reads MPG's double-brace placeholders and converts them, so you can keep the template as it is. Upload the same CSV, pick the template and generate. The URLs will be new pages, so set up redirects if the slug pattern changes.

What happens to the pages if I deactivate the plugin?

In MPG the pages exist only while the plugin answers the request. Nothing is stored in WordPress, so the URLs stop resolving. In LPagery, Classic pages are normal WordPress pages and stay online. Live Mode pages keep their URL but render without content until you reactivate the plugin or convert them to Classic.

Does LPagery work with Elementor and Divi?

Yes. Classic Mode has adapters for Divi, Elementor, Bricks, Breakdance, Brizy, Visual Composer, BeBuilder, SeedProd and Colibri, and copies the custom fields of any other builder. Live Mode supports Elementor and Gutenberg templates. MPG 4.2.1 has an Elementor integration; adapters for Divi, Bricks and the other builders that store their layout in custom fields were not found.

Does LPagery have conditional content?

No. LPagery replaces placeholders and has no if blocks. You can put an optional sentence in its own column and leave the cell empty for rows that should not show it. MPG has an mpg-if shortcode, a conditions attribute on every Gutenberg block and a conditions control on every Elementor widget.

How does Google Sheets sync compare?

Both read a public Google Sheet as a CSV link on a schedule, and both need no Google API key. LPagery updates only the rows that changed, keeps hand edits, and shows a failed download on the set. MPG replaces the whole dataset on each fetch, which is fast, and adds a webhook and a Live mode on the Pro plan. In version 4.2.1 a failed download in MPG continues with the old file and still sends the success email.