Find Missing Images on Your Website
14 April 2026 · 4 min read
Missing images don't announce themselves. There's no alert, no error email, no dashboard metric that spikes. The image just doesn't load, the alt text renders (if you wrote it), and the layout shifts slightly in a way that looks intentional to someone who doesn't know what was supposed to be there.
This is exactly what makes them hard to find. You visit the homepage - the images load. You check the product pages - fine. The missing images are on the blog post from 2020, the team page that got reorganized last quarter, the resources section nobody updated in a year. Pages that still get traffic, just not from you.
Where missing images come from
CMS media library mismatches
Every WordPress, Drupal, or headless CMS installation has a media library. When you migrate content to a new environment - whether that's a new server, a new CMS, or a new hosting setup - the media library needs to move too. It often doesn't, at least not completely. References to /wp-content/uploads/2019/brochure.jpg work in production. They 404 in staging. After a migration, they can start 404-ing in production too.
CDN URL changes
Moving your assets from one CDN to another, or from local serving to a CDN, requires updating all references. Hardcoded URLs in blog content, in CSS background images, in HTML templates - these don't update themselves. A find-and-replace at migration time gets most of them. The rest become a growing list of broken assets.
The case sensitivity problem
This one bites teams repeatedly. Your image file is named Hero-Image.JPG. The reference in your template is hero-image.jpg. On macOS and Windows (case-insensitive file systems): works fine. On Linux (case-sensitive file system, which is what almost every production server runs): 404.
You develop on a Mac, test on a Mac, deploy to Linux. It worked every time you tested it. The first time anyone opens the page in production, the image is missing.
Deleted files that are still referenced
Someone cleaned up the media library and deleted some "unused" images. One of them was on a product page that isn't in the main navigation but still ranks in search. The page looks fine in the CMS preview (which shows a placeholder). In a browser, it's a broken image.
| URL | Issue | Status | Found on |
|---|---|---|---|
| /wp-content/uploads/2020/07/team-photo.jpg | ErrorMissing asset | 404 | /about |
| https://old-cdn.example.net/products/item-456.webp | ErrorMissing asset | 404 | /products/item-456 |
| /Images/Logo.PNG | ErrorMissing asset | 404 | /email-signup |
| /assets/blog/2021/featured.jpg | ErrorMissing asset | 404 | /blog/2021/article-title |
| /img/icons/arrow-right.svg | WarningMissing alt text | - | /features |
Missing alt text: a related problem
An image can load successfully but still be effectively missing for screen reader users - and for Google's image indexing - if it has no alt text. Alt text is how assistive technology describes images to people who can't see them. It's also the primary signal Google uses to understand what an image depicts and whether to surface it in image search.
The WCAG AA accessibility standard (the baseline most organizations target) requires meaningful alt text on all informative images. Decorative images should have an empty alt attribute (alt=""), not a missing one.
Finding missing images across your whole site
Browser-based tools show you what's broken on the page you're currently looking at. That's useful for debugging a specific page - it's useless for finding images broken on pages three levels deep in your site structure.
A crawler covers your entire site: it fetches each page, extracts every src attribute on image tags and CSS url() references, and checks each one. Missing images appear in the results with the page they're on, making it straightforward to identify the source and fix it in the right place.
Try it now - it's free, no account needed
Up to 1,000 pages. Results in minutes.