What is the migrate-elementor-to-gutenberg skill?
The migrate-elementor-to-gutenberg skill converts Elementor pages to native Gutenberg blocks. It reads the widget tree, maps each widget to the closest core block, shows a plan for approval, then writes draft duplicates and leaves the original pages untouched.
The migrate-elementor-to-gutenberg skill converts Elementor-built WordPress pages to native Gutenberg blocks. It reads Elementor's JSON widget tree from post meta and maps each widget to its closest core block equivalent.
Every layout decision Elementor stores as JSON settings has to become block attributes, CSS classes, or Group and Columns structures. The skill does that translation widget by widget and flags anything that needs manual attention.
How a migration runs
- Pre-migration audit: confirms the Respira and MCP connection, checks Elementor is active, checks the WordPress version and theme, and inventories widget types, Pro widgets and add-on widgets.
- Migration plan: shows a widget mapping table and asks whether to migrate all pages, specific pages or start with a test page.
- Page-by-page migration: creates a duplicate, takes a snapshot, writes block content and fixes issues surgically.
- Verification: summarizes converted widgets and flagged items, with a checklist for each duplicate.
What it converts and what it flags
Handled widgets include Section and Column layouts, Text Editor, Heading, Image, Video, Button, Icon List, Spacer, Divider, Tabs, Accordion and Image Gallery. Elementor Pro widgets, third-party add-on widgets and form widgets are flagged for manual recreation.
Safety model
Original Elementor pages are never modified or deleted. All migrated content goes to draft duplicates, nothing is auto-published, and two rollback paths exist: restore the snapshot or delete the draft duplicates entirely.
Who the migrate-elementor-to-gutenberg skill is for
Best for
- Sites that want to eliminate page builder dependencies and go back to native WordPress blocks.
- Pages built from standard widgets such as headings, text, images, buttons and lists.
- Teams that want a plan and a reviewable draft duplicate before any page changes.
Not for
- Elementor Pro widgets such as posts grid, price table and flip box, which have no core block equivalent and are flagged for manual recreation.
- Third party addon widgets from Essential Addons, JetElements or Crocoblock, which cannot be auto mapped.
- Theme Builder templates and popups, since the skill converts page content only.
- Motion effects, parallax scrolling and entrance animations, which have no Gutenberg equivalent.
How to install Migrate Elementor to Gutenberg Skill: Pages to Native Blocks
npx skills add respira-press/agent-skills-wordpress -g -a claude-code -yThe manual route is git clone https://github.com/respira-press/agent-skills-wordpress followed by copying skills/* into ~/.claude/skills/.Check the requirements
You need the Respira for WordPress plugin installed and connected, an active MCP connection, the Elementor plugin active, WordPress 6.0 or newer (6.3 recommended for the Details block) and a block-compatible theme.
Install the skills
Run the command above. It installs every skill in the repository globally. Drop -g to install into the current project only, and swap -a claude-code for your agent, for example -a opencode.
Trigger the skill
Ask your agent to migrate Elementor to Gutenberg. Other trigger phrases include convert elementor to blocks, remove elementor dependency and go back to native wordpress.
Approve the plan
Read the migration plan and choose to migrate all pages, specific pages or a test page first. Starting with a test page is recommended for complex sites.
Check that it loaded
Open each draft duplicate in the block editor and verify the blocks are valid, then check the responsive preview and the images, links and media.
Key features
- Widget to block mappingSection and Column become Group and Columns blocks, Text Editor becomes Paragraph, Heading keeps its h1 to h6 level, and Button becomes Buttons, Icon List becomes List and Divider becomes Separator.
- Migration plan for approvalBefore any duplicate exists, the skill presents a plan with a widget mapping table and a fidelity column, and asks which pages to migrate.
- Draft duplicates onlyContent is written to duplicates created with respira_create_page_duplicate or respira_create_post_duplicate. Original Elementor pages are never modified or deleted.
- Snapshot before every writerespira_get_snapshot captures each duplicate before the write, and respira_restore_snapshot restores it if anything goes wrong.
- Surgical fix passBroken block nesting or a misconverted block is fixed with respira_find_element and respira_update_element, and repeated fixes use respira_batch_update.
- Content preservedText, inline formatting, image URLs, alt text, captions, button labels, link targets and heading hierarchy carry over, and color values become block-level styles.
- Design token registrationConversion registers the colors and typography it carries as named design tokens in the block editor's global styles, and converted pages reference them.
- Flagged manual itemsUnmappable widgets are marked with a MIGRATION NOTE comment, and the final report lists items needing manual recreation and layout differences.
- Review linksrespira_create_review_link sends a Murmur review link so a reviewer can open a draft with no WordPress login and pin notes to elements.
Frequently asked questions
What does the migrate-elementor-to-gutenberg skill do?
It converts Elementor-built WordPress pages to native Gutenberg blocks. It reads the widget tree stored in the _elementor_data post meta, maps each widget to the closest core block, presents a migration plan for approval and writes the result to draft duplicates. Your original Elementor pages stay untouched.
How do I install it?
Run npx skills add respira-press/agent-skills-wordpress -g -a claude-code -y. That installs every skill in the repository globally. Remove -g to install into the current project only, and replace claude-code with another agent such as opencode. It also needs the Respira for WordPress plugin connected over MCP.
Which widgets are converted?
Section and Column layouts, Text Editor, Heading, Image, Video, Button, Icon List, Spacer, Divider, Google Maps, Tabs, Accordion, Image Gallery and Custom HTML are mapped to core blocks. Counter and Progress Bar become HTML or Group block approximations, and responsive visibility becomes block-level classes that depend on the theme.
What does it not convert?
Complex multi-column layouts may need manual adjustment. Elementor Pro widgets such as posts grid and price table are flagged for manual recreation, as are third-party add-on widgets, dynamic content, Theme Builder templates, advanced animations, form widgets and popup content. Expect a cleaner but less visually identical result.
Will it change my live Elementor pages?
No. The skill never modifies or deletes the original Elementor pages. All migrated content goes to draft duplicates, and it never auto-publishes. It takes a snapshot of each duplicate before writing, so you can restore it with respira_restore_snapshot or delete the draft duplicates entirely.
What do I need before running it?
You need the Respira for WordPress plugin installed and connected, an active MCP connection, the Elementor plugin active to read source content, WordPress 6.0 or newer with 6.3 recommended for the Details block, and a block-compatible theme such as Twenty Twenty-Three, Astra, Kadence or GeneratePress.
How are colors and fonts handled?
Conversion registers the colors and typography it carries as named design tokens in the block editor's own global styles, and converted pages reference those tokens instead of carrying value copies. The migration summary names the tokens that were registered. When you fix or extend a migrated page, reuse the registered tokens rather than re-inlining raw values.
How do reviewers see the migrated drafts?
The skill calls respira_create_review_link with the duplicate ids to send a Murmur review link. Reviewers open the page with no WordPress login on any device and leave notes pinned to elements. Murmur is on the Builder plan and up, and a look-only share link is the alternative.


