TM
February 12, 2026
|
10 min read


When images don't load, a website immediately seems 'broken' – and often the cause is simpler than it feels.
We show you how to recognize the most common error patterns, how to debug in a fixed sequence, and which fixes in WordPress, with HTTPS, and with CDN really work.
In the end, you not only have a repair but a robust image strategy: faster, more accessible, sustainable.
404
403
500
Mixed Content
Cache
CDN
WebP
AVIF
LCP
CLS
Lazy Loading
CORS
Path
Rights
WordPress
Hotlinking
We encounter this in projects more often than you think: The page is ready, the layout fits – and then suddenly empty spaces appear. In shops, it's product images, in portfolios the references, in blogs the hero images. It feels dramatic because images are often the part that builds trust.
First: The image is not accessible. This is the classic: an incorrect path, a renamed file, one capital letter too much (yes, that’s enough on many servers), or a folder was moved. Then the server often returns a 404. Just as often, we see 403 if permissions or hotlink protection kick in.
Second: The image is blocked. Since many websites now run completely on HTTPS, we regularly stumble upon “Mixed Content”: The page is secure (https), but an image is still included via http. Modern browsers then block this – not out of spite, but for security reasons. The console usually provides a clear hint.
Third: The image is there – but doesn’t arrive sensibly. This involves files that are too large (on mobile, it may fail or seem to 'never load'), formats without suitable fallback, or a CDN/cache delivering an old or damaged variant. Images remain the heavyweight on the web: typical homepages contain around 900 KB (mobile) to 1054 KB (desktop) solely in images. HTTP Archive Web Almanac 2024
At Pola, we always take a closer look at image problems: What is broken – and why was it possible for it to break? Behind this is often not a single typo, but a missing process. That’s why we combine repair with prevention: fewer outages, less data, more impact.
If you’re currently affected, don't go into the "everything new" mode. Start with a clean diagnosis – and you’ll be much wiser in just a few minutes.


If images are missing, the fastest way is almost always the same: We don't first look at plugins or server logs, but where the truth ends up – in the browser.
We use a process that remains deliberately short but covers the most common causes. You only need Chrome or Firefox.
1) Open image URL directly. Right-click on the spot (or in the code the src) and open the image URL in a new tab. If you already see an error page there, it’s not a 'rendering problem' but a delivery problem.
2) Open DevTools and check the Network Tab. Press F12, switch to 'Network', and reload the page. Filter by 'Img'. Now you see status codes: 404 (not found), 403 (forbidden), 500 (server error), or 200 – then the issue is likely with rendering, cache, or format.
3) Read console, don’t guess. The console often has explicit hints like 'Mixed Content' or CORS issues. That’s when a gut feeling turns into a clear fix.
A 404 almost always means: path, filename, case sensitivity, wrong folder. A 403 typically occurs due to improperly set file permissions, security rules, or to prevent hotlinking.
If you see a 200 but nothing displays, it gets interesting: Next, we check format and CSS. An image may be 'loaded' but end up with display:none through CSS, be overwritten as a background image, or be hidden by a cookie banner/overlay. This happens more in practice than it sounds in traditional guides.
If you have many pages, a targeted crawl is worthwhile. For a quick overview, we often use Google PageSpeed Insights (for performance and image insights) or WebPageTest (for waterfall and actual loading sequence). For "Are any image paths broken?", a Broken Link Checker works pragmatically.
The most important thing: Stick to the order. Who addresses ten issues first, sometimes fixes by accident – and learns nothing from it. Who measures first, fixes cleanly and sustainably.
Do you want to quickly, cleanly, and permanently fix the cause?
An image not loading is rarely 'just' a visual issue. It's a small breach of trust: You've brought someone to your website – and then the page doesn’t deliver the most important orientation.
When images are missing, answers are often missing too. In the shop: “What does the product look like?” In advice: “Is the team real?” In NGO communication: “What does the project stand for?” Users drop off before they even read your text.
And even if images eventually appear, timing counts. In the performance context, it's crucial which element takes the longest to become visible. Practically, it’s often an image: According to Web Almanac, an image determines the Largest Contentful Paint about 68% of the time. HTTP Archive Web Almanac 2024 If this image hangs, the perceived site hangs.
Economically, it quickly becomes an issue: More than half of mobile users leave a site if it takes longer than three seconds to load. Site Builder Report This is a number we don’t use as a scare tactic but as a reminder: Your content is only as effective as its delivery.
At Pola, another level is added. Images are the largest data component on many websites – and every byte must be stored, transferred, and processed. This costs energy in data centers, networks, and on devices. The internet has a measurable CO₂ footprint, and unnecessary data transfer is part of it. SHIFT
This sounds big but starts small: A hero image that’s 180 KB instead of 1.2 MB doesn’t just load faster. It’s simply more responsible. 'Less data, more impact' is not a saying for images, but a design decision.
Core Web Vitals have been part of the page-experience signals for years. Since 2025, the demand has noticeably increased in many teams: Performance is no longer 'nice', but hygiene. Those who get image issues under control often improve LCP simultaneously, reduce bounces, and make content reliable again.
The nice thing: Here often lie the quickest, cleanest improvements – because images have so much potential.


In practice, it’s often the same pitfalls – just in different costumes. We consciously go through them as we encounter them in daily life.
The most common reason is banal: The image isn’t where the URL points. After a relaunch, after moving media folders, or after a migration (for example, from a staging to the live environment), old paths remain.
Also, pay attention to file names: Special characters, umlauts, spaces, or a 'final-final-2.png' can end oddly in combination with encoding and CMS logic. And very important: On many Linux servers, /Bilder/Foto.jpg is different from /bilder/foto.jpg.
If a 403 is returned, it’s often a rights issue or a protection rule. Especially in WordPress, we see this after host changes: The uploads folder has the wrong permissions or a security plugin blocks certain file types.
If only one image doesn’t load, it might be simply corrupted (upload interrupted, file corrupt). Then it usually helps: re-export, re-upload, don’t debate long.
A cache can save a page – and drive you nuts. If images are exchanged but remain under the same URL, browsers or CDNs sometimes deliver the old variant. Our routine: one hard reload, then cache purge in the CDN/plugin, before moving on.
Many image issues in WordPress are indirect. An optimization plugin converts images to WebP, but the rewrite rule is wrong. Or a lazy-loading plugin sets attributes such that the browser only loads images when they’re in the viewport – but an overlay prevents scrolling and thus triggering.
If you want to optimize but remain stable, many teams start with established tools like ShortPixel or Imagify. The tool itself isn’t important, testing is: in incognito mode, on the phone, and once in Safari after optimization.
When fixing image issues, we never change five things simultaneously. We take exactly one hypothesis (e.g., 'Mixed Content'), apply the fix, check the result in the network tab – and then the next variable comes.
This sounds slow but is the opposite: You maintain control. And you can document the fix later, instead of starting from scratch next time.
If the basics are correct (path correct, status 200, yet no image), it’s usually these 'invisible' cases that take time. We bundle them here because they often only appear on the periphery in classic how-tos.
You’ve activated SSL, the site runs on https – but a few images are still hard-linked to http. Then the browser blocks them. You can reliably recognize this in the console.
In WordPress, a search-and-replace in the database often helps (cautiously and preferably with backup). Many teams use Better Search Replace for this. Important: Then check whether all assets are really delivered via https.
If you load images over another domain, CORS issues can arise in certain applications (Canvas, specific script access). For 'normal display', CORS is rarely the cause, but we do see it in web apps. Then the solution is: correctly set headers or move images to a suitable asset domain.
Sometimes images are “there” but may only be embedded by the own domain. A store owner copies an image from an old system or a manufacturer – and suddenly it’s gone because the source blocks hotlinking. That’s not a bug, but the source's intention. The clean solution is always: host the image yourself or clarify the release.
CDNs are great – until an edge node caches an incorrect variant. Then some users see images, others do not. If you have such an 'only for some' issue, that’s a strong indication.
Often a targeted purge (just the affected URLs) helps, followed by a test from different regions, for example, with WebPageTest or a multi-location check.
WebP is widely supported today, and AVIF is on the rise. According to Web Almanac, AVIF quadrupled between 2022 and 2024, while JPEG shares decline. HTTP Archive Web Almanac 2024
Nevertheless: If you deliver next-gen formats, you need clean fallbacks via - otherwise, 'optimized' quickly becomes 'invisible' when an edge browser or a particular in-app browser comes into play.
These special cases are precisely why we always read debugging as a small story: Who calls whom, what is returned, and who blocks it? As soon as you see the image as a request chain, it becomes solvable again.


Critical site affected and no time for trial and error?
If we want to prevent image outages in the long term, it's not enough to fix individual broken links. We need an image pipeline that’s as self-evident as a brand guide: clear rules, simple routines, few surprises.
We recommend teams a pragmatic version that works without a large tool landscape:
1) Scale and compress before upload. A photo from the camera is almost never web-ready. For quick quality control, we like to use Squoosh or tiny tools like TinyJPG.
2) Take responsive images seriously. Sending a 2400px image to a 390px-wide phone may look "sharp," but it's mostly waste. Web Almanac shows that images on mobile sites are delivered about 25% larger than necessary in the median. HTTP Archive Web Almanac 2024 srcset and sensible size steps solve this.
3) Lazy loading, but with care. For images below the visible area, loading="lazy" is usually right. But for the central hero image, it’s often wrong because it can worsen the LCP. (Depending on setup, fetchpriority="high" can help here.)
4) Configure caching so updates don’t get stuck. Long cache times are good as long as you use versioning (filename or hash). Then the page stays fast, and you don’t lose control.
One point rarely read in other guides but constantly seen in design projects: The more images are 'just decor', the more fragile the page becomes. Minimalistic design is not just an aesthetic stance; it’s often the more robust technical decision.
We consciously ask: "Which image really carries meaning?" If an image merely fills space, the risk (more requests, more dependencies) increases without clear impact. If an image carries meaning, we treat it like core content: optimized, prioritized, with fallback.
Thus prevention doesn’t become an extra task but a way to build websites: light, clear, durable.


When images don’t load, it's 'just' irritating for some users. For others, it's a real hurdle. And that’s where it gets exciting: Accessibility is not just a legal topic or checkbox, but a stress test for your content.
A persistent myth: “If the image is missing, you’ll see the alt text.” In reality, this happens inconsistently – often the browser only shows a little symbol, and the alt text is especially valuable for screen readers. This means: Alt texts don’t replace images, but they save information.
We write alt texts so that they carry the purpose of the image, not describe the pixels. A product photo needs something different from a mood image. And a diagram needs a textual summary, otherwise the information is lost.
Accessibility is also layout: When images load late or fail, jumps often occur. That’s not just annoying; it can burden people with cognitive impairments or concentration problems more. A simple, often underestimated step: set width and height (or define fixed ratios via CSS) to reserve space and keep the page calm.
We like to evaluate websites by how they behave when things go wrong: slow network, blocked images, external service down. If everything collapses then, the experience was fragile.
In contrast, if you maintain alt texts cleanly, don’t hide important info only in images, and embed visual content with stable placeholders, your website remains usable – even when an image doesn't arrive.
This fits our claim “Access for all”: Not because we promise perfection, but because we take responsibility seriously.
In image issues, we see two typical reactions: Either everything is 'over-analyzed' – or quick solutions are adopted that create long-term problems. A few misunderstandings keep popping up.
A CDN can reduce latency, but it doesn’t suddenly make a 5-MB image small. If you’re not using an image CDN with automatic transformation, the file size remains the same. Then the effect is limited – and sometimes additional complexity arises from cache invalidation.
If you really want automated delivery, look at services like Cloudinary that dynamically serve formats and sizes. It's not necessary for every page, but with large image volumes, it can save a lot of maintenance.
We love strong images. But we also see that users are more likely to give up than wait for perfection. If loading time increases from 1 to 10 seconds, the bounce rate can drastically grow. Site Builder Report Our experience: A quality that is 'visually clean' beats one that is 'technically maximal'.
Performance is a state that changes daily as content changes. Today an editor uploads a 6-MB image, tomorrow a new plugin comes, the day after tomorrow a CDN is activated. Therefore, prevention is more important than heroics.
Alt texts are important – but they’re not an excuse for broken images. They are the seatbelt, not the engine.
We don’t dislike these myths because they are 'wrong', but because they lead you in the wrong direction: away from clear diagnosis, away from a clean image strategy. Once you understand the connections, the topic becomes much more relaxed – and you make decisions that bring together design, technology, and impact.
Do you want to deliver images stably, quickly, and accessibly?
Send us a message or book a non-binding initial consultation – we look forward to getting to know you and your project.
Our plans
Copyright © 2026 Pola
Learn more
Directly to
TM