Link preview fixes

Bot blockers break link previews

Your WAF can't tell a preview crawler from a scraper, so every shared link renders as a bare URL.

did you see the SFO fares??
https://www.united.com/en/us/flights-from-san-francisco-to-tokyo

Broken

The crawler got a connection reset, so the chat gets a bare URL.

did you see the SFO fares??
United · SFO to Tokyo

United · SFO to Tokyo

united.com

The OpenGraph+ Fix

Cards hosted outside the blocked domain still resolve.

Every link preview you’ve ever seen was built by a crawler. Someone pastes your URL into Slack or iMessage, the platform sends a bot to fetch the page, reads the Open Graph tags out of the head, and draws the card. No fetch, no card.

Bot protection sits directly in that path. The same rules that stop scrapers and credential stuffers look at a preview crawler and see exactly what they’re built to kill: an unfamiliar agent, no cookies, no mouse movement, a datacenter IP. So the connection dies before a byte of HTML leaves your server, and the platform quietly falls back to rendering your link as plain text.

We see this constantly on big sites. United Airlines never completes a request for us at all; the socket closes before a response arrives. Their tags might be perfect. Nobody will ever know, including their own marketing team.

The tl;dr: bots need to read your pages for links to work anywhere. If your protection blocks them, your links are busted, full stop.

What's at stake

Your links lose to everyone else's

A fare sale shared next to a competitor's link is a grey URL next to a picture. People tap the picture, and the sale goes to the site whose link worked.

You paid for tags that never run

Someone built your Open Graph and it passes every test a browser can run. The crawlers that actually draw the cards never get past the firewall, so the tags do nothing, and whoever investigates it will spend weeks looking at the wrong layer.

Nobody will ever tell you

The failure happens in other people's chats, outside your analytics. No error, no ticket. It just quietly costs you clicks, for years.

How to fix it

By hand

Allowlist preview crawlers

Most WAFs can exempt known crawlers by user agent or ASN. Facebook, X, Slack, LinkedIn, and Apple publish theirs. It's a config change, not a code change.

Test like a crawler, not a browser

curl your pages with a crawler user agent from outside your network. If the response never arrives, previews are broken no matter what your HTML says.

With OpenGraph+

Monitoring that catches the block

OpenGraph+ watches crawler access and its reports show exactly which platforms can't reach you, so the block shows up as a line item instead of a mystery.

Images served from outside your wall

OpenGraph+ renders and hosts your preview images, so the card's biggest asset resolves from our domain even while yours is blocking.

Fix it once, keep it fixed

Connect your site and OpenGraph+ renders every page into its own card, synced automatically as your site changes.