More fixes

Your website suddenly looks broken: plain text, no styling

The words are all there, but the page looks like a document from 1996: black serif text, underlined blue links, the menu as a bullet list, pictures stacked down the left. Nothing was deleted. The file that tells the browser how the site should look (the stylesheet, or CSS) is not reaching it. One check shows which file fails and why, and the reason points straight to the fix. Below is a rebuilt example (not a real client), the two-minute check, and the fix for each cause.

What a visitor sees

What the check found


  

The two-minute check: which file fails?

  1. Open the site in a private window (Ctrl+Shift+N in Chrome, Ctrl+Shift+P in Firefox). If it looks right there, your own browser held on to something old: clear its cache and you are done. If it is broken there too, every visitor sees it.
  2. Press F12 and open the Console tab, then reload. Red lines about styles name the problem in words: Mixed Content, Refused to apply style ... MIME type ('text/html'), net::ERR_NAME_NOT_RESOLVED, 404 or 403.
  3. Open the Network tab, click "CSS", reload. Each style file is listed with a status. Look at the ones that are red or not 200, and at the address they were loaded from. An old domain, http:// instead of https://, a cdn. address or a /cache/ path is your answer in the table below.
  4. Open one failing file's address in a new tab. If you see a "page not found", a login page or a security block instead of lines of code, that is what the browser received too.

What causes it and the fix

What the check showsWhy it happensThe fix
Style files load from an old domain, a staging address or http://The site was moved, renamed or switched to https, but WordPress still has the old address saved, so every page asks for its styles from a place that no longer answers (or that the browser blocks as insecure)In Settings > General, set both WordPress Address and Site Address to the exact current address, with https. If you cannot reach the admin, add define('WP_HOME','https://yoursite.com'); and define('WP_SITEURL','https://yoursite.com'); to wp-config.php. Then replace the old address inside the content with a search-and-replace plugin (take a backup first). See "Not secure" for the mixed-content side
Console: Mixed Content ... was not loaded over HTTPSThe page is https but its stylesheet is asked for over plain http, and browsers refuse itSame fix as above: the saved address still says http. If the address is right, a theme or plugin setting has a hard-coded http link (look in the theme's custom CSS or header settings)
Style file from /wp-content/cache/ or a minified / combined file returns 404A speed plugin glued the styles into one file and saved the page with a link to it. The file was cleared, but the saved pages (in the plugin, at the host or at Cloudflare) still point to itClear all caches in order: the speed plugin, then the host's cache in the hosting panel, then Cloudflare's Purge Everything. If it comes back, switch off the plugin's "combine CSS" / "minify CSS" / "remove unused CSS" options and test again. See changes not showing
Files from cdn.yoursite.com or a CDN address fail to load at allA CDN was set up once (often by a past web person), then the CDN account lapsed or its DNS record was removed, but a plugin still rewrites every file address to itTurn off the CDN rewrite in the speed or CDN plugin (WP Rocket: CDN tab; W3 Total Cache: CDN; LiteSpeed: CDN), clear caches, reload. Bring the CDN back later only if you still pay for it
Style files return 403 ForbiddenFile permissions changed after a move or a malware clean-up, or a security rule now blocks the wp-content folderAsk the host to reset permissions to folders 755 and files 644. Look for an .htaccess file inside wp-content or wp-content/themes with "deny from all" that a security plugin added, and remove that line for .css and .js. See 403 Forbidden
Console: Refused to apply style ... MIME type ('text/html')The browser asked for a style file and got a web page back: a 404 page, a login page or a maintenance page. The file itself is missing or redirectedOpen that file's address directly to see which page comes back. A theme or plugin update that did not finish leaves files missing: reinstall the same version of that theme or plugin (update failed). A redirect rule catching everything is the other usual cause
Only pages built with Elementor look bare; the header and footer are fineElementor keeps each page's design in its own generated CSS file, and those files were lost in a move, a cache clear or a restoreIn Elementor > Tools, click Regenerate Files & Data (older versions: Regenerate CSS), then clear caches. If it keeps happening, set Elementor > Settings > Performance > CSS Print Method to Internal Embedding. See Elementor stuck on loading

What not to do

Finding the failing file takes two minutes; changing the saved address, permissions or cache settings is where most people would rather have someone do it. If that is you, the box below is for that. Related: images not showing, plugin conflict and white screen.