Open Graph Debugger: How to Debug Link Previews
An Open Graph debugger shows you exactly what social media crawlers see when they fetch your URL. If your link preview is broken — wrong image, missing title, outdated content — a debugger is the first tool you reach for. This guide walks through every major OG debugger step by step, explains common error messages, and shows you how to systematically fix link preview issues.
If you have ever shared a link and seen an outdated or broken preview — wrong image, missing title, or a description pulled from your cookie banner — the problem is almost certainly a caching or meta tag issue. An OG debugger helps you identify exactly what went wrong.
Debuggers serve three purposes: Validation — confirm your OG tags are present, correctly formatted, and contain the values you expect. Preview — see the actual card that will appear on a platform before you share publicly. Cache clearing — force the platform to re-fetch your page and update its stored preview data.
Without a debugger, you are guessing. A page might look correct in your browser but return completely different content to a crawler — especially if your meta tags are JavaScript-rendered, your server returns different content based on user agent, or your CDN is caching a stale version.
Facebook Sharing Debugger
The Facebook Sharing Debugger is the most widely used OG debugger. It is the definitive tool for understanding how Facebook (and by extension, WhatsApp and Messenger) will display your link.
URL: developers.facebook.com/tools/debug/
Requirements: A Facebook account (login required). The URL you want to debug must be publicly accessible — not behind authentication or localhost.
How to use it: Go to the debugger URL, log in with your Facebook account if prompted, enter your full URL (e.g., https://example.com/blog-post/), click "Debug", and review the results. The results page shows the link preview card, every scraped OG tag, and any warnings about missing tags or image problems.
Using "Scrape Again": When you see outdated data, click "Scrape Again" at the top of the results page. This forces Facebook to re-fetch your URL right now, bypassing its cache. You can click it multiple times — each click triggers a fresh fetch. After clicking, the preview updates to reflect your current page content, any new or changed OG tags are picked up, and the timestamp updates to show the fresh scrape time.
What the debugger shows: Response Code (should be 200), Fetched URL (after redirects), Canonical URL (from og:url), Redirect Path, extracted og:title, og:description, og:image values, and the time the page was last scraped.
Common warnings: "Inferred Property" means Facebook guessed the value because your tag is missing — add it explicitly. "og:image could not be downloaded" means the image URL returned an error or is blocked. "Provided og:image is not big enough" means your image is smaller than 200 x 200 pixels — use at least 1200 x 630.
LinkedIn Post Inspector
LinkedIn's Post Inspector is straightforward and does not require a login, making it the quickest way to debug LinkedIn link previews.
URL: linkedin.com/post-inspector/
How to use it: Go to the Post Inspector URL, enter your URL, and click "Inspect". Review the preview and extracted metadata.
Key behavior: Every time you inspect a URL, LinkedIn automatically clears its cached data for that URL and fetches it fresh. There is no separate "refresh" button — inspecting IS refreshing. No login is required, unlike Facebook's debugger.
What the inspector shows: The ingested URL, page title (from og:title or <title>), description (from og:description or <meta name="description">), the og:image LinkedIn will display, author (from article:author if present), and published date (from article:published_time if present). If any fields show unexpected values or are empty, your OG tags are missing or misconfigured.
Twitter/X Card Validator
Twitter's original Card Validator was a standalone debugging tool similar to Facebook's Sharing Debugger. It has been deprecated as a dedicated tool, but there are still ways to debug Twitter cards.
The Card Validator at cards-dev.twitter.com/validator is no longer available as a standalone page. Twitter/X has integrated card preview functionality into the tweet composer.
How to debug Twitter cards now: Go to twitter.com or open the X app. Start composing a new tweet. Paste your URL into the tweet text. Wait a moment — Twitter fetches the URL and renders a card preview below the compose box. Check the preview: title, description, image, and card type. You do not need to post the tweet — composing it is enough to trigger the fetch. This composing action also forces Twitter to re-crawl the URL, effectively clearing its cache for that link.
Twitter uses its own meta tag system alongside OG tags. If twitter: tags are absent, Twitter falls back to OG tags: twitter:title falls back to og:title, twitter:description falls back to og:description, and twitter:image falls back to og:image. The twitter:card tag has no OG fallback — it must be explicitly set. Without it, Twitter defaults to a summary card (small square image) instead of summary_large_image (large landscape image).
Twitter Card Meta Tags
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Your Title" />
<meta name="twitter:description" content="Your description" />
<meta name="twitter:image" content="https://example.com/image.jpg" />Using PreviewOG as an All-in-One Debugger
Platform-specific debuggers are useful, but checking each one separately is time-consuming. PreviewOG lets you enter a URL once and see previews for Facebook, Twitter/X, LinkedIn, and WhatsApp side by side.
This approach has several advantages: One URL, all platforms — see every preview card in a single view. No login required — no Facebook account needed. Cross-platform comparison — immediately spot when a preview looks correct on one platform but broken on another. Speed — faster than opening four separate debugging tools.
Use PreviewOG as your first check, then follow up with platform-specific debuggers when you need to clear a particular platform's cache.
Programmatic Cache Clearing
For automated workflows, CI/CD pipelines, or bulk cache clearing, you can use Facebook's Graph API to programmatically force a re-scrape.
Facebook Graph API: To get an access token, go to developers.facebook.com/tools/explorer/, generate a User Token or use an App Token. The token needs no special permissions for the scrape endpoint.
LinkedIn does not offer a public API for cache clearing. The Post Inspector web interface is the only official method.
Twitter/X does not provide a programmatic cache-clearing endpoint. The only methods are composing a tweet with the URL or waiting for the approximately 7-day cache to expire.
Clear Facebook Cache via API
# Clear cache for a single URL
curl -X POST \
"https://graph.facebook.com/v19.0/?id=https://example.com/your-page/&scrape=true&access_token=YOUR_ACCESS_TOKEN"Batch Cache Clearing Script
#!/bin/bash
TOKEN="YOUR_ACCESS_TOKEN"
URLS=(
"https://example.com/page-1/"
"https://example.com/page-2/"
"https://example.com/page-3/"
)
for url in "${URLS[@]}"; do
curl -s -X POST \
"https://graph.facebook.com/v19.0/?id=${url}&scrape=true&access_token=${TOKEN}"
echo "Scraped: ${url}"
sleep 1 # Rate limiting
doneCommon Debugger Errors and Fixes
Here are the most common errors you will encounter across OG debuggers and how to fix them:
"Inferred Property" (Facebook): OG tag is missing; Facebook guessed the value from page content. Fix: add the missing og: meta tag explicitly.
"og:image could not be downloaded" (Facebook): Image URL returns an error, times out, or is blocked. Fix: verify the image URL returns 200 OK, is publicly accessible, and responds within 5 seconds.
"Provided og:image is not big enough" (Facebook): Image is smaller than 200 x 200 pixels. Fix: use a 1200 x 630 image.
"Scrape Information has expired" (Facebook): Cache data is very old. Fix: click "Scrape Again" to refresh.
No image in preview (all platforms): og:image is missing, uses a relative URL, uses an HTTP URL, or the image returns 404. Fix: add an absolute HTTPS og:image URL and verify image accessibility.
Wrong image in preview (all platforms): Cached old image, multiple og:image tags, or no og:image so the platform auto-detected the wrong image. Fix: clear cache via debugger, remove duplicate tags, add explicit og:image.
Title shows <title> instead of og:title (all platforms): The og:title tag is missing or empty. Fix: add the og:title meta tag.
Description is page body text (all platforms): Both og:description and meta description are missing. Fix: add the og:description meta tag.
"Properties were not set" (LinkedIn): No OG tags found in the page HTML. Fix: verify OG tags are server-rendered, not JavaScript-injected.
Redirect chain too long (all platforms): Too many 301/302 redirects before the final URL. Fix: reduce the redirect chain to 1-2 hops maximum.
SSL error (all platforms): Invalid or expired SSL certificate. Fix: renew the certificate and ensure the full chain is served.
Timeout (all platforms): Server response took too long. Fix: optimize server response time and use a CDN.
Step-by-Step Debugging Workflow
When a link preview is not working correctly, follow this systematic approach:
Step 1: Check tags in source HTML. View the raw HTML that the server returns, not what the browser renders after JavaScript execution. Use curl to fetch your page and search for og: and twitter: tags. Verify all 4 required OG tags are present (og:title, og:type, og:image, og:url), og:description is present, og:image is an absolute HTTPS URL, twitter:card is set, and there are no duplicate tags. If tags are missing in the curl output but visible in your browser, your tags are JavaScript-rendered and invisible to crawlers. Fix your server-side rendering.
Step 2: Verify image accessibility. Use curl -I to check your OG image URL. The response code should be 200 OK, Content-Type should be image/jpeg, image/png, or image/webp, Content-Length should be under 5 MB (ideally under 1 MB), and there should be no redirect chain longer than 2 hops.
Step 3: Run through debugger. Use PreviewOG for a quick all-platform check, then use the platform-specific debugger for the platform where the issue occurs. Facebook issue: use Sharing Debugger + "Scrape Again". LinkedIn issue: use Post Inspector. Twitter issue: compose a tweet with the URL.
Step 4: Fix issues. Based on debugger output: add missing tags, fix incorrect tag values, replace relative URLs with absolute HTTPS URLs, resize image to 1200 x 630 if too small, fix server-side rendering if tags are not in raw HTML.
Step 5: Clear cache and re-test. After making fixes: deploy your changes, clear CDN cache if applicable, click "Scrape Again" on Facebook's debugger, inspect again on LinkedIn's Post Inspector, compose a tweet to trigger Twitter re-crawl, and verify all previews show the updated content.
Check OG Tags in Raw HTML
curl -s https://example.com/your-page/ | grep -E 'og:|twitter:'Verify Image Accessibility
curl -I https://example.com/images/your-og-image.jpgQuick Reference
Debugger URLs: Facebook Sharing Debugger at developers.facebook.com/tools/debug/ (login required, clears cache via "Scrape Again"). LinkedIn Post Inspector at linkedin.com/post-inspector/ (no login, auto-clears cache on inspect). Twitter/X via the tweet composer on twitter.com (login required, auto-clears on compose). All platforms via PreviewOG (no login, preview only — no cache clear).
Debugging checklist: curl the URL and verify OG tags in raw HTML. Verify og:image URL returns 200 OK. Check image dimensions (1200 x 630) and file size (under 1 MB). Run URL through PreviewOG for all-platform preview. Use Facebook Sharing Debugger + "Scrape Again". Use LinkedIn Post Inspector. Compose a tweet to test Twitter card. Confirm no duplicate OG tags in source. Confirm no JavaScript-rendered OG tags. Confirm og:url matches canonical URL.
FAQ
Go to the Facebook Sharing Debugger at developers.facebook.com/tools/debug/, enter your URL, and click "Scrape Again." This forces Facebook to re-fetch your page immediately. For programmatic clearing, use the Facebook Graph API with a POST request to graph.facebook.com/?id=YOUR_URL&scrape=true&access_token=YOUR_TOKEN.
The standalone Card Validator tool has been deprecated. You can still debug Twitter cards by composing a tweet with your URL — Twitter renders a card preview in the composer and re-crawls the URL in the process. You don't need to post the tweet.
Use the LinkedIn Post Inspector at linkedin.com/post-inspector/. Enter your URL and click "Inspect." This shows the extracted OG tags and preview card, and automatically clears LinkedIn's cache for that URL. No login is required.
WhatsApp has no official cache-clearing tool or API. The most reliable workaround is appending a query parameter to your URL (e.g., ?v=2) so WhatsApp treats it as a new URL and fetches fresh data. Clearing the WhatsApp app cache on your device only affects your local preview.
This means Facebook couldn't find a specific OG meta tag in your HTML and guessed the value from other page elements (like <title> for og:title, or page text for og:description). Add the missing OG tags explicitly to control what Facebook displays.
Platform crawlers cannot access authenticated pages. You need to make your OG tags accessible without authentication. Options: serve OG tags to all visitors but restrict page content, use a pre-rendering service, or create a public landing page variant that the crawled URL resolves to.
Facebook's image processing is asynchronous. After clicking "Scrape Again," the OG tags update immediately but the image may take a few seconds to minutes to reprocess, especially for large images. Click "Scrape Again" a second time after waiting 30 seconds. Also ensure you've specified og:image:width and og:image:height in your tags.