Guides · Updated

Why your link preview is wrong on X and LinkedIn

X documents a 7-day card cache; LinkedIn says allow 48 hours, or use its Post Inspector to refresh the preview for new posts. First fix the tags and image in the page's <head>: refreshing a cache won't fix a missing og:image, a blocked crawler or the wrong twitter:card type.

Checked on October 27, 2026.

What each network reads

Card part X reads LinkedIn reads
Card type twitter:card: summary_large_image or summary No card type
Title twitter:title, else og:title og:title
Description twitter:description, else og:description og:description
Image twitter:image, else og:image og:image
Image description twitter:image:alt, else og:image:alt Not documented
Page address Not documented og:url
Site attribution twitter:site or twitter:site:id No equivalent in LinkedIn's list

X's Cards markup reference lists each twitter: tag beside the Open Graph tag it falls back to, and its getting started guide says X looks for the Twitter tag first, then the Open Graph one. So the og: title, description and image can serve both networks; add a twitter: version where X should show something different. X's reference caps the title at 70 characters, the description at 200 and the image description at 420. Its own tags also cover:

LinkedIn's shareable-website help lists four og: tags that must exist: og:title, og:image, og:description and og:url. Its URL troubleshooting help says the share box relies on oEmbed and Open Graph, and without them may pull other content from the page. Neither page mentions twitter: tags, so don't count on them for LinkedIn.

A shared head for LinkedIn and X's large-image card (replace the example handle with the site's own):

<title>How we cut our export time in half</title>
<meta property="og:title" content="How we cut our export time in half">
<meta property="og:description" content="Three changes, measured on real exports.">
<meta property="og:image" content="https://example.com/cards/export.jpg">
<meta property="og:image:alt" content="Export time falling from 40 to 18 seconds">
<meta property="og:url" content="https://example.com/blog/export-time">
<meta property="og:type" content="article">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@example">

Put the tags in the <head>, give each one once, and use a full https:// address for the image. Tags a script adds after the page loads may never be seen: neither network's documentation says its crawler runs scripts, and Flaghand's reader doesn't.

What X draws today

Measured on x.com on October 26, 2026. X's documentation doesn't describe today's layout, and it can change.

X's guide adds that a post shows one card at most, that attached photos or video take its place, and that with several links the first one with a card is used.

What LinkedIn draws today

Measured on linkedin.com on October 26, 2026: a link in a feed post shows a 16:9 thumbnail, 128 × 72 px, beside the title on up to two lines and the domain. LinkedIn's help doesn't say what it shows without og:title beyond "other content from the page", so set it.

Image sizes, and what each card cuts

X large card X small card LinkedIn
Shape X or LinkedIn documents 2:1 1:1 1.91:1, recommended
Smallest documented 300 × 157 144 × 144 1200 × 627
Largest documented 4096 × 4096, under 5 MB 4096 × 4096, under 5 MB 5 MB
Drawn at (measured) 516 × 270, 1.91:1 Square crop (documented) 128 × 72, 16:9
A 1200 × 630 image Shown whole Cut 24% from each side Cut 3% from each side

X's large-card page and small-card page take JPG, PNG, WebP and GIF (only an animated GIF's first frame), not SVG, and ask for an image unique to the page rather than a site logo or author photo used across many pages. LinkedIn's sharing help gives the size and weight; its list of file types (JPG, PNG or GIF) is for single image ads, so a JPG or PNG is the safe choice for both networks.

A 1200 × 630 JPG or PNG works for both: X's large card shows all of it and LinkedIn's thumbnail trims only the sides. Keep words and faces away from the left and right edges, and don't depend on small text, since LinkedIn draws the whole image 128 px wide. The free image size checker shows how post photos and profile images crop.

Why the card doesn't show

X's archived troubleshooting guide names these causes:

On LinkedIn, its help says a missing og: tag lets it pull other content; an image that meets the requirements but still doesn't appear may mean the site blocks LinkedIn from pulling it or the image sits in a protected folder; an address with spaces in it can't be shared at all; and for a company page, a "cannot display preview" error may come from the landing page's SSL certificate.

Why the old card is still there, and how to refresh it

X: about seven days, with no guaranteed purge

X's archived getting started guide says a card is cached for 7 days after a link to the page is posted, and its troubleshooting guide says X re-reads the page's card tags roughly every seven days. That is a documented interval, not a promise that every card updates on the seventh day. The archived refresh workaround is also qualified:

  1. Fix the tags and check the page's HTML source. Confirm that both the page and image can be fetched without signing in.
  2. For a new post, the troubleshooting guide suggests making a new shortened URL with bit.ly and sharing that. It says this may refresh the card; it is not a guaranteed purge. Its ?x=test1 example is a way to generate another shortened URL, not a documented refresh button for the original address.
  3. If the image file changed but its address didn't, change the image's address in the tag too, for example export.jpg?v=2: X caches images by their address. Make sure that address really serves the updated image.

X's documentation doesn't promise an immediate refresh of posts already published.

LinkedIn: 48 hours, or Post Inspector

LinkedIn's troubleshooting help says to allow 48 hours from the last time the address was shared before trying again, and that a developer who changed a site's tags should wait 48 hours for them to take effect. To refresh it sooner:

  1. Open LinkedIn's Post Inspector.
  2. Paste the exact address you plan to share.
  3. Inspect it and confirm that the new title, description and image are right.

LinkedIn's Post Inspector help says this changes the preview only for new posts with the link: posts already published keep the one they have.

The two networks work differently, so Flaghand handles their link cards differently too.

LinkedIn. LinkedIn's Posts API doesn't read link previews for posts made through it: the app must send the card's thumbnail, title and description. So when you paste a link into a LinkedIn draft, or an agent creates a link card, Flaghand reads the page's head once:

It reads only the <head>, keeps the first copy of each tag and runs no scripts. It can't read LinkedIn's own pages or private network addresses. The card is saved with the draft and is part of what the owner approves with their passkey: neither approval nor posting reads the page again. So LinkedIn's 48-hour cache and Post Inspector don't change a post Flaghand makes, and neither does a tag you fix later. Remove the link and paste it again to read the page afresh (an agent creates a new link card and puts it in the draft). An edit voids any earlier approval, so request approval again. Because Flaghand falls back to twitter: tags, a page with only those can get a full card in Flaghand but not in LinkedIn's own share box, which its help ties to oEmbed and Open Graph: give the page og: tags.

X. Flaghand posts the text with the link and sends X no card. X draws the card from the page when the post goes live, through its own cache. Check the page's tags and image before you request approval; a Flaghand preview can't purge X's cache or guarantee the card X will draw.

Flaghand's draft and media documentation covers link cards from the API, CLI and MCP. An agent drafts, checks and requests approval; only the owner approves, with their passkey in the desk. No agent token can approve, schedule or post.

Sources

  • X's Cards documentation (archived): markup reference (each tag, its Open Graph fallback, title, description and alt lengths, image types), getting started (card types, the last twitter:card wins, property fallback, robots.txt, the 7-day cache, one card per post), summary card with large image and summary card (shapes, minimum and maximum sizes, 5 MB), and troubleshooting (crawler blocks, 2 MB pages, TLS, the seven-day re-read, the shortened-URL workaround and changing an image address).
  • LinkedIn Help: make your website shareable (the four required og: tags, 1200 × 627, 1.91:1, 5 MB), troubleshoot shared URLs (oEmbed and Open Graph, spaces, the 48-hour cache), use Post Inspector to refresh a URL (new posts only) and troubleshoot Page posts (the SSL certificate).
  • LinkedIn's Posts API (no link scraping for posts made through the API).
  • Flaghand's measurements of x.com and linkedin.com, October 26, 2026, used by its post previewers: the large X card and LinkedIn thumbnail sizes, layouts and crops. Neither network publishes these, and either can change them.
  • Flaghand's scheduler/src/link-cards.js: which tags its LinkedIn cards read, in what order, and when.