Improved PHP performance for core blocks registration

Early block.json Registration Method

Starting with WordPress 5.8, extenders were encouraged to begin to utilize block.json to register blocks through a unified registration process. The benefits offered by this update provide consistency and convenience when registering blocks through PHP or JavaScript.

However, while this block.json scanning convention is extremely convenient, it does add additional processing when core blocks are instantiated. On each page load, block registration undergoes the following steps:

  • Scan folders for block.json files.
  • When a block.json file is found, read its contents into memory.
  • Call json_decode on the file contents to convert it to a PHP array.
  • Register the block using the decoded data.

With over 70 core block files to scan and load, this presented an opportunity for optimization.

Core Block Registration Update

To reduce filesystem reads and processing of block.json files, which should benefit all WordPress sites and improve performance, block registration has been updated to:

  • Introduce a new Grunt task (copy:block-json) that scans and converts core block.json files to PHP arrays and stores them in a single blocks-json.php at build time.
  • Use the new blocks-json.php file in the register_block_type_from_metadata() function.
  • Assign the block registration data to a static variable (cache) so that it’s only loaded once per request.

The addition of an extra build task to compile the decoded JSON data to PHP reduces block registration filesystem reads from ~70 files to just a single file. And since blocks-json.php is a native PHP array, it can be used directly without additional conversion.

The conversion from block.json files to PHP arrays is achieved through the json2php package, which is already utilized in Core and Gutenberg.

References

Props to @aristath for source material and collaboration, and to @milana_cap for review of this dev note.

#6-1, #dev-notes, #performance

A WordPress Commenter

Recent Posts

WordPress 7.1.1 Maintenance and Security Release

This security and maintenance release features 17 bug fixes on Core, 19 bug fixes for…

3 days ago

Performance Chat Summary: 8 September 2026

The full chat log is available beginning here on Slack. WordPress Performance Trac tickets @spacedmonkey…

2 weeks ago

Students Built 108 Websites in Two Weeks in Bangladesh

In July, students at two campuses in Kishoreganj, Bangladesh, built 108 websites. In eastern Uganda,…

2 weeks ago

WordPress Signs the Open Weights and American AI Leadership Letter

We’re proud to announce that WordPress has signed Open Weights and American AI Leadership, an…

3 weeks ago

Performance Chat Summary: 25 August 2026

The full chat log is available beginning here on Slack. WordPress Performance Trac tickets @mukesh27…

4 weeks ago

AI Creates Opportunity While Artists Ship at WordCamp US 2026

WordCamp US (WCUS) 2026 just wrapped up after 4 days at the Phoenix Convention Center in…

1 month ago