How to Fix WordPress 500 Internal Server Error — Complete Guide
A generic server crash you can fix by checking your .htaccess file, deactivating plugins,…
WordPress Header Image Not Showing
You’ve uploaded a header image in WordPress, hit save, and refreshed your site — but the header area is blank or still showing the old image. This is a frustratingly common visual bug that catches a lot of WordPress users off guard, especially after switching themes or doing a fresh install.
The good news is that the image itself is usually fine. The problem almost always traces back to caching, a theme configuration mismatch, or an image that was added to the wrong place during upload. In most cases, you won’t need to touch any code at all.
This guide walks you through every likely fix in priority order, from the simplest to the more technical — start at the top and work your way down.
display: none or visibility: hidden targeting the header element or its image tag.custom-header feature, so WordPress has no built-in slot to output the image.You should see: The site reloads fully from the server, with no cached output served.
You should see: A live preview of the header image appears in the Customizer panel on the right side.
You should see: The image fits cleanly in the header area without blank space or unexpected cropping.
/* Rules that would hide your header image */
header { display: none; }
.site-header img { visibility: hidden; }
.custom-header { opacity: 0; }
You should see: No conflicting CSS rules are crossed out or overriding the header image’s visibility.
You should see: The header image reappears as soon as the conflicting plugin is deactivated.
functions.php and check whether add_theme_support( 'custom-header' ) exists. If it’s missing, add the following block:
add_theme_support( 'custom-header', array(
'default-image' => '',
'width' => 1280,
'height' => 250,
'flex-width' => true,
'flex-height' => true,
) );
You should see: The Header Image option appears inside Appearance → Customize after saving the file.
Get free WordPress & AI tips
Join 500+ readers. No spam, unsubscribe anytime.
This is almost always a caching issue. The Customizer preview bypasses most caches to give you a real-time render, but your live site serves cached output. Purge your caching plugin, CDN, and browser cache, then reload the live URL.
Most WordPress themes handle JPG and PNG without any issues. WebP is natively supported from WordPress 5.8 onward, but some older themes may not render it correctly in the header slot. When in doubt, use a compressed JPG — it’s the most universally compatible option.
It depends on the root cause. If your current theme simply doesn’t support custom headers, switching to one that does (like Twenty Twenty-Three) will resolve it immediately. But if the issue is caching or a wrong upload method, the problem will follow you to whichever theme you switch to.
It can happen. A core or theme update occasionally resets Customizer settings if there’s a compatibility mismatch. Go back to Appearance → Customize → Header Image and re-assign the image. Also make sure your theme is updated to its latest version to restore full compatibility.