WhatsApp Link Preview Not Showing? How to Fix It
When you paste a link into a WhatsApp chat, the app fetches the page and shows a preview above the message: a picture, a title, a line of description and the domain.
When the preview has no picture, shows a tiny thumbnail, or does not appear at all, the cause is almost always one of five things: missing Open Graph tags, a share image that is too large or too slow, requests from WhatsApp being blocked, a page that responds too slowly, or link previews switched off on the phone. This guide covers each one, how to tell which you have, and how to fix it.
How WhatsApp builds a link preview
WhatsApp works differently from Facebook, LinkedIn and X. Because messages are end-to-end encrypted, the preview is not built on WhatsApp's servers after the message is sent. It is built by the sender's own app while the message is being written: the app requests the page, reads the Open Graph tags, downloads the image, and attaches the finished preview to the message. The person receiving it sees what the sender's phone fetched.
Several things follow from that:
- Requests come from phones, not from a data centre. The request arrives from the
sender's own internet connection, with a user agent that begins
WhatsApp/followed by a version number. Security rules that expect a known crawler from a known network can treat it as suspicious. - WhatsApp is impatient. The preview has to be ready while the person is typing. A slow page or a large image often produces a preview with a title but no picture, or no preview at all.
- Timing matters. If someone pastes a link and presses send straight away, before the preview has loaded, the message goes without one. That is not a fault in the page.
- WhatsApp does not run JavaScript. It reads the HTML your server sends. Tags added by a script after the page loads are invisible to it.
WhatsApp reads Open Graph tags only. It does not use Twitter card tags, so a page with Twitter tags but no Open Graph tags shows a bare link or a plain title.
The tags WhatsApp reads
| Tag | What WhatsApp uses it for | Notes |
|---|---|---|
og:title | The bold title in the preview. | Falls back to <title>.
Long titles are cut after about two lines. |
og:description | The line under the title. | Often cut to one line on phones. Put the key point first. |
og:image | The preview picture. | A full https address to a small, fast image. Relative paths are ignored. |
og:url | The address of the page. | Must match the canonical URL. |
og:site_name | The source name. | WhatsApp usually shows the domain instead. |
og:image:width, og:image:height | The image size before download. | Helps WhatsApp choose between a large picture and a small thumbnail. |
A correct set you can copy
<head>
<meta charset="UTF-8">
<title>Saturday market: 40 local stalls | Tupton Village Hall</title>
<link rel="canonical" href="https://example.com/events/saturday-market">
<meta property="og:type" content="article">
<meta property="og:site_name" content="Tupton Village Hall">
<meta property="og:url" content="https://example.com/events/saturday-market">
<meta property="og:title" content="Saturday market: 40 local stalls, 9am to 1pm">
<meta property="og:description" content="Fresh bread, local honey, crafts and hot food. Free entry and free parking behind the hall.">
<meta property="og:image" content="https://example.com/images/saturday-market-1200x630.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
</head>
Put these tags near the top of the head, before large inline scripts and styles, because WhatsApp
stops reading once it has what it needs and may not reach tags buried deep in a heavy page. Open Graph
tags use property=.
Images WhatsApp will show
The most common WhatsApp complaint is a preview with a title but no picture. WhatsApp is much less tolerant of heavy images than Facebook or LinkedIn, because the image has to download to the sender's phone while they type.
| Requirement | What works | What fails |
|---|---|---|
| File size | Under about 300 KB; smaller is safer | Images of 1 MB and more often fail to appear, especially on mobile data. |
| Dimensions | 1200 x 630 for a wide picture | Small images are shown as a square thumbnail beside the text. |
| Format | JPG, or PNG for simple graphics | SVG is not shown; WebP may not show on older phones. |
| Address | Full https URL returning 200 straight away | Relative paths, redirects, addresses that need a login or a cookie. |
| Speed | Served quickly, ideally from a CDN | Images generated on each request, or served from a slow origin. |
A 1200 x 630 JPG saved at a sensible quality is usually well under 300 KB. If your share image is a large PNG photograph, re-save it as a JPG; that alone often fixes WhatsApp. You can check the size of the image your page points to with one command:
curl -sI https://example.com/images/saturday-market-1200x630.jpg | grep -i "^content-length\|^content-type\|^HTTP"
saturday-market-v2.jpg.When WhatsApp cannot fetch the page
If no preview appears at all, even after waiting, the sender's app is probably not getting the page. Because the request comes from an ordinary phone connection rather than a known crawler network, it is easy for security tools to challenge it.
- Bot protection. Cloudflare Bot Fight Mode, Wordfence, ModSecurity rules and hosting
"anti-bot" settings can challenge requests whose user agent begins
WhatsApp/. A challenge page has no tags, so no preview appears. Add an allow rule for that user agent. - Login walls and cookie gates. The app arrives with no cookies. If a visitor with no cookies is sent to a login, age check or consent page, that is the page the preview is built from.
- Country and network blocking. The request comes from wherever the sender is. Blocking countries or mobile networks blocks previews for people there.
- Slow responses. WhatsApp waits only a few seconds. A page that is slow to start responding produces no preview.
- Redirect chains. Each redirect adds delay. Share the final address, and keep http-to-https and www redirects to a single hop.
Your server's access log shows whether the request arrived. Paste the link into a chat, wait for the preview, then search the log. No line means it was blocked before it reached the site; a 403, 429 or 503 means the site refused it; a 200 means the problem is in the tags or the image.
sudo grep -i "whatsapp" /var/log/nginx/access.log | tail -5
Phone settings and old previews
Sometimes the page is fine and the phone is choosing not to show a preview.
- Link previews switched off. WhatsApp has a privacy setting, under the advanced privacy options, that stops the app from generating link previews. If one person never sees previews for any site, it is their setting.
- Sent too quickly. If the link is sent before the preview has loaded, the message goes without one. Paste the link, wait until the preview appears, then send.
- Low data mode and poor signal. On a slow connection the image may not download in time, so the preview appears without a picture.
- Old previews. Because the preview is attached to each message, messages that have
already been sent keep the preview they were sent with. A phone may also keep its own copy of a preview
for a while. To see a corrected preview, paste the address with a harmless query string such as
?v=2into a new message.
The fix, step by step
Step 1
Check what WhatsApp can see
Run the page through the Social Preview checker, which shows the Open Graph tags the way WhatsApp reads them, together with the image address, dimensions and file size. Then open the chat with yourself in WhatsApp, paste the link, wait a few seconds, and note what appears before sending: a large picture, a small thumbnail, a title only, or no preview at all.
Step 2
Add the Open Graph tags WhatsApp reads
View the page source, not the browser element inspector, and check that og:title,
og:description, og:image and og:url are in the head once each,
near the top, with full https addresses. WhatsApp ignores Twitter card tags, so Open Graph tags must
be present even if Twitter tags are. Remove duplicate tags added by a second plugin or the theme, because
WhatsApp may pick either copy.
Step 3
Make the share image small and fast
Check the size of the og:image file. Keep it at about 1200 by 630 pixels but under about 300 KB, re-saving large PNG photographs as JPG, and serve it from a fast host or CDN. Open the image address in a private browser window to confirm it loads straight away without a redirect, login or cookie, and give a changed image a new file name.
Step 4
Let WhatsApp requests through
Paste
the link into a chat, then search the server access log for WhatsApp. No log line means
the request was blocked before the site; a 403, 429 or 503 means the site refused it. Allow the WhatsApp
user agent in Cloudflare, Wordfence or any other bot protection, and remove country or network blocks
that stop ordinary phones from reaching the page.
Step 5
Make the page respond quickly
WhatsApp waits only a few seconds, so check how long the page takes to start responding. Serve shared pages from a page cache or CDN, share the final address rather than one that redirects, and keep any http-to-https or www redirect to a single hop. Make sure the tags are in the HTML the server sends, not added later by JavaScript.
Step 6
Test again on a phone
Purge any CDN or page cache for the address, then paste the link with a harmless query string such as ?v=2 into the chat with yourself, wait for the preview and check the picture, title and description. If one person still sees no previews for any site, ask them to check the link preview setting in WhatsApp's advanced privacy options.
Stopping it from coming back
- Tags in the template. Generate Open Graph tags on the server for every page from the page's own title, description and featured image, so no page goes out without them.
- A light default image. Set a site-wide 1200 x 630 fallback JPG of well under 300 KB for pages with no featured image.
- Compress on upload. Have your site resize and compress featured images when they are uploaded, so a large photo never becomes the share image.
- An allow rule for preview requests. Keep WhatsApp, facebookexternalhit, LinkedInBot, Twitterbot, Slackbot and Discordbot on the firewall's allow list.
- Test before sending to a group. Paste important links into the chat with yourself first, because a preview cannot be changed after the message is sent.
1. Why is my WhatsApp link preview not showing?
Usually because the sender's app could not fetch the page in time, or because the page has no Open Graph tags. WhatsApp builds the preview on the sender's phone while they type, so a slow page, a blocked request or a link sent too quickly all produce no preview. Check the page source for og:title and og:image, search your access log for WhatsApp, and paste the link into the chat with yourself to test.
2. Why does my WhatsApp preview have no image?
Most often because the image is too large or too slow to download while the message is being written. Keep the og:image at about 1200 by 630 pixels but under about 300 KB, save photographs as JPG rather than PNG, and serve the image from a fast host. Also check that the image address is a full https address that loads without a redirect, login or cookie, and that no firewall blocks it.
3. What size should a WhatsApp preview image be?
About 1200 by 630 pixels for a wide picture, saved as a JPG under about 300 KB. The pixel size decides whether WhatsApp shows a large picture or a small thumbnail beside the text, and the file size decides whether it downloads in time. The same 1200 by 630 image used for Facebook, LinkedIn and X works on WhatsApp, as long as it is compressed well enough to stay small.
4. How do I refresh a WhatsApp link preview?
WhatsApp has no refresh tool. The preview is built on the sender's phone and attached to each message, so messages that have already been sent keep their old preview. Fix the page, purge any CDN or page cache, and paste the link into a new message. If a phone still shows the old preview, add a harmless query string such as ?v=2 to the address, which the app treats as a new link.
5. Does WhatsApp use Twitter card tags?
No. WhatsApp reads Open Graph tags such as og:title, og:description, og:image and og:url, and falls back to the page title if they are missing. Twitter card tags are ignored, so a page with only Twitter tags shows a poor preview or none at all. Keep a full set of Open Graph tags on every page, alongside the Twitter tags that X, Slack and Discord use, so every platform is covered.
6. Why does the preview work for me but not for someone else?
Because WhatsApp builds the preview on the sender's own phone, over their own connection. Their app may have link previews switched off in the advanced privacy settings, they may be on a slow or restricted mobile connection, they may have sent the link before the preview loaded, or your site may block their country or network. Ask them to check the setting and to wait for the preview before sending.
7. Can I turn off link previews in WhatsApp?
Yes. WhatsApp has a setting in its advanced privacy options that stops the app from generating link previews, which also stops it from contacting the linked site while you type. With it switched on, links are sent as plain text for that person. The setting only affects the phone it is set on, so it does not change what other people see when they send the same link from their own phones.
The Social Preview checker fetches your page the way WhatsApp, Facebook, LinkedIn, X and Slack do, lists every Open Graph and Twitter tag, checks the image size and address, and shows each card side by side.
Open Social Preview Fixes โ