Skip to content
WordPress

Gutenberg Not Working in WordPress: Fix for Every Failure

WordPress block editor not loading or showing errors blocks all editing. Here are all the fixes — JS conflicts, cache, block validation, missing patterns, REST API, and FSE issues.

Gutenberg Not Working in WordPress: Fix for Every Failure

The WordPress block editor — Gutenberg — loads a blank white screen instead of the editor. Or blocks stop appearing in the inserter panel. Or the editor loads but the Save button does nothing. Or certain block types show an “unexpected or invalid content” error. Or the classic editor loaded fine and the switch to Gutenberg broke everything. WordPress block editor problems are common during plugin updates, WordPress version upgrades, and browser cache stale states, and each failure pattern points to a specific and fixable cause. We go deeper on the whole subject in our WordPress Errors Complete Guide.

WordPress Block Editor Not Loading — First Steps

When the WordPress block editor fails to load entirely — showing a white screen, a spinner that never resolves, or a “The editor has encountered an unexpected error” notice — the cause is almost always a JavaScript conflict. The block editor is a React-based application and a single JavaScript error from a plugin or theme prevents the entire editor from initialising.

Open the browser console immediately (F12 → Console tab) and reload the block editor page. Red error entries name the failing script — typically a plugin file or a theme script loaded on the admin page. The error message usually includes the plugin name in the file path, making identification instant. Common culprits include plugins that enqueue JavaScript on all admin pages without checking whether the current page is the editor, and theme functions.php files that inject scripts into admin pages without proper conditional checks.

Test the WordPress block editor with all plugins disabled: use the Health Check plugin’s Troubleshooting Mode → enable → reload the post editor. If the editor loads correctly with all plugins off, reactivate plugins one at a time, reloading the editor after each, until the conflict reappears. The last reactivated plugin is the cause. Check whether an update is available for that plugin — the conflict is often already fixed in the latest version. If no update is available, check the plugin’s support forum for reports of block editor incompatibility and contact the developer. Our guide on fixing WordPress plugin conflict errors covers the full isolation methodology that applies whenever a plugin is suspected of breaking the WordPress block editor.

Block Editor JavaScript Errors and Cache Issues

After a WordPress update, the WordPress block editor sometimes breaks because the browser has cached an older version of the editor’s JavaScript files that is incompatible with the newly updated WordPress PHP code. The editor loads but throws JavaScript errors because the cached JS file references functions or API endpoints that changed in the new version.

Hard-refresh the browser: Ctrl+Shift+R (Windows/Linux) or Cmd+Shift+R (Mac). This bypasses the browser cache and forces fresh JavaScript files to load. If the editor works after a hard refresh, the browser cache was the cause — no WordPress-level change is needed. For visitors or team members experiencing the same issue, clearing the browser cache (Ctrl+Shift+Delete → Cached images and files → All time) permanently resolves it for that browser.

WordPress’s own script versioning should prevent cache mismatches, but caching plugins that aggressively cache admin-side assets can interfere. If the hard refresh does not resolve the WordPress block editor loading issue, purge all caches: the caching plugin’s full cache purge + any CDN purge if admin pages are CDN-cached. Some CDN configurations incorrectly cache admin pages — add /wp-admin/ to the CDN bypass rules so admin pages are always served fresh. After purging, reload the editor and confirm the correct WordPress version’s editor scripts are loading (check the JS file URLs in the browser Network tab — the version number in the query string should match the current WordPress version). Our guide on clearing WordPress cache safely covers the full multi-layer cache purge procedure relevant when caching is interfering with the WordPress block editor.

Block Validation Errors and Corrupted Block Markup

A WordPress block editor validation error that says “This block contains unexpected or invalid content” means the block’s stored HTML does not match what the block type expects. This happens when a plugin that created the block is deactivated or updated and changes its markup structure, or when the post content was edited outside the block editor (via the classic editor or a database tool) and the block comment delimiters became malformed.

Each invalid block in the editor shows three options: Attempt Block Recovery (WordPress tries to reparse the stored HTML into valid block markup), Convert to HTML (keeps the raw HTML exactly as stored), and Keep as HTML. Attempt Block Recovery resolves most WordPress block editor validation errors without losing content. If recovery fails, Convert to HTML preserves all the content as a raw HTML block that displays correctly on the front-end, even though it loses the interactive block controls. For posts with many corrupted blocks, the block editor’s “Copy All Content” → switch to Classic editor → paste → switch back to block editor re-parses the entire post content fresh, often resolving multiple block validation errors simultaneously.

Prevent future WordPress block editor block corruption by always deactivating plugins gracefully rather than deleting them outright. When a plugin that registers custom blocks is deleted without first converting its blocks to HTML or core blocks, every post using those custom blocks develops validation errors. Before deleting a block plugin, open each post that uses its blocks → convert those blocks to Core Blocks or HTML → save → then deactivate and delete the plugin. This sequence eliminates all block validation errors before they occur rather than requiring post-by-post repairs after the plugin is gone.

Block Inserter Missing Blocks and Pattern Issues

The WordPress block editor inserter panel showing fewer blocks than expected — or specific block categories missing entirely — is a registration issue where blocks have not been correctly enqueued for the current post type or page context.

Confirm which blocks are available: in the block editor, click the “+” icon to open the inserter → browse all categories. If standard Core blocks (Paragraph, Image, Heading) are present but third-party blocks are missing, those plugins registered their blocks incorrectly or are not activating their block scripts in the current context. Check the plugin settings for any option that limits which post types the plugin’s blocks appear in. Some block plugins restrict their blocks to specific post types (e.g., only on “page” but not “post”) through a setting that is not immediately obvious.

Block patterns and the patterns library require a functioning REST API connection, because patterns are fetched from WordPress.org’s pattern directory. If the WordPress block editor patterns tab is empty or showing a loading spinner that never resolves, the REST API request to the patterns API is failing. Check: navigate to yoursite.com/wp-json/ — if this returns an error rather than JSON, the REST API is blocked. Common causes are security plugins disabling the REST API, a .htaccess rule blocking /wp-json/, or an invalid WordPress URL configuration. Restoring REST API access resolves the pattern loading issue and may also fix other WordPress block editor features that depend on REST API communication, including autosave, revision history, and the media library modal. According to the WordPress developer handbook, the block editor requires a functioning REST API for all write operations — saving, autosaving, and fetching block patterns all transit through the /wp/v2/ REST API namespace.

Block Editor Performance and Full Site Editing Issues

The WordPress block editor loading slowly — taking 10+ seconds to become interactive, or freezing when switching between blocks — is a PHP memory or browser memory issue rather than a JavaScript conflict. Large posts with hundreds of blocks, embedded videos, or complex nested structures strain both PHP (which processes the stored block markup) and the browser’s React virtual DOM.

Increase PHP memory: add define('WP_MEMORY_LIMIT', '256M'); to wp-config.php and define('WP_MAX_MEMORY_LIMIT', '512M');. The block editor’s PHP backend processes block markup on every save and load — insufficient memory causes timeouts that manifest as the editor hanging or saving silently failing. After increasing memory, reload the editor — if it now saves correctly, memory exhaustion was causing the failure. For posts with extremely large block counts (500+ blocks), consider splitting the content across multiple posts linked with navigation, as single posts with hundreds of blocks exceed the practical limits of the editor’s performance regardless of available memory.

Full Site Editing (FSE) with block themes introduces a different set of WordPress block editor issues specific to template and template part editing. The Site Editor (Appearance → Editor) uses the same block editor infrastructure but operates on templates rather than posts. When the Site Editor loads blank or does not save template changes, the issue is often a theme.json parsing error or a template file with invalid block markup syntax. Enable WordPress debug mode → reload the Site Editor → check /wp-content/debug.log for theme.json parsing errors. A malformed theme.json value (incorrect color format, missing quotes, trailing comma in JSON) causes the entire Site Editor to fail silently. Validating the theme.json file against the JSON schema at json-schema.org identifies syntax errors before they break the Site Editor. For child block themes, ensure the child theme’s theme.json is valid independently — WordPress merges parent and child theme.json values and a child-side syntax error breaks both. Our guide on fixing WordPress fatal errors covers the debug mode and error log access that also applies when WordPress block editor failures produce PHP fatal errors rather than JavaScript errors.

Checking for WordPress core file corruption resolves a rare but real WordPress block editor failure where the editor’s PHP files were partially overwritten during a failed update. Navigate to WordPress admin → Dashboard → Updates — if WordPress is showing the current version but suggests reinstalling, click “Re-install version X.X.X.” This replaces all core files with clean copies without affecting wp-content or the database. After the reinstall, reload the editor — if it now loads correctly, core file corruption was preventing proper editor initialisation. The reinstall procedure is safe to run on a live site and takes under two minutes.

The WordPress block editor stores autosave and revision data in the database, and on sites with very high post counts or long-running sites, the wp_posts and wp_postmeta tables can become very large. Slow database queries when loading editor metadata (revisions, autosaves, post meta) cause the editor to load slowly or time out before becoming interactive. Running WP-Optimize → Database → Delete all post revisions (keeping the last 5 per post) reduces the revision count without losing recent history. After optimising the database, reload the editor on a post that was previously slow — query time for loading editor metadata drops significantly on a well-optimised database, restoring responsive WordPress block editor performance without any PHP or server-level changes. Our guide on fixing WordPress admin dashboard slow loading covers the broader database optimisation that improves all admin performance including editor load times.

Some hosting environments restrict the WordPress block editor from saving because their PHP upload_max_filesize or post_max_size is too small to handle large block-rich posts. A post with many image blocks, embedded content, and complex layouts can exceed 2MB when serialised as block markup — and if post_max_size is set to 2MB, WordPress silently fails to save the post. The editor shows no error message; the save button appears to process but the draft is never updated. Increase post_max_size and upload_max_filesize in php.ini (or via cPanel → PHP Settings) to at least 32M. After increasing these values, attempt to save the large post again — the silent save failure resolves immediately once PHP accepts the full request body.

Accessibility issues in the WordPress block editor — keyboard navigation not working between blocks, screen readers not announcing block changes, or focus trapping preventing escape from a block — are browser and assistive technology compatibility issues rather than WordPress bugs in most cases. Chrome and Firefox both support the block editor’s keyboard navigation fully; Safari has historically had minor focus management issues with React applications. If the editor’s keyboard shortcuts (/ to open the block inserter, Ctrl+Z to undo, Tab to navigate between block controls) are not working, first test in Chrome to confirm whether the issue is browser-specific. Disabling browser extensions that intercept keyboard shortcuts (password managers, tab management extensions) is the next step, as extension keyboard shortcut conflicts with Gutenberg’s shortcut system are a documented but overlooked cause of block editor keyboard navigation failures.

For teams using a headless WordPress setup where the WordPress block editor is used as the content editing interface but the front-end is a Next.js, Nuxt, or Gatsby application, block editor failures often relate to the decoupled REST API authentication rather than the WordPress admin configuration. Verify that the JWT or application password credentials the headless front-end uses to authenticate with the WordPress REST API are still valid — expired or revoked credentials cause block save failures that look identical to server-side errors from the editor’s perspective. Regenerate application passwords for any service account used by the headless front-end and update the credentials in the front-end environment variables to restore correct save behaviour.

Nikolas Lamprou

Nikolas Lamprou (MSc; GCFR, SC-200, Security+) has been working with computers professionally since 2009 — starting with web development and e-commerce, and moving into cybersecurity over the years. Based in Greece, he brings over 15 years of real-world IT experience to SolveTechToday, where he writes about Windows fixes, software reviews, security tools, and AI applications. His goal is straightforward: cut through the noise and give readers clear, honest guidance on the tech decisions that matter.

Stay Ahead

Fix your next problem before it starts

Get the week's best Windows fixes, software picks, and security guides delivered straight to your inbox. No noise, just solutions.

Press ESC to close · Try "Windows 11" or "Chrome"