TLDR: Duplicating a page or post in WordPress is incredibly useful for efficiency, consistency, and testing. The easiest and most recommended method is to use a plugin like “Duplicate Post” (now “Yoast Duplicate Post”). Alternatively, you can manually copy content using the Block Editor or Classic Editor, or for the more technically inclined, implement a code snippet. Always remember to address SEO implications like permalinks and unique content after duplication to avoid issues.
As you know, managing a WordPress website, especially if you’re a blogger, small business owner, or running a WordPress agency, often involves creating a lot of content. Sometimes, you need a new page or post that’s almost identical to an existing one, perhaps with just a few tweaks. You might think, “Do I really have to rebuild this entire page from scratch every single time?” Absolutely not! I’ve been there, and I can tell you there are much better ways to approach this.
In this guide, I’ll walk you through the simplest, most effective methods to duplicate a page or post in WordPress. We’ll explore why this feature is a lifesaver, how to do it with and without plugins, and crucial steps to take afterward to ensure your duplicated content works for you, not against you, especially when it comes to SEO and user experience. My goal is to help you streamline your workflow and make content creation less of a headache.
Why Would I Even Need to Duplicate a WordPress Page or Post?
This is a fair question! Why bother with duplication when you could just start fresh? From my experience, the reasons are numerous and all boil down to saving time and maintaining consistency. Understanding the underlying intent behind wanting to duplicate can really help you choose the best method.
Scenario 1: Creating Similar Landing Pages
Imagine you’re running several marketing campaigns, each targeting a slightly different audience or offering a different incentive. You want to keep the core design and layout of your landing page consistent, but need to tweak headlines, offers, or calls to action. Duplicating the original page allows you to quickly create variations for A/B testing or specific campaign needs, letting you optimize each version for maximum conversion without rebuilding from scratch.
Scenario 2: Designing a New Page Layout Based on an Existing One
Perhaps you’ve designed a particularly effective “About Us” page or a service page layout that you love. When creating a new service page, why reinvent the wheel? Duplicating the existing page gives you a perfect starting point, retaining your structure, styling, and even some placeholder content. This helps maintain design consistency across your site, which is vital for a positive user experience.
Scenario 3: Making a Backup or Staging Version for Major Edits
Before making significant changes to a live page – like a complete redesign or a major content overhaul – I always recommend creating a duplicate. This acts as a staging version or a safety net. You can work on the duplicated draft, experiment freely, and only publish it once you’re completely satisfied. This way, your live site remains untouched and functional, preventing any downtime or broken experiences for your visitors.
Scenario 4: Streamlining Content Creation for Repetitive Structures
If you regularly publish content with a similar format, such as product reviews, case studies, or event listings, duplication is a game-changer. You can set up a “template” page or post with all the necessary headings, blocks, and even some pre-filled content. Then, simply duplicate it each time you need a new one. This approach helps you maintain a consistent content structure and drastically speeds up the publishing process.
The Easiest Way: Duplicating with a Plugin (My Go-To Method)
For most users, especially those not comfortable with code, using a plugin is by far the most straightforward and efficient method. I personally rely on plugins for this functionality because they synthesize a potentially complex process into a simple, user-friendly action. The “Duplicate Post” plugin (now often referred to as “Yoast Duplicate Post” since Yoast acquired it) is the gold standard in my opinion.
Step-by-Step with “Yoast Duplicate Post”
Let’s break it down:
- Install and Activate the Plugin: From your WordPress dashboard, navigate to Plugins > Add New. Search for “Yoast Duplicate Post.” Click “Install Now” and then “Activate.”
- Navigate to Pages/Posts: Go to Pages > All Pages (or Posts > All Posts) in your WordPress admin menu.
- Hover and Click “Duplicate”: Find the page or post you want to duplicate. When you hover over its title, you’ll see a new option appear: “Duplicate This” or “Clone.” Click it.
- Edit the Draft: WordPress will instantly create an exact copy of your page/post and save it as a “Draft.” You’ll be redirected to the new draft, or you can find it listed alongside your other pages/posts, clearly marked as a draft. Now you can make all your necessary changes without affecting the original.
- Publish: Once you’re happy with your changes, simply click “Publish.”
That’s it! Simple, right? This plugin also offers settings under Settings > Duplicate Post where you can configure what elements get copied (e.g., custom fields, comments, publication date), assign specific roles that can duplicate content, and even add prefixes or suffixes to duplicated titles for better organization. This level of control allows you to really personalize your duplication workflow.
The Manual Approach: Copy-Pasting Content (When Plugins Aren’t an Option)
While plugins are fantastic, there might be situations where you can’t install one (e.g., restricted hosting, specific client requirements, or you just prefer to keep your plugin count minimal). In such cases, you can manually copy and paste your content. However, be aware that this method only duplicates the content itself, not all page settings, featured images, SEO meta-data, or custom fields. Your query here is probably more about content transfer than a full clone.
Copying with the Block Editor (Gutenberg)
- Open the Original Page: Navigate to the page you want to copy in the Block Editor.
- Select All Blocks: Click on any block, then press
Ctrl+A(Windows) orCmd+A(Mac) to select all blocks on the page. - Copy Blocks: With all blocks selected, you’ll see a toolbar appear. Click the three vertical dots (ellipsis) and choose “Copy All Blocks.” Alternatively, after selecting all, you can simply use
Ctrl+C/Cmd+C. - Create a New Page: Go to Pages > Add New to create a brand new page.
- Paste Blocks: In the new page editor, click within the main content area and paste the blocks using
Ctrl+V/Cmd+V. - Re-add Meta-data and Settings: This is the crucial part. You’ll need to manually re-add your title, featured image, categories/tags (for posts), SEO title and description (if using an SEO plugin), page attributes (parent page, template), and any custom fields.
Copying with the Classic Editor
- Open the Original Page: Edit the page you wish to copy.
- Switch to “Text” Mode: In the Classic Editor, switch from the “Visual” tab to the “Text” tab. This will show you the HTML code of your content.
- Select All Content: Click within the editor, then press
Ctrl+A(Windows) orCmd+A(Mac) to select all the HTML. - Copy: Use
Ctrl+C/Cmd+Cto copy the selected content. - Create New Page: Go to Pages > Add New.
- Paste Content: In the new page editor, make sure you’re in the “Text” tab, then paste the copied HTML using
Ctrl+V/Cmd+V. You can then switch back to the “Visual” tab to see your content. - Re-add Meta-data and Settings: Just like with the Block Editor, you’ll have to manually set your title, featured image, SEO details, and other page attributes.
While this method gives you control, it’s prone to human error and doesn’t truly clone the entire page context. I find it much slower, especially if your pages have complex settings beyond just content.
For the Tech-Savvy: Duplicating with Code (PHP Snippet)
If you’re comfortable tinkering with your WordPress files and want to avoid an extra plugin, you can add a custom PHP code snippet to your theme’s functions.php file. This method essentially mimics what a plugin does, adding a “Duplicate This” link to your pages and posts. This gives you direct control and can be a way to optimize your site by reducing plugin dependencies, if done carefully.
Adding a Custom Code Snippet to functions.php (or a Custom Plugin)
IMPORTANT WARNING: Always back up your website before making any changes to your theme files. Even better, use a child theme for any custom code to ensure your changes aren’t lost during theme updates.
Here’s a common PHP snippet you can use:
function sm_duplicate_post_link($actions, $post) {
if (current_user_can('edit_posts')) {
$actions['duplicate'] = '<a href="' . wp_nonce_url('admin.php?action=duplicate_post_as_draft&post=' . $post->ID, 'duplicate_nonce') . '" title="Duplicate this item" rel="permalink">Duplicate This</a>';
}
return $actions;
}
add_filter('post_row_actions', 'sm_duplicate_post_link', 10, 2);
add_filter('page_row_actions', 'sm_duplicate_post_link', 10, 2);
function sm_duplicate_post_as_draft() {
global $wpdb;
if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'duplicate_post_as_draft' == $_REQUEST['action'] ) ) )
wp_die('No post to duplicate!');
if ( ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'duplicate_nonce' ) ) {
wp_die( 'No, thank you!' );
}
$post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
$post = get_post( $post_id );
$current_user = wp_get_current_user();
$new_post_author = $current_user->ID;
if (isset( $post ) && $post != null) {
$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
);
$new_post_id = wp_insert_post( $args );
$taxonomies = get_object_taxonomies($post->post_type);
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);
}
$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) {
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);
update_post_meta($new_post_id, $meta_key, $meta_value);
}
}
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_duplicate_post_as_draft', 'sm_duplicate_post_as_draft' );
This code snippet does two main things:
- It adds a “Duplicate This” link in your Pages and Posts list for users with editing capabilities.
- When clicked, it creates a new post or page as a draft, copying over the content, author, taxonomies (categories, tags), and most post meta-data.
While effective, this method requires a good understanding of PHP and WordPress hooks. One small error can lead to a broken site. For most users, I still recommend the plugin approach unless you’re very confident in your coding skills and want to leverage a code-only solution for specific reasons, like reducing server load from multiple plugins.
Important Considerations After Duplicating a Page
Simply duplicating a page isn’t the end of the story. There are several critical steps you must take to ensure your new page performs well, especially in terms of SEO. Failing to do so can lead to negative consequences like duplicate content penalties. We need to analyze the potential impact and mitigate risks.
SEO Implications (No Duplicate Content!)
This is perhaps the most important point. Google’s algorithms analyze your website for unique, valuable content. If you have two pages with identical content, Google might see this as an attempt to manipulate rankings or simply struggle to determine which version to show in search results. This can negatively impact both pages’ rankings. To avoid giving search engines *negative sentiment*, follow these steps immediately:
- Change Permalinks/Slugs: Your duplicated page will initially have a permalink like
yourdomain.com/original-page-copy. Change this immediately to something unique and descriptive for your new content (e.g.,yourdomain.com/new-landing-page-offer). - Update Title, Meta Description, H1: These are crucial SEO elements. Rewrite your page title, meta description, and the primary H1 heading to reflect the unique content and target keywords of your new page. Don’t just change a single word; make them genuinely different.
- Rewrite/Update Content to be Unique: This is non-negotiable for pages you want to rank. While duplication is great for layout, the *textual content* must be substantially unique. Aim for at least 30-50% unique content, or better yet, a complete rewrite if the pages are meant to rank for different terms. This ensures Google sees distinct value and relevant information on each page.
- Consider No-Indexing: If the duplicated page is purely for internal staging or testing and you absolutely do not want it indexed by search engines, use your SEO plugin (like Yoast SEO or Rank Math) to set the page to “noindex.” Remember to change this if you decide to publish it publicly!
Internal Linking
Once your new page is published, think about how it fits into your site’s overall structure. Update any existing internal links that might still point to the original page if the new page is replacing it. More importantly, create new internal links from relevant existing content to your newly duplicated and updated page. This helps search engines understand the page’s importance and relevance within your site’s hierarchy, and it also guides users to related content.
Featured Images & Media
While many duplication methods copy the featured image, always double-check it. If your new page requires a different visual representation, update the featured image. Also, review any embedded images or media within the content itself to ensure they are appropriate and correctly linked.
Page Attributes (Parent/Template)
For pages, check the “Page Attributes” section in the editor. Does your new page need a different parent page? Is it using the correct page template? These settings often carry over from the original, so confirm they align with your new page’s purpose. This helps Google derive contextual cues about your content.
Review All Settings
Take a moment to go through all the settings in the right-hand sidebar of your editor. This includes categories and tags (for posts), custom fields, discussion settings, and any specific options provided by your theme or other plugins (e.g., related posts, social sharing options). My advice is to approach this systematically to ensure nothing is overlooked. You want to make sure the entire context of the page is optimized for its new purpose.
Frequently Asked Questions About WordPress Duplication
Can I duplicate multiple pages at once?
Yes, some advanced plugins like “Yoast Duplicate Post” offer batch duplication features, allowing you to select multiple pages or posts and clone them simultaneously. This is a huge time-saver if you need to create many similar content pieces. You can often find settings within the plugin to configure this.
Does duplicating a page affect SEO?
Potentially, yes. If you duplicate a page and publish it without making substantial changes to its content, title, meta description, and permalink, search engines will see it as duplicate content. This can lead to penalties or cause Google to choose one version over the other, impacting your desired rankings. Always ensure your duplicated page is unique and valuable before publishing.
What’s the best plugin for duplicating pages?
I consistently recommend “Yoast Duplicate Post” (formerly “Duplicate Post”). It’s free, regularly updated, and offers a comprehensive set of features for duplicating pages, posts, and custom post types, including fine-grained control over what elements are copied. Another reliable option is “Post Duplicator.” Both are solid choices for their simplicity and effectiveness, letting you quickly derive a new page from an existing one.
Can I duplicate a page across different WordPress sites?
Directly, no. The duplication methods discussed here work within a single WordPress installation. To move a page across different WordPress sites, you would typically use WordPress’s built-in export/import tools (found under Tools > Export and Tools > Import), which export content as an XML file. You could also use a migration plugin, or manually copy the content and settings as described in the manual method section. This involves more effort, as you’re essentially re-establishing the page’s structure on a new system.
To Summarize
Duplicating content in WordPress is a powerful feature that can significantly boost your productivity and ensure consistency across your website. Whether you choose the ease of a plugin, the hands-on approach of manual copy-pasting, or the direct control of a code snippet, the key is to understand the implications of each method.
Remember to always prioritize unique content and proper SEO after duplication to avoid common pitfalls. By following the best practices I’ve outlined, you’ll not only save time but also create high-quality, semantically optimized pages that perform well on Google, AI-powered search tools like ChatGPT, Perplexity, and Gemini, and drive real engagement and conversions. Go ahead, give one of these methods a try on your WordPress site, and let me know how it revolutionizes your content creation!

