Free · No sign-up · No scan history
Check your Open Graph tags before you share
Paste a URL to preview it on Google, Facebook, X, LinkedIn, WhatsApp, Telegram, Discord and Slack, get a health score, and copy the fixes.
Previews for
- X
- Telegram
- Discord
- Slack
Frequently asked questions
What are Open Graph tags?
Open Graph tags are <meta> tags in a page's <head> that tell social networks and chat apps what to show when someone shares the link: a title (og:title), a short description (og:description), an image (og:image) and the canonical address (og:url). The protocol was created by Facebook and is now read by almost every platform that builds link previews.
Without them, each platform guesses from the page's <title>, meta description and whatever image it finds, and the result is often a bare link or the wrong picture.
Do I need Twitter Card tags if I already have Open Graph tags?
Mostly not. X (Twitter) falls back to og:title, og:description and og:image when the twitter: versions are missing. The one tag worth adding is twitter:card: set it to summary_large_image for a wide image above the title, or summary for a small square thumbnail. Without it, X shows the small summary card.
Discord and Slack also read twitter:card to decide whether to show a large image or a thumbnail.
What size should my og:image be?
Use 1200×630 pixels (a 1.91:1 ratio). That size is shown as a large image on Facebook, LinkedIn, WhatsApp, Discord and Slack, and works for the X large card (2:1, slightly cropped).
Keep the file under 5 MB for X and LinkedIn and under 8 MB for Facebook. WhatsApp seems to drop images larger than about 600 KB, so a well-compressed JPEG is the safest choice. Use JPEG or PNG: SVG is not shown anywhere and AVIF only on a few platforms.
Smaller images are demoted: Facebook shows a small thumbnail below 600×315 and no image at all below 200×200. The social card cheat sheet lists the rules for each platform.
Why isn't my og:image showing up?
The most common causes: the URL is relative (/images/card.png) instead of absolute (https://example.com/images/card.png); the image is served over http; the image server blocks crawlers or needs a login or cookie; the file is too large or in an unsupported format such as SVG; or the image is smaller than the platform's minimum.
Run a check: the health report fetches the image the way a crawler would and tells you which of these applies. If everything looks right, the platform has probably cached an older version of your page (see the next question).
I fixed my tags. Why do Facebook and LinkedIn still show the old preview?
Platforms cache the preview they built the first time someone shared the link, often for days. Facebook's Sharing Debugger and LinkedIn's Post Inspector re-fetch the page when you paste the URL and ask them to scrape again; on Telegram, send the link to @WebpageBot. X, WhatsApp, Discord and Slack have no public refresh tool: their cache expires on its own, or you can share the URL with a harmless query string added (for example ?v=2) to get a fresh preview.
My tags look right in the browser. Why do crawlers not see them?
Link preview crawlers don't run JavaScript. If your tags are added in the browser (a single-page app built with React, Vue or Angular without server rendering), crawlers only see the empty HTML shell. Open your page's source (not the element inspector) to see what crawlers get.
The fix is to put the tags in the HTML the server sends: use your framework's server-side metadata API (Next.js generateMetadata, Nuxt useSeoMeta, React Router meta) or prerender the pages. The checker flags pages that look client-side rendered, and the code snippets give you a starting point for each framework.
How is the health score calculated?
Every check has a fixed list of possible problems, and each problem has a fixed severity and point cost. The score is 100 minus the points of the problems found, so the same page always gets the same score. A page that answers with an HTTP error scores 0, because platforms don't build previews from error pages.
Each deduction comes with the reason and how to fix it. Some findings cost no points: they explain something (such as a single redirect or a noindex header) without being a problem for link previews.
Are the previews exactly what each platform shows?
They are close approximations, not screenshots. Platforms change their layouts, truncation and cropping without notice, and some vary by device, language and app version. We rebuild each card from the platform's documented and observed rules (listed in the cheat sheet with the date they were last checked). Use the official tools linked in the report for the final word on Facebook and LinkedIn.
Why can't I check localhost, an IP address or an internal URL?
The checker fetches pages from our server, not from your computer, so it can't reach your local machine or private network. For safety it also refuses IP addresses, internal host names and anything that resolves to a private address. To test a page under development, deploy it to a public preview URL or use a tunnel, and remember that anyone with the link can then open it.
Do you store the URLs I check?
No history is kept and there are no accounts. A scan result is cached for 10 minutes so repeated checks of the same page are fast, then it expires. We never log the addresses you check. Don't check links that contain private tokens or passwords in the query string: the address has to be sent to our server to be fetched. The privacy policy has the details.
Which user agent does the checker use?
Requests come from a crawler that identifies itself as OGCheckerBot, with a link to a page that explains what it does. It only fetches a page when a person asks for it, reads the <head> and stops, and checks at most two images. Site owners can block it by user agent; the crawler page explains how.