Elementor stuck on the loading screen: how to find the cause and fix it
When Edit with Elementor never finishes loading, one of the editor's requests has failed or one of its scripts has stopped. The browser's Console and Network panel and Elementor's Safe Mode show which. Then one fix applies, most often a plugin conflict, memory, or a blocked request.
- By
- WP Ministry
- Published
- Tested on
- WordPress 7.1.3, PHP 8.3.35
In short
- Nothing is lost. The pages you built are as you left them and visitors still see them. What has failed is the editor starting up.
- Look before you change anything. A red error in the browser's Console, or a request marked 403 or 500 in its Network panel, names the cause.
- Elementor's Safe Mode loads the editor without your theme and other plugins, for your browser only. If the editor loads in it, a plugin or the theme is the cause.
- Elementor asks for a WordPress memory limit of 256 MB. Its System Info screen shows what the site has.
- Keep Elementor, Elementor Pro and every Elementor add-on on versions made for each other. Update them together.
- Open the editor in a private window before blaming the site. A browser extension can stop the editor's scripts.
Elementor's editor is a screen in your dashboard that loads a large set of scripts, asks the server for its widgets, and opens your page in a frame. "Stuck on loading" means one of those steps did not finish, so the loading animation is never taken away. It is a symptom with several causes, and the browser can tell you which one you have.
Nothing is lost. The pages you built are as you left them, and visitors see the site as before. What you cannot do is edit.
Two other Elementor messages, "The preview could not be loaded" and the one that says the content area was not found, are different faults with their own causes. This page does not cover them.
Find out which cause it is
Guessing costs an afternoon. Four checks, each a few minutes, narrow it to one cause.
Step 1: Read the Console
Open the stuck editor, then open the browser's developer tools. In Chrome press Ctrl+Shift+J on Windows or Cmd+Option+J on a Mac. In Firefox it is Ctrl+Shift+K or Cmd+Option+K, and in Edge it is F12. Choose Console and reload the page.
Errors are shown in red, each with the file and line it came from. Read the address of the file. A path through
wp-content/plugins/followed by another plugin's folder, or throughwp-content/themes/, names the plugin or theme at fault.Step 2: Read the Network panel
In the same tools choose Network and reload the page. The panel records requests only while it is open. The Status column holds each request's response code.
Look for a row that is not 200, above all
admin-ajax.php, anything underwp-json, and the row for your own page withelementor-previewin its address. Click the row and open Response to see what the server sent back.Step 3: Try Elementor's Safe Mode
Safe Mode is Elementor's own test for a conflict. The setting describes itself: "Safe Mode allows you to troubleshoot issues by only loading the editor, without loading the theme or any other plugin." The first fix below shows how to use it and how to read its answer.
Step 4: Open System Info
In the dashboard go to Elementor, then Editor, then System Info. Older versions list System Info directly under Elementor. The screen shows the PHP version, the memory limits, every active and must-use plugin with its version, and a section named "Elementor - Compatibility Tag". The Download System Info button saves it as a file to send to whoever helps you.
Then match what you saw.
| What you saw | Likely cause | Go to |
|---|---|---|
| A red Console error naming another plugin's or the theme's file | A plugin or theme conflict | Test in Safe Mode |
| The editor loads in Safe Mode | A plugin or theme conflict | Test in Safe Mode |
| A request answers 500, in Safe Mode too | A PHP error in code Safe Mode cannot switch off, or memory | The second and third fixes |
The row with elementor-preview answers 500 | Memory, or a PHP error on the page itself | Raise the memory limit |
admin-ajax.php or a wp-json request answers 403 | A rule or a security plugin refuses it | Find what answers 403 |
A Console error about X-Frame-Options or frame-ancestors | A header forbids the preview frame | Find what answers 403 |
err_content_decoding_failed or err_empty_response | The server cannot pass on the page | Switch the loader method |
| The editor loads in a private window | A browser extension, or the browser's stored copy of old scripts | Try a private window |
| An update of Elementor, Elementor Pro or an add-on came just before | Versions that do not match | Bring the versions in line |
If a response contains a PHP message you do not recognize, paste it into the WordPress error decoder, which says what the message means and where to go next.
Where it goes wrong
A page request passes through each of these in turn. This one comes from a plugin.
- Browser
- DNS
- HTTPS
- CDN or firewall
- Web server
- PHP
- WordPress (this error comes from here)
- Database and files
What causes it
Another plugin or the theme breaks the editor
CommonThe editor runs alongside the code of every active plugin and the theme. A script error in one of them, or a PHP error in one of them while it answers the editor's request, stops the editor before it finishes loading.
Fix: Test in Safe Mode, then find the plugin or theme, or Find the PHP error that Safe Mode cannot switch off
PHP runs out of memory while the editor loads
CommonElementor's stated requirement is a WordPress memory limit of 256 MB. A new WordPress site asks for 40 MB on public pages, and the page inside the editor's preview is loaded as a public page.
A cache, a minifier or a CDN feature changes the editor's scripts
CommonThe editor's scripts have to run in order. A feature that delays, defers, combines or rewrites JavaScript, such as Cloudflare's Rocket Loader, can leave the editor waiting for a script that has not run.
Fix: Stop caches and optimizers from changing the editor's scripts
A server rule or a security plugin refuses the editor's requests
SometimesThe editor fetches its widgets from wp-admin/admin-ajax.php and from the REST API, and opens your page in a frame. A firewall rule, a hardening rule in .htaccess or a security plugin that answers 403 to one of those, or a header that forbids framing, leaves the editor waiting.
Elementor, Elementor Pro or an add-on are on versions that do not match
SometimesElementor Pro and third-party add-ons call code inside Elementor. When one was updated and the other was not, the newer one can call something the older one does not have.
Fix: Bring Elementor, Elementor Pro and add-ons onto matching versions
The server cannot pass on the editor's page as it is sent
SometimesThe editor's page carries its settings on one very long line. Elementor's documentation describes servers that have trouble with long lines of JSON, and has a setting that splits them.
A browser extension blocks the editor's scripts
SometimesAn ad blocker or a privacy extension that stops a script on the editor's page has the same effect as a fault on the site, but only in that browser.
The server's PHP is older than Elementor needs
RareElementor needs PHP 7.4 or later. On anything older WordPress will not offer Elementor's updates, so Elementor falls behind the plugins around it, and a current Elementor does not run at all.
How to fix it
Test in Safe Mode, then find the plugin or theme
- Easy
- Low risk
- About 20 minutes
- Steps tested on WordPress 7.1.3
Safe Mode changes nothing for visitors. It applies to the editor's screen, the preview inside it and the editor's own requests to admin-ajax.php, and only in the browser that switched it on. That browser is remembered for one hour.
While it is on, Elementor loads without the theme and with every plugin switched off except Elementor, Elementor Pro and WooCommerce. Elementor's help page adds that its experiments are switched off too. It works by placing one file, elementor-safe-mode.php, in wp-content/mu-plugins, and removes the file when you disable it.
Step 1: Switch Safe Mode on
Go to Elementor, then Editor, then Tools. On the General tab set Safe Mode to Enable and click Save Changes. Only an administrator sees the setting.
There is a second way in. When the editor has not loaded after 30 seconds, a box headed "Can't Edit?" appears with the line "Having problems loading Elementor? Please enable Safe Mode to troubleshoot." and a button, Enable Safe Mode.
Step 2: Open the editor again and read the box
In Safe Mode a box headed "Safe Mode ON" sits in the corner. It gives two answers:
- "Editor successfully loaded?" followed by "The issue was probably caused by one of your plugins or theme."
- "Still experiencing issues?"
If the editor loaded, carry on with the next step. If it did not, the cause is not an ordinary plugin or the theme: go back to the table.
Step 3: Switch Safe Mode off
Click Disable Safe Mode in the box, or set the setting back to Disable and save. Leaving it on hides the fault in your browser for an hour and fixes nothing.
Step 4: Find which plugin, or the theme
Elementor's own instructions are to deactivate every plugin except Elementor and Elementor Pro, check the editor, then reactivate them one at a time until it fails again. If no plugin is at fault, switch for a moment to a default theme. Do this on a staging copy if you have one, because it changes what visitors see. How to find and fix a WordPress plugin conflict has a faster search by halves, and a way to test that only affects your own login.
With WP-CLI, this lists what is active:
wp plugin list --status=active --field=nameAnd this switches one plugin off, with its name from that list in place of plugin-folder-name:
wp plugin deactivate plugin-folder-nameWhen the editor loads with one plugin off, you have found it. Update it, and if it still breaks the editor, report the Console error to its author.
To undo it: Set Safe Mode back to Disable, and reactivate any plugin you switched off.
Find the PHP error that Safe Mode cannot switch off
- Takes care
- Back up first
- About 30 minutes
- Steps tested on WordPress 7.1.3
Use this when a request in the Network panel answers 500 and Safe Mode makes no difference.
Safe Mode cannot switch off a must-use plugin. These are files in wp-content/mu-plugins that WordPress loads on every request and that have no Deactivate link. Hosts commonly put them there. When any are present, the Safe Mode box says so: "Please note! We couldn't deactivate all of your plugins on Safe Mode. Please read more about this issue".
Step 1: Turn on the debug log and open the editor once more
A 500 from WordPress means PHP stopped, and the log says where. How to turn on WordPress debug mode shows the lines to add to
wp-config.phpand how to keep errors off the page.Step 2: Read the newest fatal error
The line ends with the file that failed. A path through
wp-content/mu-plugins/is a must-use plugin. A path throughwp-content/plugins/is an ordinary plugin that Safe Mode keeps on, or one that fails where Safe Mode does not reach. A line that says "Allowed memory size" is the next fix.Step 3: See what is in mu-plugins
Plugins, then the Must-Use link above the list, shows them. So does the "Must-Use Plugins" section of System Info.
Step 4: Move the failing file out, then try the editor
Ask the host first if the file is theirs: a host's must-use plugin can be part of how its caching or its login works. Move the file out of the folder; do not delete it.
Over SSH, from the folder WordPress is installed in:
grep "PHP Fatal error" wp-content/debug.log | tail -n 3wp plugin list --status=must-use --fields=name,status,fileThen, with the name from the file column in place of file-name.php:
mv wp-content/mu-plugins/file-name.php ~/file-name.php.offThat moves the file to your home folder, outside the site. Reload the editor. If it loads, send the log line to whoever wrote the file. Turn the debug log off again when you are done. For a 500 with no line in the log at all, see the 500 Internal Server Error.
To undo it: Move the file back into wp-content/mu-plugins.
Raise the WordPress memory limit to Elementor's figure
- Easy
- Back up first
- About 10 minutes
- Steps tested on WordPress 7.1.3
Elementor's requirements page asks for a "WP Memory limit of 256 MB (Elementor and Elementor Pro only), 512 MB recommended, 768 MB for best performance." Its listing on WordPress.org asks for a PHP memory limit and a WordPress memory limit of 256 MB or greater.
Read what the site has in System Info. Three rows matter, and they do not mean the same thing.
| Row | Section | What it is |
|---|---|---|
| Memory limit | WordPress Environment | WP_MEMORY_LIMIT: what WordPress asks for on public pages. 40M unless someone set it, or 64M on a multisite network. The page inside the editor's preview is loaded this way. |
| Max Memory limit | WordPress Environment | WP_MAX_MEMORY_LIMIT: what WordPress asks for on dashboard screens. 256M unless someone set it. |
| PHP Memory Limit | Server Environment | The limit in force on the System Info screen itself, which is a dashboard screen. |
The third row can mislead. On a server whose own limit is 64M, it reads 256M, because WordPress has already raised the limit for the dashboard by the time Elementor reads it. Below 128M it carries a warning: "We recommend setting memory to at least 128M. (256M or higher is preferred)". The server's own figure is under Tools, then Site Health, then Info, then Server, as "PHP memory limit", with "PHP memory limit (only for admin screens)" under it.
WordPress only ever raises PHP's limit. If the server already allows more than the figure you set, nothing changes.
Step 1: Add the line to wp-config.php
Put it above the line that says "That's all, stop editing".
wp-config.phpdefine( 'WP_MEMORY_LIMIT', '256M' );Step 2: Reload System Info, then the editor
"Memory limit" now reads 256M. Open the editor again.
Step 3: If "Max Memory limit" is under 256M
A line in
wp-config.phpsetsWP_MAX_MEMORY_LIMITlower than WordPress's own default, or the host does not let WordPress raise the limit. Remove the line, or ask the host.
If the figures do not move, or the log still says "Allowed memory size", the host sets a ceiling that WordPress cannot lift. How to fix "Allowed memory size exhausted" covers the host's ceiling and how to find one plugin that uses far more than the rest.
To undo it: Remove the line from wp-config.php.
Stop caches and optimizers from changing the editor's scripts
- Takes care
- Low risk
- About 20 minutes
Step 1: Empty every cache, then reload the editor
That means the caching plugin, the host's cache and the CDN. Elementor's help page says Cloudflare's cache can keep a browser from recognizing a new version of Elementor or Elementor Pro, and to clear it before updating either.
Step 2: Cloudflare: take Rocket Loader off the editor
Rocket Loader defers the loading of all of a page's JavaScript. Elementor's help page says it changes scripts to load asynchronously, "which breaks the editor". Cloudflare's own advice for script trouble is to disable Rocket Loader and retest. To confirm, switch it off under Speed, then Settings, then Content Optimization, and reload the editor.
To keep it for visitors, Cloudflare says to use a Configuration Rule that excludes a page by its URL. Elementor gives the two patterns to exclude: your site's address followed by
/*elementor*for pages, and by/?elementor_library=*for templates.Step 3: An optimization plugin: stop it working on logged-in editors
Check whether the plugin optimizes pages for logged-in users, and switch that off first. Autoptimize's own answer to a broken page builder is to disable the option that keeps it active for logged-on users.
WP Rocket's page on Elementor says to tick the Elementor boxes under "One-click exclusions" if Delay JavaScript execution breaks or delays Elementor's modules. It also says that when a server has too little memory for both, the editor can show a blank page, and that raising PHP memory should fix it.
Step 4: Switch the feature off to confirm
If you cannot tell which feature it is, turn off minifying, combining, deferring and delaying of JavaScript together, empty the cache and reload the editor. Then switch them back on one at a time.
How to minify CSS and JavaScript in WordPress explains what each of those features does and how to leave one file out. WordPress caching plugins compared shows where each plugin keeps its exclusions.
To undo it: Switch the feature back on.
Find what answers 403 to the editor's requests
- Takes care
- Back up first
- About 30 minutes
- Steps tested on WordPress 7.1.3
The editor sends its work to wp-admin/admin-ajax.php, with the action elementor_ajax, and to the REST API under /wp-json/. A 403 on either means something refused the request.
Step 1: Ask admin-ajax.php from outside
Run this from a terminal on a Mac or Linux computer, or over SSH, with your own address in place of
example.com.A healthy site prints 400: the request reached WordPress, which turned it down only because nobody is logged in. 403 means it was refused on the way.
bashcurl -s -o /dev/null -w '%{http_code}\n' -d 'action=elementor_ajax' https://example.com/wp-admin/admin-ajax.phpStep 2: Then the REST API
A healthy site prints 200. These two tests carry no login, so a pass here does not clear a firewall that objects only to what the editor sends. The Network panel remains the real evidence.
bashcurl -s -o /dev/null -w '%{http_code}\n' https://example.com/wp-json/Step 3: Read who sent the 403
In the Network panel, open the failed request's Response. A bare page that says "Forbidden" comes from the web server: a rule in
.htaccess, or the host's firewall. A page with a product's name on it comes from that firewall or CDN. A reply that names a plugin comes from that plugin.Step 4: Look for a rule in .htaccess
Keep a copy of the file first. Then search it for the editor's addresses.
Lines such as
Require all deniedinside a block that namesadmin-ajax.php, or aRewriteRuleforwp-jsonthat ends in[F], are hardening rules that also shut out the editor. Remove them, or put#in front of each line, and test again.bashgrep -n -i -E 'admin-ajax|wp-json|rest_route' .htaccessStep 5: If nothing in the file explains it
If a security plugin is active, look in its own record of blocked requests for one made when you opened the editor, and allow it. Elementor's help pages name ModSecurity, a firewall run by the host, and say to ask the hosting company to review its error log for a rule that is causing the issue. Give them the time and the address of the failed request.
A header can also stop the editor without any 403. Elementor's requirements say X-Frame-Options must be set to same origin, and that Content-Security-Policy: frame-ancestors none breaks the editor because it blocks the preview frame; it should be frame-ancestors 'self'. The Console reports this as a framing error. The header is set by the server or a security plugin, so ask the host if you did not set it yourself.
The .htaccess part of this fix is what the steps on this page prove. A host's firewall and a framing header are stated from Elementor's documentation. How to fix the 403 Forbidden error covers a 403 on the whole site, including a clean .htaccess to start again from.
To undo it: Put the rule back in .htaccess from the copy you kept.
Turn on Switch Editor Loader Method
- Easy
- Low risk
- About 5 minutes
- Steps tested on WordPress 7.1.3
The setting is under Elementor, then Editor, then Settings, on the Advanced tab. It is named "Switch Editor Loader Method", and its own description is "For troubleshooting server configuration conflicts."
Elementor's documentation says what it is for: it "helps users running sites on servers with low resources which have difficulty reading long JSON code. When enabled, the tool splits the lines of code so that these servers can read the JSON code without issues." It lists the editor stuck on the loading screen among the symptoms, with the browser errors err_content_decoding_failed and err_empty_response. It also says the setting can be left on.
The lines in question are long. With Elementor 4.3 on a new site, the editor's page holds one line of more than a million characters. With the setting on, the same page has no line a fifth of that length. Apache's mod_substitute, a module that rewrites pages on their way out, handles lines of up to one megabyte unless SubstituteMaxLineLength is raised. Elementor's requirements page tells customers of two hosting companies to have that setting changed.
Step 1: Set it to Enable
Choose Enable in the dropdown and click Save Changes.
Step 2: Reload the editor
If it loads, leave the setting on.
With WP-CLI, the same switch is:
wp option update elementor_editor_break_lines 1What the steps on this page prove is the switch itself: the editor's page is sent in shorter lines and still loads. A server that fails on the long lines is stated from Elementor's documentation.
To undo it: Set Switch Editor Loader Method back to Disable and save.
Bring Elementor, Elementor Pro and add-ons onto matching versions
- Easy
- Back up first
- About 20 minutes
- Steps tested on WordPress 7.1.3
Elementor's help pages put it plainly: "It is important to keep both the Elementor and Elementor Pro plugins up-to-date. Updating one without updating the other can cause your site to break." The newer one may use code the older one does not have. The same holds for any add-on that builds on Elementor.
Step 1: Compare the versions
On the Plugins screen, read the version under Elementor, Elementor Pro and each Elementor add-on, and look for an update notice on any of them.
Step 2: Check the add-ons in System Info
The section "Elementor - Compatibility Tag" lists add-ons that declare which Elementor version they were tested with. One marked "Incompatible" was last tested with an earlier major version of Elementor than the one you run: update it, or ask its author.
Step 3: Back up, then update what is behind
Elementor recommends updating Elementor Pro first when both have an update, because add-ons are updated before the plugin they extend. How to safely update WordPress, plugins and themes covers the backup and the order.
Step 4: Reload the editor
Empty the site's caches and the browser's first, so the new version's scripts are the ones that load.
With WP-CLI, this shows each active plugin's version and whether a newer one is offered:
wp plugin list --status=active --fields=name,version,update,update_versionAnd this updates Elementor itself:
wp plugin update elementorIf the editor loads only while Elementor Pro is deactivated and the versions match, Elementor's help page for Pro points at a Theme Builder template or popup whose stored data is damaged, and says to disable those templates one at a time.
Elementor Pro is sold by Elementor and is not on WordPress.org. The steps on this page are proven with the free plugin left one major version behind an add-on that needs the current one. What is said about Pro is from Elementor's documentation.
To undo it: Restore the backup, or reinstall the earlier version from Elementor's Tools screen, on the Version Control tab.
Open the editor in a private window
- Easy
- No risk
- About 5 minutes
Step 1: Open a private window and log in there
In Chrome press Ctrl+Shift+N, or Cmd+Shift+N on a Mac. Chrome keeps extensions out of Incognito windows unless you turned on "Allow in incognito" for one. A private window also starts without the browser's stored copies of scripts.
Step 2: Open the editor
If it loads, the site is fine and the browser is the cause.
Step 3: Find the extension
In an ordinary window, switch extensions off one at a time, ad blockers and privacy tools first, and reload the editor after each. When you find it, add your site to that extension's list of allowed sites.
Step 4: If no extension is to blame
Clear the browser's cache for your site, or try a different browser. Elementor's requirements list the browser versions it supports, and say it cannot be used to edit on a phone or tablet.
Move the site to a PHP version Elementor supports
- Takes care
- Back up first
- About 30 minutes
Elementor's requirement is "PHP 7.4 or Greater", and it recommends PHP 8. Read yours in System Info, in the row "PHP Version".
An old PHP rarely shows as a loading screen on its own. Below 7.4, a current Elementor does not start: it shows "Elementor isn’t running because PHP is outdated." in the dashboard. What happens more often is quieter. WordPress will not install an update that needs a newer PHP than the server has, and says so on the Plugins screen: "There is a new version of Elementor available, but it does not work with your version of PHP." Elementor then stays where it is while other plugins move on, which is the version mismatch above.
Step 1: Check the version against PHP's own list
PHP 7.4 reached its end of life in November 2022, and PHP's list of supported versions begins at 8.2. The PHP end-of-life checker shows where your version stands.
Step 2: Try the new version on a staging copy
Old plugins and themes can fail on a newer PHP. Open the main pages and the editor on the copy first.
Step 3: Change the version in the hosting panel
Most hosts have a PHP version setting per site. If yours does not, ask them.
Step 4: Update Elementor, then open the editor
With the newer PHP in place, WordPress offers the updates it was holding back.
To undo it: Switch back to the earlier PHP version in the hosting panel.
When to get help
If the editor still does not load in Safe Mode, in a private window, with the memory limit at Elementor's figure and no failed request you can explain, the cause is in the server's configuration or in what is stored for that page. Finding it takes the server's own logs. Get help sooner if the editor fails on every page of a site you need to change this week.
Common questions
Have I lost my page?
No. The loading screen is the editor failing to start, not your work failing to save. The page as you last saved it is still on the site, and visitors see it. Only changes that were never saved are missing.
Does Safe Mode take my site offline or change what visitors see?
No. It applies to the editor, its preview and its own requests, and only in the browser that switched it on. Visitors, and other people logged in, get the site with its theme and every plugin as usual.
The editor loads in Safe Mode. Can I just work in Safe Mode?
Not usefully. The theme and your other plugins are off, so their widgets are missing and the preview does not look like your site. Safe Mode is a test. Use its answer to find the plugin or theme, then switch it off.
Why does the editor load for a colleague and not for me?
Then the site is working and the difference is on your side: an extension, or the browser's stored copy of old scripts. Start with a private window. If it fails for every user in every browser, the cause is on the site.
What should I send when I ask for help?
The file from Download System Info, the red line from the Console, and the address and status of any failed request in the Network panel. With those three, nobody has to guess. A one-time fix from WP Ministry begins with a free diagnosis that gives you the cause in writing and a fixed quote.
Is a stuck editor a reason to leave Elementor?
Not by itself. Every cause on this page is a fault in the setup around the editor, and each has a fix. If you are weighing a move for other reasons, How to switch from Elementor to the WordPress block editor sets out what it involves.
- GuideHow to change WordPress permalinks without breaking your old links
- GuideHow to deactivate WordPress plugins when you are locked out of the dashboard
- Glossary term.htaccess
- GuideLocked out of WordPress admin: find which lockout you have and get back in
- Glossary termMust-use plugin (mu-plugin)
- Glossary termPermalink

