Home / Articles / What top-ranked trade sites have in common
Measured · Contractor Websites

What 39 top-ranked Grand Rapids trade websites have in common: HTTPS and tap-to-call on almost all, a text link on none

Every checklist of what a contractor website "should include" was written without opening a contractor website. So I opened 39 — the plumbers, roofers, HVAC companies and electricians Google Maps ranks first in Grand Rapids — and counted what is actually there.

By Matthew Kerr Published 15 Sep 2026 Updated 15 Sep 2026 7 min read
Quick answer

All 39 use HTTPS and 32 have a tap-to-call phone link. Those two are table stakes: without them you are the odd one out on page one.

The middle is genuinely mixed. 30 link to at least one service page, 32 carry some structured data, 26 have a contact form, 23 link a privacy policy, 23 have a blog. Having these puts you with the majority, not ahead of it.

Nobody — 0 of 39 — offers a tap-to-text link, and only 8 have an FAQ block. Those are the open doors, and both are cheap.

Search "what should a contractor website include" and page one is a domain registrar, a federal agency and a few small agencies, each with a bulleted list of must-haves. The lists are reasonable. They are also written from the armchair: not one of them opens a real contractor site to see whether the must-haves are actually there on the sites that win.

That is a fixable gap. Google Maps already tells you which trade sites in Grand Rapids are winning. All you have to do is look at them.

What the checklists say, and what I checked instead

The generic lists agree on a core: a phone number you can tap, a contact form, a page per service, reviews, an about page, a blog, a privacy policy, a fast mobile layout. Some add "SEO" as a line item, which is like adding "be good" to a recipe.

Take one page-one result, a marketing agency's "12 elements every site must have" (contractorsmarketingpros.com, read 15 September 2026). Its first element is an "above-the-fold phone number, tap-to-call on mobile"; its seventh is "service pages for every service, every city"; the rest run through a trust bar, a reviews carousel, financing, a speed target and a sticky mobile footer. It is a sensible list. It also cites no sample: the one statistic in it arrives without a source, and no real contractor site is opened to see whether the winners actually do any of it.

Rather than write a fortieth version of that list, I measured it. On 15 September 2026, between 17:15 and 17:21 UTC, I fetched one home page and one robots.txt for 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. 39 answered; one electrician's site timed out and is not counted. Then a script checked each home page for the things the checklists say you need.

Two caveats up front. This is the HTML the server sent, not what a browser renders afterwards, so anything a script injects later is invisible here. And it is one reading on one day. Both are stated again in the receipts below.

The checklist, measured on 39 sites

The "what it does" column is my read as a builder, except where it quotes Google. The counts are the measurement.

ElementOf 39Plumbers · Roofers · HVAC · ElectriciansWhat it doesVerdict
HTTPS3910/10 · 10/10 · 10/10 · 9/9Encrypts the connection; the browser shows a padlock instead of "Not secure". Google's page-experience self-assessment asks "Are your pages served in a secure fashion?" and adds "There is no single signal" (developers.google.com, read 15 September 2026). In my experience it is also the one item every host now gives away, which is why it is universal.Table stakes
Tap-to-call (tel: link)329/10 · 7/10 · 9/10 · 7/9On a phone, the number is one tap from ringing. Without it the visitor copies digits into the dialler, and some will not bother. Builder's opinion.Table stakes
robots.txt368/10 · 10/10 · 9/10 · 9/9Tells crawlers which paths to skip. Four of the 36 name an AI crawler; none blocks one site-wide.Table stakes (see below)
Service-page link (at least one)309/10 · 7/10 · 8/10 · 6/9A page per service gives Google a page to rank for "water heater repair" instead of hoping the home page covers it. Median 5 service links; one mega-menu had 71.Middle
Any structured data (JSON-LD)328/10 · 8/10 · 10/10 · 6/9Google's definition: "a standardized format for providing information about a page and classifying the page content" (developers.google.com, read 15 September 2026). On a contractor site it is often just a page-builder default, which is why the next row is smaller.Middle
Business-type schema node235/10 · 6/10 · 7/10 · 5/9A node that says "this is a Plumber (or HVACBusiness, RoofingContractor, Electrician) at this address with this phone". The deliberate version of the row above.Middle
Contact form267/10 · 7/10 · 7/10 · 5/9A second way in for the people who will not call. Thirteen top-ranked sites make you phone or email.Middle
Privacy-policy link236/10 · 7/10 · 7/10 · 3/9Discloses what the site collects. Legally sensible on any page with a form or a pixel; visibly optional to 16 of the 39.Middle
Blog / news link235/10 · 6/10 · 7/10 · 5/9Somewhere to publish pages that are not services. Sixteen sites rank in the first ten without one.Middle
FAQPage schema83/10 · 3/10 · 0/10 · 2/9A marked-up question-and-answer block. Answers the questions a caller would ask, on the page, in a form machines can read. No HVAC company on page one has one.Open door
Tap-to-text (sms: link)00/10 · 0/10 · 0/10 · 0/9One tap opens a text to the business. Same idea as tap-to-call, for the customer who is at work and cannot take a call. One line of HTML.Open door

Table stakes. HTTPS is on every site. Tap-to-call is on 32; the seven without it are spread across every trade, so it is not a trade habit, it is an oversight. If your site lacks either, fixing it does not put you ahead of anyone, it stops you being behind.

The middle. Everything from service pages down to the blog sits between 23 and 32 of 39, which is another way of saying a clear majority has it and a real minority ranks fine without it. HVAC companies are the most thorough group: all ten carry some structured data, seven of ten have a blog, seven a privacy link. Electricians are the thinnest: three of nine link a privacy policy, six of nine carry any schema. If you are an electrician, the bar in your trade is lower than the table's overall column suggests.

Open doors. No site in the sweep lets you tap to text it. Eight have an FAQ block, and zero of the ten HVAC sites do. Neither costs anything beyond the copy, and the copy is the part I write anyway.

Thirty-nine sites, four trades, and not one of them will let you text it. That is not a hard thing to be first at.

Receipts

Sample: the businesses in Google Maps' first ten for plumber, roofing company, HVAC company and electrician in Grand Rapids, Michigan, on 15 September 2026 (40 listed, 39 measured, one timed out at 20 seconds). One fetch of the home page and one of /robots.txt per site, 17:15–17:21 UTC, no retries. Counts are on the served HTML only. A tel: or sms: link means an href starting with that scheme; a service-page link means an internal path containing a services segment or a trade word; a form means a <form> tag; a robots.txt counts only if it returned 200 and contains a robots directive. One reading, one day. The same 40 businesses are behind the review counts (twelve top-three spots held 22 to 12,142 reviews, all rated 4.4 or better), the schema counts and the one that found all 40 have a site; a separate ten-site reading measured mobile speed (median score 59).

Easy to get wrong

Three defects turned up that no checklist warns you about, because they are the kind of thing you only see when you look at the actual HTML.

A home page with no <title>. One of the 39 serves a home page with no title tag at all. The browser tab shows the URL, the search result shows whatever Google improvises, and the single most-read line of the site is blank. This is a site that ranks in the first ten anyway, which tells you how much reviews and proximity are carrying it.

The wrong city in the title. Two home pages carry a different city in their title than the one they rank in. Usually this is a business that started in a neighbouring town, grew into Grand Rapids and never updated the one line Google quotes back to searchers. Both rank in the first ten regardless, but the first thing a Grand Rapids searcher sees is a town they did not search for.

Robots files that are not robots files. Three sites answer /robots.txt with HTTP 200 and a web page. A crawler asking for the rules gets a home page dressed as a text file. It is harmless in the sense that no rules means no restrictions, but it means the site's host is serving its "not found" page with a "found" status, and that habit tends to show up elsewhere too.

One more number that is not a defect so much as a weight. The median home page in the sweep is 202 kB of HTML before a single image or script loads; the heaviest is 1,173 kB. HTML alone does not decide speed, but a megabyte of markup on a home page is a page-builder's fingerprint, and the speed reading shows where that ends up on a phone.

What a $999 build includes, against that table

Here is my Starter Site, and the Business Site above it, laid against the same rows. Honestly: the Starter tier does not include a blog or a page per service.

ElementStarter Site · $999Business Site · $2,499
HTTPSYesYes
Tap-to-callYes: lead form + click-to-call is in the tierYes
Tap-to-textNot a line item on either tier. It is one link, and I add it on any build where the number takes texts.
Contact formYesYes
Correct title, city includedYes: on-page SEO + Google setupYes: copywriting + on-page SEO
Business-type schema nodeNot in the tierYes: local schema
Page per serviceNo: 1–3 pages totalYes: 5–8 custom pages
Reviews on the siteNot in the tierYes
AnalyticsNot in the tierYes
BlogNoNo
FAQ blockNot a line item on either tier. It is copy, and I write the copy, so ask for it.
Privacy policy pageNot a line item on either tier; a page with a form should have one, so raise it when we scope.

Both tiers are a fixed price and a date in writing, and you own everything at the end. If you already have a site and want to know where it sits on the first table before spending anything, the Site & Business Audit is $750 one-off: a written report in three business days, 190-plus checks per page, which is a longer version of the script that produced these counts.

How to decide

Three questions, in order.

1. Does your number ring when tapped on a phone? Open your own site on your phone and tap the number. If nothing happens, you are one of the seven, and it is the cheapest fix on this page. Any tier covers it, and so does a competent fifteen-minute edit to your current site.

2. Do you want to be found for each service, or for the business? If you are a two-person outfit that does one thing, a 1–3 page Starter Site with the right title and a tap-to-call link covers the table stakes and most of the middle. If you sell four or five services and want Google to have a page to rank for each, the Starter is the wrong tier, and I will say so on the call; 30 of the 39 sites you are up against link to service pages, median five.

3. Do you want the open doors? A text link and an FAQ block are the two things nobody on page one has. Neither is a budget question. If you want them, say so at scoping and they go in.


Common questions

What should a contractor website include?

Measured against the 39 top-ranked trade sites in Grand Rapids: HTTPS (39 of 39) and a tap-to-call phone link (32 of 39) are the two things almost everyone has. A majority also link to at least one service page (30), carry some structured data (32), have a contact form (26), link a privacy policy (23) and have a blog (23). Nobody offers a tap-to-text link and only 8 have an FAQ block, so those are the two cheapest ways to have something your competitors do not.

Do top-ranked contractor websites have a blog?

About six in ten. On 15 September 2026, 23 of the 39 top-ranked Grand Rapids plumber, roofer, HVAC and electrician home pages linked to a blog or news section: 5 of 10 plumbers, 6 of 10 roofers, 7 of 10 HVAC companies and 5 of 9 electricians. So a blog is common at the top but far from universal, and 16 sites rank in the first ten without one.

Does a contractor website need schema markup to rank in Grand Rapids?

It is not required, but most of the top-ranked sites have some. 32 of 39 home pages carried at least one JSON-LD block, 23 carried a node describing the business itself (a Plumber, RoofingContractor, HVACBusiness, Electrician or LocalBusiness type) and 8 carried FAQPage markup. Seven sites rank in Google Maps' first ten with no structured data at all, so it is a majority practice rather than a gate.

Is a $999 website enough for a contractor?

For the table stakes, yes: a Starter Site at $999 is 1 to 3 pages, mobile-first, with a lead form and click-to-call, on-page SEO and Google setup, live in days. That covers HTTPS, tap-to-call, a form and a correct title. It does not include a blog or a page for each service; 30 of the 39 top-ranked sites link to at least one service page, with a median of five. If you sell several services and want a page for each, that is the Business Site at $2,499 (5 to 8 custom pages, copywriting, local schema, reviews, analytics).

Matthew Kerr

I build sites at Kerr & Co. in Grand Rapids. Before I tell a contractor what their site needs, I look at what the sites already beating them actually have, which is how this page and its siblings came to exist. The counts above are from a script I run on my own pages too.

Related

Want your site run against the same table?

Send me your URL. I'll tell you which of the eleven rows you have, which you are missing, and whether the fix is a fifteen-minute edit or a rebuild — before you spend anything.

Fixed price and date in writing. You own everything at the end.