Link Preview CheckerSee the card before you post the link.
Paste a URL and get the share card as Facebook, X, LinkedIn, WhatsApp, Discord, Slack, Telegram and iMessage will each render it, in light and dark, plus a list of what is missing and the tags to paste to fix it.
The URL is fetched by our server because browsers cannot read another site for you. It is never logged, never stored, and never passed to a third party.
Paste a URL to see its share cards
You get the card as Facebook, X, LinkedIn, WhatsApp, Discord, Slack, Telegram and iMessage will each render it, plus a list of what is missing.
Why does my link preview show the wrong image?
Almost always one of five things, and this open graph checker names which one rather than telling you to "add og:image" when you already have.
There is more than one og:image
A theme adds one, a plugin adds another, and the platforms overwhelmingly take the first they meet in the head. The picture you expected is usually further down. The tag table above lists every candidate and marks the one that wins.
The image is a relative path
og:image="/img/card.png" is not a URL a scraper can fetch. It has to be absolute, and it has to resolve from the final address after redirects, not the one you typed. If your site redirects to www, a path that works locally can resolve to nothing in production.
The image is hotlink-protected
It opens fine in your browser because you have a session and the right referer. A scraper has neither, gets a 403, and the card falls back to no image. This tool loads the image the way a stranger would, so that failure shows up here rather than after you post.
The platform is still showing its cache
You fixed the tag an hour ago and the old picture is still there. Every platform caches the preview independently and some hold it for weeks. Nothing you change on your side clears it, you have to re-scrape the URL with the platform's own tool.
The page never had the tags to begin with
If your site renders on the client, the tags exist in your inspector and not in the HTML the server returned. No scraper waits for JavaScript. This is the most common cause on modern stacks and the one people are slowest to believe.
Which Open Graph tags do you actually need?
Four carry the card. The rest are refinement, and a meta tags preview that flags all twenty as equally urgent is not helping you.
og:title and og:description
The headline and the two lines under it. Without og:title a platform falls back to <title>, which is usually written for search results and reads badly as a card headline. Without a description the card body is simply blank.
og:image, absolute and at least 1200px wide
Facebook documents 200x200 as the floor and 1200x630 as the recommendation. LinkedIn documents 1200x627, and that images under 401px wide render as a small thumbnail instead of a banner. One 1200x630 image satisfies every platform at once.
twitter:card
The one tag X genuinely needs from you. Set it to summary_large_image and your Open Graph tags carry the rest: X falls back to og:title, og:description and og:image when the twitter: equivalents are absent, so you do not need to duplicate them.
og:url, and the ones that only tidy things up
og:url stops the same page counting as several when it is shared with different tracking parameters. og:image:width and height let a platform lay the card out before the image arrives. og:type, og:site_name, og:locale and og:image:alt are polish.
Do I need Twitter tags if I already have Open Graph?
Mostly no, and this is where a lot of duplicated markup comes from. Two blocks worth understanding before you copy a fifteen-line snippet off a blog.
X falls back to Open Graph on its own
If twitter:title, twitter:description or twitter:image are missing, X reads og:title, og:description and og:image instead. So the only tag you genuinely have to add is twitter:card, which tells it whether to draw the small square summary or the large banner. Adding the rest is only useful when you want X to say something different from everywhere else.
property= versus name=, and why both work
The Open Graph spec puts its tags on property=, and the X card spec puts its own on name=. In practice both platforms read both, which is why a checker that only matches one spelling reports half your tags as missing. This one parses both and tells you which spelling you used, as a note rather than an error.
Why is my preview still showing the old image?
Because the platform is not looking at your page. It is looking at the copy it took the first time anyone shared the link, and it will keep doing that until something makes it look again.
Each platform caches separately
Fixing the tag does not notify anyone. Facebook, LinkedIn and X each hold their own copy, so a link can look correct in one place and stale in two others at the same time.
Re-scrape with the official tools
The Facebook Sharing Debugger, the X Card Validator and the LinkedIn Post Inspector each have a button that forces a fresh fetch. That is the only reliable way to clear it, and it is instant.
The messengers mostly do not cache
WhatsApp, Telegram, Discord and Slack generally fetch on each new message, so they are the fastest way to confirm a fix without waiting on anyone else.
A new URL is the escape hatch
If a platform refuses to refresh, sharing a URL it has never seen sidesteps the cache entirely. Adding a query parameter is usually enough.
Not sure where a shortened link actually goes? Unwrap it with the QR code resolver
Need a clean link to share once the tags are fixed? Make one with the free link shortener
The preview is the easy half. Knowing what the click did is the other one.
A good card gets the click. After that a raw URL tells you nothing: not where the visit came from, not which platform actually delivered, and it cannot be pointed somewhere else once it is posted. That gap is what LinkScale exists for.
See which platform delivered
Clicks by source, country and device, so you know whether the LinkedIn post or the newsletter did the work.
Change where it goes, later
Repoint a link that is already posted, without asking anyone to share it again.
Keep the card intact
A LinkScale link carries its own share tags, so shortening it does not cost you the preview you just fixed.
Link preview questions
Still have questions?
OnlineReal humans, usually replying in a few minutes.
It is free, with no account and no usage limit worth mentioning. The URL is fetched by our server, because a browser cannot read another site for you, and that is the only thing the endpoint does: fetch the page, extract the tags, return them. It is not logged, not written to any database, and not passed to any third party. If you would rather nothing left your machine at all, the paste-your-HTML mode does the whole analysis in your browser.
Go further with LinkScale
The card is fixed. Now find out what the click was worth.
LinkScale shows you where every click came from and lets you change where a link goes after it is posted.
Free 14-day trial on every plan
