If the WordPress Customizer is not working, first identify what is failing: the preview may stay blank, the controls may never load, the panel may keep spinning, or changes may appear to save but not show on the live site. These symptoms usually come from a browser or JavaScript conflict, a plugin or theme problem, blocked REST or loopback requests, caching, or a theme that no longer uses the Customizer for that setting.
In this guide
Before changing code or database values, open a private browser window, back up the site, and test one symptom at a time. Do not publish experimental changes on a production site until the preview and front end both behave correctly.
What “not working” means in WordPress
Check the exact failure before choosing a fix. The correct solution for a blank preview is different from the solution for a setting that saves but does not appear publicly.
- Blank or partially loaded preview: the Customizer frame cannot load the site or a script has failed.
- Controls missing: the active theme, user permissions, or a theme’s current editing system may be responsible.
- Spinner never stops: a request, REST endpoint, loopback connection, or JavaScript process may be blocked.
- Save or publish fails: the server may reject the request, the user may lack permission, or a plugin may interrupt the save operation.
- Changes save but are invisible: page, object, browser, or CDN caching may be showing an older version.
- Customizer is absent: the theme may use the Site Editor instead of the Customizer, or the feature may be disabled by the site configuration.
1. Confirm the problem is not only your browser
Start with the least invasive test. Log out and revisit the Customizer in a private or incognito window. If it works there, clear the browser cache for your site and temporarily disable browser extensions, especially ad blockers, script blockers, privacy tools, and password managers that inject scripts into admin pages.
Also test a second browser on the same computer. A failure in one browser but not another points toward local browser storage, an extension, or a cached script rather than a WordPress configuration problem.
Check the site address used by the preview
Make sure the site loads normally at the same HTTPS address shown in WordPress under Settings and General. A mismatch between HTTP and HTTPS, a redirect loop, or a security rule that blocks the preview can prevent the Customizer iframe from loading. Do not edit the database or wp-config.php merely to test this; verify the addresses first and take a backup before making any URL change.
2. Test whether a plugin or theme causes the failure
Plugin and theme conflicts are among the most useful causes to isolate because the test is reversible. If you can access the dashboard, go to Plugins and deactivate all plugins temporarily. Then open the Customizer again.
- Record which plugins are active so you can restore the original state.
- Deactivate plugins in a staging site if one is available. On production, avoid leaving security, commerce, or form functionality disabled longer than necessary.
- Test the Customizer.
- If it works, reactivate plugins one at a time and test after each activation.
- When the problem returns, update or replace the plugin, check its support documentation, and confirm whether it modifies the admin, preview, cache, security, or optimization system.
If disabling plugins does not help, switch to a current default WordPress theme for a short test. Do this on staging whenever possible. A theme change can alter menus, widgets, templates, and styling, so do not treat it as a casual production fix. If the Customizer works with the default theme, contact the theme developer or compare the theme’s Customizer code and compatibility requirements.
For a safer guided isolation process, see how to troubleshoot WordPress problems that affect logged-in users if your site behaves differently for administrators and visitors.
3. Look for JavaScript errors and blocked requests
A page can look normal while one failed script prevents the Customizer controls from functioning. In the affected Customizer tab, open your browser’s developer tools, select the Console tab, and reload the page. Look for errors that identify a plugin, theme file, blocked resource, or mixed HTTP/HTTPS request. Exact developer-tool labels vary by browser.

Use the Network tab to reload the Customizer and check requests marked as failed. Pay particular attention to requests returning 401, 403, 404, 500, or a message showing that the request was blocked by the browser or security layer. Capture the URL and status before changing settings.
Do not paste random JavaScript from forums into the site to silence an error. A console error is evidence, not automatically the root cause. If the error names a plugin or theme, disable that component in a controlled test. If it shows a server response, ask the host or firewall provider why that request was denied.
If the entire WordPress admin is slow or stuck loading, use the more general workflow in Fix WordPress Stuck on Loading in wp-admin.
4. Check REST API, loopback, firewall, and login restrictions
The Customizer may need WordPress requests to load settings or save changes. A firewall, maintenance system, host security rule, basic authentication layer, or CDN configuration can block those requests even when the public site works.
In the dashboard, review Tools and Site Health for REST API, loopback, or authorization warnings. The exact tests and wording can vary by WordPress version. Also check whether a security plugin or host firewall is logging blocked requests at the time you open or save the Customizer.
Temporarily allow the relevant authenticated request only long enough to test, and remove the temporary exception afterward. Do not disable all security controls on a live site without a rollback plan. If Site Health reports a loopback problem, follow the diagnostic steps in Fix WordPress loopback failures.
5. Clear the right caches after a successful save
If the Customizer says a change was published but the live site still shows the old design, the save may have succeeded. Check the front end while logged out and use a private window. Then clear caches in this order:
- Clear any WordPress page or object cache managed by a plugin.
- Purge the hosting or server cache if your host provides one.
- Purge the CDN or reverse-proxy cache, if present.
- Refresh the browser cache or retest privately.
Do not repeatedly publish the same change while caches are stale; that can make it difficult to tell whether the setting saved. If only one page remains old, inspect whether that page has its own template, builder layout, or cached response.
6. Check whether the theme still uses the Customizer
Some newer themes use the Site Editor and block-based templates instead of exposing every design control through Appearance and Customize. If the Customizer opens but lacks typography, header, footer, or template controls, that may be expected for the active theme rather than a malfunction.
Check the theme’s documentation and look under Appearance for the editing tools available in your installation. The exact menu names vary by theme and WordPress version. If a setting existed before a theme change, confirm that the new theme supports the same setting before attempting database edits.
For official guidance on current WordPress editing features, consult the WordPress Documentation.
7. Check permissions, updates, and server resources

A user who cannot manage the required theme or customization capability may see fewer controls or be unable to publish. Test with an administrator account only if you are authorized to do so. Do not permanently grant administrator access to solve a temporary troubleshooting problem.
Confirm that WordPress, the active theme, and plugins meet their stated compatibility requirements. Take a complete backup before updating. If the issue began immediately after an update, use staging or a host-provided restore point to test the previous version rather than replacing files manually.
Low PHP memory, exhausted server resources, or server-side fatal errors can also interrupt a save. Review the host’s PHP error log and WordPress Site Health information around the time of the failure. Avoid enabling verbose debugging on a public site without protecting the log, because debug output can expose paths, queries, or other sensitive information.
Decision guide: choose the next test
- Works in a private window: clear site data and disable browser extensions.
- Works after all plugins are disabled: isolate the conflicting plugin one at a time.
- Works with a default theme: investigate the active theme’s Customizer compatibility.
- Preview is blank and the console shows blocked requests: inspect firewall, CDN, HTTPS, and REST or loopback access.
- Save succeeds but visitors see old content: purge WordPress, host, CDN, and browser caches.
- Only one user lacks controls: verify role and capabilities rather than changing theme files.
How to verify the fix
After each change, use a controlled test: open the Customizer in a clean browser session, change one harmless setting, preview it, and publish only when the preview is correct. Open the public page while logged out and in a private window. Confirm the browser console has no new related errors, then restore any plugins or security rules that were disabled for testing.
Test on a phone or another network if the problem involves a CDN, firewall, or geographic access rule. Keep a short record of the failed component and the change that fixed it. This makes a recurrence much easier to diagnose.
Questions that often identify the real cause
Why does the Customizer keep loading forever?
A never-ending spinner commonly indicates a failed JavaScript request, blocked REST or loopback request, plugin conflict, or server error. Check the browser Console and Network tabs, then test plugins before changing server configuration.
Why can I preview changes but not publish them?
Preview and publishing are separate operations. Publishing may fail because of permissions, a rejected authenticated request, a firewall rule, a nonce or session problem, or a server-side error. Sign in again, test in a private window, review Site Health, and inspect the failed request rather than repeatedly clicking Publish.
Why are my Customizer options missing after changing themes?
Customizer controls belong to the active theme and its supported settings. A new theme may use different controls or the Site Editor. Review the theme documentation and do not assume that missing controls indicate corrupted WordPress data.
When should I stop troubleshooting on production?
Stop before editing the database, wp-config.php, server rules, DNS, or file permissions without a backup and rollback plan. If the site is commercial, the Customizer triggers a fatal error, or the cause points to hosting or security rules, consider using a WordPress Site Repair service to investigate without guesswork.



