{"id":3514,"date":"2019-11-25T09:58:57","date_gmt":"2019-11-25T09:58:57","guid":{"rendered":"http:\/\/blog.hostinger.io\/hostinger-tutorials\/?p=3514"},"modified":"2025-12-22T15:10:17","modified_gmt":"2025-12-22T15:10:17","slug":"how-to-duplicate-wordpress-page-or-post","status":"publish","type":"post","link":"\/tutorials\/how-to-duplicate-wordpress-page-or-post","title":{"rendered":"How to duplicate pages in WordPress using a plugin and manually"},"content":{"rendered":"<p>When using WordPress, you may need to duplicate a post or page for various reasons. Whether for quick content updates or maintaining a specific layout for new pages, knowing how to replicate page content on WordPress can streamline your workflow.<\/p><p>This tutorial will cover plugin-based approaches and manual page duplication techniques to efficiently create a new page or post based on existing content.<\/p><p>We will also go through several scenarios where this practice comes in handy and provide tips on replicating WordPress posts and pages to ensure a smooth process. Let&rsquo;s get started.<\/p><p class=\"has-text-align-center\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Mega-WordPress-Cheat-EN.pdf\" target=\"_blank\" rel=\"noopener\">Download all-in-one WordPress cheat sheet<\/a><\/p><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-duplicate-pages-or-posts-using-a-wordpress-plugin\"><b>How to Duplicate Pages or Posts Using a WordPress Plugin<\/b><\/h2><p>Although you can manually copy and paste content, this method is cumbersome, especially for pages with complex layouts. The block editor&rsquo;s <strong>Copy all blocks<\/strong> feature helps, but it doesn&rsquo;t fully replicate the entire page or post. Fortunately, using a plugin can automate and simplify this process.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-gutenberg-copyallblocks.png\"><img decoding=\"async\" width=\"1024\" height=\"481\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-gutenberg-copyallblocks.png\/public\" alt=\"The Copy all blocks feature under the Options menu highlighted.\" class=\"wp-image-94175\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-gutenberg-copyallblocks.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-gutenberg-copyallblocks.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-gutenberg-copyallblocks.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-gutenberg-copyallblocks.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><p>When you manually copy a post or page, only the text content is replicated. You must copy template parts, images, and SEO elements like meta descriptions and title tags separately. The process becomes time-consuming, especially when cloning multiple WordPress posts, pages, or custom post types.<\/p><p>A more efficient method is to duplicate posts in WordPress using plugins, which simplifies the task and reduces the risk of human error. To get started with duplicating pages in WordPress, you can install the <strong>Duplicate Page <\/strong>plugin, which automates the process.<\/p><ol class=\"wp-block-list\">\n<li>Install and activate <a href=\"https:\/\/wordpress.org\/plugins\/duplicate-page\/\" target=\"_blank\" rel=\"noopener\">Duplicate Page<\/a> from the WordPress plugin directory. Other ways to <a href=\"\/tutorials\/wordpress\/how-to-install-wordpress-plugins\">install the plugin<\/a> include using an FTP client and uploading the plugin files manually through your admin dashboard.<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-duplicate-page-plugin.png\"><img decoding=\"async\" width=\"1902\" height=\"719\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-duplicate-page-plugin.png\/public\" alt=\"Once you've installed the plugin, navigate to the 'Plugins' section in your WordPress dashboard. You'll find the 'Duplicate Page' plugin listed there, ready for activation.\" class=\"wp-image-94176\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-duplicate-page-plugin.png\/w=1902,fit=scale-down 1902w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-duplicate-page-plugin.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-duplicate-page-plugin.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-duplicate-page-plugin.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-duplicate-page-plugin.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1902px) 100vw, 1902px\" \/><\/a><\/figure><\/div><ol start=\"2\" class=\"wp-block-list\">\n<li>Go to <strong>Settings <\/strong>&rarr; <strong>Duplicate Page<\/strong> to configure the plugin&rsquo;s settings. For this tutorial, we make it available in the classic editor and <a href=\"\/tutorials\/gutenberg-wordpress\">Gutenberg<\/a>. The plugin assigns a <strong>Draft<\/strong> status to all duplicated content and redirects you to the post list after completing the process.<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-plugin-configuration.png\"><img decoding=\"async\" width=\"1142\" height=\"499\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-plugin-configuration.png\/public\" alt=\"The Duplicate Page plugin settings in WordPress\" class=\"wp-image-94177\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-plugin-configuration.png\/w=1142,fit=scale-down 1142w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-plugin-configuration.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-plugin-configuration.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-plugin-configuration.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-plugin-configuration.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1142px) 100vw, 1142px\" \/><\/a><\/figure><\/div><ol start=\"3\" class=\"wp-block-list\">\n<li>Navigate to <strong>Posts <\/strong>&rarr; <strong>All Posts<\/strong> from your WordPress dashboard to find a <strong>Duplicate This<\/strong> button under each post. Click on it to create an exact replica of your chosen post as a new draft.<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-posts.png\"><img decoding=\"async\" width=\"1024\" height=\"268\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-posts.png\/public\" alt=\"The Duplicate This feature that belongs to the Duplicate Page plugin is highlighted under a post.\" class=\"wp-image-94178\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-posts.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-posts.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-posts.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-page-posts.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><p>Duplicate Page is a freemium plugin, so consider upgrading to Pro to unlock its premium features. Buying the license for <strong>$15\/website<\/strong> lets you limit access to the plugin based on user roles, change the duplicate page&rsquo;s location, and set a default prefix and suffix to your duplicated page entries.<\/p><p>If Duplicate Page doesn&rsquo;t fit your needs, consider other popular plugin options:<\/p><ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/wordpress.org\/plugins\/duplicate-post\/\" target=\"_blank\" rel=\"noopener\">Yoast Duplicate Post<\/a>. Developed by the team behind the popular SEO plugin, Yoast Duplicate Post lets you clone multiple entries using the <strong>Bulk Actions<\/strong> feature.<\/li>\n\n\n\n<li><a href=\"https:\/\/wordpress.org\/plugins\/post-duplicator\/\" target=\"_blank\" rel=\"noopener\">Post Duplicator<\/a>. This plugin supports custom post types along with custom taxonomies and fields, making it ideal for WordPress sites of all sizes and niches.<\/li>\n\n\n\n<li><a href=\"https:\/\/wordpress.org\/plugins\/duplicate-pp\/\" target=\"_blank\" rel=\"noopener\">Duplicate PP<\/a>. With this plugin, you can duplicate content from either the admin dashboard on the back end or the single post view on the front end.<\/li>\n\n\n\n<li><a href=\"https:\/\/wordpress.org\/plugins\/copy-delete-posts\/\" target=\"_blank\" rel=\"noopener\">Duplicate Post<\/a>. Besides cloning posts, this WordPress duplicate plugin identifies and removes copied content within a few clicks.<\/li>\n<\/ul><p>\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Pro Tip<\/h4>\n                    <p>Improve your content publishing workflow by understanding the proper way to <a href=\"\/tutorials\/how-to-add-a-new-post-in-wordpress\">add a new post in WordPress<\/a>.<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-duplicate-pages-or-posts-manually\">How to Duplicate Pages or Posts Manually<span style=\"font-weight: 400\"><\/span><\/h2><p>If you prefer not to use a plugin, you can always duplicate WordPress posts manually by modifying the <strong>functions.php<\/strong> file. You can find this file in <strong>wp-includes<\/strong>, a core folder within your WordPress site.<\/p><p>Four tools are available for editing the <strong>functions.php<\/strong> file &#8210; your web host&rsquo;s File Manager, an FTP client like FileZilla, an HTML code editor, or the built-in WordPress editor.<\/p><p>The FTP client method involves <a href=\"\/tutorials\/how-to-create-ftp-accounts\">creating an FTP account<\/a> and connecting it to the server. We recommend <a href=\"\/tutorials\/ftp\/filezilla-ftp-configuration\">setting up a FileZilla FTP connection<\/a> as this popular FTP client is relatively easy to navigate.<\/p><p>Meanwhile, the built-in WordPress editor is accessible in <strong>Appearance <\/strong>&rarr; <strong>Theme File Editor<\/strong> from your WordPress dashboard.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-themefileeditor.png\"><img decoding=\"async\" width=\"1024\" height=\"476\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-themefileeditor.png\/public\" alt=\"WordPress's Theme File Editor workspace with the functions.php file opened.\" class=\"wp-image-94179\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-themefileeditor.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-themefileeditor.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-themefileeditor.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/wordpress-themefileeditor.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><p>If you&rsquo;re familiar with coding, using an <a href=\"\/tutorials\/best-html-editors\">HTML editor<\/a> may be the most convenient method. Most code editors include spell-checking and error detection features, ensuring your code is functional and clean.<\/p><p>\n\n\n<div><p class=\"important\"><strong>Important!<\/strong> <a href=\"\/tutorials\/backups\/downloading-website-backup\">Back up your entire website<\/a> before editing any WordPress files to avoid data loss.<\/p><\/div>\n\n\n\n<\/p><p>For this tutorial, we will configure the <strong>functions.php<\/strong> file using Hostinger&rsquo;s File Manager.&nbsp;First, open the file management tool by navigating to <strong>Files <\/strong>&rarr; <strong>File Manager<\/strong> from hPanel. Select <strong>Access Files of your-domain-name<\/strong> to specifically access the assets of your WordPress website.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager.png\"><img decoding=\"async\" width=\"1024\" height=\"451\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager.png\/public\" alt=\"Accessing Hostinger's File Manager from hPanel. The option to access files of the specific website is highlighted.\" class=\"wp-image-94180\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><p>Locate the <strong>functions.php<\/strong> file in <strong>public_html<\/strong> &rarr; <strong>wp-includes<\/strong>. Right-click on the file and select <strong>Edit<\/strong>,<strong> <\/strong>or double-click to modify it.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager-functions.png\"><img decoding=\"async\" width=\"1024\" height=\"463\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager-functions.png\/public\" alt=\"Locating functions.php file in wp-includes using Hostinger's File Manager.\" class=\"wp-image-94181\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager-functions.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager-functions.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager-functions.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/hostinger-filemanager-functions.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><p>Paste the following code snippet at the bottom of your <strong>functions.php<\/strong> file:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/*\n * Function for post duplication. Dups appear as drafts. User is redirected to the edit screen\n *\/\nfunction rd_duplicate_post_as_draft(){\n  global $wpdb;\n  if (! ( isset( $_GET['post']) || isset( $_POST['post'])  || ( isset($_REQUEST['action']) &amp;&amp; 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) {\n    wp_die('No post to duplicate has been supplied!');\n  }\n \n  \/*\n   * Nonce verification\n   *\/\n  if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) )\n    return;\n \n  \/*\n   * get the original post id\n   *\/\n  $post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );\n  \/*\n   * and all the original post data then\n   *\/\n  $post = get_post( $post_id );\n \n  \/*\n   * if you don't want current user to be the new post author,\n   * then change next couple of lines to this: $new_post_author = $post-&gt;post_author;\n   *\/\n  $current_user = wp_get_current_user();\n  $new_post_author = $current_user-&gt;ID;\n \n  \/*\n   * if post data exists, create the post duplicate\n   *\/\n  if (isset( $post ) &amp;&amp; $post != null) {\n \n    \/*\n     * new post data array\n     *\/\n    $args = array(\n      'comment_status' =&gt; $post-&gt;comment_status,\n      'ping_status'    =&gt; $post-&gt;ping_status,\n      'post_author'    =&gt; $new_post_author,\n      'post_content'   =&gt; $post-&gt;post_content,\n      'post_excerpt'   =&gt; $post-&gt;post_excerpt,\n      'post_name'      =&gt; $post-&gt;post_name,\n      'post_parent'    =&gt; $post-&gt;post_parent,\n      'post_password'  =&gt; $post-&gt;post_password,\n      'post_status'    =&gt; 'draft',\n      'post_title'     =&gt; $post-&gt;post_title,\n      'post_type'      =&gt; $post-&gt;post_type,\n      'to_ping'        =&gt; $post-&gt;to_ping,\n      'menu_order'     =&gt; $post-&gt;menu_order\n    );\n \n    \/*\n     * insert the post by wp_insert_post() function\n     *\/\n    $new_post_id = wp_insert_post( $args );\n \n    \/*\n     * get all current post terms ad set them to the new post draft\n     *\/\n    $taxonomies = get_object_taxonomies($post-&gt;post_type); \/\/ returns array of taxonomy names for post type, ex array(\"category\", \"post_tag\");\n    foreach ($taxonomies as $taxonomy) {\n      $post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' =&gt; 'slugs'));\n      wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);\n    }\n \n    \/*\n     * duplicate all post meta just in two SQL queries\n     *\/\n    $post_meta_infos = $wpdb-&gt;get_results(\"SELECT meta_key, meta_value FROM $wpdb-&gt;postmeta WHERE post_id=$post_id\");\n    if (count($post_meta_infos)!=0) {\n      $sql_query = \"INSERT INTO $wpdb-&gt;postmeta (post_id, meta_key, meta_value) \";\n      foreach ($post_meta_infos as $meta_info) {\n        $meta_key = $meta_info-&gt;meta_key;\n        if( $meta_key == '_wp_old_slug' ) continue;\n        $meta_value = addslashes($meta_info-&gt;meta_value);\n        $sql_query_sel[]= \"SELECT $new_post_id, '$meta_key', '$meta_value'\";\n      }\n      $sql_query.= implode(\" UNION ALL \", $sql_query_sel);\n      $wpdb-&gt;query($sql_query);\n    }\n \n \n    \/*\n     * finally, redirect to the edit post screen for the new draft\n     *\/\n    wp_redirect( admin_url( 'post.php?action=edit&amp;post=' . $new_post_id ) );\n    exit;\n  } else {\n    wp_die('Post creation failed, could not find original post: ' . $post_id);\n  }\n}\nadd_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );\n \n\/*\n * Add the duplicate link to action list for post_row_actions\n *\/\nfunction rd_duplicate_post_link( $actions, $post ) {\n  if (current_user_can('edit_posts')) {\n    $actions['duplicate'] = '&lt;a href=\"' . wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&amp;post=' . $post-&gt;ID, basename(__FILE__), 'duplicate_nonce' ) . '\" title=\"Duplicate this item\" rel=\"permalink\"&gt;Duplicate&lt;\/a&gt;';\n  }\n  return $actions;\n}\n \nadd_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );\n<\/pre><pre class=\"wp-block-preformatted\">Credit for coming up with this handy code: <a href=\"https:\/\/rudrastyh.com\/\" target=\"_blank\" rel=\"noopener\">Misha Rudrastyh<\/a><\/pre><p>With the custom code provided, a <strong>Duplicate<\/strong> link will appear under each post in your WordPress dashboard. Simply click on this link to create an exact copy of the post as a new draft, saving you time and ensuring consistency in your content creation process.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-post-manual.png\"><img decoding=\"async\" width=\"1024\" height=\"388\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-post-manual.png\/public\" alt=\"The manually created Duplicate button in the Posts section is highlighted.\" class=\"wp-image-94182\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-post-manual.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-post-manual.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-post-manual.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/09\/duplicate-post-manual.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><p>To add the <strong>Duplicate <\/strong>feature to your <strong>Pages <\/strong>section, you only need to replace the last line of the code above with the following snippet:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);\n<\/pre><p>Similarly, clicking the link lets you duplicate a WordPress page as a new draft.<\/p><h2 class=\"wp-block-heading\" id=\"h-why-duplicate-a-post-or-page-in-wordpress\">Why Duplicate a Post or Page in WordPress<\/h2><p>There are several scenarios where duplicating a page or post in WordPress can be highly beneficial. Here are some of the most common reasons to replicate WordPress content:<\/p><ul class=\"wp-block-list\">\n<li><strong>A\/B testing.<\/strong> Duplicating an existing page allows you to quickly create a variation with subtle changes, such as adjusting headlines, images, or calls to action, without the need to build a new page from the ground up. This makes testing different versions of your content easier and more efficient.<\/li>\n\n\n\n<li><strong>Streamlining the design process.<\/strong> When building a new site, duplicating saves you from repetitive page recreation. Using tools like the Yoast Duplicate Post plugin further simplifies the process.<\/li>\n\n\n\n<li><strong>Optimizing page layout consistency.<\/strong> Duplicating an existing page ensures that the formatting, style, and layout remain cohesive. It&rsquo;s particularly helpful when working with a custom page template, eliminating design disparities.<\/li>\n\n\n\n<li><strong>Building a staging environment.<\/strong> While duplicating posts or pages isn&rsquo;t a substitute for a <a href=\"\/tutorials\/wordpress-staging-environment\">full staging site<\/a>, it can serve as a useful alternative for experimenting with content changes or design tweaks. This approach lets you test updates without affecting your live site.<\/li>\n\n\n\n<li><strong>Creating multilingual content.<\/strong> If your site offers multilingual content, cloning pages provide a starting point for translation. You can retain the original design and structure while adapting the text to different languages.<\/li>\n<\/ul><p>While duplicating a page or post can be useful, having multiple identical pages on your site isn&rsquo;t a good practice for <a href=\"\/tutorials\/wordpress-seo-tips\">WordPress SEO<\/a>. When multiple URLs lead to the same content, search engines will choose the first one published as the canonical version and crawl the copies less often.<\/p><p>Consolidate duplicate URLs by assigning canonical tags to pages you want search engines to prioritize. Luckily, most <a href=\"\/tutorials\/best-seo-plugins-wordpress\">SEO plugins<\/a> offer features to set up canonical URLs.<\/p><p>Users whose websites run on Hostinger&rsquo;s <a href=\"\/wordpress-hosting\">WordPress Business plan<\/a> or higher can leverage the built-in staging tool. You can duplicate posts and pages for A\/B testing and transfer the ones you want to keep to the live site, saving you time from consolidating duplicate content.<\/p><figure class=\"wp-block-image size-large\"><a class=\"hgr-tutorials-cta hgr-tutorials-cta-wordpress-hosting\" href=\"\/wordpress-hosting\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"2048\" height=\"600\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2024\/06\/New-WP_in-text-banner.png\/public\" alt=\"\" class=\"wp-image-111781\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2024\/06\/New-WP_in-text-banner.png\/w=2048,fit=scale-down 2048w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2024\/06\/New-WP_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2024\/06\/New-WP_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2024\/06\/New-WP_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2024\/06\/New-WP_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2024\/06\/New-WP_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 2048px) 100vw, 2048px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2><p>Now that you know how to duplicate pages in WordPress using both plugins and manual methods, you can choose the approach that best fits your needs. Whether you&rsquo;re duplicating WordPress content for A\/B testing or streamlining your content creation process, these methods will help you work more efficiently.<\/p><ul class=\"wp-block-list\">\n<li><strong>Using a WordPress duplicate post plugin.<\/strong> This method is beginner-friendly and suitable for replicating a large number of pages.<\/li>\n\n\n\n<li><strong>Adding custom code to the functions.php file.<\/strong> Opt for this method if you can&rsquo;t access your admin dashboard or want more freedom in customizing the duplicate post link.<\/li>\n<\/ul><p>We hope this guide has shown you how duplicating WordPress pages can save you time, improve your workflow, and streamline content management. Whether you&rsquo;re using a plugin or adding custom code, these techniques can enhance your site&rsquo;s efficiency and consistency. <\/p><p>If you still have questions, check out the FAQ section or post them in the comments section below.<\/p><p>\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Learn What Else You Can Do With WordPress<\/h4>\n                    <p><br>\n<a href=\"\/tutorials\/how-to-install-wordpress\">How to Install WordPress<\/a><br>\n<a href=\"\/tutorials\/launch-a-wordpress-site\">How to Launch a WordPress Site<\/a><br>\n<a href=\"\/tutorials\/what-is-a-permalink\">What Is a Permalink in WordPress<\/a><br>\n<a href=\"\/tutorials\/how-to-create-a-contact-form-on-wordpress\">How to Create a Contact Form in WordPress<\/a><br>\n<a href=\"\/tutorials\/how-to-edit-footer-in-wordpress\">How to Edit Footer in WordPress<\/a><br>\n<a href=\"\/tutorials\/how-to-update-wordpress\">How to Update WordPress <\/a><br>\n<a href=\"\/tutorials\/change-wordpress-domain-name\">How to Change WordPress Domain Name<\/a><br>\n<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-duplicate-pages-in-wordpress-faq\">How to Duplicate Pages in WordPress FAQ<\/h2><p>This section covers the most frequently asked questions about how to duplicate a page in WordPress.<\/p><div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1695123057721\"><h3 class=\"schema-faq-question\">Can I Duplicate a Post or Page in WordPress?<\/h3> <p class=\"schema-faq-answer\">Absolutely. You can manually copy page content, use a WordPress duplicate page plugin, or add custom code to the site&rsquo;s <strong>functions.php<\/strong> file. Choose the method that suits your needs and technical expertise.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1695123071903\"><h3 class=\"schema-faq-question\">Why Should I Duplicate a Page or Post in WordPress?<\/h3> <p class=\"schema-faq-answer\">Duplicating a WordPress page or post makes conducting A\/B testing easier, streamlines the website-building process, and helps maintain consistent page layouts across the entire site. Duplicated content also serves as a starting point for translation and makeshift staging alternatives.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1695123083941\"><h3 class=\"schema-faq-question\">Does Duplicating a Page or Post in WordPress Create SEO Issues?<\/h3> <p class=\"schema-faq-answer\">Replicating pages or posts can lead to SEO issues due to multiple identical URLs. Search engines favor the original page as canonical and crawl copies less. Set canonical tags using SEO plugins to prioritize specific pages. Alternatively, create a staging site for A\/B tests and content transfers to avoid this issue altogether.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1695123096507\"><h3 class=\"schema-faq-question\">What Is the Difference Between Clone and Duplicate in WordPress?<\/h3> <p class=\"schema-faq-answer\">In WordPress, a clone contains the exact copy of content, while a duplicate is a new entry with data taken from an existing page.<\/p> <\/div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>When using WordPress, you may need to duplicate a post or page for various reasons. Whether for quick content updates [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/tutorials\/how-to-duplicate-wordpress-page-or-post\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":2,"featured_media":77051,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"How to Duplicate Pages in WordPress: 2 Quick Methods (%currentyear%)","rank_math_description":"Discover how to duplicate pages in WordPress using a WordPress plugin and by adding code to the functions.php file.","rank_math_focus_keyword":"how to duplicate pages in wordpress","footnotes":""},"categories":[22642,22637],"tags":[],"class_list":["post-3514","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-content-creation","category-wordpress"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-duplicate-wordpress-page-or-post","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/duplicar-pagina-wordpress","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/dupliquer-article-page-wordpress","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/duplicar-pagina-wordpress","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/duplicate-wordpress-post","default":0},{"locale":"it-IT","link":"https:\/\/www.hostinger.com\/it\/tutorial\/duplicare-pagina-wordpress","default":0},{"locale":"nl-NL","link":"https:\/\/www.hostinger.com\/nl\/tutorials\/een-wordpress-pagina-dupliceren","default":0},{"locale":"ja-JP","link":"https:\/\/www.hostinger.com\/jp\/tutorials\/how-to-duplicate-pages-in-wordpress","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-duplicate-wordpress-page-or-post","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-duplicate-wordpress-page-or-post","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-duplicate-wordpress-page-or-post","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/duplicar-pagina-wordpress\/","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/duplicar-pagina-wordpress\/","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/duplicar-pagina-wordpress","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/duplicar-pagina-wordpress\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-duplicate-wordpress-page-or-post","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-duplicate-wordpress-page-or-post","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-duplicate-wordpress-page-or-post","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-duplicate-wordpress-page-or-post","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts\/3514","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/comments?post=3514"}],"version-history":[{"count":52,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts\/3514\/revisions"}],"predecessor-version":[{"id":138347,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/posts\/3514\/revisions\/138347"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/media\/77051"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/media?parent=3514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/categories?post=3514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/tutorials\/wp-json\/wp\/v2\/tags?post=3514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}