Widgets, Menus or Customizer Settings Disappeared After Switching WordPress Themes
Your sidebar is empty, the header has no menu and the logo is gone. Nothing was deleted. Learn where each setting lives per theme and how to bring it back.
The layout is a mess, styles are missing or buttons and menus do not work.
Do this first
Diagnose it
The way a page breaks points to the cause. Note which pattern you have before you start purging and toggling.
| What you see | What it points to |
|---|---|
| Plain text, blue links, Times New Roman, the menu as a bullet list | The main stylesheet is not loading at all. |
| Layout mostly right, but menus, sliders, tabs or popups do not respond | A JavaScript error stops scripts from running. |
| Squares or blank spaces instead of icons | The icon font file is blocked, often by CORS, or missing. |
| Broken for visitors, fine when logged in (or the reverse) | A cached copy of the page is out of date. |
| Broken on phones only | A responsive layout or separate mobile cache problem. |
| Images missing but text styled | Wrong upload URLs, hotlink protection or a CDN fault. |
| A shared link on Facebook, LinkedIn or in a chat app shows the wrong picture or none | Missing or wrong Open Graph tags, or the platform cached an old preview. See wrong image when sharing a link. |
The browser console (F12, then the Console tab) usually names the cause. The messages you are most likely to see:
Refused to apply style from '...css' because its MIME type ('text/html') is not a supported stylesheet MIME type: the CSS address returned an HTML page instead, usually a 404 page, a login page or a firewall block.Mixed Content: The page at 'https://...' was loaded over HTTPS, but requested an insecure stylesheet 'http://...'. This request has been blocked: an old http:// address.Access to font at '...' from origin '...' has been blocked by CORS policy: the font sits on another domain that does not allow your site to use it.Uncaught ReferenceError: jQuery is not defined: a script ran before jQuery loaded, nearly always from deferring or combining JavaScript.Refused to load ... because it violates the following Content Security Policy directive: a security header is blocking the file.1. List the stylesheets the page asks for.
curl -s https://example.com/ | grep -oE 'href="[^"]+\.css[^"]*"'
Run it on your own computer’s terminal, replacing example.com with your domain. It prints the address of each CSS file in the page. Look for addresses on an old domain, a staging site, or starting with http://.
2. Test one of those files.
curl -sI CSS_FILE_URL | grep -iE '^(HTTP|content-type|content-length|server|cf-cache-status)'
Run it on your own computer. CSS_FILE_URL is one full address from check 1, ideally from your theme or page builder. Good: 200, content-type: text/css and a content-length above 0. Bad: 404 (the file is gone), 403 (a firewall or hotlink rule blocks it), content-type: text/html (an error page served in its place), or content-length: 0 (the file was written empty).
3. Compare logged in and logged out. Open the page in a private window with extensions disabled, next to your normal logged-in window. If only the private window is broken, a page cache is serving an old copy. If only your normal window is broken, suspect a browser extension.
4. See what changed in WordPress.
wp plugin list --fields=name,status,version,update_version
wp theme list --status=active --fields=name,version
Run these in an SSH terminal inside the site’s folder (the one with wp-config.php). --fields limits the columns shown. Compare versions against when the problem started: an update to the theme, builder or an optimization plugin on that day is your lead.
jQuery is not defined or $ is not a function in the console, starting after a change to defer, delay or combine settings. Fix: exclude jQuery and the broken script from deferral, or switch that feature off.http://. Fix: a search and replace on the database (dry run first), then regenerate builder CSS.text/html responses for .css, .js or font files. Fix: allow those file types for your own domain and any CDN hostname.content-length: 0, or regenerating does nothing. A full disk or wrong folder ownership stops the builder writing files. Fix: free disk space, and ask your host to correct ownership of wp-content/uploads.Did this fix it?
Still stuck? Start again from what you can see in the Emergency Room.
The full fix
Your sidebar is empty, the header has no menu and the logo is gone. Nothing was deleted. Learn where each setting lives per theme and how to bring it back.
You edited a template, a header or theme.json and nothing changed. Learn how block themes layer database overrides over theme files, and how to see which one wins.
A theme update wiped your edits, or activating a child theme caused a fatal error or missing styles. Recover the lost code, then build the child theme properly.
Gray squares in the Media Library, soft or pixelated images, crops that do not fit, or a grid that takes ages to load. Find which image size is wrong and regenerate safely.
Your menu will not open with Tab, focus vanishes, or a popup traps keyboard users. Test with only a keyboard and fix focus styles, dropdowns, dialogs and skip links.
An audit flagged low contrast or text that breaks when zoomed. Learn how contrast is calculated, how to measure it, and how to fix brand colors, overlays and global styles.
Screen readers announce “button”, “link” or a file name instead of something useful. Fix alt text, icon buttons, vague links, SVGs and div buttons, then test with NVDA and VoiceOver.
A consent banner blanked your embeds, broke reCAPTCHA forms or flattened your analytics. Find which script is miscategorized, fix Consent Mode v2 and test every state.
Elementor stuck on its loading screen, or showing “The preview could not be loaded” or “Server Error”? Read the error, use Safe Mode and Elementor’s own tools to fix it.
Divi Builder timing out, failing to load or showing a blank screen? Use the Support Center, Safe Mode, static CSS tools and the right PHP limits to find and fix the cause.
Breakdance builder blank, styles not updating, or a template ignored? Use the Tools tab, WP-CLI, template priority and directory checks to find the cause safely.
Trouble after updating to WordPress 7.1? See what 7.1 changed, which bugs 7.1.1 fixed, how to prove the update is to blame, and how to roll back safely if you must.
Search the field manual
Or jump straight to a symptom
Press / to search from any page, Esc to close