
Convert to Blocks transforms classic editor content to blocks on-the-fly.
Convert to Blocks is a WordPress plugin that transforms classic editor content to blocks on-the-fly. After installing Gutenberg or upgrading to WordPress 5.0+, your content will be displayed in “Classic Editor Blocks”. While these blocks are completely functional and will display fine on the frontend of your website, they do not empower editors to fully make use of the block editing experience. In order to do so, your classic editor posts need to be converted to blocks. This plugin does that for you “on the fly”. When an editor goes to edit a classic post, the content will be parsed into blocks. When the editor saves the post, the new structure will be saved into the database. This strategy reduces risk as you are only altering database values for content that needs to be changed.
Note that Inner Blocks Transforms is only supported with the Gutenberg Plugin 10.9.0+.
Screenshots

Bulk migration using the wp convert-to-blocks start WP-CLI command that converts posts iteratively in the browser without requireing any manual input.
FAQ
How Do I Know It’s Working?
Find a classic editor in the post, try to navigate away from the page. You will get an error saying your changes will be discarded. This is because Convert to Blocks converted your content to blocks on the fly and those changes will be saved when you update the post.
Will Convert to Blocks Handle My Custom Blocks?
By default it will not.
Will Convert to Blocks Handle Nested Blocks?
Nested / Inner Block support does not work with Gutenberg bundled with WordPress Core <=5.7.2. This feature needs the Gutenberg Plugin >=10.9.0.
ChangeLog
1.3.4 – 2025-07-15
1.3.3 – 2025-07-14
- Added: Link to settings page from the plugin list page (props @badasswp, @dkotter via #195).
- Changed: Bump WordPress “tested up to” version 6.8 (props @jeffpaul via #199, #200).
- Changed: Bump WordPress minimum supported version to 6.6 (props @jeffpaul via #199, #200).
- Fixed: Fix PHP warning due to undefined array key (props @sksaju, @dkotter via #202).
- Fixed: i18n functions being called too early, causing PHP Notices (props @stormrockwell, @dkotter, @dsawardekar via #203).
- Security: Bump
cookie from 0.4.2 to 0.7.1, express from 4.21.0 to 4.21.2, @wordpress/e2e-test-utils-playwright from 1.7.0 to 1.18.0, serialize-javascript from 6.0.0 to 6.0.2 and mocha from 10.4.0 to 11.1.0 (props @dependabot, @Sidsector9 via #194).
- Security: Bump
axios from 1.7.4 to 1.8.3 (props @dependabot, @iamdharmesh via #196).
- Security: Bump
http-proxy-middleware from 2.0.6 to 2.0.9 and tar-fs from 3.0.8 to 3.1.0 (props @dependabot, @dkotter via #206).
1.3.2 – 2025-02-03
1.3.1 – 2024-08-20
- Changed: Bump WordPress “tested up to” version 6.6 (props @sudip-md, @jeffpaul, @Sidsector9, @ankitguptaindia via #174).
- Changed: Bump WordPress minimum from 6.3 to 6.4 (props @sudip-md, @jeffpaul, @Sidsector9, @ankitguptaindia via #174).
- Fixed: Issue with saving a post before the convert to blocks transform was completed (props @mdesplenter, @Sidsector9, @dsawardekar via #173).
- Security: Bump
braces from 3.0.2 to 3.0.3 (props @dependabot, @Sidsector9 via #168).
- Security: Bump
ws from 7.5.9 to 7.5.10 (props @dependabot, @Sidsector9 via #169).
1.3.0 – 2024-05-14
- Added: Block Catalog integration, and pagination support (props @dsawardekar, @iamdharmesh via #164).
- Changed: Adjust
enable_block_editor method only to alter posts that support the gutenbridge (props @stormrockwell, @Sidsector9, @jeffpaul, @dsawardekar via #136).
- Changed: Bump WordPress “tested up to” version 6.5 (props @QAharshalkadu, @jeffpaul, @Sidsector9, @sudip-md, @dkotter via #146, #161).
- Changed: Replaced lee-dohm/no-response with actions/stale to help with closing no-response/stale issues (props @jeffpaul via #159).
- Changed: Bump Node version from 16 to 20 (props @aaronjorbin, @Sidsector9, @dkotter via #160).
- Changed: Bump
actions/upload-artifact from v3 to v4 (props @iamdharmesh via #162).
- Security: Bump
follow-redirects from 1.15.2 to 1.15.4 (props @dependabot, @dkotter via #153).
- Security: Bump
browserify-sign from 4.0.4 to 4.2.2 (props @dependabot, @dkotter via #145).
- Security: Bump
@babel/traverse from 7.11.5 to 7.23.7 (props @dependabot, @dkotter via #155).
- Security: Remove old dependencies in favor of using
@wordpress/scripts in our build workflow (props @Sidsector9, @dkotter via #167).
View historical changelog details here.