WhatsApp Link Preview Not Showing? Fix the og:image
A WhatsApp link preview not showing almost always comes down to one of five causes: the page has no og:image tag, the image URL is not publicly fetchable, the image is the wrong shape so WhatsApp crops it, the crop is fine but the preview is stale, or the store's SEO plugin is printing a competing tag. This guide covers each cause, why you cannot force WhatsApp to refresh, and what to change on a WooCommerce store.
The short answer
WhatsApp builds a link preview from the page's Open Graph tags. If og:image is missing, unreachable, or not shaped like a 1200×630 card, the share arrives as a bare link, a grey tile, or a badly cropped product photo. Most WooCommerce stores never set an og:image for product pages at all — the SEO plugin falls back to the static featured image, and a square or tall product photo gets its sides or its top cut off.
1. There is no og:image tag on the page
This is the most common cause on a store. WordPress and WooCommerce do not emit an og:image for product, category, or shop pages by default, and a theme that does not handle Open Graph will leave the tag off entirely.
Fix: view the page source and confirm an og:image tag is present, absolute (a full https://… URL, never a relative path), and server-rendered — not injected by JavaScript after load. WhatsApp does not run your JavaScript.
curl -s https://your-store.com/product/example | grep -i 'og:image'
An empty result is your answer: WhatsApp has no image to show.
2. The image URL is not publicly fetchable
WhatsApp's crawler fetches the image the same way any anonymous client does. A URL behind a login, on localhost, on a raw IP address, or on a path blocked by robots.txt will fail.
Fix: confirm the URL returns an image without credentials.
curl -I https://your-store.com/wp-content/uploads/product.jpg
You want 200 OK and a Content-Type of image/png or image/jpeg.
The robots.txt trap. Social crawlers honour robots.txt, so a rule that blocks the path holding your images breaks the preview — and it breaks it in a way that is easy to misdiagnose. Meta's debugger then reports "could not be processed as an image. It may be corrupted or may have an invalid format", which reads exactly like a broken render. curl never reproduces it, because curl ignores robots.txt. If your images are served from a path covered by a Disallow: rule, the preview will fail no matter how valid the file is. We hit this ourselves on FastOG's own render path and fixed it with a longest-match Allow: override.
3. WhatsApp crops your product image — and editing the photo will not fix it
This is the symptom merchants describe as "my product images are cropped on WhatsApp", and it is the one worth understanding properly.
The platform crops whatever image it was given to a 1200×630 frame. A product photo that is square or tall gets its sides or its top cut off; a logo tile gets stretched. Hand-cropping the source photo in Photoshop is a losing game, because WhatsApp decides the crop from the card's aspect ratio, not from the composition you chose — and the next product photo has a different shape again.
The fix is to change the image you serve, not the photo you own. Send a card that is already composed at 1200×630, with the product photo fitted inside it. The platform then has nothing left to crop.
4. The right WhatsApp link preview image size
The standard Open Graph image size is 1200×630 pixels — a 1.91:1 ratio — and it is the shape every major platform, WhatsApp included, expects. Serve 1200×630 and the preview renders as intended; serve a 1000×1000 square and WhatsApp will crop it to fill the frame.
Keep the file under 5 MB. A 1200×630 text-and-product card normally lands between 200 KB and 500 KB as PNG.
See OG Image Size: 1200×630 Explained for why that ratio became the standard.
5. The preview is stale — and you cannot force WhatsApp to refresh
If the tag, the URL, and the shape are all correct and the preview is still wrong, you are looking at a cache.
WhatsApp caches the preview. It is held in the recipient's app, which means no tool can ask WhatsApp to refresh it — not a debugger, not an API, not us. WhatsApp exposes no programmatic refresh of any kind, so there is no button to press. Anyone claiming otherwise is describing Facebook's behaviour, not WhatsApp's.
What you can do is make sure the correct image is waiting for the next time WhatsApp reads the page. That is why FastOG's cover URLs are content-addressed: change the product's title, price, or image and the URL changes with it, so the next read cannot pick up the old card. When that read happens is up to WhatsApp.
Two related platforms behave the same way — LinkedIn and X also expose no invalidation API, and typically re-read within about a week. Their own inspectors can nudge that if you are in a hurry:
| Platform | Tool | Can it force a preview refresh? |
|---|---|---|
| (none) | No — preview is cached in the recipient's app | |
Sharing Debugger — developers.facebook.com/tools/debug |
Yes — "Scrape Again", and programmatically | |
Post Inspector — linkedin.com/post-inspector |
Nudges a re-read | |
| X / Twitter | Card Validator — cards-dev.twitter.com/validator |
Nudges a re-read |
Using the Facebook debugger for a WhatsApp problem. It is still worth pasting the URL into the Sharing Debugger even though it cannot refresh WhatsApp, because it fetches the page the same way WhatsApp will and reports what it actually found — missing tags, unreachable images, bad formats. Treat it as a validator for the tags, not as a fix for the WhatsApp cache.
6. Fixing this on a WooCommerce store
On WooCommerce the workflow is worth stating exactly, because the failure mode is usually the SEO plugin, not the theme:
- The tag does not exist by default. WooCommerce ships no
og:imageforproduct,product_cat, or the shop page. - Your SEO plugin fills the gap badly. Yoast, Rank Math, All in One SEO, and SEOPress will print an
og:image— but for a product they reach for the static featured image. That is a square or portrait photo, which is exactly the image WhatsApp then crops. - Watch for duplicate tags. If two plugins both print
og:image, the platform picks one, and it may not be the one you expect. View the source and count how manyog:imagetags the page emits.
FastOG for WooCommerce takes a different route: it renders a 1200×630 card from live catalogue data (title, price, sale badge, rating, product photography) on its own render service, then hands that cover to whichever SEO plugin you already run instead of printing a competing tag. So you keep one og:image on the page, and it is a card composed for the 1.91:1 frame rather than a raw product photo.
Because covers are drawn from live catalogue data, the price on the card matches the price on the page, and a discounted product gets a sale badge. When you save a product, the plugin also asks Facebook to re-read the page — Facebook is the only platform offering a programmatic refresh. WhatsApp, LinkedIn, and X follow their own schedule, and the plugin says so plainly rather than promising a refresh it cannot deliver.
- Install: FastOG for WooCommerce on WordPress.org
- Details and FAQ: WooCommerce integration page
Check what WhatsApp will actually see
Before you change anything, look at the page the way a crawler does. Paste any product URL into See Your Links The Way Buyers Do — it fetches the page, reads its current Open Graph tags, and shows the resulting preview as WhatsApp, X, and Messenger render it, next to a FastOG cover built from the same product data. No signup required.
Prefer to inspect the raw tags? Use the Open Graph Meta Tag Generator to see the markup, or check the reference in og:image Not Showing? How to Fix It.
FAQ
Why is my product image cropped on WhatsApp?
WhatsApp crops whatever image it is given to a 1200×630 frame. A square or portrait product photo loses its sides or its top. Serving a card already composed at 1200×630 — with the product photo fitted inside the card — leaves the platform nothing to crop.
Can I force WhatsApp to refresh a link preview?
No. WhatsApp exposes no refresh API or debugger, and the cached preview lives in the recipient's app. You can only make sure the correct image is waiting for its next read. Facebook is the exception and offers a programmatic re-scrape.
Why does the Facebook Sharing Debugger show my image, but WhatsApp shows nothing?
Because they are separate caches, and the debugger is reporting on the page's tags, which both platforms read. If the debugger shows a correct image but WhatsApp shows none, the tags are fine and you are looking at an unrefreshed WhatsApp cache. If the debugger also shows nothing, the tag is missing or the image is unreachable — work through causes 1 and 2.
Does WhatsApp use og:image or twitter:image?
og:image. Set the Open Graph tags. twitter:image is for X.
Do I need a plugin, or can I just add the tag myself?
You can add a static og:image tag to your theme yourself — it works, and it is much better than nothing. What it cannot do is produce a distinct card per product without hand-authoring one image per product, and it will go stale every time a price changes. That is the point at which a dynamic cover is worth it.
My site is not on FastOG. Will this still help?
Yes — the five causes are platform behaviour, not FastOG behaviour. Work through them in order with curl, page source, and the debugger.
Related
Try it free — no signup required
Preview and test dynamic OG images in seconds.
Open the Free OG Image Tester