Gutenberg 23.1 update: parallel uploads and native taxonomies

Technician pulling a drive from parallel server rack storage bays

The Gutenberg 23.1 update is out. Most releases on the two-week cycle are small UI adjustments, but this one changes things below the surface. If you have ever watched a spinner crawl while uploading a folder of high-res gallery images, the performance work is the part to read.

I have watched the editor slow to a crawl on sites where media finalization was the holdup. Thumbnail sideloading used to run one request after another, which quietly cost a lot of time on media-heavy sites. This release runs those requests concurrently instead.

Performance gains in the Gutenberg 23.1 update

The main change is parallel image upload finalization. Uploading one image does not produce one file, because WordPress generates several thumbnail sizes for it. Those sideload requests used to go out one at a time. In the Gutenberg 23.1 update they run in parallel, up to a set concurrency limit.

On a WooCommerce store with large product galleries you will feel this straight away, especially on a slow connection or during a bulk upload. It is a plain fix for something that had been dragging editor performance down for years. The technical details are in GitHub PR #75888.

Native custom taxonomies (experimental)

There is also an experimental UI for managing custom taxonomies from the WordPress admin settings. Until now that meant a plugin like CPT UI, or registering them by hand in PHP. The experiment moves the job into core.

I still prefer keeping my definitions in code so they sit in version control, but plenty of site owners need a new category type without paying a developer for it every time. It is an experiment, though. Do not switch it on for a production site without a database backup first.

The Gutenberg 23.0 update pushed in the same direction, handing the site editor more of the work an admin dashboard usually does.

The “disable Classic block” filter

A quieter change lets you hide the Classic block from the inserter. The “Disable TinyMCE” experiment was refocused after removing TinyMCE everywhere broke too many older sites. What we got instead is narrower: the wp_classic_block_supports_inserter filter.

If you are handing a site to a client and want them working in blocks, this goes in your theme’s functions.php:

<?php
/**
 * Remove the Classic Block from the Gutenberg Inserter
 * bbioon_disable_classic_block
 */
add_filter( 'wp_classic_block_supports_inserter', '__return_false' );
?>

Existing Classic blocks keep working, and users just cannot add new ones. That is usually enough to stop a clean layout from filling up with legacy HTML.

New primitives for developers

The @wordpress/ui package keeps filling out. Version 23.1 adds Drawer, for slide-in panels, and Autocomplete. Both are low-level pieces, which is what you want when a custom block inspector or admin screen has to look like the rest of WordPress.

The @wordpress/grid package is in developer preview too: a two-dimensional grid component with drag-to-reorder built in. It is early, and it is what dashboard-style layouts in WordPress will be built on later.

If the Gutenberg 23.1 update is eating your dev hours, or you would rather not find out the hard way which legacy components break, I can take it on. I have been working with WordPress since the 4.x days.

My takeaway

This release is mostly about stability. The Real-time Collaboration (RTC) fixes and the move to parallel processing suggest the Gutenberg team is taking the “bloat” complaints seriously. If you work on complex sites, the official documentation covers how the new UI primitives fit into custom plugin work.

My write-up of Gutenberg 22.8 covers the collaboration logic that 23.1 is still refining, if you want the earlier half of the story.

author avatar
Ahmad Wael
I'm a WordPress and WooCommerce developer with 15+ years of experience building custom e-commerce solutions and plugins. I specialize in PHP development, following WordPress coding standards to deliver clean, maintainable code. Currently, I'm exploring AI and e-commerce by building multi-agent systems and SaaS products that integrate technologies like Google Gemini API with WordPress platforms, approaching every project with a commitment to performance, security, and exceptional user experience.