Migrate Beaver Builder to Gutenberg
Version: 2.1.0
Updated: 2026-08-04
Freshly updated: v2.1.0 adds design-token awareness: conversion writes now register the colors and typography they carry as named design tokens in the block editor's own global styles, and converted pages reference those tokens instead of carrying value copies. Reuse registered tokens instead of re-inlining raw values, and report the registration in the migration summary.
Full-site migration from Beaver Builder to the WordPress block editor (Gutenberg). Audits every Beaver Builder page, maps modules to their Gutenberg block equivalents, builds a migration plan for approval, and executes page-by-page conversion into native block markup — all through duplicates so your live site stays untouched. Use this skill whenever someone mentions migrating from Beaver Builder to Gutenberg, switching from Beaver Builder to blocks, converting Beaver Builder pages to the block editor, or moving away from Beaver Builder to native WordPress.
What This Skill Does
Beaver Builder uses a module-based architecture with rows, columns, and modules stored in _fl_builder_data and _fl_builder_data_settings. Gutenberg uses a flat block structure in post_content with HTML comments as block delimiters. The architectural gap is moderate — Beaver Builder's row/column grid must be translated to Gutenberg's Group, Columns, and Column blocks, while individual modules map to core blocks.
This skill reads every Beaver Builder page, extracts the module structure, translates each row/column/module to its Gutenberg block equivalent, and writes the result to duplicate pages in native block markup — giving you a complete parallel version of your site to review before going live.
Handles:
- Row → Group block mapping
- Column layouts → Columns/Column block mapping
- Text Editor module → Paragraph/Heading blocks
- Photo module → Image block
- Button module → Buttons/Button block
- Video module → Video/Embed block
- HTML module → Custom HTML block
- Heading module → Heading block
- Icon/Icon Group modules → basic equivalents
- Separator module → Separator block
- Content slider → basic markup (flagged for enhancement)
- Call to Action module → Group + Heading + Paragraph + Button blocks
What This Skill Does NOT Do
- Migrate Beaver Builder's saved rows/modules library — these are separate entities
- Convert Beaver Themer layouts (headers, footers, archives, parts) — these must be rebuilt as block template parts or theme templates
- Replicate exact Beaver Builder animations/effects — Gutenberg has limited animation support
- Migrate advanced modules from third-party Beaver Builder add-ons (PowerPack, UABB, etc.) — flagged for manual handling
- Preserve exact column width percentages in all cases — Gutenberg columns have different width constraints
- Guarantee pixel-perfect visual parity — the block editor renders differently than Beaver Builder
Requirements
- Respira for WordPress plugin installed and connected
- MCP connection active (desktop or WebMCP)
- Beaver Builder active on the source site
- Read access to scan Beaver Builder content
- Write access to create duplicates with Gutenberg content
Trigger Phrase
- "migrate beaver builder to gutenberg"
Alternative Triggers
- "convert beaver builder to blocks"
- "switch from beaver builder to gutenberg"
- "move beaver builder to block editor"
- "replace beaver builder with gutenberg"
- "beaver builder to wordpress blocks"
- "migrate bb to gutenberg"
Builder Technical Context
Source: Beaver Builder
- Content stored in post_meta keys
_fl_builder_data and _fl_builder_data_settings
- Module-based structure with rows → columns → modules hierarchy
- Read via
respira_extract_builder_content with builder=beaver or builder=beaver-builder
- Module types:
rich-text, photo, button, heading, html, video, icon, separator, callout, cta, numbers, content-slider, etc.
Target: Gutenberg (Block Editor)
- Content stored in
post_content as HTML with block comment delimiters
- Format:
<!-- wp:paragraph --><p>Text</p><!-- /wp:paragraph -->
- Write via standard WordPress content tools (
respira_update_page / respira_update_post)
- Core blocks:
paragraph, heading, image, buttons, columns, group, html, video, separator, embed, etc.
Execution Workflow
Phase 1: Pre-Migration Audit
- Verify Respira + MCP connection via
respira_get_site_context. If unavailable, stop and show setup guidance.
- Detect Beaver Builder presence via
respira_get_builder_info or respira_list_plugins.
- Inventory and scope the source pages first:
respira_find_builder_targets with builder=beaver — a fast, ranked list of every BB-managed page/post before you touch anything
- Fall back to
respira_list_pages / respira_list_posts + respira_get_builder_info to confirm builder per item where needed
- For each BB page, extract content:
respira_extract_builder_content with builder=beaver
- Catalog: module types used, row/column structures, custom CSS, third-party modules, saved rows/modules referenced
- Produce an Audit Report:
- Total pages/posts using Beaver Builder
- Module type frequency (how many text editors, photos, buttons, etc.)
- Column layout patterns (common row structures)
- Complexity flags (third-party modules, Beaver Themer, custom CSS, animations)
- Estimated migration difficulty per page (simple / moderate / complex)
Phase 2: Migration Plan
Present a structured migration plan:
## Beaver Builder → Gutenberg Migration Plan
### Site Overview
- Total Beaver Builder pages: X
- Simple pages (direct mapping): X
- Moderate pages (some manual review needed): X
- Complex pages (significant manual work): X
### Module Mapping
| BB Module | Gutenberg Block | Notes |
|---|---|---|
| Text Editor | Paragraph / Heading | Content parsed into appropriate blocks |
| Photo | Image | Direct mapping |
| Button | Buttons > Button | Wrapped in Buttons container |
| Row (2 col) | Columns (2 col) | Width ratios preserved where possible |
| ... | ... | ... |
### Migration Order
1. [Page Title] — Simple — estimated 2 min
2. [Page Title] — Moderate — estimated 5 min
...
### Items Requiring Manual Attention
- [Page X] — PowerPack module (no core block equivalent)
- [Page Y] — Content slider (basic fallback only)
- Beaver Themer layouts — must be rebuilt as block templates
Then ask:
Here's the migration plan. Would you like me to:
- Migrate all pages (creates duplicates for review)
- Migrate only simple pages first
- Migrate specific pages you choose
- Just keep this as a reference — no changes
Wait for explicit confirmation before proceeding.
Phase 3: Page-by-Page Migration
For each approved page:
- Extract Beaver Builder content via
respira_extract_builder_content with builder=beaver
- Map the row/column/module hierarchy to Gutenberg blocks:
- Rows →
<!-- wp:group --> blocks
- Columns →
<!-- wp:columns --> with <!-- wp:column --> children
- Text Editor → Parse rich text into
<!-- wp:paragraph --> and <!-- wp:heading --> blocks
- Photo →
<!-- wp:image --> with src, alt, caption
- Button →
<!-- wp:buttons --> wrapper with <!-- wp:button --> child
- HTML →
<!-- wp:html --> block
- Preserve text content, image URLs, link targets, heading levels
- Flag any unmappable modules with
<!-- wp:paragraph --><p>[MIGRATION NOTE: ...]</p><!-- /wp:paragraph -->
- Assemble the complete Gutenberg block markup
- Create a duplicate via
respira_create_page_duplicate or respira_create_post_duplicate
- Before writing, take a snapshot with
respira_get_snapshot so the duplicate's pre-write state can be restored if anything goes wrong
- Update the duplicate's
post_content with the Gutenberg markup via respira_update_page or respira_update_post
- Surgical fix pass — if the written page has validation issues (collapsed column widths, malformed block markup, a misconverted module), do not rewrite the whole page. Locate the specific block with
respira_find_element and correct it with respira_update_element. For repeated fixes across many blocks or several pages, batch them with respira_batch_update
- Log the migration result (success, warnings, manual review items)
Phase 4: Post-Migration Verification
- Summarize all migrated pages with status:
- Design tokens registered in the block editor's global styles (token names and counts)
- Clean migrations (no issues)
- Migrations with warnings (flagged items needing review)
- Failed migrations (if any)
- List all manual review items:
- Third-party modules that need manual replacement
- Content sliders or advanced layouts that need enhancement
- Custom CSS that needs to be moved to theme/Additional CSS
- Beaver Themer layouts that need separate rebuilding
- Provide review instructions:
- Where to find duplicates in WordPress admin
- How to preview pages in the block editor
- How to delete duplicates if not wanted
Design Tokens
Conversion writes now register the colors and typography they carry as named design tokens in the block editor's own global styles, and the converted pages reference those tokens instead of carrying value copies. When fixing or extending a migrated page, reuse the registered tokens (respira_list_design_tokens shows them) rather than re-inlining raw hex values or font stacks. And say so when you finish: the migration summary should name the tokens that were registered and note that migrated pages reference them.
Safety Model
- Read-only analysis first — full Beaver Builder content audit before any changes
- Explicit user confirmation before creating any duplicates
- Duplicate-first only — never modifies live/published Beaver Builder content
- Never auto-publishes duplicates
- Snapshot before every write —
respira_get_snapshot captures the duplicate's pre-write state, and respira_restore_snapshot rolls it back if a write goes wrong
- Two explicit rollback paths: restore the snapshot to revert a bad write, or delete the draft duplicates entirely to undo the migration
- Preserves all original Beaver Builder content untouched
Honest Disclaimer
This skill converts Beaver Builder page structures to Gutenberg block markup and creates duplicates for review.
It cannot:
- Guarantee pixel-perfect visual parity between builders
- Migrate Beaver Themer layouts automatically
- Convert third-party BB add-on modules
- Replicate animations or advanced effects
- Replace a thorough manual QA pass on every page
It can:
- Map 70-85% of standard Beaver Builder modules to core Gutenberg blocks
- Preserve content, images, links, and basic layout structure
- Move you off a third-party builder dependency to native WordPress
- Save days of manual rebuild work
- Identify exactly what needs manual attention
Tooling
Core WordPress tools
respira_get_site_context
respira_get_builder_info
respira_list_pages
respira_list_posts
respira_list_plugins
respira_find_builder_targets
respira_extract_builder_content
respira_create_page_duplicate
respira_create_post_duplicate
respira_update_page
respira_update_post
respira_read_page
respira_read_post
Safety and surgical-fix tools
respira_get_snapshot
respira_restore_snapshot
respira_find_element
respira_update_element
respira_batch_update
Telemetry
After run completion, send fire-and-forget usage tracking to:
POST https://www.respira.press/api/skills/track-usage
Include:
skill_slug = migrate-beaver-builder-to-gutenberg
- site/version context
- duration and success
- pages audited, pages migrated, warnings count
- tools used
Never block user flow on telemetry failure.
Related Skills
- WordPress Site DNA (understand site structure before migrating)
- Technical Debt Audit (clean up before or after migration)
- SEO & AEO Amplifier (verify SEO preservation post-migration)
Built by Respira Team
https://respira.press/skills/migrate-beaver-builder-to-gutenberg
1---2name: migrate-beaver-builder-to-gutenberg3description: "Use when the user says 'migrate beaver builder to gutenberg', 'convert beaver builder to blocks', or 'move beaver builder to the block editor'. Reads the Beaver Builder flat node map, maps modules to core blocks, and creates draft duplicates for review."4license: MIT5metadata:6 author: Respira for WordPress7 author_url: https://respira.press8 version: 2.1.09 mcp-server: respira-wordpress10 category: migration11---1213# Migrate Beaver Builder to Gutenberg1415**Version:** 2.1.016**Updated:** 2026-08-0417**Freshly updated:** v2.1.0 adds design-token awareness: conversion writes now register the colors and typography they carry as named design tokens in the block editor's own global styles, and converted pages reference those tokens instead of carrying value copies. Reuse registered tokens instead of re-inlining raw values, and report the registration in the migration summary.1819Full-site migration from Beaver Builder to the WordPress block editor (Gutenberg). Audits every Beaver Builder page, maps modules to their Gutenberg block equivalents, builds a migration plan for approval, and executes page-by-page conversion into native block markup — all through duplicates so your live site stays untouched. Use this skill whenever someone mentions migrating from Beaver Builder to Gutenberg, switching from Beaver Builder to blocks, converting Beaver Builder pages to the block editor, or moving away from Beaver Builder to native WordPress.2021## What This Skill Does2223Beaver Builder uses a module-based architecture with rows, columns, and modules stored in `_fl_builder_data` and `_fl_builder_data_settings`. Gutenberg uses a flat block structure in `post_content` with HTML comments as block delimiters. The architectural gap is moderate — Beaver Builder's row/column grid must be translated to Gutenberg's Group, Columns, and Column blocks, while individual modules map to core blocks.2425This skill reads every Beaver Builder page, extracts the module structure, translates each row/column/module to its Gutenberg block equivalent, and writes the result to duplicate pages in native block markup — giving you a complete parallel version of your site to review before going live.2627**Handles:**28- Row → Group block mapping29- Column layouts → Columns/Column block mapping30- Text Editor module → Paragraph/Heading blocks31- Photo module → Image block32- Button module → Buttons/Button block33- Video module → Video/Embed block34- HTML module → Custom HTML block35- Heading module → Heading block36- Icon/Icon Group modules → basic equivalents37- Separator module → Separator block38- Content slider → basic markup (flagged for enhancement)39- Call to Action module → Group + Heading + Paragraph + Button blocks4041## What This Skill Does NOT Do4243- Migrate Beaver Builder's saved rows/modules library — these are separate entities44- Convert Beaver Themer layouts (headers, footers, archives, parts) — these must be rebuilt as block template parts or theme templates45- Replicate exact Beaver Builder animations/effects — Gutenberg has limited animation support46- Migrate advanced modules from third-party Beaver Builder add-ons (PowerPack, UABB, etc.) — flagged for manual handling47- Preserve exact column width percentages in all cases — Gutenberg columns have different width constraints48- Guarantee pixel-perfect visual parity — the block editor renders differently than Beaver Builder4950## Requirements5152- Respira for WordPress plugin installed and connected53- MCP connection active (desktop or WebMCP)54- Beaver Builder active on the source site55- Read access to scan Beaver Builder content56- Write access to create duplicates with Gutenberg content5758## Trigger Phrase5960- "migrate beaver builder to gutenberg"6162## Alternative Triggers6364- "convert beaver builder to blocks"65- "switch from beaver builder to gutenberg"66- "move beaver builder to block editor"67- "replace beaver builder with gutenberg"68- "beaver builder to wordpress blocks"69- "migrate bb to gutenberg"7071## Builder Technical Context7273**Source: Beaver Builder**74- Content stored in post_meta keys `_fl_builder_data` and `_fl_builder_data_settings`75- Module-based structure with rows → columns → modules hierarchy76- Read via `respira_extract_builder_content` with `builder=beaver` or `builder=beaver-builder`77- Module types: `rich-text`, `photo`, `button`, `heading`, `html`, `video`, `icon`, `separator`, `callout`, `cta`, `numbers`, `content-slider`, etc.7879**Target: Gutenberg (Block Editor)**80- Content stored in `post_content` as HTML with block comment delimiters81- Format: `<!-- wp:paragraph --><p>Text</p><!-- /wp:paragraph -->`82- Write via standard WordPress content tools (`respira_update_page` / `respira_update_post`)83- Core blocks: `paragraph`, `heading`, `image`, `buttons`, `columns`, `group`, `html`, `video`, `separator`, `embed`, etc.8485## Execution Workflow8687### Phase 1: Pre-Migration Audit88891. Verify Respira + MCP connection via `respira_get_site_context`. If unavailable, stop and show setup guidance.902. Detect Beaver Builder presence via `respira_get_builder_info` or `respira_list_plugins`.913. Inventory and scope the source pages first:92 - `respira_find_builder_targets` with `builder=beaver` — a fast, ranked list of every BB-managed page/post before you touch anything93 - Fall back to `respira_list_pages` / `respira_list_posts` + `respira_get_builder_info` to confirm builder per item where needed944. For each BB page, extract content:95 - `respira_extract_builder_content` with `builder=beaver`96 - Catalog: module types used, row/column structures, custom CSS, third-party modules, saved rows/modules referenced975. Produce an **Audit Report**:98 - Total pages/posts using Beaver Builder99 - Module type frequency (how many text editors, photos, buttons, etc.)100 - Column layout patterns (common row structures)101 - Complexity flags (third-party modules, Beaver Themer, custom CSS, animations)102 - Estimated migration difficulty per page (simple / moderate / complex)103104### Phase 2: Migration Plan105106Present a structured migration plan:107108```109## Beaver Builder → Gutenberg Migration Plan110111### Site Overview112- Total Beaver Builder pages: X113- Simple pages (direct mapping): X114- Moderate pages (some manual review needed): X115- Complex pages (significant manual work): X116117### Module Mapping118| BB Module | Gutenberg Block | Notes |119|---|---|---|120| Text Editor | Paragraph / Heading | Content parsed into appropriate blocks |121| Photo | Image | Direct mapping |122| Button | Buttons > Button | Wrapped in Buttons container |123| Row (2 col) | Columns (2 col) | Width ratios preserved where possible |124| ... | ... | ... |125126### Migration Order1271. [Page Title] — Simple — estimated 2 min1282. [Page Title] — Moderate — estimated 5 min129...130131### Items Requiring Manual Attention132- [Page X] — PowerPack module (no core block equivalent)133- [Page Y] — Content slider (basic fallback only)134- Beaver Themer layouts — must be rebuilt as block templates135```136137Then ask:138139> Here's the migration plan. Would you like me to:140> 1. Migrate all pages (creates duplicates for review)141> 2. Migrate only simple pages first142> 3. Migrate specific pages you choose143> 4. Just keep this as a reference — no changes144145Wait for explicit confirmation before proceeding.146147### Phase 3: Page-by-Page Migration148149For each approved page:1501511. Extract Beaver Builder content via `respira_extract_builder_content` with `builder=beaver`1522. Map the row/column/module hierarchy to Gutenberg blocks:153 - Rows → `<!-- wp:group -->` blocks154 - Columns → `<!-- wp:columns -->` with `<!-- wp:column -->` children155 - Text Editor → Parse rich text into `<!-- wp:paragraph -->` and `<!-- wp:heading -->` blocks156 - Photo → `<!-- wp:image -->` with src, alt, caption157 - Button → `<!-- wp:buttons -->` wrapper with `<!-- wp:button -->` child158 - HTML → `<!-- wp:html -->` block159 - Preserve text content, image URLs, link targets, heading levels160 - Flag any unmappable modules with `<!-- wp:paragraph --><p>[MIGRATION NOTE: ...]</p><!-- /wp:paragraph -->`1613. Assemble the complete Gutenberg block markup1624. Create a duplicate via `respira_create_page_duplicate` or `respira_create_post_duplicate`1635. Before writing, take a snapshot with `respira_get_snapshot` so the duplicate's pre-write state can be restored if anything goes wrong1646. Update the duplicate's `post_content` with the Gutenberg markup via `respira_update_page` or `respira_update_post`1657. Surgical fix pass — if the written page has validation issues (collapsed column widths, malformed block markup, a misconverted module), do not rewrite the whole page. Locate the specific block with `respira_find_element` and correct it with `respira_update_element`. For repeated fixes across many blocks or several pages, batch them with `respira_batch_update`1668. Log the migration result (success, warnings, manual review items)167168### Phase 4: Post-Migration Verification1691701. Summarize all migrated pages with status:171 - Design tokens registered in the block editor's global styles (token names and counts)172 - Clean migrations (no issues)173 - Migrations with warnings (flagged items needing review)174 - Failed migrations (if any)1752. List all manual review items:176 - Third-party modules that need manual replacement177 - Content sliders or advanced layouts that need enhancement178 - Custom CSS that needs to be moved to theme/Additional CSS179 - Beaver Themer layouts that need separate rebuilding1803. Provide review instructions:181 - Where to find duplicates in WordPress admin182 - How to preview pages in the block editor183 - How to delete duplicates if not wanted184185## Design Tokens186187Conversion writes now register the colors and typography they carry as named design tokens in the block editor's own global styles, and the converted pages reference those tokens instead of carrying value copies. When fixing or extending a migrated page, reuse the registered tokens (`respira_list_design_tokens` shows them) rather than re-inlining raw hex values or font stacks. And say so when you finish: the migration summary should name the tokens that were registered and note that migrated pages reference them.188189## Safety Model190191- Read-only analysis first — full Beaver Builder content audit before any changes192- Explicit user confirmation before creating any duplicates193- Duplicate-first only — never modifies live/published Beaver Builder content194- Never auto-publishes duplicates195- Snapshot before every write — `respira_get_snapshot` captures the duplicate's pre-write state, and `respira_restore_snapshot` rolls it back if a write goes wrong196- Two explicit rollback paths: restore the snapshot to revert a bad write, or delete the draft duplicates entirely to undo the migration197- Preserves all original Beaver Builder content untouched198199## Honest Disclaimer200201This skill converts Beaver Builder page structures to Gutenberg block markup and creates duplicates for review.202203It cannot:204- Guarantee pixel-perfect visual parity between builders205- Migrate Beaver Themer layouts automatically206- Convert third-party BB add-on modules207- Replicate animations or advanced effects208- Replace a thorough manual QA pass on every page209210It can:211- Map 70-85% of standard Beaver Builder modules to core Gutenberg blocks212- Preserve content, images, links, and basic layout structure213- Move you off a third-party builder dependency to native WordPress214- Save days of manual rebuild work215- Identify exactly what needs manual attention216217## Tooling218219**Core WordPress tools**220- `respira_get_site_context`221- `respira_get_builder_info`222- `respira_list_pages`223- `respira_list_posts`224- `respira_list_plugins`225- `respira_find_builder_targets`226- `respira_extract_builder_content`227- `respira_create_page_duplicate`228- `respira_create_post_duplicate`229- `respira_update_page`230- `respira_update_post`231- `respira_read_page`232- `respira_read_post`233234**Safety and surgical-fix tools**235- `respira_get_snapshot`236- `respira_restore_snapshot`237- `respira_find_element`238- `respira_update_element`239- `respira_batch_update`240241## Telemetry242243After run completion, send fire-and-forget usage tracking to:244245- `POST https://www.respira.press/api/skills/track-usage`246247Include:248- `skill_slug = migrate-beaver-builder-to-gutenberg`249- site/version context250- duration and success251- pages audited, pages migrated, warnings count252- tools used253254Never block user flow on telemetry failure.255256## Related Skills257258- WordPress Site DNA (understand site structure before migrating)259- Technical Debt Audit (clean up before or after migration)260- SEO & AEO Amplifier (verify SEO preservation post-migration)261262---263264Built by Respira Team265https://respira.press/skills/migrate-beaver-builder-to-gutenberg