How to Duplicate a WordPress Page

HomeBlogHow to Duplicate a WordPress Page
How to Duplicate a WordPress Page

Duplicating a page in WordPress is a common task when you want to reuse a layout, create a template, or make a variation without starting from scratch. This guide covers every method - manual, plugin-based, and code-based.

 

Can You Duplicate Pages in WordPress by Default?

No, WordPress core does not include a built-in “duplicate page” button or feature.

Unlike some other CMS platforms, WordPress expects you to manually copy content or use a plugin to duplicate pages, posts, or custom post types.

This is one of the most requested features, but the core team has left it to plugins and theme builders to implement.

However, many page builders (like Elementor, Divi, Beaver Builder) and some themes include their own duplicate functionality. Additionally, you can add a simple code snippet to enable duplication without a plugin.

 

Why Duplicate a WordPress Page?

  • Reuse a complex layout for a new page.

  • Create a template for landing pages, service pages, or product pages.

  • A/B testing variations of a design.

  • Backup a page before making significant edits.

  • Speed up content creation by copying structure, headings, and formatting.

 

Manual Copy and Paste Method (No Plugin)

This method is free, requires no additional tools, and works on any WordPress installation. It works best for simple pages with mostly text and basic media.

 

Using the Block Editor (Gutenberg)

  1. Open the page you want to duplicate in the WordPress admin: Pages → All Pages → hover over the page title → click Edit.

  2. Select all blocks:

    • Click anywhere inside the editor.

    • Press Ctrl + A (Windows) or Cmd + A (Mac) to select all blocks.

    • Alternatively, click the three-dot menu (top right) → Copy all content.

  3. Copy the blocks: Press Ctrl + C / Cmd + C, or right-click and choose Copy.

  4. Create a new page: Go to Pages → Add New.

  5. Paste the blocks: Click inside the empty editor and press Ctrl + V / Cmd + V. The blocks, formatting, and content will be pasted.

  6. Adjust the title and permalink: The title will be “Auto Draft” or empty; add a new title.

  7. The permalink will auto-generate from the title, but you can edit it.

  8. Copy page attributes manually (featured image, template, parent, etc.)

Pros: No plugin, quick, works with all block types (including reusable blocks and patterns).
Cons: Does not copy page settings like featured image, custom fields, SEO metadata (unless using a plugin), or page template automatically.

 

Using the Classic Editor

  1. Open the page in Classic Editor.

  2. Switch to Text tab (HTML view) to copy raw HTML, or stay in Visual and select all with Ctrl + A.

  3. Copy the content.

  4. Create a new page and paste into the editor (Text or Visual).

  5. Manually re-add featured image, page template, and other metadata.

If you are using the Classic Editor plugin and the content includes shortcodes, copying from the Text tab preserves them.

 

Copying Page Attributes and Metadata

When manually duplicating, you must replicate these manually:

  • Featured Image: Save the original image, then upload or select it again in the new page.

  • Page Template: In the Page Attributes panel, select the same template.

  • Parent Page: If applicable, set the same parent.

  • Order: Copy the order number.

  • Custom Fields: If you use Advanced Custom Fields or similar, copy each field value manually.

  • SEO Settings: If using Yoast/Rank Math, copy the meta title and description (or use their bulk editor).

  • Categories/Tags: For posts, re-assign the same terms.

 

Method 2: Using a Dedicated Duplicate Page Plugin

Plugins are the easiest and most reliable way to duplicate a page with all its settings, metadata, and content. They add a “Duplicate” link to the page list.

 Recommended Plugins

Plugin Name

Free/Paid

Features

Duplicate Page

Free / Pro

Duplicate pages, posts, custom post types; copy as draft or published; choose prefix/suffix; Pro adds bulk duplicate, permissions.

Duplicate Post (by Yoast)

Free

Clone posts/pages, copy as draft, copy to new draft, rewrite & republish, meta box controls.

Post Duplicator

Free

Simple duplication with custom status and date options.

WP Duplicate Page

Free

Lightweight, duplicates with one click.

 

Step-by-Step Page Duplication with Plugin

We'll use the popular Duplicate Page plugin as an example.

Step 1: Install and Activate

  1. Go to Plugins → Add New.

  2. Search for “Duplicate Page”.

  3. Click Install Now, then Activate.

Step 2: Configure Settings (Optional)

  1. Go to Settings → Duplicate Page.

  2. Choose:

    • Duplicate Post Status: Draft, Publish, Private, Pending, or Same as original.

    • Duplicate Post Suffix: e.g., “Copy” (the new page title will be “Original Title Copy”).

    • Duplicate Post Link: Where to show the duplicate link (Post list, Edit screen, Admin bar).

    • User Roles: Who can duplicate (default: administrators).

  3. Save settings.

Step 3: Duplicate a Page

  1. Go to Pages → All Pages.

  2. Hover over the page title. You'll see a new Duplicate link.

  3. Click Duplicate. A new page is created instantly.

    • If you chose “Draft”, the duplicate is saved as a draft; if “Same as original”, it may be published.

  4. Edit the new page: change title, content, featured image, etc. The duplicate includes all metadata, custom fields, SEO data, and page attributes automatically.

Pros: One-click, copies everything, configurable, no coding.
Cons: Requires a plugin (minor performance overhead, but negligible for well-coded plugins).

 

Method 3: Using a Page Builder’s Built-in Duplicate Feature

If you use a page builder plugin, it often includes duplication. This is convenient because the builder's own templates and modules are preserved perfectly.

 

Elementor

  1. Go to Pages → All Pages.

  2. Hover over the page and click Edit with Elementor.

  3. In the Elementor editor, click the hamburger menu (top left).

  4. Select Save as Template to save the entire page as a template.

  5. Then create a new page, edit with Elementor, click Add Template (folder icon), and insert the saved template.

    • Alternatively, use a third-party duplicate plugin to duplicate the whole page with Elementor data.

Elementor Pro also has a Duplicate button in the page list if the theme supports it? Not exactly; Elementor doesn't add duplicate to page list by default, but you can use the template method or a plugin like Duplicate Page that works with Elementor.

 

Divi Builder

  1. Go to Pages → All Pages.

  2. Hover over a page and click Edit with Divi.

  3. Inside the Divi Builder, click the Portability icon (three dots) at the top.

  4. Choose Export to download the layout, or Save to Divi Library.

  5. Create a new page, edit with Divi, then Import or load from library.

Divi also has a “Clone” feature? In the Divi Theme Builder, you can duplicate templates. For individual pages, you can use the portability method or a plugin.

 

Beaver Builder

  1. Open the page in Beaver Builder.

  2. Click the Tools menu (top right).

  3. Choose Save as Template.

  4. Create new page, launch Beaver Builder, and insert the template.

Many page builder users prefer using a general duplicate plugin because it copies the entire page record, including builder metadata, without needing to save/load templates.

Features like page duplication may be paid and not free in builders

 

Method 4: Duplicating via Code (functions.php or Custom Plugin)

If you prefer not to install a plugin and want complete control, you can add a custom function to your theme’s functions.php file or a custom plugin. This method adds a “Duplicate” link next to the page title in the admin list.

 

Adding a Duplicate Link in Admin

This code snippet duplicates a page (or any post type) and includes all meta data, taxonomies, and featured image.

Complete Code Example

Add this to your child theme’s functions.php file at the end or a site-specific plugin:

php

/**

 * Add duplicate link to page/post row actions.

 */

function rd_duplicate_post_link( $actions, $post ) {

    if ( current_user_can('edit_posts') && in_array( $post->post_type, array('page', 'post') ) ) {

        $actions['duplicate'] = '<a href="' . wp_nonce_url( admin_url('admin.php?action=rd_duplicate_post&post=' . $post->ID), 'rd-duplicate-post_' . $post->ID ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';

    }

    return $actions;

}

add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );

add_filter( 'page_row_actions', 'rd_duplicate_post_link', 10, 2 );

 

/**

 * Handle duplicate action.

 */

function rd_duplicate_post() {

    if ( ! isset( $_GET['post'] ) || ! isset( $_GET['action'] ) || $_GET['action'] !== 'rd_duplicate_post' ) {

        return;

    }

    if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( $_GET['_wpnonce'], 'rd-duplicate-post_' . $_GET['post'] ) ) {

        wp_die( 'Security check failed' );

    }

    $post_id = absint( $_GET['post'] );

    $post = get_post( $post_id );

    if ( ! $post ) {

        wp_die( 'Post not found' );

    }

    // Create duplicate as draft

    $new_post_id = wp_insert_post( array(

        'post_title'   => $post->post_title . ' (Copy)',

        'post_content' => $post->post_content,

        'post_status'  => 'draft',

        'post_type'    => $post->post_type,

        'post_excerpt' => $post->post_excerpt,

        'post_name'    => '', // Let WordPress generate slug

        'post_parent'  => $post->post_parent,

        'menu_order'   => $post->menu_order,

    ) );

    if ( is_wp_error( $new_post_id ) ) {

        wp_die( 'Error creating duplicate' );

    }

    // Copy taxonomies

    $taxonomies = get_object_taxonomies( $post->post_type );

    foreach ( $taxonomies as $taxonomy ) {

        $terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'ids' ) );

        wp_set_object_terms( $new_post_id, $terms, $taxonomy );

    }

    // Copy meta data

    $meta_data = get_post_meta( $post_id );

    foreach ( $meta_data as $key => $values ) {

        foreach ( $values as $value ) {

            update_post_meta( $new_post_id, $key, maybe_unserialize( $value ) );

        }

    }

    // Copy featured image

    $thumbnail_id = get_post_thumbnail_id( $post_id );

    if ( $thumbnail_id ) {

        set_post_thumbnail( $new_post_id, $thumbnail_id );

    }

    // Redirect to edit screen

    wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );

    exit;

}

add_action( 'admin_action_rd_duplicate_post', 'rd_duplicate_post' );

How it works:

  • Adds a “Duplicate” link to the page/post list row actions.

  • When clicked, it creates a new draft with the same content, taxonomies, meta data, and featured image.

  • Redirects to the edit screen of the new draft.

Pros: No plugin, full control, copies all metadata.
Cons: Requires adding code; may need maintenance with WordPress updates; not as user-friendly as plugin.

 

Duplicating Pages with Custom Post Types and Fields

If you duplicate pages that use Advanced Custom Fields (ACF), Meta Box, or Toolset, most duplication methods (plugins and code) will copy the custom field values because they are stored in the wp_postmeta table.

The plugin method handles this automatically. The manual copy/paste method will not copy custom fields.

For WooCommerce products or other custom post types, use a plugin like Duplicate Page that supports custom post types, or the code snippet above with the post type included.

 

Tips for Efficient Page Duplication

  • Rename the duplicated page immediately to avoid confusion.

  • Check the permalink and update if necessary.

  • Review all links inside the page; they may still point to the original page or media.

  • If using SEO plugins, update meta title/description to avoid duplicate content issues.

  • For large sites, consider bulk duplication plugins (e.g., Duplicate Page Pro) that allow duplicating multiple pages at once.

  • Use a consistent naming convention for duplicates, e.g., “Page Name – Variation B”.

  • Always duplicate to draft if you plan to make significant changes; publish only when ready.

 

Troubleshooting Common Issues

Duplicate link not showing
Check plugin settings; ensure your user role has permission; clear cache; check if the plugin supports your post type.

 

Duplicated page is blank or missing content
If using a page builder, ensure you used a method that copies builder metadata (plugin or builder's own duplicate). Manual copy/paste of builder content may not work.

 

Permalink conflict
WordPress usually appends -2 to the slug, but if you manually set a duplicate slug, edit it to be unique.

 

Custom fields not copied
Use a plugin that copies metadata, or the code snippet; manual copy won't include custom fields.

 

Featured image missing
In manual duplication, you must set featured image manually. Plugin/code methods copy it.

 

Conclusion

Remember, WordPress does not have a default duplicate feature, so you must use one of these methods. The plugin approach is most recommended for most users because it saves time and ensures nothing is missed.

Next Post
-