Chrome not loading images — pages loading with broken image icons, images showing as grey boxes, or some images appearing while others don’t — is a layered problem where the fix depends on whether it affects all sites, specific sites, or specific image types. For the bigger picture, our Google Chrome Errors pulls everything together.
Fastest diagnosis: open a new Incognito window (Ctrl+Shift+N) → visit the same page. If images load in Incognito: an extension or cookie/cache is the issue. If images are also broken in Incognito: it’s a Chrome configuration or network problem.
Fix 1: Check Chrome’s image settings
Chrome Settings → Privacy and security → Site settings → Images. This setting controls whether Chrome loads images at all. If set to “Block sites from showing images” (or a specific site has images blocked): images don’t load anywhere or on that specific site.
Confirm it’s set to “Sites can show images” as the default, and check the “Not allowed to show images” list for any sites that should be loading images. Remove specific sites from the block list if they shouldn’t be there.
Fix 2: Hard reload and cache clear
Ctrl+Shift+R (hard reload) bypasses the cache for the current page — forces Chrome to re-download all assets including images. If images appear after a hard reload: the cached versions were corrupted or stale.
For a more thorough clear: Ctrl+Shift+Delete → “Cached images and files” → All time → Clear data. After clearing: reload the affected page. This forces fresh downloads of all page assets including images that were cached in a broken state.
Fix 3: Extensions blocking images
Ad blockers, privacy extensions, and content filters sometimes block images they incorrectly classify as tracking elements. VPN extensions can also intercept image requests and return errors instead of the image content.
Test: Ctrl+Shift+N for Incognito (extensions disabled) → load the page → if images appear: an extension is blocking them. Enable extensions one at a time in Incognito (you’ll need to specifically allow each in Incognito settings) to identify which one blocks images. For ad blockers specifically: the extension’s icon often shows a count of blocked items — clicking it while on the problem page may reveal it’s blocking image requests.
Fix 4: Hardware acceleration
Chrome uses GPU acceleration for rendering images. When the GPU driver is outdated or incompatible: images render incorrectly, show as grey boxes, or don’t render at all while the rest of the page loads. Settings → System → “Use hardware acceleration when available” → toggle Off → Relaunch Chrome → test. If images now load: update the GPU driver from the manufacturer’s website, then re-enable hardware acceleration.
Fix 5: Chrome flags and rendering
Navigate to chrome://flags → search “images” or “lazy load” → look for any image-related flags set to Enabled or Disabled that might affect image loading. Also: chrome://flags → reset all to default → Relaunch — if a previous flag experiment changed image rendering behaviour, the reset clears it.
Fix 6: Network and firewall blocking image content
Corporate firewalls and content filters sometimes block specific image hosting CDNs (imgix, Cloudinary, Akamai image CDN, etc.) while allowing the HTML page to load. Result: pages load with broken image placeholders because the HTML arrived but the image requests to the CDN were blocked.
Test: try the same page on a different network (phone hotspot) — if images load there but not on the corporate network: the corporate filter is blocking image CDN traffic. This is a network policy issue that IT controls, not a Chrome configuration issue.
Our guide on Chrome page loading issues covers the broader network and DNS problems that affect content loading alongside images. For extension conflicts that selectively block content, our Chrome extension guide covers the isolation approach. Chrome’s content settings documentation covers the full set of site-level permissions including images, media, and JavaScript, which can interact to cause partial page loading failures.
Site-specific image loading failures
If images load on most sites but not on one specific site: the problem is site-specific rather than Chrome-wide. Common causes:
- That site has a broken image path or CDN issue — check by trying the site in Firefox or Edge; if images also fail there, the site is broken
- You have that specific site in Chrome’s image block list — check site settings via the lock icon in the address bar
- A JavaScript error on the page is preventing image loading — check chrome://settings/content/images for the site
- The site uses lazy loading and a JavaScript error prevents images from appearing as you scroll
Broken image vs not loading image
A broken image icon (red X or torn image icon) and a grey placeholder are different symptoms. Broken image: Chrome received the image data but couldn’t decode it (corrupted file, unsupported format). Grey placeholder: Chrome hasn’t attempted to load the image yet (lazy loading not triggered) or the request failed (extension blocked, network error, server error). Right-click the broken image → “Inspect” → Network tab → reload → find the image URL → check the status code. 404: the image doesn’t exist at that URL. 403: blocked by the server. 200 but still broken: corrupted image data.
JavaScript and image loading
Many modern websites load images via JavaScript (lazy loading, dynamic content, image sliders). If JavaScript is disabled in Chrome for a site: images controlled by JavaScript don’t load — only statically embedded images appear. Chrome Settings → Privacy and security → Site settings → JavaScript → confirm it’s set to “Sites can use JavaScript.” Also check the specific site isn’t in the “Not allowed to use JavaScript” list.
Data Saver / Lite mode
Older Chrome versions (and Chrome on Android) had a Data Saver / Lite mode that reduced image quality to save bandwidth. If this is somehow active: images load at reduced quality or some don’t load at all. Check chrome://settings → search “data” → if any data saving feature is enabled, disable it. On current desktop Chrome: Lite mode isn’t available, but its presence in older versions or on synced mobile settings occasionally causes confusion.
HTTPS mixed content blocking
Sites served over HTTPS that include images from HTTP URLs (not HTTPS) trigger Chrome’s mixed content blocking. Chrome blocks HTTP content on HTTPS pages by default to prevent security downgrade attacks. Result: the page loads but images from HTTP sources show as broken or missing.
The padlock icon in Chrome’s address bar → Site settings → scroll to “Insecure content” — if set to “Block (default)”: HTTP images on this HTTPS page are blocked. This is correct security behaviour; the fix is for the website to serve images over HTTPS. You can override per-site (set to Allow) but this reduces the HTTPS security of that site. For external sites where you don’t control the server: there’s no Chrome setting that fixes the site’s mixed content without reducing security.
Image permissions and cross-origin requests
Some images hosted on external CDNs require specific CORS (Cross-Origin Resource Sharing) headers to load correctly in browsers. When these headers are missing or incorrect: Chrome blocks the image with a CORS error (visible in the console as “Access to image has been blocked by CORS policy”). This is a server-side configuration issue that the website owner needs to fix — Chrome is correctly enforcing security policy, not malfunctioning.
Check: right-click the broken image → Inspect → Console tab — look for CORS error messages in red. If present: the site has a configuration issue that isn’t fixable from Chrome settings. Report the issue to the website owner if it’s a site you have a relationship with.
Chrome profile and image loading
If images load in a different Chrome profile but not yours: the profile has a specific configuration causing the issue. Click your profile picture → Add → Guest profile → navigate to the same page. If images load: your main profile has the issue. Check extensions, site settings, and flags in your main profile specifically. Reset profile settings (chrome://settings/reset) to clear accumulated configuration issues while preserving passwords and bookmarks.
Chrome updating while browsing
Chrome auto-updates in the background. During an update: some features (including image rendering) can temporarily behave erratically. If images suddenly stopped loading mid-session: check chrome://settings/help — if Chrome is showing “Update available” or is in the middle of applying an update, wait for it to complete → restart Chrome → test. Post-update restart resolves most in-session rendering quirks.
| Symptom | Most likely cause | Fix |
| No images anywhere in Chrome | Image setting blocked or GPU acceleration issue | Check Site settings → Images; toggle off hardware acceleration |
| Images load in Incognito, not normal | Extension or cache issue | Clear cache; disable extensions to identify conflict |
| Specific site missing images | Site’s CDN blocked or CORS issue | Check in another browser; check console for errors |
| Images appear as grey boxes | Lazy load not triggering or JS disabled | Scroll to trigger lazy load; check JavaScript setting |
| Works at home, not at work | Corporate firewall blocking CDN | Network policy issue — IT to investigate |
| Broken images on HTTPS sites | Mixed content blocking (HTTP images) | Site needs to update to HTTPS images; per-site override possible |
Chrome image loading follows a clear diagnostic path: Incognito test separates extension issues from everything else, and the cache clear + image settings check resolves the majority of cases. For site-specific failures: the browser console (F12 → Console) shows exactly what error occurred when the image failed to load, making the cause immediately clear without guesswork. The “open DevTools and look at the Console” habit eliminates most image troubleshooting ambiguity within 60 seconds.
A practical note for web developers who encounter image loading failures in Chrome that don’t appear in their testing: Chrome’s strict CORS and mixed content enforcement catches issues that more permissive browsers allow through. If images load in Firefox but not Chrome on the same site you’re building: the difference is almost certainly CORS headers or mixed content (HTTP images on HTTPS pages). Chrome’s DevTools (F12 → Network tab → filter by “Img”) shows every image request, its status code, and any blocked reason — the most informative diagnostic tool for development-context image failures.
Images and browser zoom level
Very high browser zoom levels (150%, 200%) occasionally cause image rendering issues on pages not optimised for high zoom — images appear blurry, stretched, or positioned incorrectly. Ctrl+0 resets to 100% zoom. If images display correctly at 100% but incorrectly at your preferred zoom: the site doesn’t handle high-DPI rendering correctly, which is a site design issue rather than a Chrome configuration problem. High-resolution (HiDPI/Retina) display settings can also cause similar scaling issues where standard-resolution images appear soft or incorrectly sized at high DPI scaling factors.
For users who regularly work with image-heavy sites (design portfolios, photography sites, e-commerce): keeping Chrome’s cache reasonably sized improves image loading consistency. chrome://settings/clearBrowserData → set time range to “Last 4 weeks” rather than “All time” for routine cache clears — this removes old stale cached images without wiping the entire cache back to zero, preserving recently-cached assets while clearing older potentially-corrupted ones. A complete cache clear is more disruptive to page load speed than necessary for routine maintenance.
Chrome’s image handling has become significantly more complex over the past few years with the addition of WebP format support, lazy loading APIs, AVIF image format support, and various CDN optimisations. A Chrome that doesn’t load images on a modern site may simply be encountering a newer image format its current version handles differently. Chrome → chrome://settings/help → “About Chrome” — if not on the latest version: update. Chrome updates frequently and image format support improves with each major version. An outdated Chrome may correctly block or fail to decode image formats that the latest version handles correctly.
Downloading images manually as a diagnostic
If a specific image isn’t displaying: right-click the image placeholder → “Open image in new tab.” If the image opens in a new tab successfully but doesn’t display embedded in the page: the image itself is loadable but the page’s embedding mechanism has a problem (JavaScript, CSS, or CORS). If opening in a new tab also fails: the image URL itself is the issue — either the file doesn’t exist at that URL or it’s access-restricted. This two-second test immediately separates image-level problems from page-level problems.
Similarly: right-click → “Copy image address” → paste the URL into a new tab. If the image loads when accessed directly but not when embedded: the page’s security policy (Content Security Policy headers) or CORS configuration is the cause. If it shows an error directly too: it’s a server-side or URL issue that Chrome can’t load regardless of settings.
Chrome’s image loading reliability has improved consistently with each version. Most persistent image loading failures on specific sites trace back to the site itself (CDN misconfigurations, mixed content, CORS errors) rather than Chrome being broken. The “open image in new tab” test is the definitive check — if Chrome can load the image at its direct URL, the browser’s image loading capability is working correctly and the issue is the page’s implementation. If it can’t: the cache clear, settings check, and hardware acceleration toggle are the next steps to verify Chrome’s own image pipeline is healthy. You might also run into Chrome ERR_EMPTY_RESPONSE.







