Elementor Keeps Loading: How to Fix the Editor Loading Issue

Quick Summary
- Check the browser console and any failed admin-ajax.php requests first, then enable Safe Mode under Elementor > Editor > Tools to test for plugin or theme conflicts.
- If PHP runs out of memory, set WP_MEMORY_LIMIT to 512M in wp-config.php; above 256M, WordPress uses the same value for admin screens too.
- Also check that X-Frame-Options is SAMEORIGIN, firewall rules, Cloudflare Rocket Loader and matching site URLs, and that Elementor 4.3.2 has WordPress 6.8+ and PHP 7.4+.
When the Elementor editor stays on its grey loading screen, something stopped the editor’s scripts from finishing. The usual causes are a plugin or theme conflict, PHP running out of memory, a security header or firewall that blocks the editor, and optimisation tools that delay its scripts. Open the browser console first, then test with Elementor’s Safe Mode, and raise the WordPress memory limit if the server runs out. The steps below match Elementor 4.3 on WordPress 7.1.
Step 1: Find the error
- Right-click the grey screen, choose Inspect and open the Console tab. Red errors name the script or request that failed. Errors about framing or
X-Frame-Optionspoint to a security header (step 4). - In the Network tab, reload the editor and look for failed requests to
admin-ajax.php. The editor loads its data through that file, so a 4xx or 5xx status there points to the server: memory, a PHP error or a firewall rule. - To see PHP errors, turn on the WordPress debug log for a moment. In
wp-config.php, replace the existingdefine( 'WP_DEBUG', false );line with the three lines below. Errors then go towp-content/debug.loginstead of the screen. A fatal error withAllowed memory size of ... bytes exhaustedmeans PHP ran out of memory (step 3).
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );Put define( 'WP_DEBUG', false ); back when you’re done, and delete debug.log.
Step 2: Test with Safe Mode
Elementor’s Safe Mode loads the editor without your theme and without other plugins. It only affects administrators working in the editor; visitors keep seeing the normal site. To turn it on, go to Elementor > Editor > Tools, set Safe Mode to Enable on the General tab and save. When the editor fails to load, its “Can’t Edit?” window also has an Enable Safe Mode button.
- The editor loads in Safe Mode: a plugin or the theme is the cause. Deactivate your plugins one at a time, keeping Elementor and Elementor Pro active, and reload the editor after each one. If no plugin is to blame, switch to a default theme such as Hello for a moment. Do this on a staging copy if the site is live.
- It still doesn’t load: the cause is on the server or in the browser. Go on with step 3.
Safe Mode also turns off Elementor’s experiments while it is on, so disable it again when you finish.
Step 3: Raise the PHP memory limit
Elementor asks for a WordPress memory limit of at least 256 MB, recommends 512 MB, and suggests 768 MB for best performance. Open wp-config.php in your site’s root folder and add this line, for example after define( 'WP_DEBUG', false );:
define( 'WP_MEMORY_LIMIT', '512M' );- WordPress has two memory limits.
WP_MEMORY_LIMITapplies to the front end and toadmin-ajax.phprequests, which the editor uses; it defaults to40M(64Mon Multisite) and only takes effect when it is higher than PHP’s own limit.WP_MAX_MEMORY_LIMITapplies to admin screens and defaults to256M, or to PHP’s limit when that is higher. - When
WP_MEMORY_LIMITis above 256M, WordPress uses it for admin screens too, so this one line covers both. With PHP’s limit at 128M, WordPress 7.1’s startup code gives 128M on the front end and inadmin-ajax.phpand 256M on admin screens when the constant isn’t set; with512M, all three get 512M. - Keep the line above the comment that says
That's all, stop editing. WordPress starts loading right after that comment, so constants defined below it come too late. - Check the result in Tools > Site Health > Info: WordPress Constants shows both limits and Server shows PHP’s memory limit. Elementor > Editor > System Info shows it too.
If the value doesn’t change, your host caps the memory limit. Ask them to raise it. On a server you manage yourself, raise memory_limit in php.ini instead, as in editing php.ini on a Google Cloud VM. Don’t add php_value memory_limit to .htaccess unless PHP runs as an Apache module: on an Apache server without mod_php, that line makes every request in the folder fail with a 500 error (“Invalid command ‘php_value'”). With PHP-FPM, a .user.ini file in the site root can set memory_limit = 512M; PHP re-reads it every five minutes by default.
Step 4: Security headers, firewalls and optimisation
- Frame headers. The editor shows your page inside an iframe. Elementor needs
X-Frame-Options: SAMEORIGIN, notDENY, and aContent-Security-Policywithframe-ancestors 'self', not'none'. If you added security headers yourself, as in WordPress Security 101, check those values; otherwise ask your host. - Firewall rules. If
admin-ajax.phprequests fail with no PHP error, a firewall such as ModSecurity may be blocking them. Ask your host for the ModSecurity log. Elementor also lists the PHP Zlib extension and a highermax_input_varsas things to ask for. - Script optimisation. Cloudflare’s Rocket Loader can delay or block Elementor’s scripts; turn it off or exclude the editor. Caching and JavaScript optimisation plugins can do the same, so exclude the editor or pause them while you edit.
- Site addresses. Under Settings > General, the WordPress Address and Site Address must match, including
httpsandwww. - Loader method. Under Elementor > Editor > Settings > Advanced, set Switch Editor Loader Method to Enable. Elementor describes it as a setting for server configuration conflicts.
Other things to check
- Update Elementor and Elementor Pro together. Mismatched versions can break the editor.
- Hide unused elements from your Elementor addon plugins. Many addon packs let you switch off widgets you don’t use, and Elementor’s own Element Manager does the same for its widgets, so the editor has fewer of them to load. Don’t switch off a widget that a page still uses: saving that page can remove the widget’s content.
- Try a private window with extensions off, or another browser. Ad blockers and other extensions can block editor scripts.
- If your theme shows a page preloader, turn it off; Elementor lists it as a cause.
- Check your versions. Elementor 4.3.2 needs WordPress 6.8 or later and PHP 7.4 or later, and Elementor recommends PHP 8.x. Its requirements change over time, so check the current Elementor system requirements.
Elementor’s own guide to an editor stuck on the loading screen covers a few rarer cases, such as corrupted widget data.
Related articles
- replacing Elementor with a custom theme: when a page builder has become the problem
- closing an Elementor popup menu on link click: a small fix for Elementor Pro popup menus
