Why your link looks wrong when you share it
Without Open Graph tags, every platform guesses what your page is about — and they guess badly, cache the guess, and give you no obvious way to correct it.
You paste a link into Slack or WhatsApp or LinkedIn and what appears is your logo, a fragment of navigation text, and a title that ends mid-word. Nothing is broken. The platform simply had nothing to go on and guessed.
What actually happens when you paste a link
The platform fetches your page with its own bot, looks for a specific set of meta tags, and builds a preview card. If the tags are there it uses them exactly. If they are not, it falls back to heuristics: the <title>, the meta description, and the first image it finds that is big enough — which is very often a logo, an avatar or a decorative background.
The tags come from the Open Graph protocol, originally Facebook's, now honoured by essentially everything: LinkedIn, WhatsApp, Slack, Discord, Signal, iMessage, Telegram, Teams. Support one standard and you have supported all of them.
The four that matter
<meta property="og:title" content="Your headline here">
<meta property="og:description" content="One or two sentences.">
<meta property="og:image" content="https://example.com/preview.jpg">
<meta property="og:url" content="https://example.com/page">
Notes that catch people out:
property, notname. Open Graph uses RDFa syntax. Writingname="og:title"is a silent no-op and it is a very common mistake.- The image URL must be absolute. Relative paths fail everywhere. It must also be publicly reachable — no login, no staging password.
og:urlshould be the canonical URL. It is what gets shared onward, and it is how platforms consolidate share counts.og:typeiswebsitefor most pages,articlefor editorial content.
The image
The preview image is most of the reason a link gets clicked, and it has real constraints.
- 1200 × 630 pixels is the standard. That is 1.91:1, which is what nearly every platform crops to.
- Under 1 MB, ideally well under. Some platforms give up on slow images and fall back to no preview at all.
- JPG or PNG. WebP support in social crawlers is still patchy in 2026 — this is one of the last places where WebP is a genuine risk rather than an obvious win.
- Keep text away from the edges. Different platforms crop differently, and some show a square. Anything essential belongs in the middle 80%.
- Legible at thumbnail size. Most people see this at 300 pixels wide in a chat. Small text is decoration, not information.
Twitter Cards
X uses its own tags, but falls back to Open Graph for anything missing. So you only need two extra lines:
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@yourhandle">
Note name here, not property — the two standards genuinely differ on this, which is exactly why people get it wrong in both directions.
summary_large_image is the wide card and is almost always what you want. Plain summary gives a small square thumbnail that occupies far less space in a feed.
The caching problem
This is the part that causes the most frustration. Platforms cache your preview aggressively — often for days, sometimes indefinitely. Fix your tags after a link has been shared and the old, wrong preview keeps appearing, which makes it look as though your fix did not work.
Each platform has its own way of clearing it:
- Facebook and Instagram — the Sharing Debugger, with a "Scrape Again" button
- LinkedIn — the Post Inspector
- X — no manual tool any more; it re-fetches on its own schedule
- WhatsApp, Slack, Discord — no tool at all. Appending a harmless query parameter (
?v=2) produces a URL they have not seen and so a fresh fetch, which is the standard workaround.
The lesson is to get the tags right before a page is shared widely, because fixing them afterwards is genuinely awkward.
Checking it
Our Open Graph checker fetches a URL and shows the tags as actually served, plus how the card will look — which is the fast way to catch the name/property mix-up, a relative image path, or an image that returns 404 from outside your network. The generator and Twitter card generator produce the full set for a page.
Test with the real page on the real domain. A local URL is unreachable by every social crawler, so previewing from localhost tells you nothing.
Two mistakes worth avoiding
One image for the whole site. Technically fine, and it means every article you share looks identical in a feed. A per-page image — even a simple auto-generated one with the headline on a branded background — is a large improvement over a logo repeated fifty times.
Different content in the tags than on the page. Writing an og:title that promises something the page does not deliver is clickbait, it is detectable, and platforms increasingly act on it. The tags should be the page's best honest summary, not a different pitch.
Tools mentioned in this guide
Open Graph Generator
Create Open Graph tags for Facebook, LinkedIn, WhatsApp and Slack, with a live preview of how your share card will look.
Open Graph Checker
Check a page's Open Graph and Twitter card tags against what the platforms actually require, and catch the relative URLs that silently break cards.
Twitter Card Generator
Generate Twitter (X) card meta tags with a live preview — summary, summary_large_image, app and player cards.
Meta Tag Generator
Generate title, description, robots, viewport, canonical and theme-color meta tags from a simple form, with live character counts.
More guides
- Base64: what it is for, and when it quietly costs you It exists to move binary data through channels that only accept text. It is not compression, it is not security, and it makes everything about a third bigger.
- How to shrink a video enough to actually send it Every service has a different ceiling — 25 MB, 16 MB, 100 MB — and hitting it is not guesswork. Work backwards from the limit and the settings choose themselves.
- Why your page is slow, in the order worth checking Performance advice is usually a list of forty things. In practice four causes account for almost every slow page, and they have a natural order of investigation.