Migration

Migrating from Elementor to native Gutenberg & ACF blocks

Leaving Elementor for native Gutenberg and ACF blocks? Why teams switch, what breaks in a naive migration, and how to move Elementor content cleanly into your…

8 min readUpdated 22 June 2026

verifiedReviewed by Tommy Smith,Content Director

Elementor content being migrated into native Gutenberg ACF blocks
boltIn short

To leave Elementor for ACF blocks: register your block library, crawl the old site, classify each Elementor section into the matching block, review low-confidence mappings, then import as drafts — copy-paste grabs wrapper markup, not field values.

Who this is for

  • Agencies: Elementor-heavy marketing sites moving to a native block theme.
  • Freelancers: Solo rebuilds where Elementor Pro loops and globals add scope.
  • Developers: Crawling rendered output instead of parsing _elementor_data JSON.

Steps at a glance

  1. Register ACF blocks covering Elementor widget patterns you see repeatedly.
  2. Crawl rendered pages — not the Elementor editor JSON.
  3. Migrate globals, headers, and CPT templates as separate tasks.
  4. Deactivate Elementor only after redirects and QA pass.

Elementor gets you live fast, but the trade-off shows up later: shortcode-style markup bloat, slower Core Web Vitals, lock-in, and licence costs that scale with every site. More agencies are moving clients onto native Gutenberg blocks backed by ACF — leaner output, full control of markup, and no dependency on a third-party builder. This guide covers why teams leave, what breaks in naive migrations, and the workflow that actually works.

Why teams leave Elementor

  • arrow_rightPerformance: native blocks output clean HTML and far less inline CSS/JS.
  • arrow_rightOwnership: ACF blocks are your code, your markup — no builder runtime to ship.
  • arrow_rightEditor consistency: content editors work in one editor (Gutenberg), not two.
  • arrow_rightCost: no per-site builder licences across a portfolio of client sites.
  • arrow_rightMaintenance: fewer plugin conflicts and update-related breakages on client sites.

Why the naive approach fails

Copying the rendered HTML out of Elementor and pasting it into a Classic block keeps all the wrapper divs and inline styles you were trying to escape. You end up with un-editable markup that is not a real block at all. The goal is to map each Elementor section to a semantic ACF block — a hero becomes your hero block, a testimonials widget becomes your testimonial block — with the content placed in the correct fields.

warningElementor stores layout as serialized data in post meta, not as clean HTML. Migrate from the rendered front-end page, not the raw _elementor_data — that is what your visitors and search engines actually see.

How Elementor stores content

StorageLocationMigration note
Layout JSONpost meta (_elementor_data)Do not parse for content — crawl rendered page
CSSInline and post metaDiscarded — new theme styles blocks
Global widgetsElementor libraryInventory separately
Theme BuilderTemplates for header/footer/archiveRebuild as theme parts
Kit settingsSite settings, colours, fontsRebuild in theme — do not migrate

Elementor widgets to ACF blocks

Elementor widgetACF block targetNotes
Heading + Text EditorHero or text blockPreserve heading level
Image / GalleryHero or gallery blockSideload attachments
Icon Box / Icon ListFeatures repeaterOne row per item
Testimonial CarouselTestimonial repeaterAvatar, quote, name
Accordion / ToggleFAQ blockOne row per item
FormRebuild in Gravity/WPFormsNew handler required
Posts / PortfolioArchive templateDynamic query
SlidesHero slider repeaterOne row per slide

A clean migration path

  1. 1Register your target ACF block library on the new build and export the field groups as JSON.
  2. 2Crawl the live Elementor pages so the rendered content (post-builder) is what gets classified.
  3. 3Let each section map to its matching ACF block; anything ambiguous falls back to an editable text block, so you never lose content.
  4. 4Review confidence scores, fix the few that need it, and import as drafts.
  5. 5Rebuild Theme Builder templates on the new theme.
  6. 6QA, load redirects, preserve SEO, deactivate Elementor on staging.

Pre-migration checklist

  1. 1Full site backup before any changes.
  2. 2Elementor Pro features inventory: Theme Builder, popups, forms, WooCommerce widgets.
  3. 3URL map for slug changes.
  4. 4ACF block library registered and tested on staging.
  5. 5Client expectation set: design QA required, not pixel-perfect match.
  6. 6Lighthouse baseline on key pages for before/after comparison.

Elementor Pro considerations

Elementor Pro adds Theme Builder, popups, forms, and dynamic tags. None of these migrate via page-body import alone. Theme Builder templates need rebuilding. Popups need inventory and recreation. Forms need new handlers. Dynamic tags need converting to ACF block template logic or native WordPress queries.

Common mistakes

  • arrow_rightUsing Elementor's export/import tool — moves Elementor data, not ACF blocks.
  • arrow_rightPasting HTML into Classic blocks — preserves builder bloat.
  • arrow_rightParsing _elementor_data JSON manually — fragile and misses rendered content.
  • arrow_rightDeactivating Elementor before crawl — pages render empty.
  • arrow_rightIgnoring Elementor popups — they are not in page crawls.
  • arrow_rightNo fallback block — ambiguous sections dropped instead of preserved.
  • arrow_rightSkipping performance benchmark — client does not see the value of the rebuild.

Performance and SEO

Elementor is a common cause of poor Core Web Vitals. Rebuilding on ACF blocks typically improves LCP and TBT significantly on the same hosting. Document the before/after. Preserve SEO with redirects, metadata, and heading structure — see page builder performance problems and rebuild without losing SEO. Integrate Yoast on the new build.

The result is a site built entirely from your own blocks — no Elementor plugin required to render it, and content your editors can actually maintain. AIRA automates the crawl, classification, and bundle generation. Same approach as Divi and WPBakery migrations.

Scaling Elementor migration across a portfolio

If you manage multiple Elementor clients, standardise the destination block library first. The same hero block, card grid, and testimonial repeater work whether the source is Elementor, Divi, or WPBakery. Register the library once, export JSON once, and reuse the spec across migrations. Agencies running three or more builder exits per quarter typically see the ROI on block library standardisation within the second migration.

Elementor-specific review priorities

  1. 1Nested columns — classifier may merge or split incorrectly.
  2. 2Global widgets — verify consistency across all pages using the same widget.
  3. 3Template overrides — pages using Elementor canvas template may have no theme header/footer.
  4. 4Motion effects and custom CSS — cosmetic; do not try to replicate, confirm content migrated.
  5. 5Responsive visibility settings — hidden mobile sections may be skipped by crawler; check manually.
  6. 6Icon boxes with custom SVG — sideload icons or map to theme icon set.

Timeline expectations

For a 40-page Elementor site with a standard block library already built: one day for crawl and bundle generation, one to two days for review and import, one day for homepage and landing page QA, half a day for redirect and SEO setup. Add block development time if the library does not exist yet — typically two to three days for a standard set of eight to twelve blocks.

Post-migration Elementor removal

  1. 1Confirm no pages depend on Elementor — including WooCommerce and archive templates.
  2. 2Deactivate Elementor and Elementor Pro on staging.
  3. 3Verify all pages render from ACF blocks only.
  4. 4Remove both plugins from production after cutover.
  5. 5Cancel Elementor licence — document savings in client handover.
  6. 6Search for orphaned Elementor CSS in uploads — optional cleanup.

Elementor Kit and site settings

Elementor Site Settings control global colours, typography, buttons, and form styling. These do not migrate — they are builder config. Map the design tokens to your new theme's theme.json or SCSS variables. Clients sometimes ask where the old global font went. It was in Elementor Kit, not in page content. Document the mapping: old Elementor primary colour → new theme --color-primary.

Elementor Pro loop widgets render dynamic post grids. The classifier sees the rendered cards but not the query. Document post type, taxonomy filters, post count, and sort order for each loop. Rebuild in your ACF posts grid block or archive template. This is manual work on every builder — not specific to Elementor — but Elementor Pro's loop builder is common on marketing sites.

AIRA workflow for Elementor sites

Upload your ACF JSON export. Submit the Elementor site sitemap. AIRA crawls rendered pages, classifies sections, and produces a bundle with confidence scores. Review in the browser, fix low-confidence blocks, download bundle.json, import via ACF Migrate plugin as drafts. One credit per page at commit. Import is free. Full workflow in how to migrate into ACF blocks and import bundle guide.

Elementor migration cost comparison

Manual Elementor-to-ACF migration on a 40-page site typically takes 80–120 hours of developer or content-editor time. Automated classification plus review reduces that to 8–16 hours. At agency rates, that is thousands of pounds in saved margin per project. The block library development cost is amortised across every subsequent migration when you standardise. See AIRA vs manual migration for a full comparison.

What editors gain after Elementor

Editors trade Elementor's visual drag-and-drop for labelled ACF fields in Gutenberg. The learning curve is real but short. The long-term gain: no accidental layout breaks, no z-index wars, no 'I dragged a column and the whole page broke.' Content editors edit content; developers own layout. That separation is what most agencies want after years of Elementor support tickets.

Elementor and e-commerce pages

WooCommerce product pages, cart, and checkout built with Elementor widgets need separate audit. Standard WooCommerce templates often perform better than Elementor-built shop pages. Consider rebuilding shop templates on native WooCommerce templates or ACF blocks while migrating marketing pages. Product descriptions in Elementor tabs may need manual mapping if the classifier cannot split tab content into distinct fields.

Pre-launch Elementor deactivation test

On staging, after all pages are imported and QA'd: deactivate Elementor and Elementor Pro. Load every migrated page, the blog, archives, and WooCommerce flows. If anything breaks, it depends on Elementor — find and fix before production cutover. This test takes 30 minutes and prevents launch-day emergencies.

Elementor is the most common builder on agency rebuild briefs — the workflow is well-tested. Register blocks, export JSON, crawl, review, import, QA, remove Elementor. The investment is in block development and homepage review, not in inventing a migration approach from scratch.

Pair this migration with ACF JSON export discipline and import bundle QA habits. Elementor exits are routine for teams that have standardised the block library — the builder changes; the pipeline does not.

If you are quoting an Elementor exit this quarter, build the block library first, run a pilot crawl on the homepage, and validate the bundle import on staging before committing to a fixed-price content migration line item. One homepage pilot de-risks the entire project and gives you real review-time data for the statement of work.

See AIRA vs manual migration if you need numbers for the proposal — Elementor sites are where automated mapping saves the most developer time on typical agency rebuilds.

Elementor migration succeeds when you extract content into fields, not when you copy markup into blocks.

Elementor migrations are rarely pages-only. Agency sites built in Elementor almost always have portfolio grids, case study singles, or team archives powered by custom post types — those records do not move when you crawl marketing pages. Pair this guide with the custom post type migration guide if the old site has /work/ or /portfolio/ URLs. For launch, work through the redirect map guide and migration QA checklist before you deactivate Elementor.

Frequently asked questions

Will my pages look identical after leaving Elementor?expand_more

The content and structure carry over, but styling comes from your new theme's ACF blocks rather than Elementor's renderer. Plan for design QA — the upside is leaner, faster, fully owned markup.

Can I deactivate Elementor after migrating?expand_more

Once your pages are rebuilt as native ACF/Gutenberg blocks and you have confirmed nothing else depends on Elementor, you can deactivate and remove it. Keep a backup and test on staging first.

Does Elementor export work for ACF migration?expand_more

Elementor export/import moves Elementor JSON between Elementor sites. It does not produce ACF field values. Crawl rendered pages and classify into your block library.

What about Elementor Theme Builder?expand_more

Theme Builder templates are outside post content. Rebuild headers, footers, and archive templates as theme template parts. Inventory all Theme Builder conditions before deactivating Elementor.

How do I migrate Elementor forms?expand_more

Rebuild in Gravity Forms, WPForms, or Fluent Forms. Connect the new form to your CTA or form block. Do not migrate Elementor form handlers.

Can I migrate Elementor popups?expand_more

Popups are not in standard page crawls. Inventory in Elementor admin and recreate essential popups in your theme or a popup plugin. Many rebuilds drop non-essential popups.

How long does an Elementor migration take?expand_more

A 30–50 page Elementor site typically takes one to three days for automated mapping and review, plus block development. Homepage and landing pages need the most review time.

What confidence scores need manual review?expand_more

Review anything below 80%. Elementor nested sections and custom CSS layouts often score lower. Reassign block types in the review UI before import.

Do Elementor global widgets migrate?expand_more

Global widgets appear on rendered pages and will be classified. If the same widget appears on 20 pages, each instance is mapped independently — verify consistency during review.

Will WooCommerce pages break?expand_more

Only if built with Elementor widgets. Standard WooCommerce templates may need rebuilding regardless. Audit shop, cart, checkout, and product pages separately.

Is AIRA better than manual Elementor migration?expand_more

For sites with more than a handful of pages, yes. Manual copy-paste loses structure and does not scale. AIRA classifies sections, sideloads media, and rewrites links — you review and publish.

Ryan Hale
Written by

Ryan Hale

Head of Front End Development

Ryan Hale is Head of Front End Development at AIRA, where he leads the team building the engine that migrates WordPress sites into native ACF blocks. He has spent more than a decade building and rebuilding WordPress sites for agencies, with deep, hands-on expertise in Advanced Custom Fields, Gutenberg block development, and large-scale content migrations that protect search rankings. He writes about ACF, moving off page builders like Elementor and Divi, and the practical craft of shipping fast, maintainable WordPress rebuilds.

Reviewed to our editorial guidelines.

Migrate your next rebuild with AIRA

Crawl and preview any site free. 10 credits on signup — pay only when you commit.