Migration

Migrating from Kadence Blocks to native ACF blocks

Leaving Kadence Blocks for a bespoke ACF block library? How Kadence stores layout in Gutenberg, what breaks when you deactivate it, and the agency workflow…

5 min readUpdated 11 June 2026

verifiedReviewed by Tommy Smith,Content Director

Kadence Blocks page layout being migrated into native ACF blocks
boltIn short

Kadence Blocks stores layout as kb/* Gutenberg blocks in post_content — not ACF fields. To migrate: register your ACF block library, crawl the rendered Kadence pages, classify each section into your blocks, review confidence scores, import as drafts, then rebuild Kadence-only headers and forms before deactivating the plugin.

Kadence Blocks feels closer to a "real" block editor than Elementor or Divi — because it *is* Gutenberg. That makes some agencies assume an exit is trivial: export, switch theme, done. It isn't. Kadence still stores content in **kb/** block markup with its own design tokens, row layouts, and Pro-only sections — not in your ACF field keys. When you standardise a portfolio on a bespoke block library, Kadence sites need the same crawl-and-classify workflow as any other builder exit.

Kadence theme vs Kadence Blocks — scope the job

Clients say "Kadence site" when they mean three different stacks. Scope which parts you're retiring before you quote migration hours.

StackWhat it isMigration note
Kadence Blocks plugin onlykb/* blocks in post_content on any themePage-body migration into ACF blocks
Kadence Theme + BlocksTheme header/footer + Kadence layoutsRebuild theme templates *and* page content
Kadence Pro patternsDesign library, advanced forms, dynamic contentPatterns don't map 1:1 — classify rendered output
Kadence WooCommerce templatesShop styling tied to KadencePair with [WooCommerce rebuild guide](/blog/rebuild-woocommerce-site-acf-blocks)
infoIf the goal is only to leave Kadence Theme but keep Kadence Blocks, that's a theme swap — not the ACF standardisation workflow this guide covers. This post is for agencies moving **content into their own ACF block library**.

How Kadence Blocks stores content

Unlike Elementor's postmeta JSON, Kadence Blocks serialize into **post_content** as namespaced Gutenberg blocks (`kadence/rowlayout`, `kadence/column`, `kadence/advancedheading`, `kadence/infobox`, etc.). The front-end looks clean; the database is still Kadence-specific block comments and attributes — not your `hero_title` or `cards` repeater fields.

  • arrow_right**Row / column layout:** nested `kadence/rowlayout` wrappers — map inner sections, not every wrapper div.
  • arrow_right**Advanced heading & text:** heading level and copy live in block attributes — good candidates for hero and text blocks.
  • arrow_right**Info box / icon list:** feature grids map cleanly to repeater-driven card blocks.
  • arrow_right**Accordion / tabs:** FAQ and tab content map to accordion blocks — watch for duplicate panel IDs.
  • arrow_right**Testimonials / pricing table:** repeaters with images and links — high value to automate, easy to mis-count manually.
  • arrow_right**Forms (Kadence Form block):** capture is Kadence-specific — rebuild in Gravity Forms or CF7.
  • arrow_right**Dynamic content (Pro):** query loops and linked fields need live queries on the new theme, not static HTML snapshots.
warningCopy-pasting Kadence block HTML into a Custom HTML block preserves Kadence class names and inline structure — you've moved the mess, not migrated into ACF fields. Classify from the **rendered** page the way visitors see it.

Why agencies leave Kadence Blocks

  • arrow_right**Portfolio consistency** — one ACF block library across every client, not Kadence design tokens per site.
  • arrow_right**Editor handover** — clients see only your blocks in the inserter, not Kadence + ACF + core blocks fighting for attention.
  • arrow_right**Long-term ownership** — no dependency on Kadence Pro renewals for layout blocks you could own in PHP.
  • arrow_right**Classifier-ready exports** — AIRA and similar tools learn from your ACF JSON spec; Kadence block JSON doesn't plug in.
  • arrow_right**Performance** — Kadence is lighter than Elementor, but bespoke blocks still win when you control markup and asset loading per block.

Kadence block → ACF block mapping

Use this table as a starting spec when you register blocks or review classifier output. Adjust to your library naming.

Kadence blockTypical ACF blockField notes
Row layout / columnLayout wrapper (skip) or sectionMap children, drop empty wrappers
Advanced headingHero or section headingPreserve H1–H6; one H1 per page
Advanced textText / prose blockWatch for inline links and lists
Info boxFeature or card gridIcon, title, body, link per repeater row
Icon listFeatures blockRepeater: icon, label, description
TestimonialsTestimonial blockAvatar sideload; cite name/role
AccordionFAQ blockQuestion + answer pairs
TabsTabbed content or split blocksOften simpler to flatten to stacked sections
Image / galleryHero or gallery blockSideload; regenerate srcset on new theme
Advanced btnCTA bandURL, label, style variant
Count upStats rowNumber + label per column
Pricing tablePricing blockRepeater: plan name, price, features, CTA
FormRebuild — not migratedNew handler + spam protection
Posts block (query)Dynamic query blockDon't snapshot grid HTML — wire WP_Query

What breaks if you just deactivate Kadence Blocks

  • arrow_rightPages show **"Block contains unexpected or invalid content"** in the editor — kb/* blocks have no renderer.
  • arrow_rightFront-end may print raw block comments or empty sections depending on theme.
  • arrow_rightKadence global palette / typography classes vanish — spacing looks wrong even if text survives.
  • arrow_rightHeader/footer built with Kadence Elements (Pro) disappear — they're not in post_content.
  • arrow_rightForms stop submitting — Kadence Form handlers are plugin-bound.

The safe sequence matches every builder exit: **new content in ACF blocks on staging → QA → redirects → deactivate Kadence**. See the page builder exit guide for the full pre-flight checklist.

Free download

The Page Builder Exit Playbook

How Elementor, Divi, Kadence Blocks, WPBakery, Beaver and Oxygen store layout, what breaks if you just deactivate them, and the step-by-step approach to a clean exit.

  • check_circleWhat each builder leaves behind
  • check_circleThe section-by-section exit approach
  • check_circleA pre-exit safety checklist
  • check_circlePost-migration cleanup steps

We’ll email you the occasional migration tip. Unsubscribe any time. See our privacy policy.

Migration workflow (agency)

  1. 1**Discovery** — export sitemap; list Kadence Elements headers/footers; note forms, query loops, and WooCommerce templates.
  2. 2**Build destination** — register ACF blocks; export field groups as JSON; rebuild header/footer/archive templates in the theme.
  3. 3**Crawl rendered pages** — with Kadence active, crawl public URLs; classifier reads DOM sections, not kb block comments.
  4. 4**Review classifications** — fix low-confidence rows, query loops, and pricing tables in the review UI.
  5. 5**Import drafts** — sideload media, rewrite internal links; carry SEO meta per page.
  6. 6**Forms & dynamic blocks** — rebuild forms; wire live queries for post grids.
  7. 7**Redirects & QA** — redirect map, QA checklist, post-launch monitoring.
  8. 8**Deactivate Kadence** — only after every URL is accounted for and editors have training on your blocks.

Kadence vs Elementor / Bricks — migration effort

Kadence sits in the middle of the difficulty spectrum. Cleaner DOM than Elementor or Divi; more nested layout blocks than Bricks. Teams often see **higher classifier confidence** on Kadence marketing pages than on legacy WPBakery — but Kadence Elements and Pro dynamic content add scope that pure page crawls miss.

SourceStorageTypical classifier confidenceHidden scope
Elementorpostmeta JSONModerate — heavy wrappersPopups, theme builder
Kadence Blockspost_content kb/*Moderate–good — cleaner DOMElements, forms, query loops
Brickspostmeta JSONGood — lean HTMLTemplates, popups
Divishortcodes + metaLower — verbose markupTheme Builder layouts

Blog posts and long-tail content

Marketing pages are the expensive part; blog archives are often faster via hybrid migration. If posts are native Kadence blocks in post_content, bulk conversion to core blocks may suffice for editorial content — see migrating blog posts to ACF blocks. Don't run the same page through both WXR import and AIRA crawl.

SEO during a Kadence exit

Kadence doesn't change the SEO playbook: preserve titles, meta descriptions, canonicals, and Open Graph images per URL. If you use Kadence's breadcrumb or schema blocks, reimplement schema in your theme or SEO plugin. Guides: Yoast preservation, Rank Math, SEOPress.

Pricing and quoting Kadence migrations

Count marketing URLs from the sitemap — not blog posts unless the SOW includes them. **1 credit = 1 page** on AIRA when you commit a crawl; crawling and preview are free. A 40-page Kadence brochure site is 40 credits — predictable enough to line-item separately from design. See scoping and pricing rebuilds and the 2026 time benchmark for labour comparisons vs manual copy-paste.

When manual migration still wins

  • arrow_rightOne or two landing pages with heavy Kadence animations you won't recreate in ACF.
  • arrow_rightA single homepage art-directed in Kadence Elements with no repeating patterns.
  • arrow_rightAir-gapped staging the crawler cannot reach.
  • arrow_rightClient insists on keeping Kadence Blocks on blog only — migrate marketing pages, leave blog on core blocks.

For everything else at scale, crawl-and-classify beats field-by-field copy-paste. Compare approaches in AIRA vs manual migration and migration tools compared. Walkthrough: how to use AIRA · for agencies.

Kadence Elements headers and footers won't migrate with page crawls — rebuild theme templates before deactivating Kadence. Forms need Gravity/CF7 migration; query loops need CPT migration when grids pull custom records. Compare effort with Elementor and Bricks exits via the page builder exit guide.

Frequently asked questions

Is Kadence Blocks the same as the Kadence theme?expand_more

No. Kadence Blocks is a Gutenberg block plugin (kb/* blocks). Kadence Theme is a separate product that often pairs with it for headers, footers, and global styles. You can run Kadence Blocks on other themes. Migration scope depends on which parts you're replacing with your ACF theme.

Can I convert Kadence blocks to ACF blocks automatically in WordPress?expand_more

WordPress has no built-in Kadence-to-ACF converter. Kadence block comments don't map to your ACF field keys without a classification step. Tools like AIRA crawl the rendered page and assign sections to your registered block library using your ACF JSON export as the spec.

Do I need Kadence Pro migrated before deactivating?expand_more

You need equivalent functionality on the new site — not a licence transfer. Pro features (dynamic content, advanced galleries, Kadence Elements) must be rebuilt as theme templates, ACF blocks, or lighter plugins. Deactivate only after staging proves every URL and form works.

Is leaving Kadence easier than leaving Elementor?expand_more

Often slightly — cleaner HTML and real Gutenberg storage help classification. Hidden scope (Elements, forms, query loops) still requires manual work. The workflow is the same: blocks first, crawl second, redirects last.

What about Spectra or Stackable instead of Kadence?expand_more

Same principle: UAG/Spectra and Stackable are also namespaced Gutenberg blocks in post_content. Migrate from rendered output into your ACF library; see the [page builder exit guide](/blog/page-builder-exit-guide) for the shared sequence.

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.