opdeck / blog / fix-facebook-link-preview-image

How to Fix Facebook Link Preview Image Issues: A Step-by-Step Guide

August 19, 2026 / OpDeck Team
FacebookLink PreviewImage IssuesSocial MediaSEO Tips

If you've ever shared a link on Facebook only to see the wrong image appear—or no image at all—you're not alone. Fixing the Facebook link preview image is one of the most common frustrations for website owners, developers, and marketers. The good news is that this problem almost always has a clear cause and a straightforward fix. This guide walks you through every step, from diagnosing the root issue to verifying your solution works correctly.


Why Facebook Link Preview Images Break in the First Place

Before jumping into fixes, it helps to understand what Facebook actually does when someone shares a URL. Facebook's crawler (called the Facebook Sharing Debugger bot) visits your page and reads specific HTML meta tags—primarily Open Graph tags—to determine what image, title, and description to show in the preview.

When the preview image is missing or wrong, it usually comes down to one of these root causes:

  • Missing or incorrect Open Graph og:image tag — Facebook can't find an image to display
  • Image URL is not absolute — A relative path like /images/banner.jpg won't work; Facebook needs a full URL
  • Image dimensions are too small or too large — Facebook has specific size requirements
  • Facebook's cache is stale — The page was updated but Facebook still shows the old preview
  • Image is blocked by a firewall or bot protection — Facebook's crawler can't access the image file
  • The image returns a non-200 HTTP status — A redirect or 404 on the image URL breaks the preview
  • Missing or incorrect MIME type — Facebook expects standard image types like JPEG, PNG, or GIF

Understanding which of these applies to your situation is the first step to a fast resolution.


Step 1: Check Your Open Graph Tags

The foundation of any Facebook link preview is the Open Graph protocol. These are <meta> tags placed in the <head> section of your HTML that tell social platforms exactly what to display.

The minimum set of tags you need for a working Facebook preview looks like this:

<meta property="og:title" content="Your Page Title Here" />
<meta property="og:description" content="A compelling description of your page content." />
<meta property="og:image" content="https://www.yoursite.com/images/preview-image.jpg" />
<meta property="og:url" content="https://www.yoursite.com/your-page/" />
<meta property="og:type" content="website" />

A few critical things to check here:

Make Sure the Image URL is Absolute

This is one of the most common mistakes. The og:image value must be a complete, fully qualified URL including the protocol (https://), domain, and file path. Facebook's crawler does not resolve relative URLs.

Wrong:

<meta property="og:image" content="/images/banner.jpg" />

Correct:

<meta property="og:image" content="https://www.example.com/images/banner.jpg" />

Use the Right Image Dimensions

Facebook recommends an image size of 1200 x 630 pixels for the best display across all devices and contexts. The minimum size is 200 x 200 pixels, but images smaller than 600 x 315 pixels will appear in a much smaller format in the feed. Images larger than 8MB may be rejected entirely.

For best results:

  • Recommended size: 1200 x 630 px
  • Minimum size: 200 x 200 px
  • Aspect ratio: 1.91:1 for large previews
  • File format: JPG or PNG (avoid WebP if possible—Facebook support for it can be inconsistent)
  • File size: Keep it under 8MB; ideally under 1MB for fast loading

Add the og:image:width and og:image:height Tags

While not strictly required, adding explicit dimension tags helps Facebook render the image faster without having to fetch and measure it:

<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />

Step 2: Verify Your Tags with the Social Share Preview Tool

Once you've added or updated your Open Graph tags, the quickest way to verify everything looks correct is to use the Social Share Preview tool on OpDeck. This tool fetches your page's Open Graph data and shows you exactly what Facebook (and other platforms) will display when someone shares your URL—including the image, title, and description preview.

This is particularly useful because it lets you catch issues before they go live, without waiting for Facebook's cache to update. You can see at a glance whether:

  • The og:image tag is present and resolving correctly
  • The image dimensions are appropriate
  • The title and description are pulling through properly
  • Any tags are malformed or missing entirely

Simply enter your URL and the tool will parse all the relevant meta tags and render a visual preview. If the image doesn't show up in the OpDeck preview, it won't show up on Facebook either—which means you have a tag or image accessibility problem to fix before moving on.


Step 3: Test Whether Facebook Can Actually Access Your Image

Even if your og:image tag is perfectly formed, Facebook's crawler still needs to be able to fetch the image file itself. Several things can block this:

Check for Bot-Blocking Rules

If your site uses Cloudflare, a Web Application Firewall (WAF), or any bot protection service, it may be blocking Facebook's crawler. Facebook's scraper uses user agents like facebookexternalhit/1.1 and Facebookbot. Make sure these are whitelisted in your firewall rules.

In Cloudflare, for example, you'd create a firewall rule that allows requests matching the user agent string facebookexternalhit to bypass security challenges.

Verify the Image URL Returns a 200 Status

You can test this quickly with a curl command in your terminal:

curl -I "https://www.yoursite.com/images/preview-image.jpg" \
  -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"

The -A flag sets the user agent to mimic Facebook's crawler. You should see HTTP/2 200 (or HTTP/1.1 200 OK) in the response. If you see a 301, 302, 403, or 404, that's your problem.

  • 301/302 redirect: Facebook may not follow all redirects for images. Update the og:image tag to point directly to the final image URL.
  • 403 Forbidden: The image is being blocked. Check your server configuration and firewall rules.
  • 404 Not Found: The image file doesn't exist at that path. Double-check the filename and directory.

Check the Content-Type Header

While you're looking at the curl output, check the Content-Type header. It should be something like image/jpeg, image/png, or image/gif. If it's returning text/html or something unexpected, the server isn't serving the file correctly.


Step 4: Clear Facebook's Cache with the Sharing Debugger

This is the step most people skip, and it's often the reason the fix doesn't seem to take effect. Facebook aggressively caches link preview data. Even after you've corrected your Open Graph tags and confirmed your image is accessible, Facebook may continue showing the old (broken) preview for hours or even days.

To force Facebook to re-scrape your URL:

  1. Go to the Facebook Sharing Debugger at developers.facebook.com/tools/debug/
  2. Enter your page URL in the input field
  3. Click "Debug"
  4. Review the results—Facebook will show you any warnings or errors it found
  5. Click "Scrape Again" to force a fresh crawl

Sometimes you need to click "Scrape Again" two or three times before the cache fully refreshes. The debugger will show you the timestamp of the last scrape and the current preview data, so you can confirm it's updated.

Pay attention to any warnings the debugger surfaces. Common ones include:

  • og:image should be at least 200x200px
  • Provided og:image is not big enough (minimum 200x200px required)
  • Could not download image (indicates an access or URL problem)

Each warning usually comes with enough context to identify the specific fix needed.


Step 5: Platform-Specific Fixes

How you implement Open Graph tags depends on your CMS or tech stack. Here's how to handle the most common platforms:

WordPress

If you're using WordPress, the easiest solution is the Yoast SEO or Rank Math plugin. Both provide dedicated fields for setting the Facebook preview image on a per-post and per-page basis.

In Yoast SEO:

  1. Edit the post or page
  2. Scroll to the Yoast SEO meta box
  3. Click the "Social" tab
  4. Upload or enter the URL for your Facebook image
  5. Save the post

For site-wide defaults, go to SEO > Social > Facebook in the Yoast settings and set a default image.

If you're managing tags manually in a theme's functions.php or a custom plugin, make sure your og:image output uses get_the_post_thumbnail_url() with the full URL:

<meta property="og:image" content="<?php echo esc_url( get_the_post_thumbnail_url( get_the_ID(), 'large' ) ); ?>" />

Shopify

In Shopify, Open Graph tags are typically handled in your theme's theme.liquid or head.liquid file. Look for existing og:image tags and verify they're outputting absolute URLs. Most modern Shopify themes handle this automatically, but you may need to check that your product images meet Facebook's dimension requirements.

Next.js / React

For Next.js applications, use the next/head component or the newer metadata API (Next.js 13+):

// Using next/head (Pages Router)
import Head from 'next/head';

export default function MyPage() {
  return (
    <>
      <Head>
        <meta property="og:image" content="https://www.yoursite.com/og-image.jpg" />
        <meta property="og:image:width" content="1200" />
        <meta property="og:image:height" content="630" />
      </Head>
      {/* page content */}
    </>
  );
}
// Using Metadata API (App Router, Next.js 13+)
export const metadata = {
  openGraph: {
    images: [
      {
        url: 'https://www.yoursite.com/og-image.jpg',
        width: 1200,
        height: 630,
      },
    ],
  },
};

Static HTML Sites

For plain HTML sites, simply add the tags directly to the <head> section of each page. If you're managing many pages, consider a templating system or build tool to inject these tags consistently.


Step 6: Handle Dynamic or JavaScript-Rendered Pages

If your site is a Single Page Application (SPA) built with React, Vue, or Angular, Facebook's crawler may not execute JavaScript when scraping your page. This means dynamically injected Open Graph tags won't be visible to the crawler—it only sees the initial HTML response.

Solutions for this include:

Server-Side Rendering (SSR): Render the page on the server so the HTML returned to Facebook's crawler already contains the correct meta tags. Next.js, Nuxt.js, and SvelteKit all support SSR natively.

Pre-rendering / Static Site Generation (SSG): Generate static HTML files at build time that include all necessary meta tags. This is the most reliable approach for ensuring crawlers see complete metadata.

Dynamic Rendering: Serve a pre-rendered version of the page specifically to crawlers while serving the full SPA to regular users. Tools like Rendertron or Prerender.io can handle this.

To verify what Facebook's crawler actually sees when it visits your page, use the curl command with Facebook's user agent string (shown in Step 3). The HTML returned in that response is exactly what Facebook will parse for your Open Graph tags.


Step 7: Validate Your Structured Data and Meta Tags Holistically

While you're fixing the Facebook preview image, it's worth doing a broader audit of your social meta tags to make sure everything is in order across platforms. A complete set of tags for maximum compatibility looks like this:

<!-- Open Graph (Facebook, LinkedIn, etc.) -->
<meta property="og:title" content="Your Page Title" />
<meta property="og:description" content="Your page description." />
<meta property="og:image" content="https://www.yoursite.com/images/og-image.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Description of the image for accessibility" />
<meta property="og:url" content="https://www.yoursite.com/your-page/" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Your Site Name" />

<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Your Page Title" />
<meta name="twitter:description" content="Your page description." />
<meta name="twitter:image" content="https://www.yoursite.com/images/og-image.jpg" />

The og:image:alt tag is often overlooked but is important both for accessibility and for Facebook's content policies.


Common Mistakes to Avoid Going Forward

Once you've fixed the immediate issue, here are a few practices to prevent it from happening again:

  • Always use absolute URLs for og:image values—never relative paths
  • Create a dedicated OG image template for your site so every new page automatically gets a properly sized preview image
  • Test before publishing using the Social Share Preview tool to catch issues before they reach your audience
  • Keep images under 1MB to ensure fast loading for Facebook's crawler
  • Avoid using the same image for every page—unique images per page improve click-through rates significantly
  • Re-scrape after updates using Facebook's Sharing Debugger any time you change a page's preview image

Conclusion

Fixing the Facebook link preview image comes down to three things: correct Open Graph tags with an absolute image URL, an accessible image that meets Facebook's size requirements, and a forced cache refresh via the Sharing Debugger. Work through each step methodically and you'll have a working preview in most cases within minutes.

To make this process faster and more reliable, use the Social Share Preview tool on OpDeck to instantly audit your page's Open Graph tags and see exactly what your link preview will look like before sharing. It's a free, no-setup tool that can save you a lot of trial and error. Head to opdeck.co to run a check on your URLs and make sure every link you share looks exactly the way you intend.