Skip to content
PictureToLink logoPictureToLink
Menu
Image Sharing

Broken Image Link? 9 Reasons Images Don't Show

Why images show as a broken icon or will not load, from expired links and hotlink blocks to wrong URLs and mixed content, and how to fix each one.

By Ahsan Khowaja (CEO) · · 8 min read
Facts checked against official sources on

On this page

A broken image link means the browser asked for a picture and got something else back: an error page, a web page, a blocked response, or a file it can't display. One test tells you where to look. Open the image address on its own in a new tab. No picture there means the fault is in the link or at the host. A picture that loads fine means the fault is in the page that embeds it. The nine causes below are in the order worth checking.

Right-click the broken icon and copy the image address, or take it from your HTML, BBCode or Markdown. Paste it into a new tab and look at what comes back.

What the new tab showsLikely cause
Nothing, or a browser errorA mistake in the URL (cause 1)
"Not found" or "removed"The image expired or was deleted (cause 2)
A web page with the picture on itA page link, not a direct link (cause 4)
A download, or a file that won't displayAn unsupported format (cause 6)
The picture, with nothing wrongThe embedding page: causes 3, 5, 7, 8 or 9

The test works because an image in a page is a second request. Your page holds only the address, and each reader's browser fetches the file from it separately. Asking for that address yourself shows you exactly what the browser was handed.

Take a forum post written as [img]https://picturetolink.com/v/abc123[/img] that shows a broken icon. In a new tab, that address opens a page with the picture on it. The table's third row applies, so the cause is number 4, and swapping in the direct link https://picturetolink.com/i/abc123.jpg fixes the post.

1. A mistake in the URL

Small errors in the address are the most common cause and the easiest to fix. One wrong letter in a random image ID is enough.

Copying is where most of them creep in. A trailing space, a quote mark or a closing bracket gets pasted along with the address. Extensions catch people too: photo.jpg and photo.jpeg are different addresses, and so are Photo.JPG and photo.jpg on many servers.

A local path can't work at all. An address like C:\Users\me\Pictures\cat.png or file:///... exists only on your computer, so nobody else can load it.

Sometimes the address is right and the markup around it is broken. In HTML, check that src is spelled correctly and the quotes close. Markdown's syntax is ![alt text](address), with no space between ] and (. In BBCode, [img] must be closed with [/img]. Our guides to Markdown image syntax and BBCode image tags show the correct form.

To fix an address, copy it again from the source and confirm the picture opens in a new tab before you use it anywhere.

Images don't stay online forever. The uploader may have deleted the file, or set it to expire: many hosts, including ours, let you choose an auto-delete time. The host may have removed it under its retention rules. PictureToLink removes an image after 12 months without a single view, and Imgur's terms say it may remove old, unused anonymous uploads. A host will also take down an image that breaks its rules.

Nothing brings the old address back. Upload a copy again and update the link. It's the best argument for keeping your own original of anything you share.

Some websites stop other sites from displaying their images. The server checks which site the request came from (the Referer header) and refuses images requested from other domains.

Cloudflare's Hotlink Protection, for one, denies requests when the referrer does not include the site's own domain but allows requests with a blank referrer. That produces a confusing symptom: the image opens fine when you paste the address into your browser, and shows as broken on your page.

People read that symptom the wrong way round. "It opens for me, so the link is good" feels like proof, yet the link was never the problem. What changed between the two requests is who appeared to be asking.

Don't embed images from sites that don't want you to. Ask for permission and host your own copy, or upload your own image to a host built for embedding. Our explainer on what hotlinking is covers when it's acceptable.

Many image hosts and cloud drives give you a link to a web page that shows the image. That link is right for sending to a person. An img tag, a BBCode [img] tag or a Markdown image can't display a web page, though. Each one expects the address of the file itself.

Link typeTypical lookUse it for
Direct linkEnds in .jpg, .png, .gif, .webp or .avifEmbedding in HTML, forums, Markdown, apps
Viewer or share pageNo extension; opens a page with the image on itSending to a person to click
Cloud drive share linkOpens a preview with download buttonsSharing files, not embedding

Use the direct link. On PictureToLink that's the "Direct link" format, the one ending in the file extension. The share page link (/v/...) is meant for people. Our guide to direct links, viewer links and embed codes explains which format works where.

Reddit behaves the same way: a link to a page shows as a link, not a picture. Our guide on how to post images on Reddit covers that case.

5. HTTP on an HTTPS page (mixed content)

A page served over HTTPS with an image address that starts with http:// is mixed content. MDN explains that browsers auto-upgrade image requests from HTTP to HTTPS. If the image server doesn't offer the same file over HTTPS, the upgraded request fails and you see a broken image. MDN also notes that addresses using an IP number instead of a domain name are not upgraded.

Change the address to https:// and check that it loads. A host with no HTTPS version is a host to leave, so move the image to one that has it.

6. A format the browser can't show

The link can be perfect and the browser still unable to display the file type.

HEIC is the usual culprit. It's the iPhone's default photo format, and according to Can I use only Safari 17 and later support it. Chrome, Firefox and Edge show nothing. Camera RAW files, PSD and other editing formats are not web image formats at all. A wrong extension can do it as well, because a file named .jpg that is really something else can fail to display.

Convert the image to JPG, PNG or WebP and upload the converted copy. For iPhone photos, our guide on what HEIC is explains how to share one as JPG, and the HEIC to JPG converter does it in your browser.

7. Blocked in a region or on a network

When an image works for some people and not for others, look at where they are and how they connect.

The host may block a whole country. Since 30 September 2025, Imgur says that content embedded on third-party sites will not display for UK users. Closer to home, a workplace or school network may filter image hosts, and browser extensions such as ad or tracker blockers stop images from certain domains.

A login has the same effect. Images in private albums or behind a sign-in won't load for visitors who aren't signed in.

Test from a different network (mobile data instead of Wi-Fi) or in a private window with extensions off. When the host is blocked for part of your audience, re-host the image somewhere that works for everyone.

8. A stale cache

Caches keep copies of images to speed up loading, and they can go on showing an outdated picture or an old error.

Your own browser is the first suspect. It may hold an old version after the image was changed or fixed. Platforms that proxy images keep copies of their own. GitHub serves external images through a proxy, and its page on anonymized image URLs explains how caching headers affect when updated images appear. Link previews in chat apps and social networks are often generated once and reused.

Reload without the cache (Ctrl + Shift + R on most desktop browsers, Cmd + Shift + R on Mac) and test in a private window. That clears your side only. You can't empty a platform's cache from outside, so when you replace an image, give the new file a new address instead of overwriting the old one.

9. The page or app strips the image

Some places don't display external images at all. Many email apps hide images until the reader allows them. Some forums accept images only from approved hosts, or only from members above a certain rank. Some comment systems remove image tags entirely.

No link will get past that. Check the platform's help pages or rules for what it allows, and where external images aren't allowed, upload the image through the platform's own uploader.

For a dead address that needs a replacement, upload the image to PictureToLink and copy the direct link, BBCode or Markdown version. It needs no account, and other sites are allowed to display it.

That isn't the right fix every time. A forum or app with its own uploader keeps the picture for as long as the post exists, which a second site can't promise. We remove images after 12 months without views, and no free host can offer permanent storage. Keep your original file whichever way you go.

Image Sharing

Markdown Image Syntax: READMEs and Docs

The Markdown image syntax with copy-ready examples, from alt text to sizing and GitHub README images, plus how to host the image file.

· 7 min read
Image Sharing

How to Make a Picture a Clickable Link

How to make a picture a link in HTML or an email, with copy-ready code. If the image is only on your device, host it first; we show how.

· 9 min read

Related calculators