Title: Migrator for Elementor
Author: houssame17
Published: <strong>November 13, 2026</strong>
Last modified: November 13, 2026

---

Search plugins

![](https://ps.w.org/migrator-for-elementor/assets/banner-772x250.png?rev=3799981)

![](https://ps.w.org/migrator-for-elementor/assets/icon-256x256.png?rev=3799981)

# Migrator for Elementor

 By [houssame17](https://profiles.wordpress.org/houssame17/)

[Download](https://downloads.wordpress.org/plugin/migrator-for-elementor.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/migrator-for-elementor/#description)
 * [Reviews](https://wordpress.org/plugins/migrator-for-elementor/#reviews)
 *  [Installation](https://wordpress.org/plugins/migrator-for-elementor/#installation)
 * [Development](https://wordpress.org/plugins/migrator-for-elementor/#developers)

 [Support](https://wordpress.org/support/plugin/migrator-for-elementor/)

## Description

Migrator for Elementor copies hand-picked Elementor content from one of your WordPress
sites (for
 example a staging site) to another one of your sites (for example production).
The same plugin is installed on both sites.

The destination PULLS. The source only makes pages available; the destination’s 
administrator
 lists them on the destination, approves them, and only then does 
the destination read and import them. Nothing is pushed to the destination and nothing
is stored there before that approval.

Each page is imported with everything it needs: its media, the Elementor templates
it uses (nested
 templates included), the global colors and fonts it relies on, 
its parent page, and the IDs it references are rewritten to the matching objects
of the destination.

#### How it works

 1. On the SOURCE site open **Migrator for Elementor**, choose **Source site** and 
    click
     **Generate connection key**.
 2. On the DESTINATION site open **Migrator for Elementor**, choose **Destination site**,
    enter the
     source URL and the key on **Source & options**, **Save**, then **Test
    Connection**.
 3. On the source **Pages** tab (or **Templates** tab) select items and click **Send
    to destination**
     (or **Send** on one row). They are only made available: the **
    Sent to destination** tab lists them, and you can withdraw them.
 4. On the destination, the administrator opens **Incoming changes**. The list is read
    live from the
     source. They select items and click **Approve and import selected**(
    or **Reject selected**).
 5. The destination then imports the approved items (and the templates, media, Site
    Settings and
     parent pages they need), with overall and per-item progress, Pause,
    Resume, Cancel, Retry and Retry Media. Progress is saved after every step. The 
    source’s **Sent to destination** tab shows each item as imported, failed or rejected.
 6. Optional: tick **Auto Sync** on a page or template on the source. Saving it in 
    Elementor makes it
     available again; it is still imported only when the destination’s
    administrator approves it.

#### Approval and security

 * The source never sends anything on its own and cannot change the destination.
   It answers signed,
    read-only requests from the destination, and only for the
   items its administrator made available (plus the templates, media, Site Settings
   and parent pages they use).
 * The destination stores nothing from the source before its administrator approves.
   The import
    then runs in that administrator’s own session (wp-admin, nonce, manage_options).
 * No request is ever run as a user of the other site, and the connection key cannot
   be used to
    log in. Requests are signed with HMAC-SHA256 and a single-use nonce,
   valid 5 minutes, and the key is bound to one destination.

#### What is imported

 * Page / post fields: title, slug, content, excerpt, status, password, parent page(
   an Elementor
    parent missing on the destination is imported first), author (matched
   by login / e-mail), dates, menu order, page template, featured image, terms (
   missing terms are created).
 * All Elementor data and meta. Elementor meta removed on the source is removed 
   on the destination.
 * Theme / SEO / ACF post meta, per the source’s options: Astra, OceanWP, GeneratePress,
   Kadence,
    Yoast, Rank Math, ACF values, plus custom keys.
 * References by ID, rewritten to the destination objects: templates (shortcode,
   Template / Loop
    widgets, global widgets, popups), posts and products (query 
   controls, dynamic tags, ?page_id= links, Contact Form 7 / WPForms / WooCommerce
   shortcodes), terms, users, menus, media (galleries, Elementor 4 image controls,
   ACF image fields), Theme Builder and popup display conditions. A referenced object
   missing on the destination is reported and the reference is cleared, never left
   pointing to another object.
 * Media: absolute, relative and CDN upload URLs. Files are deduplicated (also files
   uploaded by hand
    on both sites); a file replaced on the source is imported again;
   large files are read in parts.
 * Elementor templates of every type, the Site Settings (global colors and fonts
   are added
    automatically when a page needs them), Elementor Pro custom fonts 
   and custom code, and every post type edited with Elementor.

Before an item is imported, the destination checks: Elementor version, Flexbox Containers/
Nested
 Elements features, widgets (Elementor Pro and add-ons), page template, ACF
fields, shortcodes. Blocking problems stop the item (option), the others are listed
as warnings.

Two import modes (destination, Source & options):

 * **Best effort** (default): every approved item is imported as completely as possible.
   The page on
    the destination is overwritten (also one with the same slug that
   this plugin did not create), files the destination refuses or that cannot be 
   read are skipped, a template that fails does not block the page, and every problem
   is listed as a warning.
 * **Restricted**: choose the situations that stop an item (nothing is written):
   same slug not created
    by the plugin, local copy edited, refused file type, media
   not imported, failed template / Site Settings / parent page, missing Elementor
   widgets / features / version.

Deletions are never offered automatically: on the source, a page in the trash can
be offered as a
 “move to trash” request, which the destination’s administrator 
approves like any other change. Pages moved to a new path get a 301 redirect on 
the destination.

#### Trademarks

Elementor is a trademark of Elementor Ltd. This plugin is an independent project;
it is not
 affiliated with, endorsed by or sponsored by Elementor Ltd.

### External services

This plugin does not use any third-party service, does not track users and sends
no data to the
 plugin author.

It only connects **two WordPress sites that you own and configure yourself**, both
running this
 plugin: the destination reads from the “Source URL” entered on its
Source & options tab, with the connection key generated on that source.

 * What is transferred, and when: only when the destination’s administrator opens
   Incoming changes
    (the list of items made available) and approves items (their
   content and settings, the media files they use, the post meta chosen in the source’s
   options), plus the result reported back to the source (imported / failed / rejected,
   the destination’s URLs of the imported page).
 * How: signed HTTPS requests from the destination to the source (HMAC-SHA256 with
   the connection
    key, single-use nonce). The connection key itself is never transmitted.
 * Who receives it: only your own destination site. Its terms and privacy policy
   are your own.

Nothing is transferred until both sites are configured and the destination’s administrator
acts.

### Privacy

On the source site the plugin stores the connection key (and the destination bound
to it), its
 options, the list of items made available with the destination’s answers,
and the last import date of each page. On the destination site it stores the source
URL and connection key, its options, the progress of an approved import and, on 
each imported post or media, the identifier of its source (used to update it instead
of duplicating it). It does not collect personal data. Page content may contain 
personal data you entered yourself; it is copied to your own destination site only.

### Limitations

 * Content without Elementor (WooCommerce products, posts not built with Elementor,
   ACF field groups,
    Gravity Forms forms) is not imported: references to it are
   matched by slug, so it must exist on the destination.
 * Elementor Pro custom icon sets are not imported.
 * The source must be reachable from the destination (a staging site behind a login
   wall or HTTP
    authentication must let the destination’s requests through).
 * An approved import continues in the background through WP-Cron when the screen
   is closed.

## Installation

 1. Install and activate Elementor and Migrator for Elementor on both sites (Plugins
    > Add New, or upload the ZIP).
 2. Follow the steps of “How it works” above.

Requirements: Elementor active on both sites (and the same Pro widgets / add-ons
if the pages use
 them), the source reachable over HTTP(S) from the destination,
both servers’ clocks within 5 minutes.

## FAQ

### Does it send my content to an external service?

No. Content only goes from your source site to your destination site, read by the
destination.

### Can the source site change my destination site?

No. The source cannot send anything: the destination reads from it, and only after
its own
 administrator approved the items. The connection key cannot be used to 
log in or to act as a user.

### Will it overwrite an existing page on the destination?

Only if the destination’s administrator approves it. In the default “Best effort”
mode the page
 imported earlier by the plugin, or else the page with the same slug,
is then updated. Choose “Restricted” and tick “a page or template with the same 
slug exists…” to stop instead of overwriting a page the plugin did not create.

### Why is an SVG or font file skipped?

WordPress refuses these file types by default. Enable “Accept SVG, JSON and font
files” on the
 destination (Source & options tab); SVG files are then sanitized 
with the Elementor sanitizer.

### My source is on localhost or a private network

Requests use wp_safe_remote_post(), which refuses private addresses. On the destination,
allow them with:
 add_filter( ‘migfe_allow_unsafe_urls’, ‘__return_true’ );

### What happens to my data if I delete the plugin?

Settings, progress and import dates are removed. The source identifier stored on
imported posts
 and media is kept, so a later reinstallation updates the same pages
instead of duplicating them.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Migrator for Elementor” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ houssame17 ](https://profiles.wordpress.org/houssame17/)

[Translate “Migrator for Elementor” into your language.](https://translate.wordpress.org/projects/wp-plugins/migrator-for-elementor)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/migrator-for-elementor/),
check out the [SVN repository](https://plugins.svn.wordpress.org/migrator-for-elementor/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/migrator-for-elementor/)
by [RSS](https://plugins.trac.wordpress.org/log/migrator-for-elementor/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * First public release.
 * Pull model: the source makes pages available; the destination’s administrator
   lists them, approves
    or rejects them, and only then does the destination read
   and import them. Nothing is pushed to the destination or stored there before 
   approval.
 * Signed, read-only source endpoints (HMAC-SHA256, single-use nonce, key bound 
   to one destination,
    key never transmitted); no request runs as a user of the
   other site.
 * Site role (source or destination) chosen once; each role shows only its own tabs
   and settings.
 * Source: Pages tab (filters, Last Sync date and status, selection, Send to destination),
   Templates
    tab (Elementor templates, Site Settings, Elementor Pro custom fonts
   and custom code), Sent to destination tab (status of each item, withdraw, trash
   requests), Auto Sync per page or template.
 * Destination: Incoming changes tab (live list, approve / reject selected, resumable
   import with
    Pause, Resume, Cancel, Retry and Retry Media), import options.
 * Automatic dependencies: templates (recursive), Site Settings global colors / 
   fonts, parent pages.
 * Generic remapping of references by ID: templates, posts, products, terms, users,
   menus, media,
    dynamic tags, query controls, shortcodes, Theme Builder and popup
   display conditions.
 * Page fields, parent page, password, author, terms, featured image, and theme /
   SEO / ACF post meta.
 * Media: absolute, relative and CDN URLs, deduplication by hash, replaced files
   imported again,
    large files read in parts, optional SVG / JSON / font support
   with SVG sanitization.
 * Requirement checks: Elementor version, Flexbox Containers / Nested Elements, 
   widgets, page
    template, ACF fields, shortcodes. Two modes: “Best effort” (default)
   and “Restricted”.
 * 301 redirects for pages moved to a new path.
 * Uninstall removes settings and working data.

## Meta

 *  Version **1.0.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [elementor](https://wordpress.org/plugins/tags/elementor/)[migration](https://wordpress.org/plugins/tags/migration/)
   [staging](https://wordpress.org/plugins/tags/staging/)[sync](https://wordpress.org/plugins/tags/sync/)
   [templates](https://wordpress.org/plugins/tags/templates/)
 *  [Advanced View](https://wordpress.org/plugins/migrator-for-elementor/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/migrator-for-elementor/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/migrator-for-elementor/reviews/)

## Contributors

 *   [ houssame17 ](https://profiles.wordpress.org/houssame17/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/migrator-for-elementor/)