WordPress Gutenberg Editor Showing a Grey Screen? The Fix Is in Your CSP

When I updated WordPress to the latest version, everything looked fine at first. Until I tried to create a new post. Instead of the Gutenberg editor, I saw nothing but a grey screen with a broken file icon. No error message, no warning — just a blank interface where the editor should be. Like this:

WordPress Gutenberg Editor Showing a Grey Screen? The Fix Is in Your CSP

If you’re seeing the same thing, you’re not alone. This issue is more common than it seems, and the real cause is not a theme or plugin conflict. The problem is a Content-Security-Policy (CSP) header that silently blocks part of the editor from loading.

Here’s exactly what I found, how I identified the root cause, and the fix that finally restored my WordPress editor.

The Symptom: Gutenberg loads as a grey screen

When opening:

/wp-admin/post-new.php

the page displayed:

  • a flat grey background
  • a minimal broken icon
  • no blocks, sidebar, buttons, or error messages

This happens before Gutenberg even initializes.

The Investigation: looking at the browser console

The first real clue appeared in the browser console (Chrome DevTools).
This is the key screenshot you’ll want to check.

Console error showing Content-Security-Policy blocking blob: iframe used by the WordPress editor.
Console error: the server’s CSP blocks the blob: iframe required by Gutenberg.

Console Error Example

The console displayed:

Framing 'blob:https://yourdomain.com/…' violates the Content Security Policy directive 
"default-src 'self' 'unsafe-inline' 'unsafe-eval' data: https:".

Not allowed to load local resource: blob:https://yourdomain.com/…

That was the breakthrough.

The Root Cause: CSP blocking blob: resources

Modern versions of Gutenberg use iframe sandboxes powered by URLs that begin with:

blob:https://yourdomain.com/...

These are temporary, in-browser URLs that the editor uses internally.

But my server was sending this CSP header:

default-src 'self' 'unsafe-inline' 'unsafe-eval' data: https:;

Notice what’s missing?

👉 blob: is not allowed.

This means:

  • WordPress tries to load an iframe using blob:
  • the CSP blocks it
  • the iframe returns null
  • Gutenberg fails and shows a grey screen

The fix is simply to allow blob:.

The Fix: update the CSP to allow blob:

My hosting support confirmed the solution and provided the exact rule to add inside the site’s .htaccess file:

<IfModule mod_headers.c>
    Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' data: https: blob:;"
</IfModule>

After saving the .htaccess file, I reloaded the editor…

and Gutenberg immediately came back to life.

No theme changes, no plugin issues, no PHP rollback — just one missing directive in the CSP.

Where to check your CSP

You can inspect your headers by opening:

Chrome DevTools → Network → click post-new.php → Headers → Response Headers

Look for:

Content-Security-Policy: …

If you do NOT see blob: in your default-src (or child-src / frame-src), your editor may fail for the same reason.

Network Headers Example

Screenshot of Response Headers showing a Content-Security-Policy without blob:
Response headers: CSP missing blob: — this blocks the Gutenberg iframe.

Why allowing blob: is safe

Many people wonder whether enabling blob: lowers security.

The short answer: no.

blob: URLs:

  • are generated locally by the browser
  • cannot be accessed cross-origin
  • cannot load remote scripts
  • are destroyed when the page closes

Platforms like WordPress.com, Notion, GitHub, Figma, Google Workspace and many others rely on blob: every day.

The insecure parts of your CSP (if any) are unsafe-inline and unsafe-eval, not blob: — and those are usually required because of older themes or plugins.

If your hosting applies CSP automatically

Some hosting providers add CSP headers at the server level, outside .htaccess.
If that’s your case, you can send your provider a message like:

“The WordPress editor uses blob: URLs for iframe sandboxing.
Please update the Content-Security-Policy for my domain to include blob: in default-src or frame-src.”

This resolves the issue 100% of the time.

Final Takeaway

If Gutenberg loads a grey screen with no interface, the most likely cause is:

Your server’s Content-Security-Policy is blocking blob:.

The fix is simple:

✔️ Add blob: to default-src (or frame-src)
✔️ Save .htaccess
✔️ Reload the editor

And everything goes back to normal.

If this tip helped you fix the “WordPress Gutenberg editor not working” issue, feel free to leave a comment below. And if you’ve found another solution or insight, I’d love to hear it — share it in the comments!

Related articles

The Gender Pay Gap in Italy: Why Women Still Earn Less Than Men

The gender pay gap in Italy continues to be...

Hydrogen on Board: Italy Leads the Cruise Tech Revolution with Viking Libra

Italy is officially sailing into the future. In a...

Money in the Middle Ages

What role did money play in the Middle Ages?...

Top Podcasts for Book Lovers

If you love books but don’t always have time...

Projects

Tuscany.Tips
English

Tuscany.Tips

Tuscany.Tips is a travel guide designed to inspire and assist English-speaking travelers exploring the stunning region of Tuscany. With a focus on authentic experiences,...
Milan.Tips homepage
English

Milan.Tips

Milan.Tips is a travel guide crafted for English-speaking visitors eager to uncover the essence of Milan. Known as a global capital of fashion and...
Sicilia Mare homepage
Italian

SiciliaMare.info

SiciliaMare.Info is a trusted travel portal written in Italian, dedicated to uncovering the charm of Sicily. Since its launch in June 2010, the site...