Guide

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.

Get foundfaster
Click to call button not working on a small business website: test on real phones and fix the tel 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 tapMost likely causeWhere to look
Nothing at all, on every phoneThe button links to #, a page, or nothing; or an invisible element sits on top of itButton link setting; overlays such as cookie bars and chat widgets
Works on Android, not on iPhoneSafari has blocked calls from the site, or the link sits inside an embedded frameTap again and look for the “blocked” message; check for embedded widgets
Works in Safari or Chrome, not from Facebook or InstagramThe app’s built-in browser handles phone links differentlyTest the same page in the normal browser
Phone opens the dialer but the number is wrong or incompleteA typo or old number in the link, letters in a vanity number, or a call tracking swapThe href value in the page source
The plain number isn’t tappable on iPhoneNo tel: link, and the theme turns off Safari’s automatic number detectionPage source for format-detection
On a laptop, a “pick an app” box or nothing appearsNormal desktop behavior, not a bugSee the desktop section below
The call dials but nobody hears it ringPhone system, forwarding or after-hours routingYour 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.

  1. 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.
  2. Android, Chrome. Repeat. The dialer should open with the full number filled in.
  3. 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.
  4. 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.
  5. 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 writtenProblemWrite it as
href="#" or href="/contact"Not a phone link at alltel:+12145550123
tel: (214) 555 0123Spaces can break it on some devices and pluginstel:+12145550123
tel://2145550123The slashes aren’t part of the formattel:+12145550123
tel:1-800-PLUMBERLetters don’t dial; convert the vanity word to digitstel:+18007586237
https://tel:2145550123The editor added https:// in frontRemove the prefix; pick the editor’s Phone link type if it has one
Correct format, old numberNumber changed after a move or new phone systemUpdate 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-detection setting 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 real tel: 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:

  1. Compare the number on screen with the number the dialer shows after you tap. They should match.
  2. If you cancelled a tracking service, remove its script from the site. Otherwise it may keep rewriting numbers.
  3. 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?
Safari on iOS can turn any text that looks like a phone number into a call link by itself, while other browsers may not do this. So a plain-text number can be tappable on iPhone and dead on Android. Wrap every visible number in a real tel: link and it will work the same on both.
Should the tel: link include the country code?
Yes. Use a plus sign and the country code, for example tel:+12145550123 for a US number. It dials correctly from any phone, including visitors on foreign SIM cards or roaming, and it removes guesswork for plugins and call tracking scripts that read the link.
Can I make a click to call button that only shows on mobile?
Most website builders let you hide an element on desktop or mobile, and many themes have a mobile-only sticky call bar. That’s a sensible setup, but keep the number visible as text on desktop too, so people on a computer can still read it and call from their own phone.
How do I know if people are tapping my call button?
Set up a click event for links that start with tel: in Google Tag Manager or your analytics tool, then check it in the real-time report after a test tap. Comparing taps with calls your phone system logged shows whether the button is dead or just ignored.

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.