What happens when someone pastes your link
The platform fetches your page from its own servers, reads a handful of tags out of the head, downloads the image those tags point at, and builds a card. Then it stores the result. Everything that goes wrong with link previews goes wrong in one of those four steps, and knowing which one narrows the fix considerably.
Note that the fetch comes from the platform, not from the person sharing. Their browser session, their login and their cookies are irrelevant. If the platform's crawler cannot reach the page or the image anonymously, there is no card.
The tags that are read
og:title, og:description, og:image, og:url and og:type do the work. Facebook, LinkedIn, WhatsApp, Slack, Discord and most messaging apps read them. X reads them too when Twitter-specific tags are absent, so the only Twitter tag genuinely worth adding is twitter:card, which selects the large image layout rather than the small thumbnail.
When Open Graph tags are missing entirely, platforms fall back to the title tag and the meta description, which is why a page with no Open Graph markup at all still produces a card — usually a poor one with no image.
The five reasons it is wrong
- It is cached. The most common by far. The platform scraped your page once, kept what it found, and is still showing that. Updating the tags changes nothing until the cache is cleared.
- The image is unreachable. A relative path, a URL behind a login, an image blocked in robots.txt, or a file on a host that refuses the platform's crawler. The card renders without it.
- The image is too small. Below roughly 600 by 315 pixels most platforms drop to a small square thumbnail beside the text, which is a fraction as visible in a feed.
- The tags are written by JavaScript. Social crawlers do not run scripts. A head assembled client-side is, to them, an empty head.
- Two plugins are both emitting tags. Duplicate
og:image tags mean the platform picks one, and it will not consult you about which.
Clearing a cached preview
This is the fix people cannot find, so it is worth stating plainly: you cannot clear it from your own site. Each platform caches independently, sometimes for weeks, and each provides its own re-scrape tool. Facebook's Sharing Debugger, LinkedIn's Post Inspector, and X's card validator all take a URL and fetch it again on demand.
Run the debugger, look at what it reports it found, and fix that rather than what you believe is on the page. The two differ more often than you would expect, usually because of caching at your own end — a CDN or a page cache serving the crawler an older copy of your HTML.
Sizing the image
1200 by 630 pixels, close to a 1.91 to 1 ratio, is the size that works everywhere. PNG or JPEG, comfortably under five megabytes, because very large files time out during scraping and the card falls back to no image at all.
Expect cropping. Each platform trims to its own ratio, and several crop differently on mobile than on desktop, so any wording near an edge will disappear on at least one of them. Keep text away from the margins and away from the exact centre-bottom, where a play button or a duration badge is sometimes overlaid.
Also give the image an absolute URL. A path beginning with a slash resolves against the platform's own domain, not yours, which is why the tag looks correct in your template and produces nothing in the feed.
Drafting the card before you publish
The useful moment to look at a card is before the link exists, while the headline and the image are still editable and before any platform has cached anything. That is what the [msm_tool slug="open-graph-checker"] is for: type the values you are considering and see the shape they make.
What you are judging is proportion and length. Does the headline survive at around sixty characters, which is less room than a search result gives you? Does the description add something rather than repeating the headline? Does the image still read at feed size, which on a phone is roughly the width of a thumb?
What you are not judging is alignment or exact pixels. Platforms redraw their cards without notice and render differently across devices, so no preview anywhere can promise a match. Treat a composed card as a proof of the copy, then verify the real thing with the platform's own debugger once the page is live.
A short checklist before sharing
Absolute image URL, at least 1200 by 630, publicly reachable without a login. A headline that fits. A description that is not a duplicate of the headline. One of each tag rather than two. Tags present in the server-rendered HTML, not built on load. And a re-scrape run through the platform debugger if the page has ever been shared before, because otherwise you are looking at whatever it saw the first time.