United blocks the crawlers that build link previews

The connection is refused before any tag can be read. So we designed the cards without reading the page.

So the link never renders as a card

Nothing can read the page, so there's nothing to show.

No preview — the request never completes
united.com
https://www.united.com

What's actually wrong

united.com never completes a request for us: the socket closes before a response arrives. Bot protection is doing its job against scrapers, but link preview crawlers arrive the same way, so they get the same treatment. The result is that a united.com link posted anywhere renders as a bare URL no matter what the tags say, because nothing ever reads them. Every card on this page was built without loading their site at all.

This is cause 1 of the 5 ways link previews break. The full breakdown covers the manual fix and the automatic one.

GET https://www.united.com → HTTP::SocketReadError
no response body, so no tags are readable
templates below render against a blank canvas, not united.com

United, designed rather than scraped

Every value here is supplied by the template. No page load required.

United

Route pages, as cards

The kind of link people actually paste into a group chat.

A route on Twitter

San Francisco to Tokyo.

United · SFO to Tokyo
Fixed by OpenGraph+
No preview — the request never completes
united.com
https://www.united.com
Today the crawler is blocked

The hub page on Facebook

A destination guide.

united.com
United · Destinations
Fixed by OpenGraph+
No preview — the request never completes
united.com
https://www.united.com
Today it's a bare URL

For whoever owns the templates

Preview crawlers look like bots

Facebook, Slack, and iMessage fetch your page with an unfamiliar agent and no session. Protection that stops scrapers stops them identically.

GET / → connection closed before response

Allowlisting is the usual fix

Most WAFs can allow known preview crawlers by user agent or ASN. It's a config change rather than a code change.

Or serve the image from elsewhere

Because OpenGraph+ renders and hosts the image, the card resolves from a domain that isn't behind the same protection.

Is your site doing this too?

Run the same check we ran on United: every platform, every page we can find, free.