Migration

Migrating from WPBakery to native Gutenberg & ACF blocks

Leaving WPBakery Page Builder for native Gutenberg and ACF blocks? What breaks on deactivation, element mapping table, edge cases and step-by-step agency…

7 min readUpdated 10 June 2026

verifiedReviewed by Tommy Smith,Content Director

WPBakery page builder content being migrated into native Gutenberg ACF blocks
boltIn short

WPBakery content lives in shortcodes that do not map to ACF fields. Crawl rendered pages, classify visual sections into your block library, import structured drafts — never deactivate WPBakery and hope.

WPBakery Page Builder — still sold as Visual Composer on older installs — is everywhere on agency client sites built between 2015 and 2022. It gets pages live quickly, but every row and column is stored as a shortcode in post_content. When you rebuild on native Gutenberg blocks backed by ACF, you cannot switch the theme and hope for the best. Deactivate WPBakery and visitors see raw [vc_row] tags or empty sections. This guide covers what breaks, how common elements map to ACF blocks, edge cases that eat timelines, and the step-by-step workflow agencies use to migrate cleanly.

What happens when you deactivate WPBakery

WPBakery wraps content in shortcodes like [vc_row] and [vc_column]. Without the plugin active, those tags do not render — visitors see raw shortcode text or empty sections. This is the same trap as Divi and Elementor: the layout lives in builder-specific markup, not in portable blocks.

warningNever migrate from the raw shortcode soup in the WordPress editor. Crawl the rendered front-end page — that is what search engines index and what your mapping logic should read.

Why agencies move off WPBakery

  • arrow_rightPerformance: WPBakery ships extra CSS and JS on every page; native ACF blocks output only what your template needs.
  • arrow_rightEditor friction: content editors bounce between WPBakery backend editor and Gutenberg on newer pages.
  • arrow_rightMaintenance: theme updates and PHP version bumps often break legacy builder pages first.
  • arrow_rightOwnership: ACF blocks are your PHP templates — no licence renewal tied to a third-party renderer.
  • arrow_rightMigration-ready structure: field-driven blocks are what automated classifiers map into — shortcodes are not.

Common WPBakery elements and how they map

WPBakery has dozens of elements, but agency sites repeat the same handful. Use this table as a starting point for your mapping spec — adjust row labels to match your actual ACF block names.

WPBakery elementTypical ACF blockMigration notes
vc_row + vc_columnSection wrapper or skipOften container only — content inside maps to real blocks
vc_single_image / vc_galleryHero or gallery blockSideload all images; check retina srcset
vc_custom_headingHero or text blockSeparate H1 hero from H2 section headings
vc_column_textRich text blockStrip inline styles on import
vc_icon / vc_icon_boxFeatures or cards blockOne repeater row per icon box
vc_btnCTA blockPreserve link URL and button label fields
vc_videoVideo blockYouTube/Vimeo URL, not embed shortcode
vc_raw_htmlManual reviewOften tracking pixels or custom JS — do not auto-map
vc_tabs / vc_accordionFAQ or tabs blockEach panel = repeater row
vc_progress_barStats blockValue + label per bar

Edge cases that eat your timeline

Global templates and reusable content

WPBakery Global Templates and Templatera layouts render on multiple pages but live in separate admin screens. Crawl every page that uses a global template — the rendered output includes it — but note which sections repeat so you do not review the same hero fourteen times as if it were unique.

Inner rows and nested columns

Complex pages stack vc_row inside vc_column inside vc_row. Your classifier should flatten to content sections, not recreate WPBakery nesting in ACF. A three-column icon row becomes one features block with a three-row repeater — not three nested wrapper blocks.

Theme-bundled WPBakery addons

Many themes ship custom WPBakery elements (theme_brand_slider etc.). They will not exist on the new site. Map the rendered output to your closest ACF block; document anything with no equivalent for manual rebuild.

Step-by-step migration workflow

  1. 1Inventory: export a URL list from the old sitemap; tag pages as WPBakery-built vs standard posts.
  2. 2Register your ACF block library on the new build; export field groups as JSON.
  3. 3Crawl live WPBakery pages — rendered rows, columns and elements, not raw shortcodes.
  4. 4Classify each section; flag vc_raw_html and unknown elements for manual review.
  5. 5Import as drafts; sideload images and rewrite internal links.
  6. 6Run the migration QA checklist — include a shortcode debris check.
  7. 7Load redirect map if URLs changed; preserve Yoast or Rank Math metadata.
  8. 8Deactivate WPBakery only after sign-off; run shortcode cleanup pass.
WPBakery page being crawled for section-level migration into ACF blocks
Always migrate from the rendered front-end page — not the shortcode view in the WordPress admin.

WPBakery homepage: the densest page

WPBakery homepages are typically the densest page on the site — nested rows, sliders, multiple CTAs, global template sections. Budget extra review time. Crawl it first as a pilot to validate your mapping spec before committing credits on the full site.

Performance win after migration

WPBakery pages often load hundreds of DOM nodes and builder CSS on every page view. ACF blocks output only your template markup. Run Lighthouse before and after on the same hosting — the improvement is a strong client deliverable. See page builder performance problems.

SEO preservation

Carry over titles, meta descriptions, canonicals via the import bundle. Generate a redirect map if URL structure changes. Monitor with post-launch monitoring. Full checklist: rebuild without losing SEO.

AIRA workflow for WPBakery sites

Export ACF JSON, upload to AIRA, crawl the live WPBakery site (free preview), review confidence scores, commit per page, import via ACF Migrate plugin. See how to use AIRA and pricing. Compare manual vs automated in AIRA vs manual migration.

Parallel with other builder exits

The workflow mirrors migrating off Elementor and leaving Divi — only the source markup differs. Agencies running standard block libraries migrate faster because mapping specs reuse across builder types.

Post-deactivation cleanup

  • arrow_rightSearch post_content for remaining [vc_ shortcodes.
  • arrow_rightRemove WPBakery-specific post meta if safe (backup first).
  • arrow_rightUninstall WPBakery and theme addon plugins after QA sign-off.
  • arrow_rightVerify no pages still depend on vc_ shortcodes in widgets or options.

WPBakery in theme-bundled sites

Many ThemeForest themes bundle WPBakery and custom vc_ elements tightly coupled to theme CSS. Deactivating WPBakery often breaks theme demo content entirely. The migration path is the same — crawl rendered pages, map to your new ACF theme — but budget design QA time because the new theme will not replicate ThemeForest styling pixel-perfect without custom block CSS.

vc_images_carousel and Revolution Slider integrations are common on WPBakery homepages. Map to your gallery or hero block with a repeater per slide — image, heading, caption, link. Verify autoplay and navigation are rebuilt in your new block template or front-end JS. Sliders are high-review items — classify with care and check every slide sideloaded.

Manual effort estimate by page type

Page typeWPBakery complexityTypical review time (AIRA-assisted)
Simple text + imageLow5 minutes
Service page with icon boxesMedium10–15 minutes
About page with team gridMedium15–20 minutes
Homepage with nested rowsHigh30–45 minutes
Landing page with vc_raw_htmlHigh + manual45–60 minutes

Client editor handover

Editors familiar with WPBakery backend editor need Gutenberg training before cutover. Show one-to-one block mapping: old vc_icon_box row becomes new Cards block with repeater. A 30-minute walkthrough prevents panic support tickets in week one. Provide a printed block guide referencing old section names they recognise.

WPBakery + Gutenberg coexistence period

During migration you may run WPBakery pages on the old site and ACF block drafts on staging simultaneously. Do not let editors create new WPBakery pages mid-migration — freeze old site content changes or accept re-crawl cost. Communicate a content freeze date two weeks before launch. New copy after crawl means manual entry or a paid re-commit.

Licence cost conversation

WPBakery requires ongoing theme bundle licences or standalone plugin renewals. ACF Pro is a predictable annual cost passed through to the client. Framing the rebuild as eliminating builder licence dependency plus performance improvement often justifies the project cost — especially for multi-site portfolio clients paying builder fees per domain.

Pilot page strategy

Start every WPBakery migration with the homepage and one inner page — typically About or a flagship service page. Run the full crawl-classify-review-import cycle on just those two URLs before committing credits for the full site. Homepages surface nested row issues, global template duplication, and slider mapping problems early. Fix the spec once, then scale to the remaining 38 pages with confidence.

WPBakery shortcode debris audit

After import, run a database search for vc_ in post_content across all post types. Any remaining shortcodes mean a page was missed or import failed partially. Also check wp_options for WPBakery global settings that reference old shortcode IDs. Clean debris before deactivation — see [shortcode cleanup after migration. This pass takes an hour and prevents embarrassing raw shortcode on production.

Combining with other migration guides

WPBakery sites often mix standard WordPress posts (no builder) with builder pages. Crawl both — posts may map to core blocks while pages map to ACF. Blog archives and category pages may need template rebuilds, not content migration. Scope accordingly in rebuild scoping.

Performance proof for the client

Run Lighthouse on the WPBakery homepage and the migrated ACF draft on staging. Present mobile LCP and TBT numbers in the launch report. Leaving WPBakery is one of the few rebuild outcomes with a measurable performance story the client can show their board.

WPBakery shortcodes are not content. The rendered page is content. Migrate what visitors and Google see.

Map sections with how to map website sections to ACF blocks. Scope the project with how to scope and price a rebuild.

WPBakery sites accumulate vc_ shortcodes in widgets and footer areas as well as pages — budget time for shortcode cleanup. If the client has case studies or directory listings as custom post types, read CPT migration alongside this guide. End-to-end workflow: how to migrate into ACF blocks and how to use AIRA.

Frequently asked questions

Is WPBakery the same as Visual Composer?expand_more

On many older sites, yes — WPBakery was rebranded from Visual Composer. Both store layouts as shortcodes in post content, so the migration approach is the same: read the rendered page and map sections into native blocks.

What about WPBakery in the WordPress widget areas?expand_more

Check widget blocks and sidebars for vc_ shortcodes separately. They will not appear in page crawls. Audit Appearance → Widgets and custom sidebars before deactivating WPBakery.

Can I keep WPBakery and add ACF blocks on new pages?expand_more

You can run both temporarily, but it is a poor long-term setup — two editors, two rendering pipelines, and ongoing licence cost. Most agencies migrate existing pages in one pass and remove WPBakery once verified on staging.

How long does a WPBakery-to-ACF migration take?expand_more

Manual rebuild: roughly 1–3 hours per complex page. Automated crawl-and-map with review: a 40-page site is often an afternoon. Budget extra for global templates, vc_raw_html sections, and the homepage.

Why do my pages show raw shortcodes after deactivating WPBakery?expand_more

WPBakery content is stored as shortcodes that only render when the plugin is active. You must migrate content into native blocks before deactivation, not after.

How do I migrate vc_row and vc_column wrappers?expand_more

Usually skip them — they are layout containers. Classify the content inside each column into real ACF blocks: text, cards, images, CTAs.

What about vc_raw_html elements?expand_more

Manual review always. They often contain tracking scripts, custom embeds, or legacy markup that should not auto-map into content blocks.

Can AIRA migrate WPBakery sites?expand_more

Yes — crawl the rendered front-end while WPBakery is still active. AIRA classifies visual sections into your ACF blocks using your JSON export spec.

Do I need to crawl with WPBakery active?expand_more

Yes. The rendered page requires WPBakery to interpret shortcodes. Deactivate only after migration is complete and verified on staging.

How do I handle WPBakery image galleries?expand_more

Map to your gallery or hero block. Ensure all images sideload into the Media Library — WPBakery often uses attachment IDs that will not exist on the new site until sideloaded.

Will leaving WPBakery improve Core Web Vitals?expand_more

Almost always yes on the same hosting. WPBakery ships global CSS/JS; ACF blocks output only what your template enqueues. Benchmark before and after.

What is the biggest WPBakery migration mistake?expand_more

Copy-pasting shortcode output or rendered HTML into Classic blocks instead of mapping sections into structured ACF fields. You keep the bloat you were trying to escape.

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.