All posts
Guides··8 min read

Facebook link preview not showing (no image, wrong image, old title)? How to fix it

You paste a link into Facebook and get no picture, the wrong picture, an old title or no preview card at all. Here is how to see what Facebook's crawler actually read, and the fix for each cause Meta documents.

Founder, OneSol

A smartphone on an orange background

You paste a link into a Facebook post, a comment or a Page update and the card under it is wrong. Sometimes there is no picture at all, sometimes it shows a logo or a random image from the page, sometimes it still has last month's headline, and sometimes there is no preview card, just the bare link.

Facebook does not look at the page the way you do. It sends a crawler to read a small set of tags in the page's code, caches what it finds, and builds the card from that copy. So almost every broken preview comes down to one of four things: the tags are missing or wrong, the image does not meet Meta's size rules, Facebook is showing an old cached copy, or the crawler could not reach the page at all. The fix depends on which one you have.

Tell which case you're in

Match what you see to the likely cause, then jump to that section.

  • No image on the first share of a brand-new link, but it appears later: the image had not been cached yet (see the image section).
  • A small square thumbnail instead of a wide picture: the image is smaller than 600 x 315 pixels.
  • A blank white box where the image should be: the image is gone, larger than 8 MB, or could not be fetched.
  • The picture is cropped badly: the image is far from a 1.91:1 shape.
  • Old title, old description or old picture after you changed the page: Facebook is using its cached copy.
  • A random image, or the wrong title, from the page: there are no Open Graph tags, so Facebook guessed.
  • No preview card at all, or the link cannot be posted: the crawler was blocked, or the link was flagged by Meta's content filtering.

First, see what Facebook actually read: the Sharing Debugger

Meta's own tool for this is the Sharing Debugger at developers.facebook.com/tools/debug/sharing. You need to be logged in to Facebook to use it. Type the page address into the box and click Debug. The results show the tags Facebook's crawler read from your page, plus any errors or warnings.

The same tool also forces a fresh read. Meta's documentation says that entering a URL into the Sharing Debugger triggers a new scrape, and that this is how you refresh content sooner than Facebook would on its own. At the time of writing, the results page has a Scrape Again button for this. If you are a developer, Meta documents the same thing as an API call: a POST request to /?id={your_url}&scrape=true with the URL percent-encoded.

Check three things in the results: whether og:title, og:image and og:url are present, whether the image URL it found is the one you expect, and whether there are any warnings. That tells you which of the sections below applies.

Cause 1: missing or wrong Open Graph tags

The preview card is built from Open Graph tags: meta tags in the page's head section, written like <meta property="og:title" content="Your title" />. The Open Graph protocol (ogp.me) lists four required properties: og:title, og:type, og:image and og:url. Meta's webmaster docs add og:description (a brief description shown below the title) and recommend og:locale. If the tags are missing, Meta says the crawler guesses the title, description and preview image, which is where random images come from.

What each tag should contain, according to Meta and ogp.me:

  • og:title: the title of the page or article, without your site name or other branding.
  • og:description: a short description, which Meta says is usually 2 to 4 sentences.
  • og:image: the full address of the image you want in the card.
  • og:url: the canonical address of the page, without session or tracking parameters. Facebook treats links that declare the same og:url as one item.
  • og:type: defaults to website if you leave it out. Meta notes the type cannot be changed once the link has been used in a story.
  • Use absolute URLs. Meta's FAQ says the debugger rejects relative addresses in og:url and og:image, so write https://example.com/image.jpg, not /image.jpg.
  • Put the tags near the top of the page. Meta's crawler documentation says Open Graph properties must appear within the first 1 MB of the page or they will be cut off.

Cause 2: the image is too small, too big or not cached yet

Meta publishes clear numbers for link images. At the time of writing they are:

  • Recommended: at least 1200 x 630 pixels for the best display on high-resolution devices.
  • For a large preview: at least 600 x 315 pixels. Anything smaller (but above 200 x 200) shows as a small square.
  • Minimum: 200 x 200 pixels.
  • Maximum file size: 8 MB.
  • Shape: as close to 1.91:1 as possible, so the whole image shows in Feed without cropping.
  • Format: Meta lists image/jpeg, image/gif and image/png for og:image:type.

If a new link shows no image the first time it is shared, that is a documented caveat: Meta caches images asynchronously, so the first person to share new content may not see a rendered image. Two fixes from Meta's docs: run the URL through the Sharing Debugger before you share it, which pre-caches the image, and add og:image:width and og:image:height tags with the image's real size so the crawler can render it immediately instead of downloading and processing it first.

A blank white box usually means the image you pointed to is no longer there. Meta's FAQ says to keep old images on your server after you change og:image, because existing shares still point at them.

Cause 3: Facebook is showing an old cached copy

Facebook stores what it read. Meta's docs say the crawler refreshes link data about every 30 days on its own, so an edit can take that long to appear unless you force it. To update a preview properly:

  • Change the og tags on the page itself.
  • If you changed the picture, upload it under a new file name. Meta says images are cached by URL and will not update unless the URL changes.
  • Put the page address into the Sharing Debugger and have it scrape again. New shares then use the updated data.
  • Posts that are already published keep the old card. To update one, open the post, click the three dots in its upper-right corner and choose Refresh share attachment.
  • If the title will not change no matter what, check engagement. Meta's FAQ says the title is locked once the link has had more than 50 interactions (comments, likes, shares and so on).

Cause 4: the crawler can't reach the page

If the debugger shows an error, or the tags it lists do not match your page, Facebook's crawler is probably being turned away or sent somewhere else. Meta identifies it with the user agent facebookexternalhit/1.1, and its documentation lists these requirements and pitfalls:

  • robots.txt: a Disallow rule for Meta's crawlers blocks them. Meta notes crawlers may cache robots.txt for up to 24 hours, so a fix there can take a day to take effect.
  • Firewalls and security plugins: Meta says to add its crawler to your allow list by user agent or, more securely, by IP address.
  • Speed: the content must be crawlable within a few seconds, or Facebook may be unable to display it.
  • Compression: your server must support gzip and deflate encodings.
  • Partial requests: the server should either answer a Range request with all the required tags in that byte range or ignore the Range header.
  • Redirects: the crawler follows redirects and uses the final page in the chain, and it also follows an og:url that points somewhere else. Make sure the final page has the tags you want. Since 3 February 2020 an og:url can only point to a different domain if that domain has allowed yours in Meta's Webmaster tool.
  • Login walls: Meta's docs don't cover sign-in pages directly, but the crawler only sees what an anonymous visitor gets. If a logged-out visitor sees a sign-in screen, the card is built from that screen's tags. Put the og tags on the page the public sees, or serve them to Meta's crawler.
  • Response code 0 in the debugger: Meta's FAQ says the crawler looks for an AAAA (IPv6) DNS record and returns code 0 if it is not found, so check your DNS records after moving servers.

No preview at all, and the debugger looks fine

If the tags are correct and the crawler can read them, but Facebook still will not show a preview or will not let the link be posted, Meta's FAQ gives one more cause: the link may have been flagged by its content filtering system. Meta says you can report this through its Help Site if you think it is a mistake. Clearing caches or changing tags will not fix a flagged link.

When it isn't your website

If you are sharing someone else's article or product page, you can't change its tags, but you still have some options. Run the link through the Sharing Debugger yourself; if Facebook simply has an old copy, a fresh scrape may fix the card for everyone's new shares. If your own post already went out with a bad card, use Refresh share attachment from the post's three-dot menu.

If the debugger shows missing tags, a tiny image or a crawler error, only the site owner can fix it. Send them the address and what the debugger reported; it points them straight at the problem. In the meantime, you can post your own photo or screenshot and put the link in the text, so the post still has a picture.

If you share lots of different links

If you keep sharing several profiles or pages and the cards are a mess, OneSol gives you a free page with one link for all of them, so there is one address to get right. It also covers forms that don't make people sign in, digital business cards with a QR code, and Send for sharing files by link up to 5 GB; payments through your own Stripe, PayPal, Razorpay or Square come with the paid Pro plan.

Want one link that just works?Make a free OneSol page: one link for Instagram, TikTok, WhatsApp and YouTube, with your forms and payments on the same page.Create your free page →

Still stuck? More fixes

Frequently asked questions

Why does my link show no image on Facebook?

Usually because the page has no og:image tag, the image is too small or too large, or Facebook's crawler could not fetch it. Meta also notes that images are cached asynchronously, so the very first share of a new link may show no image. Run the URL through Meta's Sharing Debugger to pre-fetch it, and add og:image:width and og:image:height tags so the image renders on the first share.

What size should a Facebook link preview image be?

Meta's documentation recommends at least 1200 x 630 pixels for the best display on high-resolution screens, and at least 600 x 315 pixels for the large preview. The minimum is 200 x 200 pixels and the maximum file size is 8 MB. Keep the image as close to a 1.91:1 aspect ratio as possible to avoid cropping. Images between 200 x 200 and 600 x 315 show as a small square.

How do I make Facebook show my new image or title?

Update the og tags on your page, use a new file name (new URL) for a new image because Meta caches images by URL, then enter the page address in the Sharing Debugger and make it scrape the page again. That affects new shares. For a post that is already published, open the post's three-dot menu and choose Refresh share attachment.

Why can't I change the title of a link on Facebook?

Meta's Link Sharing FAQ says that once a shared link has had more than 50 interactions (comments, likes, shares and so on), its title cannot be changed. New tags will still be read for other properties, but the title stays locked.

Can I fix a link preview for a website I don't own?

Not the underlying tags. Only the site owner can change the page's Open Graph tags. You can still run the link through the Sharing Debugger (you need to be logged in to Facebook) in case Facebook simply has an old copy cached, use Refresh share attachment on your own post, or tell the site owner what the debugger reports.

Written by

Founder, OneSol · Karachi, Pakistan

Hasnain Saleem is the founder of OneSol. He is a full-stack developer based in Karachi, Pakistan, and runs the web studio Web Newbiz, where he has spent more than four years building websites, online stores and booking systems for small businesses — more than twenty client sites in Laravel, WordPress and WooCommerce.

Run all of this from one link.

Free to start — no card required.