← All migration paths

Migrate away from Elementor

Elementor stores its pages as _elementor_data JSON. That single fact decides what a migration can carry across and what it cannot, so it is where this page starts.

What Elementor stores

Elementor stores a JSON widget tree in the _elementor_data post meta key, and post_content holds only rendered output. That makes it the most machine-readable source on this list: the tree can be walked directly instead of parsed out of a string.

The part that actually costs time

The tree is readable, but widget settings are deeply nested and version-dependent, and third-party widget packs store their own shapes inside the same tree. Anything from a plugin that is not installed on the destination has no equivalent and has to be decided about rather than converted.

Carries across

  • The full section, column and widget hierarchy
  • Text, images and links
  • Most spacing and typography settings
  • Responsive breakpoint values

Needs a decision, or a rebuild

  • Third-party widget packs with no counterpart on the destination
  • Global styles and theme-style defaults
  • Popups and Theme Builder templates, which are separate post types

Where you can go from Elementor

Coming the other way, into Elementor

How the migration actually runs

The agent works on a duplicate of the page, not the live one. The original keeps serving while the converted copy waits for review, and every write captures a before-state so a bad conversion is one call to undo. Nothing publishes without a human approving it.