Fix Elementor Stuck on Loading Screen in WordPress

by Fahim

Stuck staring at Elementor’s grey screen and infinite spinning wheel? I’ve lost hours to this exact issue on client sites. It almost always comes down to exhausted PHP memory, a rogue plugin throwing an unhandled JS error, or an iframe permission block. Here is how to trace what’s actually breaking and get your editor back up.

Close-up of browser developer console debugging WordPress Elementor loading errors
Close-up of browser developer console debugging WordPress Elementor loading errors

Step 1: Check the Browser Console for the Exact Failure

Don’t start changing random settings in wp-admin yet. Open your browser tools to see what fails when Elementor tries to mount its iframe. In 90% of cases, you’ll spot a 500 error, a 403 forbidden call, or a fatal JavaScript exception right away.

On the broken editor page, right-click anywhere and hit Inspect (or press Ctrl + Shift + I / Cmd + Option + I). Switch to the Console tab and reload the page.

Look for red error lines. Here’s what the most common errors actually mean:

  • admin-ajax.php 500 (Internal Server Error): Your server ran out of PHP memory or hit a fatal error while building the editor controls.
  • Failed to load resource: the server responded with a status of 403: A security plugin, ModSecurity rule, or WAF blocked Elementor’s REST API or ajax call.
  • Uncaught TypeError: Cannot read property of undefined: A third-party widget pack or caching script is loading out of order or calling deprecated hooks.
  • Mixed Content blocked: Your site runs on HTTPS, but WordPress is trying to pull the editor preview over plain HTTP.

Step 2: Increase the PHP Memory Limit to 512MB

Elementor needs at least 256MB of PHP memory to function, but if you’re running WooCommerce or a few addon packs, even 256MB can choke during editor initialization and leave you with a permanent spinner. I usually push sites to 512MB.

Open your wp-config.php file via FTP or your host’s file manager, and add these lines right above the /* That's all, stop editing! Happy publishing. */ comment:

define('WP_MEMORY_LIMIT', '512M');
define('WP_MAX_MEMORY_LIMIT', '512M');

If your host doesn’t let you override memory from wp-config.php, drop these directives at the very top of your root .htaccess file instead:

php_value memory_limit 512M
php_value max_execution_time 300
php_value max_input_vars 3000

If your hosting environment ignores both of these, check our guide on how to increase PHP memory limit in WordPress for panel-specific steps.

Step 3: Enable Safe Mode and Switch Editor Loader Method

Elementor has built-in diagnostics that help determine whether the freeze is caused by your server configuration or a theme/plugin conflict.

Head to WP Admin > Elementor > Tools > General. Set the Safe Mode dropdown to Enable and save. Safe Mode creates a clean workspace by loading pure Elementor core files without affecting front-end visitors, as covered in the Elementor Safe Mode documentation.

If Safe Mode doesn’t fix it, try changing how the editor script injects its iframe:

  1. Go to WP Admin > Elementor > Settings > Advanced.
  2. Find Switch Editor Loader Method.
  3. Toggle it from Disable to Enable.
  4. Click Save Changes.

This tells Elementor to use direct sub-requests rather than standard internal routing, which fixes loading hangs on shared hosting environments that struggle with iframe parent-child communication.

Step 4: Isolate Incompatible Addons and Third-Party Plugins

If Safe Mode loads the editor instantly, you’re dealing with a conflicting plugin or theme script. Outdated add-ons frequently break when Elementor pushes major core updates. If you recently dropped in custom scripts (similar to what we cover in our guide to install CodeCanyon PHP scripts on shared hosting), version mismatches are a common culprit.

Here’s the fastest way to find the culprit:

  1. Head to Plugins > Installed Plugins.
  2. Select everything except Elementor and Elementor Pro.
  3. Deactivate them in bulk.
  4. Try opening your page in Elementor again.

If the editor loads right up, turn your plugins back on one by one, refreshing the editor after each. The usual suspects include:

  • Outdated widget packs (Essential Addons, Ultimate Addons, Happy Addons).
  • Performance plugins aggressively concatenating or minifying backend scripts.
  • Security plugins injecting strict Content Security Policy (CSP) headers.

Step 5: Fix Site URL Mismatch and Mixed Content

Elementor relies on the REST API and the JavaScript window.location object to bridge the editing sidebar with the live preview. If your site URL in WordPress settings doesn’t match the exact URL in your browser bar (like http:// vs https://, or www vs non-www), the browser blocks the iframe due to CORS restrictions.

Check your URLs under Settings > General:

  • WordPress Address (URL): https://yourdomain.com
  • Site Address (URL): https://yourdomain.com

They need to match character-for-character. If you’re debugging DNS or SSL certificate handoffs, see our walkthrough to point Namecheap DNS to hosting to make sure your routing resolves cleanly.

To force clean HTTPS redirects across all assets, add this block to your root .htaccess file before the main WordPress rules:


RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Once that’s in place, go to WP Admin > Elementor > Tools > Replace URL. Put your old http:// address in the first field, your new https:// address in the second, and click Replace URL.

Step 6: Disable Cloudflare Rocket Loader and Aggressive Caching

Cloudflare Rocket Loader defers JavaScript execution to speed up page rendering. That’s great for public traffic, but it wrecks Elementor’s synchronous boot sequence when initializing the editor workspace.

If you’re using Cloudflare, add a rule to bypass caching and script deferral on editor pages:

  1. Log into Cloudflare and open Rules > Page Rules (or Configuration Rules).
  2. Set the match pattern to: *yourdomain.com/*elementor*
  3. Add these actions: Rocket Loader: Off, Disable Performance, and Cache Level: Bypass.
  4. Save and deploy.

If you run WP Rocket, LiteSpeed Cache, or Autoptimize, exclude Elementor query strings and assets from JS minification:

/wp-admin/admin-ajax.php
elementor-preview
wp-content/plugins/elementor/assets/js/

Step 7: Regenerate Elementor CSS and Clear Cache

Corrupted stylesheet files or stale internal transients can stall the render loop. Wiping the compiled assets forces Elementor to rebuild its entire style tree.

  1. Navigate to WP Admin > Elementor > Tools > General.
  2. Click Regenerate Files & Data.
  3. Click Sync Library right below it to pull fresh template definitions.
  4. Purge your server-side cache (Redis, Varnish, or LiteSpeed) and clear your browser cache.

If the editor is still hanging silently, turn on the built-in WordPress debug configuration in your wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Now reload Elementor and inspect /wp-content/debug.log. It will point you straight to the exact PHP file, line number, and stack trace causing the halt.

Frequently Asked Questions

Why does Elementor work on some pages but get stuck on others?

This usually points to broken content on that specific page—like an unclosed tag inside an HTML widget, a bad shortcode, or a query loop pulling in thousands of dynamic posts that exhausts server memory. Create a blank test page; if it opens fine, the problem is definitely page-specific markup or queries.

Why does Elementor load in Safe Mode but not normal mode?

Safe Mode isolates Elementor from all other active plugins and loads a neutral theme canvas in the editor. If Safe Mode works, you 100% have a conflict with another plugin or your active theme.

Can an outdated PHP version cause Elementor to hang?

Yes. Elementor requires PHP 7.4 or higher, and runs best on PHP 8.1 or 8.2. Older versions like PHP 7.2 throw syntax and fatal errors during modern library parsing.

What should I do if admin-ajax.php returns a 403 Forbidden error?

A 403 on admin-ajax.php means a security firewall (Wordfence, iThemes, Cloudflare WAF, or server-level ModSecurity) is blocking the editor’s AJAX requests. Whitelist your IP in the plugin or temporarily disable ModSecurity in your hosting control panel to verify.

Next Steps

With the editor loading smoothly again, make sure your backend has enough memory and stability to handle automated workflows and integrations. If you’re building out conversion funnels, take a look at our guide on how to use merge fields in emails and SMS workflows to keep your marketing stack synced and reliable.

all_in_one_marketing_tool