This post may contain affiliate links. If you make a purchase through these links, we may earn a commission at no additional cost to you.
Ever found yourself staring at a perfectly crafted WordPress page, thinking, “I need another one just like this, but… different”? Maybe you’ve designed a brilliant landing page for a product and now you need a similar one for a new service. Or perhaps you’ve created a complex layout for an event page and the thought of rebuilding it from scratch for next year’s event makes you want to chuck your laptop out the window.
We’ve all been there. You need a copy of a page, not a brand new, empty one. It’s one of those seemingly simple tasks that can leave you scratching your head, wondering why there isn’t a giant “Clone Me” button right there in the WordPress dashboard.
Well, you’re in luck. Duplicating a page or post in WordPress is not only possible, but it’s also surprisingly easy once you know how. It’s a massive time-saver and a secret weapon for keeping your website’s design consistent and professional.
This guide is your complete handbook for everything to do with duplicating content in WordPress. We’ll walk you through why it’s so useful, explore the best and simplest methods—from easy-peasy plugins to clever manual tricks—and help you sidestep common pitfalls. Whether you’re running a small business from your home in the Cotswolds or managing a bustling e-commerce site from Manchester, this is the only guide you’ll need.
Let’s get started and make your WordPress life a whole lot easier.
Why Would You Even Need to Duplicate a Page or Post?
Before we dive into the how, let’s quickly cover the why. It might seem like a niche feature, but once you start duplicating pages, you’ll wonder how you ever managed without it. It’s all about working smarter, not harder.
Think of it like having a master template for your content. Instead of starting from a blank canvas every time, you start with a fully-built structure, ready for you to tweak.
Here are some of the most common reasons you’ll find yourself needing to clone your content:
- Maintaining a Consistent Design: Imagine you have a set of service pages. Each one has the same layout: a header, an introduction, a section for key features with icons, a pricing table, and a call-to-action button at the bottom. By duplicating a page, you ensure every new service page you create has that exact same structure and styling. This keeps your website looking sharp, professional, and consistent, which is great for user experience and building trust.
- Creating Landing Pages for Marketing Campaigns: Let’s say you’re a marketing manager for a London-based startup. You run different ad campaigns on Google, Facebook, and LinkedIn. For each campaign, you need a specific landing page. While the core message might be similar, you’ll want to change the headline or key image to match the ad. Duplicating a master landing page template lets you spin up new, targeted versions in minutes, not hours.
- Updating and Redesigning Content Safely: You want to give an important page on your website a major overhaul. Instead of editing the live page—which could lead to it looking broken while you work on it—you can duplicate it. This creates a private draft copy. You can then work on this draft, experiment with new layouts, and rewrite content without any of your visitors seeing the work-in-progress. Once you’re happy, you can simply publish the new version and delete the old one. It’s like having a backstage area for your website.
- Building an E-commerce Site with Similar Products: If you run an online shop using WooCommerce, you’ll know that many products are similar. They might share the same description format, shipping details, or gallery layout. Duplicating a product page allows you to copy all that information over, so you only need to update the product name, images, and price. It’s a huge time-saver for any online store owner.
- A/B Testing Page Elements: Want to find out if a green button gets more clicks than a blue one? Or if one headline works better than another? Duplicating a page is the first step in A/B testing. You create two identical versions (the duplicate and the original) and then change one single element on the duplicate. You can then use tools to send half your traffic to one version and half to the other to see which performs better.
In short, duplicating pages is a cornerstone of an efficient workflow in WordPress. It saves time, reduces errors, and helps you maintain a polished and consistent website.
Method 1: The Easiest Way – Using a WordPress Plugin
For most people, the quickest and most straightforward way to get the job done is by using a plugin. A good duplication plugin adds a simple “Clone” or “Duplicate” link directly into your WordPress admin area. With just one click, you’ve got a perfect copy of your chosen page or post.
It’s the digital equivalent of a magic wand. No code, no fuss, just instant results.
There are several great plugins out there, but we’ll focus on two of the most popular and reliable options: Yoast Duplicate Post and Duplicate Page. They’re both highly rated, regularly updated, and trusted by millions of users.
Our Top Recommendation: Yoast Duplicate Post
Originally a standalone plugin called Duplicate Post, this little gem was so good that it was acquired by the team behind Yoast SEO, one of the most respected names in the WordPress world. That’s a pretty solid seal of approval.
Yoast Duplicate Post is brilliant because it’s incredibly simple but also has some powerful features tucked away if you need them.
Step-by-Step: How to Use Yoast Duplicate Post
- Install the Plugin:
- From your WordPress dashboard, go to Plugins > Add New.
- In the search bar, type “Yoast Duplicate Post”.
- You’ll see it pop up. Click Install Now, and then once it’s installed, click Activate. That’s it; the plugin is now ready to go.
- Duplicate Your First Page or Post:
- Now, navigate to the list of your pages or posts by clicking on Pages > All Pages or Posts > All Posts in the left-hand menu.
- Hover your mouse over the page or post you want to copy. You’ll see some new options appear beneath the title. Alongside the usual “Edit,” “Quick Edit,” and “Trash,” you’ll now see Clone and New Draft.
- Choose Your Duplication Option:
- Clone: This creates an exact copy of your page and places it immediately in your list of pages. It’s quick and simple. The new page will have the same title as the original but will be in draft status.
- New Draft: This is a slightly more powerful option. It clones the page and immediately opens it in the WordPress editor, so you can start making changes straight away. It’s perfect for when you know you need to edit the content right there and then.
Let’s say you click Clone. You’ll see a new draft of your page appear at the top of the list. WordPress will automatically title it something like “My Awesome Page (Copy)” to distinguish it from the original. You can then click Edit to open it up, change the title, tweak the content, and hit Publish whenever you’re ready.
It’s genuinely that simple.
Customising the Plugin Settings (Optional)
For most users, the default settings of Yoast Duplicate Post are perfect. But if you want a bit more control, you can find the plugin’s settings under Settings > Duplicate Post.
Here, you can fine-tune a few things:
- What to copy: You can choose exactly which elements of a page get copied over. By default, it copies everything—title, content, featured image, template settings, etc. But you could, for example, tell it not to copy the date or the author.
- Permissions: If you have multiple people working on your website (like authors or editors), you can control who is allowed to duplicate content. This is handy for managing workflows on larger team sites.
- Display options: You can choose where the “Clone” link appears. By default, it’s in the post/page list, the admin bar, and on the edit screen. You can turn these off if they feel cluttered.
Alternative Plugin: Duplicate Page
Another fantastic and very popular option is simply called Duplicate Page. It’s incredibly lightweight, meaning it won’t slow your site down, and it does one job and does it brilliantly.
The process is almost identical to using Yoast Duplicate Post.
- Install and Activate: Go to Plugins > Add New, search for “Duplicate Page,” and click Install Now and then Activate.
- Duplicate Content: Go to your list of pages or posts. When you hover over an item, you’ll see a new option that says Duplicate This.
- Click and Go: Click Duplicate This, and the plugin will instantly create a new draft copy of that page.
The main difference is that Duplicate Page is slightly more basic. It doesn’t have as many customisation settings as Yoast Duplicate Post, but for 99% of people who just want a quick and easy way to clone a page, it’s perfect. It’s a great example of a plugin that focuses on doing one thing exceptionally well.
Feature | Yoast Duplicate Post | Duplicate Page |
---|---|---|
Ease of Use | Very easy | Very easy |
One-Click Clone | Yes | Yes |
Custom Settings | Yes (extensive options) | Yes (basic options) |
Who Can Clone? | Role-based permissions | Role-based permissions |
Performance | Excellent | Excellent (very lightweight) |
Good for | Everyone, especially those who want extra control. | Users who want a simple, no-fuss solution. |
The Bottom Line on Plugins: If you’re not comfortable with code and want the fastest, most reliable method, using a plugin like Yoast Duplicate Post is the way to go. It’s the solution we’d recommend to most WordPress users in the UK.
Method 2: The Manual Approach (No Plugin Needed)
Perhaps you’re a minimalist. You don’t like installing plugins unless you absolutely have to. You prefer to keep your website lean and mean, and you’re not afraid of getting your hands a little bit dirty.
If that sounds like you, then the manual copy-and-paste method is a solid, plugin-free alternative.
This approach works best if you’re using the modern WordPress Block Editor (also known as Gutenberg), as it has a brilliant built-in feature for copying all the content of a page in one go. If you’re still on the Classic Editor, it’s a bit more fiddly, but still doable.
For Users of the Block Editor (Gutenberg)
The Block Editor has transformed how we create content in WordPress. Its block-based system not only makes it easy to design complex layouts, but it also makes copying those layouts an absolute breeze.
Here’s how to do it:
- Open the Page You Want to Copy: Go to Pages > All Pages and click Edit on the page you wish to duplicate. This will open it in the Block Editor.
- Select All Blocks: Once the editor has loaded, you need to select everything on the page. You could click and drag, but there’s a much cleverer way.
- Click on the three vertical dots in the top-right corner of the editor. This opens up the options menu.
- Near the bottom of this menu, you’ll see an option called Copy all blocks. Click it.
- Create a New Page: Now, head back to your dashboard and create a new page by going to Pages > Add New.
- Paste Your Blocks: You’ll be greeted with a new, blank page. Give it a title. Then, simply right-click in the content area and select Paste, or use the keyboard shortcut (Ctrl+V on Windows, Cmd+V on Mac).Voila! The entire layout and content from your original page will instantly appear in the new page, perfectly preserved.
- Review and Publish: Have a quick scroll through to make sure everything looks right. All your blocks, styling, and text should be exactly as they were on the original page. You can now start editing this new page, and when you’re done, hit Publish.
What gets copied? This method copies all the content within the main editor. That includes text, images, videos, custom blocks, columns, and layouts.
What doesn’t get copied? This is the important bit. This method does not copy page-specific settings, such as:
- The Featured Image
- The Page Template (e.g., if you used a “Full Width” or “No Header” template)
- SEO titles and meta descriptions (from plugins like Yoast or Rank Math)
- Custom fields
- Page attributes (like parent page or order)
So, after pasting your content, you’ll need to manually re-apply these settings in the right-hand sidebar of the editor. It’s a couple of extra clicks, but for a quick duplication, it’s a fantastic plugin-free option.
For Users of the Classic Editor
If your website still uses the old Classic Editor, the process is a little less slick, but the principle is the same.
- Open the Page You Want to Copy: Go to the page you want to duplicate and open it in the editor.
- Switch to the Text View: The Classic Editor has two tabs: Visual and Text. The Visual tab shows you what the page looks like, while the Text tab shows you the underlying HTML code. You need to be in the Text tab to make sure you copy everything correctly.
- Copy All the Code: Click inside the text editor, select all the code (Ctrl+A or Cmd+A), and then copy it to your clipboard (Ctrl+C or Cmd+C).
- Create a New Page: Create a new, blank page.
- Paste the Code: Make sure you are in the Text tab on the new page, and then paste all the code in.
- Switch Back to Visual: Now switch back to the Visual tab. You should see your content appear, fully formatted.
Just like with the Block Editor method, you’ll need to manually set the featured image and any other page settings. This method can sometimes be a bit hit-and-miss if you have complex shortcodes or scripts on your page, but for standard content, it works perfectly well.
Method 3: For the Tech-Savvy – Editing Your functions.php
File
Alright, this next method is for those who are comfortable with code and like to have custom solutions built directly into their theme. It’s a bit more advanced, but it gives you a clean, integrated way to duplicate posts without a plugin.
A Big Friendly Warning: This method involves editing your website’s core files. A small mistake, like a missing semicolon, can break your entire site (often called the “White Screen of Death”). So, before you begin:
- Back up your website! Always, always have a recent backup before editing theme files.
- Use a child theme. If you edit your main theme’s
functions.php
file directly, your changes will be wiped out the next time the theme is updated. A child theme protects your customisations. - Consider using a code snippets plugin like Code Snippets. This is a safer way to add PHP code to your site without directly editing theme files.
Right, with the safety briefing out of the way, let’s get into it.
We’re going to add a snippet of PHP code to your theme’s functions.php
file. This code will create a new function that handles the duplication and then hook it into WordPress to add a “Duplicate” link to your page and post lists.
The Code Snippet
Here is the code. Don’t worry if it looks like Klingon; we’ll break down what it does afterwards.
/*
* Function to duplicate a post or page.
*/
function gm_duplicate_post_as_draft(){
global $wpdb;
if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'gm_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) {
wp_die('No post to duplicate has been supplied!');
}
/*
* Nonce verification
*/
if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) )
return;
/*
* get the original post id
*/
$post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
/*
* and all the original post data then
*/
$post = get_post( $post_id );
/*
* if you don't want current user to be the new post author,
* then change next couple of lines to this: $new_post_author = $post->post_author;
*/
$current_user = wp_get_current_user();
$new_post_author = $current_user->ID;
/*
* if post data exists, create the post duplicate
*/
if (isset( $post ) && $post != null) {
/*
* new post data array
*/
$args = array(
'comment_status' => $post->comment_status,
'ping_status' => $post->ping_status,
'post_author' => $new_post_author,
'post_content' => $post->post_content,
'post_excerpt' => $post->post_excerpt,
'post_name' => $post->post_name,
'post_parent' => $post->post_parent,
'post_password' => $post->post_password,
'post_status' => 'draft',
'post_title' => $post->post_title . ' (Copy)',
'post_type' => $post->post_type,
'to_ping' => $post->to_ping,
'menu_order' => $post->menu_order
);
/*
* insert the post by wp_insert_post() function
*/
$new_post_id = wp_insert_post( $args );
/*
* get all current post terms ad set them to the new post draft
*/
$taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names, ex: array("category", "post_tag");
foreach ($taxonomies as $taxonomy) {
$post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs'));
wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
}
/*
* duplicate all post meta just in two SQL queries
*/
$post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
if (count($post_meta_infos)!=0) {
$sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
foreach ($post_meta_infos as $meta_info) {
$meta_key = $meta_info->meta_key;
if( $meta_key == '_wp_old_slug' ) continue;
$meta_value = addslashes($meta_info->meta_value);
$sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";
}
$sql_query.= implode(" UNION ALL ", $sql_query_sel);
$wpdb->query($sql_query);
}
/*
* finally, redirect to the edit post screen for the new draft
*/
wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
exit;
} else {
wp_die('Post creation failed, could not find original post: ' . $post_id);
}
}
add_action( 'admin_action_gm_duplicate_post_as_draft', 'gm_duplicate_post_as_draft' );
/*
* Add the duplicate link to action list for post_row_actions
*/
function gm_duplicate_post_link( $actions, $post ) {
if (current_user_can('edit_posts')) {
$actions['duplicate'] = '<a href="' . wp_nonce_url('admin.php?action=gm_duplicate_post_as_draft&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';
}
return $actions;
}
add_filter( 'post_row_actions', 'gm_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'gm_duplicate_post_link', 10, 2 );
How to Add the Code
- Access Your
functions.php
file: The safest way is via an FTP client or your hosting account’s File Manager. Navigate towp-content/themes/your-child-theme-name/
and find thefunctions.php
file. - Paste the Code: Open the file and paste the entire code snippet at the very end.
- Save the File: Save your changes and upload the file back to your server if you’re using FTP.
What This Code Actually Does
- The
gm_duplicate_post_as_draft()
function is the engine. It grabs the ID of the post you want to copy, fetches all its data (content, title, author, etc.), and creates a new post with that same data. It sets the new post’s status to “draft” and adds “(Copy)” to the title so you can easily find it. It’s smart enough to also copy all the categories, tags, and custom fields. - The
gm_duplicate_post_link()
function is what makes it user-friendly. It adds a new “Duplicate” link to the list of actions you see when you hover over a page or post in the admin area. - The
add_action()
andadd_filter()
lines are WordPress hooks. They tell WordPress when to run our new functions. We’re telling it to add our new link to the action rows for both posts and pages.
Once you’ve added this code and saved the file, go back to your All Pages or All Posts screen. When you hover over an item, you should now see a brand new Duplicate link. Clicking it will create a copy of the item and redirect you straight to the editor for the new draft.
This method is elegant, lightweight, and gives you a feature that feels like it’s part of WordPress itself.
Method 4: Duplicating Pages Through Your Hosting Provider
This is a less common method, but it’s worth knowing about, especially if you use a managed WordPress host. Some high-end hosting companies, like Kinsta or WP Engine, provide their own set of tools built into their hosting dashboard, and sometimes these include a feature for cloning content.
More commonly, however, they offer tools for staging environments. A staging site is an exact clone of your entire website that’s private. It’s a playground where you can test major changes, updates, or redesigns without affecting your live site.
While this isn’t for duplicating a single page, it’s the ultimate duplication tool for a website redesign.
How Staging Sites Work
- Create a Staging Site: In your hosting dashboard (not your WordPress dashboard), you’ll usually find a “Staging” or “Development” section. With one click, your host will create a complete copy of your site on a temporary URL.
- Make Your Changes: You can log in to this staging site and work on it just like your normal site. You could duplicate a page using one of the methods above, then completely redesign it. You can test new plugins, switch themes—anything you want. It’s all done in a safe, isolated environment.
- Push to Live: Once you’re happy with all your changes, you go back to your hosting dashboard and click a “Push to Live” or “Deploy” button. Your hosting provider will then intelligently copy the changes from your staging site over to your live site.
This is the method that professional web developers in the UK use every day. It’s the safest and most robust way to make significant changes to a website. If your hosting provider offers it, it’s a feature worth its weight in gold.
Common Pitfalls and Things to Watch Out For
Duplicating pages is usually a smooth process, but there are a few things to keep in mind to avoid causing problems for your website, especially concerning SEO.
The Danger of Duplicate Content
This is the big one. Search engines like Google want to provide users with unique, valuable content. If they find multiple pages on your website with the exact same (or very similar) content, they can get confused. Which page is the original? Which one should they show in the search results?
This is known as a duplicate content issue. At best, Google will just pick one of the pages to rank and ignore the others. At worst, it can dilute your SEO efforts and hurt your rankings across your whole site.
When you duplicate a page in WordPress, you are, by definition, creating duplicate content. The key is not to leave it that way.
How to Avoid SEO Problems:
- Always Edit the Duplicated Page: Your duplicated page should be a starting point, not the final product. As soon as you clone a page, your first job should be to go in and change the content significantly. Rewrite the headings, alter the paragraphs, add new images. Make it unique.
- Change the SEO Title and Meta Description: Use your SEO plugin (like Yoast or Rank Math) to give the new page a unique title and meta description. This is a strong signal to Google that this page is different from the original.
- Update the URL Slug: When you create a new page, WordPress will give it a URL (or “slug”). If your original page was
mysite.co.uk/our-services
, the copy might bemysite.co.uk/our-services-2
. Make sure you edit this slug to something that is unique and relevant to the new page’s content, likemysite.co.uk/new-service-details
. - Use a
noindex
Tag for Staging: If you’re duplicating a page purely for testing or as a temporary draft, you can tell Google not to index it. In your SEO plugin’s settings for that page, look for the “Advanced” tab and you should find an option that says “Allow search engines to show this Page in search results?”. Set it to “No”. This adds anoindex
tag to the page, which is a clear instruction to search engines to ignore it. Just remember to remove it if you decide to publish the page later!
Permalinks and Slugs
As mentioned above, pay close attention to the URL slug of your duplicated page. WordPress is pretty good at preventing you from having two pages with the exact same URL, but it’s still something you need to manage. Always give your new page a clear, descriptive URL that is different from the original.
Internal Links
If your original page contained links to other pages on your site (internal links), those links will be copied over to the new page. This is usually fine, but it’s good practice to double-check them. Make sure they still make sense in the context of the new page’s content.
The Future of Duplicating Content in WordPress
The world of WordPress is always evolving, and the way we create and manage content is getting smarter all the time. The Block Editor, in particular, is paving the way for more intuitive workflows.
We’re already seeing this with Block Patterns. A Block Pattern is a pre-designed collection of blocks that you can insert into any page. You could, for example, create a beautiful “Team Member” pattern with an image, a heading, and a short bio. Then, whenever you need to add a team member, you just insert that pattern instead of building it from scratch.
In the future, it’s likely that duplicating entire page layouts will become a core feature of WordPress, perhaps through an expanded template and pattern library. The goal is to move towards a more modular and reusable system, where you build a library of design components that you can mix and match to create new pages in seconds.
Conclusion: Choose the Method That’s Right for You
So there you have it—a complete guide to duplicating pages and posts in WordPress. As we’ve seen, there’s no single “best” way; it all depends on your needs and your comfort level.
Let’s quickly recap:
- For most users, a plugin like Yoast Duplicate Post is the perfect solution. It’s fast, simple, and reliable. You can be up and running in under a minute.
- If you want to avoid plugins, the manual copy-and-paste method is surprisingly effective, especially if you’re using the modern Block Editor. Just remember to re-apply your page settings afterwards.
- For the tech-savvy who want an integrated solution, adding a function to your theme’s
functions.php
file is a clean and powerful option. Just make sure you take precautions and use a child theme.
Whatever method you choose, mastering the art of duplication will fundamentally change your WordPress workflow. It will save you countless hours, help you maintain a beautiful and consistent website, and free you up to focus on what really matters: creating brilliant content.
Further Reading and Resources
For those looking to dive even deeper, here are some highly respected resources from the WordPress community:
- WordPress.org Plugin Directory: The official source for all the plugins mentioned, including user reviews and support forums.
- WPBeginner: One of the largest and most trusted free WordPress resource sites for beginners. They have excellent tutorials on almost every aspect of WordPress.
- Kinsta Blog: Kinsta is a premium managed WordPress host, and their blog is a goldmine of in-depth technical articles and performance benchmarks.
- The official WordPress Codex and Developer Resources: For those comfortable with code, the official documentation is the ultimate source of truth.