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.
Mixed Content, Refused to apply style ... MIME type ('text/html'), net::ERR_NAME_NOT_RESOLVED, 404 or 403.http:// instead of https://, a cdn. address or a /cache/ path is your answer in the table below.| What the check shows | Why it happens | The 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 HTTPS | The page is https but its stylesheet is asked for over plain http, and browsers refuse it | Same 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 404 | A 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 it | Clear 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 all | A 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 it | Turn 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 Forbidden | File permissions changed after a move or a malware clean-up, or a security rule now blocks the wp-content folder | Ask 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 redirected | Open 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 fine | Elementor keeps each page's design in its own generated CSS file, and those files were lost in a move, a cache clear or a restore | In 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 |
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.