Searching for a way to duplicate a WordPress page, post, or another type of content?

Being able to easily duplicate WordPress content can be useful in all types of situations, from bulk creating similar content to updating older content to tweaking a design and more.

In many cases, though, it’s about more than just copying and pasting text between different pages. In addition to the content you’ve created, you might also want to preserve its design and the post’s settings, like its categories, tags, author, custom fields, and other metadata.

In this post, we’re going to give you a comprehensive guide for how you can completely duplicate a WordPress page, post, and more using 100% free solutions.

By the end, you’ll be able to duplicate any content on your site with the click of a button – let’s get started.

Table Of Contents

How To Duplicate a Post or Page in WordPress: Three Methods

There are three main methods that you can use to duplicate a WordPress page, post, or other custom post type:

  • Plugin – the easiest way to duplicate a post or page is to use one of the many dedicated plugins (most of which are free).
  • Editor – depending on how thoroughly you want to duplicate the content, you might be able to use just the editor if you only care about duplicating the content and design.
  • Manual code – for the do-it-yourselfers, you can just add some custom code to your child theme’s functions.php file.

We’ll cover all three methods – let’s go through them…

How To Duplicate a WordPress Page Using a Plugin

There are a lot of plugins that make it easy to duplicate posts, pages, or other content on your site.

If you have a WooCommerce store, WooCommerce includes its own built-in feature to duplicate products – more on that below. And if you don’t, you’ll find lots of free plugins at WordPress.org, including the following:

In addition to WooCommerce, we’ll show you how it works with two of the free plugins from the list above:

  • Yoast Duplicate Post because it’s very easy to use and includes a unique “Rewrite & Republish” feature that’s great for updating existing content.
  • Duplicate Post because it gives you more granular control in some areas.

Both plugins are free and we also tested both to make sure that they work with both Elementor designs and content built with the native WordPress editor. We imagine that all of the other plugins from above will also work with Elementor, though we didn’t specifically test them.

Yoast Duplicate Post

First, let’s take a look at Yoast Duplicate Post. This plugin is great if you just want a quick and easy way to duplicate posts, pages, or any other custom post type. 

In addition to letting you clone content, it also includes a unique Rewrite & Republish feature that helps you with updating existing content. Essentially, this feature lets you duplicate the content to make changes and then “merge” the duplicated version back into the original version when you want to make the changes live.

To get started, install and activate the free Yoast Duplicate Post plugin from WordPress.org.

Now, you have a few different ways to duplicate content.

First, you can go to the main Posts or Pages list. If you hover over an item in the list, you’ll see three options:

  • Clone – duplicate the content and keep your browser tab in the posts/pages list.
  • New Draft – duplicate the content and open the editor for the duplicated content so that you can start working right away.
  • Rewrite and Republish – this is a useful feature for updating old content, as we discussed above. The key difference is that it will let you merge the content back into the original post once you’re finished.
duplicate-page-1-options-in-page-list

The simplest approach is to just click Clone. Then, you’ll see a new draft entry for the duplicated content appear in the list. The plugin will mark it with a “Customization Draft” notice to let you know it’s the duplicate version:

duplicate page 2 duplicated content How to Duplicate a Page or Post in WordPress (3 Methods) 1

Second, you can also duplicate content from inside the WordPress editor. You’ll find these options in the Status & visibility section of the Post/Page sidebar:

duplicate page 3 duplicate from editor How to Duplicate a Page or Post in WordPress (3 Methods) 2

Finally, you can also bulk duplicate posts or pages by using the plugin’s options in the bulk actions drop-down of the Posts or Pages list:

  1. Use the checkbox to select all of the posts or pages that you want to duplicate.
  2. Choose the duplication method from the drop-down – Clone or Rewrite & Republish.
  3. Click Apply.
duplicate page 4 bulk duplicate content How to Duplicate a Page or Post in WordPress (3 Methods) 3

If you want to customize the plugin’s behavior, you can go to Settings → Duplicate Post. This area lets you:

  • Choose what content to duplicate.
  • Add a custom prefix or suffix to the title of the duplicated content.
  • Choose how to order duplicated content in the menu.
  • Select which post types to make eligible for duplication.
  • Choose which user roles have the ability to duplicate content.
  • Customize where to display the duplicate post links/buttons.
duplicate-page-5-yoast-duplicate-post-settings-area

Duplicate Post

Duplicate Post serves the same basic function as Yoast Duplicate Post in that it makes it easy to quickly duplicate a post or page.

A few advantages of this plugin over Yoast Duplicate Post are that it:

  1. Lets you duplicate a post/page multiple times with one click. For example, you could tell it to create four duplicate copies.
  2. Gives you a little more control over what content you duplicate between posts.
  3. Includes a feature to scan your site for duplicate content, which is useful for quickly finding duplicates.
  4. Lets you copy content between different WordPress multisite network sites, including those on a subdomain (though this feature requires the $19.98 premium plugin).
  5. Gives you an option to convert posts to pages and vice versa (also requires the premium version).

If you don’t need those features, we’d recommend sticking with Yoast Duplicate Post as it’s more popular and gets the job done. But if you do want those features, this is another solid option to consider.

To begin, install and activate the free Duplicate Post plugin from WordPress.org. As soon as you activate it, it will start working.

Go to the Posts/Pages list and hover over the piece of content that you want to duplicate. You’ll see a new option to Copy. If you hover over that, you’ll expand some additional settings to choose how many duplicates to make and which settings to use (more on those in a second):

duplicate-page-6-duplicate-post-plugin

As with Yoast Duplicate Post, you can also use the checkboxes and bulk actions drop-down to bulk copy multiple posts.

To configure the plugin’s settings, you can go to the new Copy & Delete Posts tab in your WordPress dashboard. This is where you can configure all of the settings including:

  • What content to duplicate.
  • Who can duplicate content.
  • Which custom post types to enable duplication for.
  • Etc.
duplicate page 7 duplicate post settings area How to Duplicate a Page or Post in WordPress (3 Methods) 4

One nice thing is that you can create multiple settings profiles and choose which configuration to use when you duplicate content.

If you scroll to the bottom of the settings area, you can also find the feature to scan for duplicate content on your site:

duplicate page 8 scan for duplicate content How to Duplicate a Page or Post in WordPress (3 Methods) 5

Again, if you just want a simple way to duplicate content, we recommend sticking with the Yoast Duplicate Post plugin. But if any of these features caught your eye, Duplicate Post also works well.

WooCommerce

If you’re using WooCommerce to create an e-commerce store, WooCommerce includes its own built-in feature to duplicate products – no need to install a separate plugin.

To duplicate a product, go to the Products area in your dashboard. Then, hover over the product that you want to duplicate and click Duplicate:

duplicate page 9 duplicate product How to Duplicate a Page or Post in WordPress (3 Methods) 6

You can also duplicate a product from inside the product editor by clicking the Copy to a new draft option under the Publish settings:

duplicate page 10 duplicate product from editor How to Duplicate a Page or Post in WordPress (3 Methods) 7

Note – these options only appear on products. If you want to duplicate posts and pages, you’ll need to install one of the plugins from above.

How To Duplicate a WordPress Page Using the Editor

If you’re mainly concerned with duplicating the content/design of a post or page, you might be fine without a plugin thanks to some built-in editor features.

In this section, we’ll show you how to quickly duplicate a design that you’ve created with the native block editor (Gutenberg) or Elementor.

It’s important to note that both of these methods will only duplicate the content and design – you’ll need to manually recreate any important metadata, such as the title, categories, tags, custom fields, etc.

Block Editor (Gutenberg)

To quickly duplicate the content from the block editor, start by opening the editor for the post or page that you want to duplicate.

Click the three dot icon in the top-right corner to expand the menu. Then, choose the option to Copy all content:

duplicate-page-11-duplicate-content-gutenberg

Now, create a new post or page. Then, click into the editor and paste the content. You can either:

  • Use a keyboard shortcut like Ctrl + V or Cmd + V.
  • Right-click and choose paste.

You should see an exact copy of the original content in the editor. However, you’ll need to make sure to manually add the title, categories, tags, etc.

Elementor

Note – you can duplicate pages or posts built with Elementor using the plugins that we mentioned above. But if you’re mainly concerned about duplicating the design of an Elementor post/page (rather than the other metadata like author and categories), you can do so using Elementor’s template system.

We have a guide on how to duplicate an Elementor page, but here’s the basic idea.

First, you can save your design as a template from the Elementor editor interface:

duplicate-page-12-elementor-template

Then, you can create a new post or page and insert the template from the Elementor template library.

If you want to duplicate more than just a single page, you can also use Elementor’s website kits feature to export/import complete website designs.

The Elementor import/export feature allows you to import your own creations and create a new website in seconds. Simply create a blueprint that can be used for multiple projects, or reuse your favorite web creation. Then, export the entire website and apply it to your other projects.

You can use your own creation or choose from our library of designer-made website kits. Simply apply it to your website, add content, and make it your own.

Image Optimization for Efficient Duplication

When duplicating WordPress pages or posts, large media files can slow down your process. Using an image optimizer plugin to compress images ensures that your duplicated pages load faster and consume less storage. This not only speeds up the duplication process but also improves overall site performance, particularly when dealing with image-heavy pages. Whether duplicating content for testing or replication, optimized images can make your workflow smoother and more efficient.

How To Duplicate a WordPress Page Manually With Code

If you prefer the do-it-yourself (DIY) approach, you can also create your own duplicate page function using some custom code. This method doesn’t add any benefit over the plugin route beyond eliminating the need to install another plugin on your site.

However, if avoiding another plugin is important to you, this approach is fine and will work with the regular editor content and Elementor.

To use this code, you need to add it to either the functions.php file of your theme or a code management plugin like Code Snippets. If you add it to the functions.php file, make sure to use a child theme.

				
					$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,
			'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, 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_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );
 
/*
 * Add the duplicate link to action list for post_row_actions
 */
function rd_duplicate_post_link( $actions, $post ) {
	if (current_user_can('edit_posts')) {
		$actions['duplicate'] = '<a>ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';
	}
	return $actions;
}
 
add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
				
			

By default, the snippet enables duplication for both posts and pages. If you only want to enable it for one or the other, you can remove the page_row_actions or post_row_actions filter at the bottom of the code snippet.

Improve Your Web Creation Process by Duplicating Pages and Posts

Being able to duplicate a WordPress page, post, or other post type is very handy when you’re working on a WordPress site.

In this post, we shared three different methods that you can use to duplicate content.

For most people, the easiest way to fully clone a post or page is via the free Yoast Duplicate Post plugin. It starts working right away and works with the block editor (Gutenberg), Elementor, and the Classic TinyMCE editor. It also works with all post types, from pages to posts and any custom post types you might be using.

If you have a WooCommerce store, you can also use WooCommerce’s built-in feature to duplicate products. Or, you can add some custom code to your site if you prefer not to install another plugin.

Lastly, if you only need to duplicate the content/design of a post, you can use Elementor’s template system or use the block editor’s option to copy all content.

Before we go, one quick reminder. You don’t want to publish duplicate content in most situations as it can negatively affect your SEO. So if you’re duplicating a page without changing its content (maybe just to change the URL), you’ll want to consider redirecting the original page once you’re finished.

Do you still have any questions about how to duplicate a WordPress page or post? Let us know in the comments section.