The Ultimate Guide: How to Copy a Page in WordPress (The Right Way)
Learn the three best ways to copy a WordPress page. We cover simple plugins like Yoast, the manual copy-and-paste method, and a code snippet for pros.
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.
Right then. Let’s talk about WordPress. It’s the engine behind a huge chunk of the web, from bustling online shops in Manchester to personal blogs run from a cottage in the Cotswolds. And if you use it, you’ll eventually face a simple, slightly baffling task: you need to make a copy of a page.
It sounds like it should be as easy as pressing Ctrl+C, but it’s not immediately obvious. You’ve spent ages getting a page just right – the layout, the images, the text, all perfectly aligned. Now you need another one just like it. Maybe it’s a new service page, a team member profile, or a special offer that’s similar to the last one. The thought of rebuilding it from scratch is enough to make you want to throw your laptop out the window and go for a long walk.
But don’t you worry. Copying, or ‘duplicating’, a page in WordPress is actually dead simple when you know how. It’s a bit like wanting to record your favourite show on telly so you can watch it again later – you just need to know which button to press.
This guide is your remote control. We’ll walk you through everything, step-by-step. We’ll cover the super-easy plugin method that most people should use, the manual way for those who don’t want another plugin, and even a nifty bit of code for the more adventurous among you. By the end of this, you’ll be duplicating pages like a pro, saving yourself heaps of time and faff. Let’s crack on.
Why Bother Copying a WordPress Page? More Than Just Hitting ‘Ctrl+C’
First things first, why would you even need to do this? It’s not just about being lazy (though saving time is a brilliant reason on its own). Duplicating a page is a proper, professional web design trick that solves a lot of common problems.
Think of it less like a simple copy and more like using tracing paper. You trace the original design to get the structure, then you can colour in the new version however you like.
Here are the most common reasons you’ll find yourself needing a copy:
Redesigning Without the Drama
You want to give a popular page a fresh lick of paint, but you can’t risk breaking the live version while you fiddle with it. By duplicating the page, you create a perfect copy that stays in ‘draft’ mode. It’s like having a private workshop. You can mess around with the layout, rewrite the text, and try new images, all while the original page keeps doing its job. When your new version is ready for the world, you can publish it and simply delete the old one. No stress, no downtime.
Keeping Things Consistent
Imagine you’re a tradesperson with pages for ‘Plumbing’, ‘Electrics’, and ‘Joinery’. You want them all to have the same professional layout: a title, a picture on the left, a description on the right, and a contact form at the bottom. Instead of building this layout three times, you build it once and then duplicate it. All you have to do on the copies is swap out the text and pictures. It ensures a consistent look across your site, which builds trust with your customers.
The A/B Test
Which headline gets more clicks? “Our Amazing Widgets” or “High-Quality Widgets, Delivered Fast”? The only way to know for sure is to test it. By duplicating a page, you can create two almost identical versions (an ‘A’ and a ‘B’) with one small difference. You then use tools to send half your visitors to one and half to the other. The version that gets more customers to sign up is the winner. This is how the pros fine-tune their websites for maximum results.
Updating Old Content Safely
You have a long, important article that needs a major update. The information is out of date, and you want to add new sections. Duplicating it lets you work on the new version in the background. The original article stays live, so you don’t lose any Google traffic. Once your masterpiece is finished, you can just swap it with the old one.
A Quick Backup
Sometimes, you just want a safety net. Before you make a big change to a critical page, like your homepage or a checkout page, hitting ‘duplicate’ gives you an instant backup. If you make a complete dog’s dinner of the edit, you can just delete your mess and go back to the copy.
The Easiest Method: Let a Plugin Do the Heavy Lifting
For about 99% of WordPress users, this is the answer. Using a plugin is the quickest, safest, and most straightforward way to duplicate a page. A good plugin adds a simple ‘Duplicate’ or ‘Clone’ button right where you need it. No fuss, no code, just a single click.
Plugins are little apps you add to your WordPress site to give it new powers. Installing one for this job is a doddle.
Our Top Pick: Yoast Duplicate Post
If you’re going to get a plugin, you might as well get the bees’ knees. Yoast Duplicate Post is the most popular and trusted tool for the job. It’s made by the same team behind the famous Yoast SEO plugin, so you know it’s well-built and reliable. It’s free and does everything you could possibly need.
Step-by-Step Guide to Using Yoast Duplicate Post
Let’s get this set up. It’ll take you less than two minutes.
1. Install the Plugin:
- From your WordPress dashboard (the black panel on the left), hover over Plugins and click Add New.
- In the search box at the top right, type “Yoast Duplicate Post”.
- You’ll see a card for the plugin. It should be the first result. Click the Install Now button.
- WordPress will do its thing for a few seconds. The button will then change to say Activate. Click it.
A simple search in the plugin directory is all it takes.
That’s it! The plugin is now active and ready to go.
2. Duplicate Your Page:
- Now, navigate to your list of pages by clicking Pages > All Pages in the dashboard menu.
- Hover your mouse over the page you want to copy. You’ll see some new options appear beneath the page title. The plugin has added Clone and New Draft.
Hovering over a page reveals the new one-click duplication options.
- What’s the difference?
- Clone: This makes an exact copy of your page and immediately adds it to your pages list as a draft. It’s the quickest option.
- New Draft: This makes a copy and then immediately opens it in the editor for you, so you can start making changes straight away.
- Click either Clone or New Draft. For this example, let’s click Clone.
You’ll see your page list refresh, and voilà! A new, identical page has appeared, usually with “Draft” next to its title. You can now click ‘Edit’ to open it up and make your changes without touching the original.
3. A Quick Look at the Settings (Optional): Yoast Duplicate Post also gives you some handy settings to control exactly what gets copied.
- Go to Settings > Duplicate Post.
- In the What to copy tab, you can choose which parts of a page are duplicated. By default, it copies everything, which is usually what you want. But you could, for example, choose not to copy the featured image or the date.
- The Permissions tab lets you control who can use the plugin (useful if you have multiple authors on your site).
- The Display tab controls where the ‘Clone’ links appear.
You probably won’t need to touch these settings, but it’s good to know they’re there.
A Simple Alternative: Duplicate Page Plugin
If you find Yoast’s offering has too many bells and whistles, another fantastic, no-frills option is a plugin simply called Duplicate Page. It does one job, and it does it perfectly.
Step-by-Step Guide to Using Duplicate Page
The process is almost identical to the one above.
- Install the Plugin: Go to Plugins > Add New, search for “Duplicate Page”, and click Install Now, then Activate.
- Duplicate Your Page: Go back to Pages > All Pages. When you hover over a page, you’ll now see a new link that says Duplicate This.
- Click Duplicate This, and an identical draft copy will be created instantly.
This plugin is the definition of cheap and cheerful (except it’s free). It’s lightweight and gets the job done with zero fuss.
A Note on Page Builders (Elementor, Divi, etc.)
If you use a popular page builder like Elementor, Divi, or Beaver Builder, you might not even need a plugin. These powerful tools often have duplication features built right in.
- In Elementor, for example, you can save an entire page as a template. You then create a new, blank page and insert that template with a couple of clicks. You can also right-click on individual sections or widgets and choose ‘Copy’, then paste them onto a new page.
- Divi also has a robust copy-and-paste system, as well as the ability to save designs to a library for use elsewhere.
If you use a page builder, it’s worth spending five minutes checking its documentation. Using the built-in feature is often the most reliable way to copy complex layouts created with that specific tool.
The Manual Approach: Copying a Page Without a Plugin
Perhaps you’re not allowed to install plugins on your company’s website, or maybe you’re just a minimalist who avoids them where possible. Fair enough. You can still copy a page manually.
Be warned, though: this method only copies the content itself. It won’t copy the page’s settings, like its template, featured image, comments status, or any SEO data. You’ll have to set all of that up again on the new page.
For the Modern Block Editor (Gutenberg)
If you’re using the standard, modern WordPress editor (the one that uses “blocks” for everything), this is surprisingly easy.
Step-by-Step: Using ‘Copy all blocks’
- Open the page you want to copy by going to Pages > All Pages and clicking Edit.
- In the editor screen, look for the three vertical dots in the top-right corner. This is the Options menu.
- Click the three dots. A dropdown menu will appear.
- Near the bottom of that menu, you’ll see an option called Copy all blocks. Click it.
The ‘Copy all blocks’ feature is hidden in the options menu.
Your computer has now copied the entire structure and content of the page to its clipboard.
- Now, go back to the dashboard and create a new page (Pages > Add New).
- Give your new page a title.
- Click into the main content area where it says “Type / to choose a block”.
- Simply paste what you copied. You can either right-click and choose Paste, or press Ctrl+V (on Windows) or Cmd+V (on a Mac).
Bang! All the blocks from your original page will appear in the new page. It’s like magic. Just remember to go through the page settings on the right-hand side to add your featured image and check everything else.
For the Classic Editor
If you’re using the older, “Classic” WordPress editor (which looks more like a traditional word processor), the process is a little more fiddly, but still very possible.
Step-by-Step: Copying the HTML
- Open the page you want to copy in the editor.
- In the top-right corner of the content box, you’ll see two tabs: Visual and Text. The ‘Visual’ tab shows you what the page looks like. The ‘Text’ tab shows you the raw HTML code behind it. Click on the Text tab.
- You’ll now see a load of code. Don’t panic!
- Click anywhere inside the code box, then select everything (Ctrl+A or Cmd+A).
- Copy it all (Ctrl+C or Cmd+C).
- Create a new page (Pages > Add New).
- This is the important bit: On the new, empty page, immediately switch its editor to the Text tab before you paste.
- Paste your copied code into the text box (Ctrl+V or Cmd+V).
- Now you can switch back to the Visual tab to check it looks right.
This method can sometimes be a bit hit-and-miss, especially with complex layouts, but for simple pages, it works a treat.
For the Brave: Duplicating a Page with a Code Snippet
Right, this method is for the tech-confident. If talk of code makes you nervous, just stick with the plugin method. But if you’re comfortable tinkering under the bonnet of your website, this is a very clean and efficient way to add a duplicate function without installing a whole plugin.
A Word of Warning: We’re going to be editing one of your theme’s core files. Getting this wrong can break your website (the dreaded “White Screen of Death”). So, please, follow these two golden rules:
- Back up your website first. Always have a backup before you edit code.
- Use a child theme. Editing your main theme’s files is a bad idea because your changes will be erased the next time the theme updates. A child theme is a safe little sandbox where your custom code can live forever. If you don’t know what a child theme is, now is a great time to learn – it’s a fundamental WordPress skill.
Okay, disclaimer over. Let’s do this.
We’re going to add a small piece of PHP code to your theme’s functions.php file. This code will create the ‘Duplicate’ link for you.
The Magic Code Snippet
Here is the code. Don’t worry about understanding every line; we’ll explain how to add it safely.
/*
* Function to add a "Duplicate" link to post/page actions
*/
function my_duplicate_post_as_draft(){
global $wpdb;
if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'my_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 for post type, e.g., 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_my_duplicate_post_as_draft', 'my_duplicate_post_as_draft' );
/*
* Add the duplicate link to action list for post_row_actions
*/
function my_duplicate_post_link( $actions, $post ) {
if (current_user_can('edit_posts')) {
$actions['duplicate'] = '<a href="' . wp_nonce_url('admin.php?action=my_duplicate_post_as_draft&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';
}
return $actions;
}
add_filter( 'page_row_actions', 'my_duplicate_post_link', 10, 2 );
add_filter( 'post_row_actions', 'my_duplicate_post_link', 10, 2 );
How to Add the Code Safely
- From your WordPress dashboard, go to Appearance > Theme File Editor.
- You might see a scary warning message. Read it and click “I understand”.
- On the right, under Theme Files, make sure you have selected your child theme.
- Click on the file named Theme Functions (
functions.php). - Scroll to the very bottom of the file.
- Copy the entire code snippet from the box above and paste it at the end of the
functions.phpfile. - Click the Update File button.
Now, go to your Pages > All Pages list. Hover over a page, and you should see a brand new “Duplicate” link. Clicking it will create a draft copy and take you straight to the editor. All done, with no extra plugin weighing down your site.
A Different Kettle of Fish: Copying a Page to Another Website
So far, we’ve been talking about making a copy on the same website. But what if you want to move a page from my-old-site.co.uk to my-new-site.co.uk?
This is a different job entirely. It’s not really “copying” so much as “migrating”. You can’t just copy and paste; you need to properly export the page from one site and import it into another.
The Built-in WordPress Way
For a single, simple page, the tools built into WordPress work perfectly well.
- On your OLD site:
- Go to Tools > Export.
- You’ll be asked what to export. Choose Pages.
- You can then use the filters to select the specific page you want to export.
- Click the Download Export File button. An XML file will be saved to your computer.
- On your NEW site:
- Go to Tools > Import.
- At the bottom of the list, you’ll see WordPress. Click Install Now if you haven’t used it before. Once it’s installed, the link will change to Run Importer. Click that.
- You’ll be asked to upload the file. Choose the XML file you downloaded from your old site.
- Follow the on-screen instructions. It will ask you to assign an author to the imported page. It will also ask if you want to download and import file attachments (like images) – you almost always want to tick this box!
After a few moments, the page will be copied over to your new site, images and all.
When to Use a Migration Plugin
The built-in tool is great, but it can struggle with very complex pages, especially those built with page builders. If your page has lots of unique settings, custom fields, or complicated layouts, a dedicated migration plugin like All-in-One WP Migration or Duplicator is a better bet. These tools are designed to move entire sites, but they can also be used for single pages, and they do a much more thorough job of making sure every single setting comes across perfectly.
The Danger Zone: SEO and Duplicate Content
This is the most important part of the entire guide. You cannot just have two identical pages live on your website.
Google’s job is to show the best, most relevant results. If it finds two pages on your site that are exactly the same, it gets confused. Which one is the “real” one? Which one should it show in search results? This is called duplicate content, and it can harm your site’s rankings.
Think of it like this: if a bookshop had two identical copies of a book but with different covers, it would be confusing for customers. Google feels the same way.
So, here’s the golden rule: Only one version of a page should ever be visible to Google and the public.
What to Do with Your Page Copy
Your duplicated page should always be used as a tool, not as a final, public page. Here’s how to handle it safely:
- If it’s a draft for a redesign: This is the easiest scenario. Your duplicated page will be in ‘Draft’ status by default. Just leave it as a draft. It’s completely invisible to Google and to your visitors. When you’re ready to launch the new design, publish your new page, and then delete the old one. To keep your SEO juice, make sure the new page has the exact same URL (permalink) as the old one. If you can’t, use a 301 redirect to tell Google the page has moved permanently.
- If you need two similar but not identical pages: Let’s say you copy your “Plumbing Services” page to create a “Heating Services” page. As long as you change the content significantly (different text, different images, different titles), you’re fine. They are now two unique pages.
- If you absolutely must have two very similar pages live: This is rare, but it can happen. For example, you might have one version for printing and one for web viewing. In this case, you need to use a canonical tag.
A canonical tag is a little snippet of code in the page’s header that tells Google: “Oi, I know these pages look similar, but this is the main one. Pay attention to that one and ignore this one.” The Yoast SEO plugin makes adding canonical tags very easy, but this is an advanced technique. If you’re not sure, it’s best to just avoid the situation entirely by making sure your pages are unique or by keeping copies in draft.
Troubleshooting: When It All Goes a Bit Pear-Shaped
Even with the best instructions, things can sometimes go wrong. Here are a few common hiccups and how to fix them.
- “My copied page looks all wrong!” This often happens with the manual copy-paste method. The layout is broken, or the styles are missing. The most common cause is your website’s cache. Your browser and your website often store temporary copies of things to speed them up. Try clearing all caches (your browser cache, and any caching plugins on your site like WP Rocket or LiteSpeed Cache). If that doesn’t work, you likely missed a bit of code when you copied it. The plugin method is much more reliable for avoiding this.
- “The ‘Duplicate’ link isn’t showing up.” If you installed a plugin and can’t see the link, it’s usually one of three things. First, try deactivating and reactivating the plugin. Second, it could be a conflict with another plugin. Try temporarily deactivating other plugins to see if the link appears. Third, check the plugin’s settings (e.g., Settings > Duplicate Post) – there may be a permissions setting that has disabled it for your user role.
- “I’ve got a massive error after adding the code!” If you used the code snippet method and now your site is showing a blank white screen or an error message, it means there was a mistake in the copy-paste. Don’t panic. The way to fix this is to access your site’s files directly (via FTP or your hosting company’s File Manager) and edit the
functions.phpfile to remove the code you just added. Your site will spring back to life. This is why using a child theme is so important!
Conclusion: Pick Your Weapon of Choice
You’ve done it. You now know everything you need to know about copying a page in WordPress. It’s a simple skill, but it’s one that will genuinely make your life easier and your workflow much, much faster.
So, which method should you use? Here’s a simple breakdown:
- For almost everyone (beginners, business owners, bloggers): Use a plugin. Specifically, use Yoast Duplicate Post. It’s the industry standard for a reason. It’s safe, reliable, packed with features, and takes seconds to set up. Don’t overthink it; just install the plugin and enjoy the one-click cloning.
- For a quick one-off task or if you can’t use plugins: The manual ‘Copy all blocks’ method in the modern editor is excellent. It’s fast and surprisingly effective. Just remember you’ll need to re-do all the page settings.
- For developers and power users who want a lean site: The code snippet method is perfect. It gives you the functionality you need without adding the overhead of another plugin. It’s clean, efficient, and once it’s set up, you can forget about it.
Whichever path you choose, you’re now equipped to work smarter, not harder. You can create consistent designs, test new ideas safely, and update your content without breaking a sweat. So go on, get duplicating. Your future self will thank you for it.
Further Reading
To continue your WordPress journey, here are a few highly respected resources that are well worth a bookmark.
- The Official WordPress Codex: The source of all truth. The technical documentation can be a bit dry, but it’s the ultimate reference. WordPress Codex
- Yoast SEO Blog: While focused on SEO, their blog has fantastic articles on all aspects of using WordPress effectively, including their own guide to the Duplicate Post plugin. Yoast Blog
- WPBeginner: One of the most famous and accessible resources for WordPress tutorials on the web. Their articles are clear, reliable, and aimed at non-developers. WPBeginner
- Smashing Magazine: For those who want to go deeper into web design and development, Smashing Magazine provides high-quality, in-depth articles on everything from CSS to user experience. Smashing Magazine