Why does my link preview show no image?
Almost always a relative og:image URL. Scrapers fetch your image cold from a different network with no page context, so the URL has to be absolute.
By Sapun Lamichhane · Arcetis
Almost always a relative `og:image` URL. When someone pastes your link into Slack, LinkedIn or WhatsApp, none of those platforms load your page in a browser - a scraper fetches the HTML, reads the meta tags, and requests the image cold from a different network with no cookies and no base URL to resolve against.
So `/og-image.png` works perfectly when you test it by visiting the page, and fetches nothing for every scraper on the internet.
What else breaks a preview?
- An image behind authentication or a redirect. Scrapers do not follow login flows and many do not follow redirects for images.
- An image below the platform's minimum. LinkedIn and Facebook both want at least 1200×630; smaller images are often ignored rather than scaled.
- A missing `og:title` or `og:description`. Platforms fall back to the page title and meta description, which are written for search results and often read badly as a share card.
- Tags placed outside `<head>`. A scraper stops parsing at `</head>` and will not find them in the body.
Which tags actually matter?
Five, and they rarely change once set:
- 1`og:title` - what the card says. Not necessarily your page title.
- 2`og:description` - one or two sentences. Written for a person deciding whether to click, not for a search engine.
- 3`og:image` - absolute URL, at least 1200×630, publicly reachable.
- 4`og:url` - the canonical URL of the page, so shares of tracking-parameter variants consolidate.
- 5`twitter:card` - `summary_large_image` unless you specifically want a thumbnail.
Why is this worth the ten minutes?
Because the moment a link is shared is the moment someone is recommending you, and a bare grey rectangle with a URL is what your recommendation looks like. It is one of very few things on a site that is both trivially cheap to fix and immediately visible to every person who sees it.
How do I check mine?
The Open Graph checker on this site validates all of the above, including the relative-URL trap - which is the one that survives every visual check, because it works for you and for nobody else.