Paste a URL or a page's HTML and get eight separate previews, because eight platforms resolve eight different chains of tags. Every card names which tag its title, description and image actually came from, and what would stop it rendering.
The interactive tool loads with this page and runs entirely in your browser.
There is no such thing as one share preview
Most checkers show a single card and label it "preview". No platform renders that card. X reads twitter:title before og:title; LinkedIn ignores the twitter: namespace entirely, so a page whose only image is a twitter:image posts to LinkedIn with no image at all. Slack reads og: first and falls back to twitter:. Discord takes the coloured bar down the side of its embed from theme-color, which nothing else uses.
So this resolves each platform separately and tells you which tag won. "Your title came from <title>, not og:title" is the answer to most of the questions people arrive here with, and a merged preview cannot express it.
The two tools that used to answer this are gone
X retired its Card Validator in 2023, and there is no replacement: the only way to see an X card now is to post the link. Facebook's Sharing Debugger still exists but sits behind a logged-in developer account, which is a strange requirement for reading tags that are public by definition. LinkedIn's Post Inspector still works and is still the right tool for one specific job, forcing a cache refresh, which nothing else can do for you.
Nothing here fetches your page from your browser. The tags are read server-side and parsed locally, and if you paste HTML instead, the page never leaves your machine.
The failure is almost always the image
A relative og:image. This is the single most common broken card. content="/img/hero.png" works when you click it in your editor, because your browser resolves it against the page. Crawlers do not. The tag has to carry the whole absolute URL, scheme and domain included.
No twitter:card. The full-width image on X and Discord is opt-in. With an image but no twitter:card set to summary_large_image, you get the small square thumbnail beside the text, and people usually conclude the image is broken when it is only small.
Missing og:image:width and og:image:height. Without them a platform has to download the image before it knows its shape, so the very first time a URL is shared the card often renders blank and only looks right afterwards. Declaring 1200 and 630 removes that first-share gap.
Tags added by JavaScript. Crawlers read the HTML that arrives over the wire. A tag injected after load exists for a browser and does not exist for a crawler, which is also why tags that end up in the <body> are ignored.
Every platform caches, and they disagree about that too
Fixing a tag does not fix a link you already posted. LinkedIn holds a card for around seven days and its Post Inspector is the only way to force a refresh. Telegram caches per URL and only @WebpageBot clears it. Facebook re-scrapes when you run the URL through its debugger. iMessage has no central cache at all, because it fetches from the device, so a corrected tag shows up on the very next send. Adding a harmless query parameter to the end of a URL is the general-purpose escape hatch: to a cache it is a new URL.
Trace a link's full redirect chain.See every hop in a redirect chain and catch dropped UTM tags and click IDs before they cost you attribution.
Questions
Why does my link show an image on Facebook but not on LinkedIn?
Almost always because the image is declared as twitter:image rather than og:image. LinkedIn does not read the twitter namespace at all, so it finds no image and falls back to a text-only card, while platforms that do read it are fine. Declaring og:image fixes it everywhere at once.
Why is my image showing up small on X instead of full width?
The large card is opt-in. Without a twitter:card meta tag set to summary_large_image, X renders the small square summary card even when the image is large and correct. That one tag is the whole difference.
I fixed the tags and the preview is still wrong. Why?
You are looking at a cached card. Each platform caches independently: LinkedIn for about a week, cleared with its Post Inspector; Telegram until @WebpageBot is asked to refresh; Facebook until the URL is re-run through its debugger. Adding a query parameter to the URL sidesteps every cache at once, because to a cache that is a different URL.
Can I preview a page that is not published yet?
Yes, by pasting the HTML instead of the URL. The parsing runs in your browser, so a staging page behind a login, or a file you have not deployed, works exactly the same as a live one and nothing is uploaded.
Do I need both og: and twitter: tags?
Not usually. Every platform here either reads og: directly or falls back to it, so a complete set of og: tags covers all of them. The one twitter: tag genuinely worth adding is twitter:card, because it is what turns on the large image on X and Discord and has no og: equivalent.
Give your bio link a brain.
Build your page, watch who converts, free to start.