Creating one page in WordPress is easy. Creating hundreds? That’s different. If you’ve got structured data – like a catalog of real estate listings, product specs, or comparisons, for example – then you can actually skip your copy-paste routine and instead build all those pages in bulk.
Again, this is: straight from Google Sheets right into WordPress, and with no coding needed.
In this post, I’ll show you exactly how I do it using our free Multiple Page Generator plugin. I’ll walk through the whole process step by step – from setting up your spreadsheet to hitting publish on a batch of pages.
What you’ll need to get started
To bulk-create pages in WordPress, you only need three things. That’s it.
First, a Google Sheet with your data. This is where all the content for your pages lives – titles, text, anything that should change from one page to the next. Each row will turn into one page. I’ll show you exactly how to structure it in the next section.
Second, the Multiple Page Generator plugin (MPG). It’s free, and it does most of what you need out of the box. You can link it directly to your data (through CSV export, for example) and start building pages from there. The free version supports up to 50 rows of data, which is fine for smaller projects. If you need to go beyond that (like hundreds or thousands of pages) you’ll need the Pro version.
Pro unlocks everything: unlimited data, scheduled syncs, conditional logic, smart alerts, and more. But you can try everything out first without paying a cent. That’s what I recommend.
Third, a template. This is the WordPress page you design once, and the plugin uses it to build the rest. You can use any theme or page builder you want. The plugin will fill in the blanks from your sheet. I’ll show you my template in this post as well.
We’ll go through all three of these next, step by step.
Bonus: Video tutorial
If you’d prefer to learn how to do this in video form, here’s a quick tutorial I created:
Step 1. Prepare your data
The most important part about preparing your spreadsheet is that every row represents a single individual page that will be created.
In other words, you need to make sure that all the key details that you want to import for each item are in some column in each row.
Just to give you an example, here’s my sheet that lists 30 most well-known guitars:

As you can see, I have details like: guitar type, body shape, body wood, scale length, pickup configuration, and much more there. I want to show all this info on the pages I’ll be creating.
Replicate this idea when creating your sheet.
Then, once you have the sheet ready, simply export it as CSV, like so:

Step 2. Install the MPG plugin
This part is pretty simple. MPG acts like any other plugin in WordPress – as in, you install it through Plugins → Add New, and then activate. Basic stuff.
Additionally, if you’ve decided to go with the pro version of the plugin, then you install that by getting the plugin’s ZIP from the Themeisle repo and then uploading it through Plugins → Add New → Upload.
With the plugin installed, you can start crafting your bulk page rollout.
First, go to MPG’s section in the wp-admin:

Click on Add New Import to begin:

You’ll see a range of choices on the next page:

For me, most of them are just demos of the plugin’s abilities – they come with example datasets and example page templates to go alongside. If you happen to be creating pages of any such types, you can check out those options.
However, if you’re building something original, you’ll most likely want to go with the “From scratch” option. That’s what I’ll do.
MPG divides the setup page into a couple of sections. First:

There are two main options for the import: direct link or upload. If you’re on the pro version of MPG then you can choose direct link and then have the plugin keep all your data in sync – meaning that your pages will always reflect the data currently in your sheet.
If you just want to do this one time, select upload (that’s what I’m going to do).
As soon as the data fetches, you’ll see a quick preview in the next section of the plugin’s screen.

As I’ve mentioned before, I’m fetching some guitar data for this demo, so you’ll see some details about those guitars in the screenshot above.
If your preview is looking fine, you can move on to the next section – Project settings:

This starts straightforward – pick whether you want to create multiple posts or pages. I’ll go with pages.
The other field is more interesting because that’s where you’ll get to pick the template for all your pages.
This is a good moment to create your template.
Step 3. Create your template
The best way to go about this is to open a new browser tab and start creating a new page – a normal blog page at first.
What you’re building is an example page whose design is going to be used for all the bulk pages.
The good news is that MPG doesn’t force you to use any specific tool when building this template page. You can do it all in your favorite tool – be it the native WordPress block editor, Elementor or some other favorite page builder of yours.
The only things that’s different is that you should use the “mpg_” tags in places where you’ll want your data to be inserted dynamically.
You can see what those tags are exactly in your case by glancing at the data preview section in MPG settings (we were there just a minute ago). For my project, these tags are:

You’ll notice that MPG creates them simply by taking the header row from your data source and adding “mpg_” at the start of each one.
These are the tags that you should use in your template. Here’s an example of how you can do this:
So since I’m building pages listing various parameters of popular guitars, I could do something like this:

What you can see there is:
- The headline of the page is simply:
{{mpg_brand}} {{mpg_model}}
– which will be turned into something like “Fender Stratocaster” - Then below I’m also using:
{{mpg_guitartype}} • Made in {{mpg_countryoforigin}}
– which shows the type of the guitar (e.g. Electric) and the country it was produced in - Next, I have an image section on the left. My CSV has a column that mentions a direct URL to a guitar image. You can see it in the
src
parameter:<img src="{{mpg_imageurl2}}" />
- And then, I start listing all the other details of the guitar inside that box on the right
Build your template in a similar way – using your data for whatever type of pages you’re building.
Once you are done, just save that template page normally.
We can switch browser tabs once again and go back to MPG.
Step 4. Launch your bulk pages
With the template ready, we can now assign it in the correct section. This one:

Lastly, adjust the final settings section:

The most important detail there is the URL format. MPG allows you to use all the “mpg_” tags to craft those URLs.
For me, I’ll just go with mpg_brand-mpg_model
which will give me URLs like https://mysite.com/fender-stratocaster/
or https://mysite.com/gibson-les-paul-standard/
If it’s all looking fine, click on the Save changes button at the bottom.
You’ll also notice that blue bar there – saying that all those pages are “virtual.” This means that you won’t find them in the wp-admin if you go to Pages (where all your normal pages are stored). You cannot edit those MPG pages normally like your other WordPress pages. You can only work on them through the MPG interface that we’re using here. However, for your site visitors, there’s no difference between normal WordPress pages and virtual MPG pages.
Click on See all URLs to see all your pages. Here are mine:

You can also click through those pages individually and see if the bulk creation worked out fine. Here are two of my pages if you’re curious:
Step 5. Generate a listing of pages
At this stage, your bulk pages have been created. But you’ll also likely want to list all those pages somewhere – like on a separate page, on your homepage, in a sidebar, etc.
You can use the MPG shortcode for that.
To customize it, just go to the second tab in your project settings:

Let’s look through the sections there to see what’s going on:

The first section up top (“Shortcode”) is just a helper to let you find every “mpg_” tag easily. You will use those tags when building your listing.
The Generate list section is the main one to pay attention to.
There are lots of filtering options there that let you control which of your pages you want to showcase, how you want to order them, how many you want, and so on.
At the end, you’ll get a shortcode looking something like this:
[mpg project-id="8" where="" limit="5"]
<a href="{{mpg_brand}}-{{mpg_model}}">{{mpg_model}}</a><br>
[/mpg]
If you add that to any of your standard pages, it’s going to list your MPG bulk pages.
Step 6. Generate a sitemap
Lastly, if you’d also like to let Google know about all those new pages (you probably do) then go to the Sitemap tab of the project settings:

You can just save the changes and generate your sitemap. MPG is going to create a sitemap that’s very similar to the one you’ve probably gotten from your SEO plugin.
You should see a link in the bottom right-hand corner. Copy that URL, and then submit your sitemap to Google Search Console to complete the process.
That’s it! You’ve just built lots and lots of pages without breaking a sweat. 👍
Start bulk creating WordPress pages today ⏰
That wasn’t that hard, was it? If you’re looking for an easy-to-use solution to create bulk pages in WordPress, you can use Multiple Page Generator to quickly get the job done. It can create even thousands of pages for your website.
Do you have any questions about using Multiple Page Generator? Let us know in the comments section below!
Or start the conversation in our Facebook group for WordPress professionals. Find answers, share tips, and get help from other WordPress experts. Join now (it’s free)!