Click to call button not working? Find the cause and fix it today
If your click to call button is not working, the link behind it is usually wrong: it points to a page instead of a tel: address, or the number has spaces, letters or an old digit. When the link is fine, something on the page, Safari or a call tracking script is getting in the way. Test on two real phones, then fix the link.

A broken call button is one of the most expensive small bugs a local business website can have, because nobody reports it. The visitor taps, nothing happens, and they call the next result instead. The good news: almost every failure comes from one of a handful of causes, and you can find yours in about ten minutes with two phones and the page source.
This guide gives you a symptom table that points to the likely cause, a short test on real devices, the correct link format, fixes for WordPress, Squarespace and Wix, the call tracking mix-up that sends calls to the wrong number, and a monthly check so the button never quietly dies again.
Why is my click to call button not working?
Usually the link behind the button is wrong, not the phone. The button may point to a web page instead of a tel: address, the number may contain letters or spaces, or something on the page (a cookie banner, a chat widget, a script) is catching the tap first. Less often, Safari has blocked calls from your site, or a call tracking script swapped the number.
Match what you see to the likely cause before changing anything:
| What happens when you tap | Most likely cause | Where to look |
|---|---|---|
| Nothing at all, on every phone | The button links to #, a page, or nothing; or an invisible element sits on top of it | Button link setting; overlays such as cookie bars and chat widgets |
| Works on Android, not on iPhone | Safari has blocked calls from the site, or the link sits inside an embedded frame | Tap again and look for the “blocked” message; check for embedded widgets |
| Works in Safari or Chrome, not from Facebook or Instagram | The app’s built-in browser handles phone links differently | Test the same page in the normal browser |
| Phone opens the dialer but the number is wrong or incomplete | A typo or old number in the link, letters in a vanity number, or a call tracking swap | The href value in the page source |
| The plain number isn’t tappable on iPhone | No tel: link, and the theme turns off Safari’s automatic number detection | Page source for format-detection |
| On a laptop, a “pick an app” box or nothing appears | Normal desktop behavior, not a bug | See the desktop section below |
| The call dials but nobody hears it ring | Phone system, forwarding or after-hours routing | Your phone provider, not the website |
The ten-minute test on real phones
Desktop browser “mobile view” does not tell you whether a call button works. Test on the devices your customers use, logged out, on the live site.
- iPhone, Safari. Open your homepage and contact page. Tap every call button and every phone number, including the one in the header and the sticky footer bar if you have one. Safari should show a prompt with the number and Call or Cancel.
- Android, Chrome. Repeat. The dialer should open with the full number filled in.
- Inside an app. Send yourself the page link in Instagram or Facebook Messenger, open it there and tap the button. This is how many people from social ads and your bio link actually arrive.
- Read the number on screen. Before you hit Call, check every digit against the number you answer. Then place the call and confirm it rings where you expect.
- Write down which buttons failed and where. A header button that works and a footer one that doesn’t usually means two different links, not a site-wide fault.
If you don’t own both kinds of phone, ask a staff member. It is worth the five minutes.
Check the link itself: the correct tel: format
A click-to-call button is just a link whose address starts with tel: instead of https://. If the address is wrong, no setting elsewhere will rescue it. On a computer, right-click the button and copy the link address, or view the page source and search for tel:.
The safest format is tel: followed by a plus sign, the country code and the digits, with nothing else: <a href="tel:+12145550123">(214) 555-0123</a>. The visible text can be styled however you like; only the part inside href is dialed. The tel URI standard (RFC 3966) does allow some separators such as hyphens, and MDN’s link reference shows examples with them, but digits only removes any doubt across phones and plugins.
| Link as written | Problem | Write it as |
|---|---|---|
href="#" or href="/contact" | Not a phone link at all | tel:+12145550123 |
tel: (214) 555 0123 | Spaces can break it on some devices and plugins | tel:+12145550123 |
tel://2145550123 | The slashes aren’t part of the format | tel:+12145550123 |
tel:1-800-PLUMBER | Letters don’t dial; convert the vanity word to digits | tel:+18007586237 |
https://tel:2145550123 | The editor added https:// in front | Remove the prefix; pick the editor’s Phone link type if it has one |
| Correct format, old number | Number changed after a move or new phone system | Update every button, then the footer, schema and listings |
That last row catches a lot of businesses after a move. If you changed address or phone provider recently, our checklist for updating your Google Business Profile when you move covers the other places the old number hides.
How to fix it in WordPress, Squarespace and Wix
Menus change, so treat these as directions rather than exact click paths. The principle is the same everywhere: choose the editor’s phone link option when there is one, and type the raw tel: address when there isn’t.
WordPress
In the block editor, select the Button block or the number text, open the link box and type tel:+12145550123 directly. If WordPress turns it into a page search or adds https://, delete and retype it. Page builders such as Elementor have their own button widget with a link field; the same tel: value goes there. Header and footer buttons often live in the theme customizer or a header builder, so a fix in the page editor won’t touch them. After saving, clear any caching plugin and your host’s cache, or you may keep testing the old version.
Squarespace
Edit the Button block or select the text, open the link settings and choose the Phone option rather than pasting into the URL field. The same link panel offers email and file links, so make sure Phone is the one selected. Check the header button separately in the site header settings.
Wix
Select the button, click the link icon and choose Phone number from the list of link types, then enter the full number with the country code. Wix also has a separate mobile editor; a button that you hid or replaced on mobile can carry a different link from the desktop version.
When the link is right but the tap still fails
If the href is a clean tel: address and the button still does nothing, the problem is something on the page or in the browser. Work down this list.
- Something is covering the buttonCookie bars, chat bubbles, “book now” sticky bars and transparent popup layers can sit on top of a footer call button. Close every banner and test again; if it then works, move the button or the widget.
- Safari blocked calls from your siteSafari asks before dialing. If a visitor cancels that prompt repeatedly, Safari can stop the site from starting calls and show “This website has been blocked from automatically starting a call,” with an Allow Call option. Tap Allow Call to reset it. This is per person, so it explains a single complaint, not silence from everyone.
- The button lives inside an embedded frameBooking widgets, form tools and some landing page builders load inside an iframe, and phone links inside them can behave differently on iPhone. Put the call button on your own page, outside the embed.
- A script runs the buttonSome themes and popup tools use JavaScript to “click” a hidden link or open a modal. If a script error stops it, nothing happens. A plain link with a
tel:address is more reliable than any scripted button. - Safari’s automatic number detection is offBy default Safari on iOS turns text that looks like a phone number into a call link, and Apple’s meta tag reference documents the
format-detectionsetting that turns that off. Many themes switch it off. Then a number typed as plain text is not tappable at all, so give every visible number a realtel:link. - The visitor is in an app’s browserInstagram, Facebook and email apps open links in their own browser. If the button only fails there, test after updating the app, and add the number as visible text too so people can long-press or copy it.
Call tracking: when the button dials the wrong number
Call tracking tools swap your number for a tracking number so you can see which ad or page produced the call. Google Ads does this with a Google forwarding number shown to people who arrive from an ad, as its website call tracking guide explains. Third-party tools work the same way.
The swap usually targets either the visible text or the link, and sometimes it only catches one. The result is a page that shows one number and dials another, or a button that still dials the old tracked number after you cancelled the service. Three checks:
- Compare the number on screen with the number the dialer shows after you tap. They should match.
- If you cancelled a tracking service, remove its script from the site. Otherwise it may keep rewriting numbers.
- Ask whoever set up tracking which buttons the script targets, and confirm the header, footer and sticky bar are all included.
Also set up a simple tap event in your analytics so you can tell a dead button (no taps recorded) from a working one that people don’t use. Google Tag Manager can fire an event on any link click whose URL starts with tel:. Check it in real time once after setup, because analytics tools differ in whether they count phone links on their own.
Make the button easy to find and tap
A button that technically works can still fail people. The accessibility standard WCAG 2.2 sets a minimum target size of 24 by 24 CSS pixels; for the button that brings in your work, go well above that. A few practical rules:
- Put it where the thumb is. A call button in the mobile header or a sticky bar at the bottom beats one buried on the contact page.
- Label it with the action and the number. “Call (214) 555-0123” tells people what will happen and lets screen readers announce it clearly.
- Plan for desktop visitors. On a computer, a phone link may open FaceTime, a softphone or a “choose an app” box, or nothing at all. Keep the number visible as text and offer a form next to it. If your form leads have also gone quiet, see why contact form emails stop arriving.
- Say when you answer. Hours next to the button cut down calls that ring out after closing.
For trades, law firms, clinics and other professional service businesses, the phone is often the main way leads arrive, so the call button belongs at the top of any conversion optimization checklist, ahead of colors and copy tweaks.
Where to start this week
Today, do the ten-minute test on an iPhone and an Android phone, including one tap from inside Instagram. Fix any link that isn’t a clean tel:+ address, check the header and footer buttons separately, and clear your cache. This week, confirm a tracking script isn’t showing one number and dialing another, and add a tap event so you can see taps in your reports. Then put a monthly reminder in your calendar to repeat the test after every plugin update or redesign.
If you’d rather have someone check it, our free audit tests your call buttons, forms and Google profile on real phones and lists what to fix first. If the site itself is fighting you, that is a website design question, and we can tell you whether a repair or a rebuild makes more sense.
Questions people ask
Why does my phone number show as a link on iPhone but not on Android?
Should the tel: link include the country code?
Can I make a click to call button that only shows on mobile?
How do I know if people are tapping my call button?
Are your call buttons losing you work?
Our free visibility audit taps every call button and form on real phones, checks your Google profile, and tells you which fixes will bring in the most calls.