ScreenshotNeo

BlogHow-to

Why WhatsApp Web Link Thumbnails Don’t Show and How to Fix Them

Find out why WhatsApp Web link thumbnails are missing and follow a practical checklist for privacy settings, connectivity, metadata, and image access.

By the ScreenshotNeo team1 October 20267 min read

Short answer: a missing WhatsApp Web thumbnail can come from the sender’s privacy setting, a disconnected or restricted WhatsApp Web session, or the linked website’s preview metadata and image. If every link is affected, start with WhatsApp settings and connectivity. If only one domain is affected, inspect that page’s Open Graph fields and confirm that its image is publicly reachable.

1. Identify which failure you have

What you see Most useful first check
Every link is sent as plain text Check Disable link previews on the account sending the message, then check WhatsApp Web connectivity.
A card appears but has no image Inspect the site’s og:image value and test that image URL without authentication.
Only one website fails Compare that page’s delivered HTML, redirects, image response, and access rules with a working site.
WhatsApp Web also cannot send messages or media Treat it as a connection or browser problem first.

This symptom mapping is triage, not a published WhatsApp guarantee. WhatsApp’s official help explains the privacy control and general Web connection fixes, while Open Graph metadata guidance comes from secondary technical documentation.

2. Check the sender’s preview privacy setting

On the account that is sending the link, open Settings → Privacy → Advanced and turn Disable link previews off if previews are wanted. WhatsApp says that when this option is enabled, links sent by that account do not generate previews; it is off by default and does not affect previews for links received from other people. See the WhatsApp Help Center instructions.

  1. Open WhatsApp on the phone linked to the Web session.
  2. Open Settings, then Privacy, then Advanced.
  3. Turn Disable link previews off.
  4. Return to WhatsApp Web and send the URL again.

Changing this option does not promise to repair a preview that was already generated or sent. The official material does not document a universal WhatsApp Web cache-clear control or a guaranteed forced refresh. Correct the cause and send a fresh message.

3. Verify that WhatsApp Web is connected

Preview generation can fail alongside broader Web connectivity problems. WhatsApp recommends refreshing the page, clearing browser cache and cookies, logging out and back in, restarting the device, trying another network or hotspot, and ensuring the network allows traffic to web.whatsapp.com and .whatsapp.net. Follow its connection troubleshooting guide.

  1. Look for a connection warning in WhatsApp Web.
  2. Refresh the tab.
  3. Log out of WhatsApp Web and link the session again.
  4. Clear site data for WhatsApp Web, then reopen it.
  5. Try a phone hotspot. If previews work there, the original Wi-Fi, proxy, DNS filter, or firewall is a likely cause.
  6. Ask the network administrator to allow WhatsApp’s documented domains.

Use a current version of Chrome, Firefox, Microsoft Edge, Opera, or Safari. WhatsApp notes that some older browsers, including Internet Explorer, are not supported.

4. Inspect the website’s preview metadata

If one domain is affected, view the page’s delivered HTML rather than relying on what your framework source appears to contain. Secondary Open Graph guidance commonly checks og:title, og:description, and og:image. Treat these as practical diagnostics, not a complete official WhatsApp specification.

<head>
  <meta property="og:title" content="Example article title">
  <meta property="og:description" content="A concise description of the page.">
  <meta property="og:image" content="https://example.com/social/preview.jpg">
</head>

Check all of the following:

  • The tags are present in the initial HTML response, not inserted only after client-side JavaScript runs.
  • Each property has one useful value and valid HTML quoting.
  • og:image is an absolute HTTPS URL.
  • The image URL responds without a login, session cookie, or expiring signature.
  • Redirects eventually reach the image and do not loop.
  • Your server, CDN, WAF, or bot rule does not reject non-browser fetches.
  • The page does not send an accidental empty value or an image URL from a private staging host.

Quick command-line checks

curl -L --max-redirs 5 -s https://example.com/article \
  | grep -iE 'property=["'"']og:(title|description|image)["'"']'

curl -IL https://example.com/social/preview.jpg

The first command shows whether the tags are in the response body. The second shows redirects, status, and response headers for the image. A successful browser display alone does not prove that every fetch path can retrieve it.

Python metadata check

import requests
from bs4 import BeautifulSoup

url = "https://example.com/article"
r = requests.get(url, timeout=20, headers={"User-Agent": "Mozilla/5.0"})
r.raise_for_status()
soup = BeautifulSoup(r.text, "html.parser")
for key in ("og:title", "og:description", "og:image"):
    tag = soup.find("meta", attrs={"property": key})
    print(key, "=", tag.get("content") if tag else "MISSING")

Node.js metadata check

const page = await fetch('https://example.com/article', {
  headers: { 'user-agent': 'Mozilla/5.0' }
});
const html = await page.text();
for (const property of ['og:title', 'og:description', 'og:image']) {
  const re = new RegExp(`<meta[^>]+property=["']${property}["'][^>]+content=["']([^"']+)["']`, 'i');
  console.log(property, html.match(re)?.[1] ?? 'MISSING');
}

For production checks, use an HTML parser rather than a regular expression so attribute order and quoting do not produce false results.

5. Test the thumbnail image itself

Open the exact og:image URL in a private browser window and with a command-line request. Confirm that it returns an image, not an HTML error page, login screen, or consent wall. Check redirects, TLS, access control, and whether the URL expires quickly.

curl -L -o /tmp/preview-image \
  -w 'status=%{http_code} type=%{content_type} bytes=%{size_download}\n' \
  https://example.com/social/preview.jpg
file /tmp/preview-image

Do not infer a specific required pixel size, cache duration, or file-size threshold from this guide. The supplied WhatsApp evidence does not establish numerical limits.

6. A complete troubleshooting checklist

  1. Scope the problem: test two unrelated domains and determine whether the failure affects all links or one site.
  2. Check privacy: on the sending account, disable Disable link previews if previews are desired.
  3. Check Web status: refresh, sign out and in, clear browser cache and cookies, restart, and test a hotspot.
  4. Check browser support: use a current supported browser.
  5. Check page HTML: confirm delivered og:title, og:description, and og:image.
  6. Check image access: request the image URL without authentication and inspect status, content type, redirects, and WAF behavior.
  7. Send a fresh link: WhatsApp’s official sources do not document a guaranteed cache purge for an earlier message.

7. Common errors, causes, and fixes

Problem Likely cause Fix
Every URL has no preview Sender enabled Disable link previews Turn it off under Settings → Privacy → Advanced, then send again.
WhatsApp Web shows offline warnings Unstable network, blocked domain, stale session, or browser data Refresh, relogin, clear site data, try another network, and allow web.whatsapp.com and .whatsapp.net.
Card has text but no thumbnail Missing, malformed, redirected, or inaccessible og:image Fix the delivered tag and make the image publicly retrievable.
Only a staging or private page fails Authentication, IP filtering, robots/WAF rules, or a private hostname Expose a stable public page and image endpoint intended for preview fetches.
Metadata exists in app source but not fetched HTML Tags are added only after JavaScript executes Render essential Open Graph tags in the initial server response.
Old message remains unchanged Preview state may already be stored or generated Correct the source and send the URL as a new message; no universal cache reset is documented.

8. Performance and reliability considerations for site owners

  • Serve preview metadata in the first response so a crawler does not depend on client-side rendering.
  • Use a stable HTTPS image URL with predictable availability.
  • Keep redirects short and avoid signed URLs that expire before the preview fetch completes.
  • Make your CDN and security layer distinguish normal preview retrieval from abusive traffic without blocking legitimate requests.
  • When changing an image, change its URL if you need a new asset identity; still send a fresh WhatsApp message because cache invalidation behavior is not documented here.

9. Or skip the browser setup

If your goal is to verify what a page actually looks like, ScreenshotNeo captures a clean PNG, JPEG, WebP, or PDF with one request. Before capture it accepts cookie or consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be disabled. Bot checks, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and the response identifies the result with X-Page-Verdict and X-Billed headers. It also provides an MCP server for Claude, Cursor, and other MCP clients through take_screenshot, get_page_info, and capture_pdf.

See the ScreenshotNeo API documentation for all options.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Free accounts include 1,000 shots each month with no card. Paid plans start at $5 for 3,000 shots, and every feature is available on every plan. Create a free ScreenshotNeo account.

10. FAQ

Does WhatsApp Web have a button to rebuild a preview cache?

The official sources used here do not document a universal cache-clear button or a guaranteed forced refresh. Fix the source or setting and send the link again.

No. WhatsApp says the setting applies to links sent by that account and does not affect previews on links received from others.

Why does the same URL preview on my phone but not on Web?

Compare the Web connection, browser, network filtering, and session state first. If only that domain fails on Web, inspect its delivered metadata and image access.

Can I solve a missing thumbnail by adding a screenshot?

Only the website owner can change the page metadata or image endpoint. A screenshot service can help you inspect the rendered page, but it does not change WhatsApp’s preview generation.

Is Open Graph metadata an official WhatsApp contract?

No official specification establishing every parsing rule was found in the supplied research. Open Graph fields are practical secondary diagnostics for site owners.