CODEXA.Technologiez
All insightsEngineering

Why your links look broken when people share them

Codexa Engineering · Sep 14, 2026 · 3 min read

Someone shares your site in a Slack channel or on LinkedIn and it appears as a plain blue link with no image and no description, next to competitors with polished cards.

That is a missing meta tag, and it is one of the cheapest fixes in marketing — every share is an advert you are already paying for in attention.

How link previews work

When a URL is pasted, the platform fetches the page and reads Open Graph tags from the head: `og:title`, `og:description`, `og:image`. No tags, no card.

Crucially, most platforms read the raw HTML and do not run JavaScript. Tags injected client-side after load are invisible to every social scraper, even though they look correct in your browser's inspector.

The three that matter

  • `og:image` — its absence is what produces the bare grey box. 1200×630 is the safe size.
  • `og:title` and `og:description` — without them platforms fall back to the page title, or invent something from the body.
  • `twitter:card` — set `summary_large_image` or X uses the small side-by-side layout instead of the full-width image.

Keep important text away from the edges of the image. WhatsApp and several chat clients crop toward square.

We had this exact problem

While auditing this site we ran our own social preview tester against our homepage. It reported everything present except `og:image` — so every share of our own site had been rendering as a bare text link.

We generate them dynamically now, per page, so an article shares with its own headline rather than a generic company card. The fix took an afternoon; the problem had been live for months, because nothing about it is visible unless you go looking.

Why changes do not appear

Every platform caches scraped metadata, sometimes for days. Fixing the tags is not enough — you have to force a re-scrape through the platform's own debugging tool, or change the image URL so it looks like a new asset.

This is why people conclude the fix did not work when it did.

Each platform reads a different subset

This is why a link can look right in one place and bare in another, and why testing on a single platform is misleading.

  • X needs `twitter:card` explicitly, but falls back to Open Graph for everything else.
  • LinkedIn leans on `og:title` and the image, and largely ignores the description.
  • Slack renders `og:site_name` prominently and shows the description in full.
  • WhatsApp and most chat clients crop hardest and favour a smaller image.

Generate them rather than uploading them

Making a card by hand for every page is work nobody sustains, so most sites end up with one generic image everywhere — which is better than nothing and much worse than it could be.

Generating the image per page from the title means an article shares with its own headline, a product with its own name, at no ongoing effort. Most modern frameworks can render one on demand; ours generates every card on this site from the page it belongs to.

Check yours

Paste any page into our social preview tester. It fetches live, shows the card as X, LinkedIn, Facebook, Slack and WhatsApp each render it, and lists the tags you are missing.

If the image is absent, that is the one to fix first. It is the difference between an advert and a hyperlink.

Why does my link show no image when shared?

Because the page has no og:image tag. Platforms fetch the page and read Open Graph tags from the head; with no image they fall back to a bare text link. Crucially most platforms do not run JavaScript, so tags injected client-side are invisible to every social scraper even though they look correct in your browser's inspector.

Why doesn't my link preview update after I fix the tags?

Because every platform caches scraped metadata, often for days. Changing the tags is not enough — you have to force a re-scrape through the platform's own debugging tool, or change the image URL so it looks like a new asset. This is why people conclude the fix did not work when it did.

Enjoyed this? Let's work together.

Start a project