You paste a link to your shop, and instead of a card with a picture, a title and a line of description, you get a bare blue link. In a feed full of cards, that is close to invisible — and the tags that decide it are not visible on the page, so nothing looks wrong when you check.
What decides the picture?
A handful of <meta> tags in the page's head, the Open Graph tags. The important one is og:image. When a platform sees your link it fetches the page, reads those tags, fetches the picture, and builds a card. Anything that interrupts that chain gives you a bare link, and no platform tells you which step failed.
The link preview checker does the same walk and reports each step. Here is what it usually finds.
1. There is no og:image at all
Most common on a site built from a template where nobody filled that field in, and on pages added later. The card has nothing to show, so it shows nothing. Fix: one tag in the head, pointing at a picture of the thing the page is about.
2. The address is relative
A tag saying content="/images/candle.jpg" looks reasonable and works nowhere. Scrapers are not browsers and many do not resolve a relative address against the page. Always write the full https://… address. This is the single most common cause of "it works for me but not when I share it".
3. The picture cannot be fetched
The tag is right, but the file is behind a login, on a server that blocks outside requests, serves a 404, or is only available over plain http. The checker fetches the picture as well as the page, so this shows up as an explicit failure rather than a mystery.
4. It is the wrong kind or size of picture
An SVG will not render: card builders do not run SVG, so use a PNG or JPG. A picture under about 600 pixels wide gets shown as a small square thumbnail beside the text instead of a wide card. About 1200 × 630 px is the shape most platforms crop towards, and keeping faces and words away from the edges means every crop still works.
5. The old card is stuck
You fixed it, and the old version keeps appearing. That is caching, not your page: each platform keeps what it fetched the first time. Each has its own sharing debugger that will re-read the page on demand; searching for "sharing debugger" and the platform's name finds it. The checker here always fetches fresh, so it shows what a re-read would get.
How do I check a page before it is public?
You cannot, from a website — ours or anyone's. A server can only fetch what anyone can fetch, so a draft listing, a staging site or a page behind a login is invisible to it. That is the one job the browser extension exists for: it reads the page in front of you, so you can fix the card before it is live rather than after somebody has already shared it.
The checklist
og:imageexists, absolute, https.- The file is public and is a PNG or JPG.
- At least 1200 px wide, roughly 1.91:1.
og:titleandog:descriptionthat read as an advert, not a file name.twitter:cardset tosummary_large_image.- Re-read it in the platform's debugger after any change.
Everything linked here is free to use, runs in your browser, and needs no account. If something in this post is wrong or out of date, it is worth telling us — the date at the top is the last time it was checked.