The vendor posts on page one say a "tap to call" button is essential and stop there. We fetched the home pages of the businesses Google Maps ranks first for plumber, roofer, HVAC and electrician in Grand Rapids and counted. Calling is nearly universal at the top of the map. Texting is a door nobody in that set has opened.
Yes to tap-to-call. 32 of the 39 top-ranked Grand Rapids trade sites we measured on 15 September 2026 have a tel: link; on a phone it dials with one tap. Not having one puts you behind most of the field.
Yes to a text link, with a caveat. An sms: link is one line of HTML and 0 of the 39 have one. That is an observation about the field, not a promise about leads: we have not measured call against text against form, and neither has anyone on page one that we can find.
Keep the form as a third door, but change what it asks for. In our own campaign a booked time slot produced 47 leads at $3.82 each where a "free estimate" form was the alternative. The ask shapes the lead.
Search the question and you get a page of posts from call-tracking vendors and website builders telling you a click-to-call button is "essential for mobile users". None of the ones we read counts anything (the receipts below say which ones and when). So on a Tuesday afternoon in September we counted, in the one place a contractor in this city actually competes: the businesses Google Maps puts in its first ten.
On 15 September 2026, between 17:15 and 17:21 UTC, we fetched the home page of each of the 40 businesses Google Maps ranked in its first ten for four searches in Grand Rapids: plumber, roofing company, HVAC company and electrician. Thirty-nine answered. One electrician's site timed out after 20 seconds and is not counted. For each page we read the HTML the server sent and checked for three things: a link whose address begins tel:, a link whose address begins sms:, and a <form> element.
tel: link (tap-to-call): 32 of 39. Plumbers 9 of 10, roofers 7 of 10, HVAC 9 of 10, electricians 7 of 9.sms: link (tap-to-text): 0 of 39. Not one, in any of the four trades.Two caveats, because they change how you should read the numbers. First, we only looked at the HTML the server sent. A phone number typed as plain text does not count, even though many phones will underline it and offer to dial; a button added by JavaScript after the page loads would be missed. So 32 is a floor for calling, and 0 is technically a floor for texting too, though we doubt many text links are hiding behind scripts. Second, this is a snapshot of who ranked on one afternoon. The set will drift. The pattern is what matters, and the pattern is stark.
Read plainly: tap-to-call is table stakes at the top of the map, and tap-to-text is an open door that nobody in the ranked set has walked through. We are not saying the door leads anywhere. We are saying it is open, it costs nothing to try, and you would be the only one in your trade standing in it.
Thirty-two of thirty-nine can be called in one tap. Zero of thirty-nine can be texted in one tap.
Both are ordinary links. The only thing that makes them special is the scheme at the front of the address, which tells the phone which app to hand the tap to.
A tel: link opens the dialler with your number already filled in. On a desktop it does very little, which is why the visible text should include the number itself, so a laptop visitor can still read it and dial by hand:
<a href="tel:+16165550142">Call (616) 555-0142</a>
An sms: link has the same shape and opens the messaging app with your number as the recipient. The visitor types what they want and sends it from wherever they are:
<a href="sms:+16165550142">Text us</a>
Three small things. Write the number in the international form, +1 then the ten digits, so it dials correctly no matter how the visitor's phone is set up. Skip the pre-filled message body; it is possible, but the syntax for it has historically differed between iPhone and Android, and the plain version works everywhere. And an sms: link is only as good as the number behind it: if that number is a landline that cannot receive texts, or a cell in a glovebox nobody checks, the link is a dead end dressed up as a door. That is the one real precondition, and it is the reason we ask about it before adding the link to anyone's site.
The fictional plumber number above is what we use on demonstration builds. Yours goes in the same place.
In the header, on every page. A visitor who arrives from a search for "water heater replacement Grand Rapids" lands on a service page, not the home page, and they should not have to hunt for a contact page to find the number. The phone number in your header should be a tel: link, not decoration, and the text link sits beside it.
On phones, add a bar fixed to the bottom of the screen with two buttons: Call and Text. It stays in place as the visitor scrolls, and it sits exactly where their thumb already is. On a desktop the header is enough; a sticky bar there is clutter. Do not bury either link inside a hamburger menu. A door behind a door is not a door.
This is not an upsell. Our Starter Site at $999 (one to three pages) includes a lead form and click-to-call as standard, because leaving them off a contractor site would be like building a shop with no front entrance. The text link is the same line of HTML with a different scheme, and it goes in at the same time when the number can receive it.
Twenty-six of the 39 ranked sites have a form. Keep yours. Some visitors are searching at eleven at night and do not want to talk to anyone; some want a written record; some are pricing three contractors and will not phone any of them until they have narrowed it down. The form is for them.
But be honest about what a form asks of a visitor. Name, email, phone, a description of the problem, and then a wait of unknown length for a reply. It is the door that demands the most and promises the least, and "request a free estimate" is the vaguest possible thing to promise at the end of it.
The one thing we have measured on our own money points at the fix. In a Meta campaign we ran, the ask was a booked time slot rather than a free-estimate form, and it produced 47 tour-scheduled leads at $3.82 each on $179 of spend, against a real-estate median near $17. The full account is in the calendar link that beat the free estimate and what moves cost per lead. The lesson we took from it is that the ask shapes the lead: a visitor asked to pick a time behaves differently from a visitor asked to fill in a box.
What we have not measured, and will not pretend to have, is a call link against a text link against a form on a contractor website. That campaign was real estate, and it ran on Meta rather than on a plumber's home page. It tells you the ask matters. It does not tell you which of the three doors converts best for a roofer in Kentwood, and we have not seen a page-one post that measured that either.
One more thing about doors: a call that rings out is a lead that leaves. If you are on a roof at two in the afternoon, the tap-to-call link sends people to voicemail. The Growth Site + Tool at $4,999 includes one custom AI tool, and one of the options is missed-call-to-text: when a call goes unanswered, the caller automatically gets a text back, so they can reply with what they need instead of hanging up and dialling the next name on the map. That is a description of what it does. We have no results to report for it, and we will not invent any.
| Contact door | How many of 39 top-ranked sites have it | What it asks of the visitor | Verdict |
|---|---|---|---|
Tap-to-call (tel: link) | 32 of 39 | A live conversation, right now, somewhere they can talk | Table stakes. Without it you trail most of the field. |
Tap-to-text (sms: link) | 0 of 39 | A short message from wherever they are, answered on their own time | Add it if your number receives texts and someone answers. Open door, unmeasured upside. |
| Contact form | 26 of 39 | Name, email, phone, a description, then a wait | Keep it, but ask for something specific rather than a "free estimate". |
| Booked time slot (calendar link) | Not counted in this sweep | Pick a time; the rest is a confirmation | The ask that beat the free-estimate form in our own campaign. Worth testing as the form's replacement. |
The sweep. 15 September 2026, 17:15 to 17:21 UTC. Home page of each business Google Maps ranked in its first ten for plumber, roofing company, HVAC company and electrician in Grand Rapids: 40 listed, 39 measured, one timed out at 20 seconds. Served HTML only; plain-text numbers and script-added buttons not counted. tel: link 32 of 39 (plumbers 9/10, roofers 7/10, HVAC 9/10, electricians 7/9). sms: link 0 of 39. <form> 26 of 39. We do not name the businesses.
The campaign. Our own Meta campaign: $179 of spend produced 47 tour-scheduled leads at $3.82 per lead, against a real-estate median near $17 per lead. Published in full at calendar-link-beats-free-estimate and what-moves-cost-per-lead.
Not measured. Call versus text versus form conversion on a contractor site. Anyone who tells you a number for that should be able to show you where it came from.
What page one offers instead. We opened three of the pages that rank for this question and looked for a count. A call-tracking vendor's explainer (quo.com/blog/what-is-click-to-call/, published 6 February 2026, read 15 September 2026) has one figure in it, that “the global market for click-to-call solutions weighed in at $20.3 billion in 2024”, and no count of any website. A contractor-focused post (shiftflow.app/playbook/where-to-put-phone-number-on-contractor-website, published 16 August 2026, read 15 September 2026) recommends the tap-to-call link, offers a checklist for testing it on a real phone, and does not mention text links at all. Google's own Business Profile help on messaging (support.google.com/business/answer/9114771, read 15 September 2026) describes the feature and gives no figure for how many customers use it. We looked for a verifiable number on how people contact local businesses and did not find one, so this page does not carry one.
Three questions, in order. The answers tell you which doors to open and which to leave shut until something else is fixed.
1. Can the number on your site receive a text, and will a person answer it? If the number is a landline, or a cell that lives in a truck and gets checked at dinner, do not add the text link yet. A text that goes unanswered for six hours is worse than no link at all, because the visitor believed they had reached you. Fix the number first: a business line that receives texts, forwarded to a phone someone watches. Then add the link.
2. Where does your phone actually ring during the working day? Be honest. If you answer most calls, tap-to-call is your best door and the text link is a courtesy. If most calls land in voicemail because you are on a ladder or under a sink, the text link is doing real work, and the missed-call-to-text tool is the thing that stops the voicemail door from being a wall.
3. What do you want the visitor to do: talk now, write now, or book a time? The 32 ranked sites with a call link have answered "talk now". The 26 with a form have answered "write now", usually vaguely. Almost nobody at the top of the map has asked the visitor to book a time, and that is the ask that performed for us. Match the door to the ask you want, and put the ask you want first.
If you want the short version: every contractor site needs the call link, most should add the text link once the number can take it, and the form should ask for a time rather than an estimate. That is where the measurement points. The rest is you knowing your own phone.
Yes. On 15 September 2026 we checked the home pages of 39 businesses Google Maps ranked in its first ten for plumber, roofing company, HVAC company and electrician in Grand Rapids, and 32 of them had a tel: link. On a phone, tapping it dials the number in one step. It is one line of HTML, it is included in every site we build, and not having it puts you behind most of the field at the top of the map.
Both are ordinary links with a different address scheme. A tel: link opens the phone's dialler with your number filled in. An sms: link opens the messaging app with your number as the recipient. Each is one line of HTML and neither needs a plugin or a script. The only requirement for the sms: link is that the number can actually receive text messages and that someone reads them.
Probably, if your number can receive texts and someone will answer them. In our sweep 0 of 39 top-ranked Grand Rapids trade sites had an sms: link, which makes it an open door rather than a proven one. We have not measured whether a text link produces more or better leads than a call or a form, so treat it as a low-cost option with an unmeasured upside, not a guaranteed result.
We do not know, and we have not seen a page-one post that measured it either. What we have measured is that the ask shapes the lead: in our own Meta campaign a booked time slot produced 47 scheduled leads at $3.82 each on $179 of spend where a free-estimate form was the alternative, against a real-estate median near $17 per lead. That was real estate, not a contractor site, so we report it as a lesson about the ask and not as a call-versus-text-versus-form result.
Send me your site's address. I'll run the same check we ran on the 39 and reply with what the served HTML actually contains: a tel: link, an sms: link, a form, or none of them.
Works whether or not you end up building with me.