WhatsApp Link Not Working? 9 Fixes for Broken wa.me Links (2026)
Your click-to-chat link opens the download page, the wrong number, or nothing at all. Here are the nine real causes — number format, encoding, in-app browsers, caching — and the exact fix for each.
WhatsApp Link Not Working? 9 Fixes for Broken wa.me Links (2026)
A click-to-chat link is the simplest piece of technology on your website: a URL with a phone number in it. So when it breaks, it breaks invisibly — you click it on your own phone, with your own contact list, and everything looks fine.
The problem shows up for the customer. Here are the nine causes we see most often, ordered by how frequently they're the culprit.
First: which symptom do you have?
| What you see | Most likely cause | Fix |
| --- | --- | --- |
| "Download WhatsApp" page, though it's installed | In-app browser (Instagram, Facebook, TikTok) | 6 |
| WhatsApp opens, number invalid or wrong | Number format — zero, +, spaces | 1 |
| No pre-filled message | Text not URL-encoded | 2 |
| Message cut short or full of %20 | Unencoded space, &, or # | 2 |
| Works for you, 404s for visitors | The & was escaped by a CMS | 3 |
| Worked yesterday, dead today | Cache, CDN, or a shortener | 4 |
| "Phone number shared via url is invalid" | Not on WhatsApp, or a landline | 7 |
| Fine on Android, broken on iPhone | Desktop/mobile handoff | 5 |
Nine times out of ten the answer is in the first two rows.
Fix 1: the number format
This is the cause of most broken links, and it's a formatting rule almost nobody reads. A wa.me number must be:
- Full international format — country code included, e.g.
32for Belgium,33for France - Digits only — no
+, no spaces, no dashes, no brackets - No leading zero — the local
0prefix must be dropped - No
00—0032is wrong,32is right
Belgian number 0470 12 34 56 becomes wa.me/32470123456. Not wa.me/+32470123456, not wa.me/0470123456. Use https://, never http://, and no trailing slash.
The number must also be able to receive messages — a landline or fax line is a dead end. If you're unsure, run it through the WhatsApp number checker before debugging anything else, and build the link with the link generator, which strips the + and the leading zero for you.
Fix 2: URL encoding
Everything after ?text= has to be safe to travel inside a URL. Four characters break links constantly:
| Character | Encode as | Why it breaks |
| --- | --- | --- |
| Space | %20 | Truncates the message or shows %20 literally |
| Line break | %0A | Message arrives as one run-on line |
| & | %26 | Ends the query string — everything after vanishes |
| # | %23 | Starts a URL fragment — the rest is dropped |
A message reading "Hi, I'd like a quote for doors & windows" must become:
https://wa.me/32470123456?text=Hi%2C%20I%27d%20like%20a%20quote%20for%20doors%20%26%20windows
The message formatter outputs the encoded link for you. Ready-made wording is in the message templates guide.
The pre-filled text is never sent automatically — the customer still has to press send. A link that "doesn't work" sometimes just means nobody pressed the button.
Fix 3: CMS and rich-text escaping
WordPress, Shopify and most visual editors rewrite & into & when you paste HTML into a content field. The browser then reads the parameter as amp;text=, finds nothing, and opens a chat with no message.
If you pasted the link into a rich-text block, replace it with a plain link field, a raw HTML block, or the theme file. The website button guide and the HTML/CSS walkthrough show the safe placements, and the button generator produces a snippet meant for a template, not a text field.
Fix 4: cache and CDN
You changed the link and the site still serves the old one. Clear the caching plugin (WP Rocket, LiteSpeed, W3 Total Cache), purge the CDN (Cloudflare, Vercel, Bunny) and the browser cache, then test in a private window. Then paste the raw URL into a phone's address bar: that one step separates "my link is broken" from "my page is serving a stale copy".
Fix 5: desktop and mobile handoff
On desktop, a wa.me link opens WhatsApp Web or the desktop app — so it only works if the visitor is already logged in. Add target="_blank" rel="noopener" so the chat opens in a new tab, and never call window.open on page load (popup blockers eat it). For desktop visitors, show a plain-text number or a WhatsApp QR code with "Scan to chat" — that converts better than a chat that never appears. Format tips are in the QR code for business guide.
Fix 6: the page you're clicking from
Instagram, Facebook, TikTok and most email apps open links in an in-app browser, which often refuses to hand the URL over to the WhatsApp app. The visitor lands on "Download WhatsApp to continue" — on a phone that already has it.
Put the link in your bio rather than a post caption, where it lands in the native browser. On your own site, point the button at a landing page and let the click-to-chat link live there. And always test by clicking the link from inside Instagram, not from a note to yourself. This is the most common false alarm we see: the link is fine, the browser in the middle isn't.
Fix 7: the recipient side
If the link is perfect and you still get "Phone number shared via url is invalid", check the number with the number checker. The usual reasons: the number isn't registered on WhatsApp, it's a landline, the account was deleted or banned, or the person blocked you — the link still opens, but nothing ever arrives. There's no privacy setting that silently blocks messages from unknown numbers, so a chat that opens and never gets a reply is a human problem, not a technical one.
Fix 8: shorteners and campaign tags
Link shorteners (bit.ly, Rebrandly) and some social platforms rewrite or strip query parameters — your ?text= disappears in transit. If you need something short, use the short link WhatsApp Business generates itself. For tracking, put your UTM tags inside the message text instead of the URL when a platform strips them; the method is in the link parameters and tracking guide.
Fix 9: QR code problems
A QR code is just a link, so every fix above applies. Two extras: keep the URL short (a wa.me link without a long pre-filled message produces a sparser code that scans from further away), and print at sufficient contrast and size — dark green on white, at least 2 cm × 2 cm for a hand-held flyer. Test it on two phones before sending 5,000 copies to print.
The 60-second test checklist
- Paste the raw link into a phone's address bar, not a browser app
- Confirm the number is digits only — no
+, no leading zero - Open it from a different device with no contact saved
- Check every space,
&and#in?text=is encoded - Test from inside Instagram or Facebook to confirm the in-app case
- Compare the live page to the link you actually typed
Every check on this page rests on one line of text you can verify in a minute. If you'd rather not build it by hand, the link generator returns a link that already passes all of them. And once it works, the next problem is how fast you reply — see response times.