Meridian15 editorial cover with the headline 12 Contractor Sites, Measured, with 12 highlighted in red
Web · Contractors
July 24, 2026
12 min read

Contractor website design: 12 examples, broken down

Short version. Every contractor roundup on the internet is screenshots and adjectives. This one is measured. On 2026-07-24 we fetched twelve live Canadian contractor and trades homepages and ran each through the same 13-check, 66-point rubric behind our free AEO audit, plus per-site checks for tap-to-call, a form on the homepage, a service area, and a declared business type in schema. Average score: 42.3 out of 66, or 64%. Zero scored Strong. All twelve had a tap-to-call link. None earned full credit for named authorship.

Below: the three jobs a contractor homepage has to do immediately, the twelve sites with their measured rows, what the set has in common, what the wider Calgary data says, a ten-point checklist for your own site, and what a build costs.

What a contractor website has to do in the first five seconds

Three jobs, in this order.

Prove the work. Photographs of finished projects, taken on the job, with enough scale and repetition that a stranger believes you have done this before. Stock photography of somebody else's kitchen does the opposite.

Make contact one tap. A tel: link in the header so a phone number is a tap target, not a string to memorise. A form is a second path, not a replacement, because half of contractor enquiries are urgent.

State the service area. Named towns and neighbourhoods, in text, on the page. This is the single cheapest local-search signal available and it is also the question every visitor is silently asking. How that fits with everything else a trades business runs is in how Calgary contractors actually get leads.

The twelve examples

CompanyCityScore /66Tap to callForm on homepageService areaBusiness type in schema
Trifecta PlumbingVancouver, BC51 (77%)YesNoYesLocalBusiness
Reborn RenovationsCalgary, AB51 (77%)YesYesYesGeneralContractor
Ultimate RenovationsCalgary, AB49 (74%)YesNoNoGeneralContractor
Elevation RenovationsCalgary, AB48 (73%)YesNoYesLocalBusiness
Rusch Design BuildCalgary, AB47 (71%)YesNoYesGeneralContractor
Lloyd HVAC ServicesToronto, ON45 (68%)YesNoYesHVACBusiness
Trademark RenovationsCalgary, AB44 (67%)YesYesYesNone
Hydro-Flo Plumbing & HeatingEdmonton, AB40 (61%)YesNoYesNone
Canadian Roofing CompanyToronto, ON35 (53%)YesNoYesLocalBusiness
New Canadian Drain & PlumbingToronto, ON35 (53%)YesYesYesPlumber
Universal Plumbing and HeatingVancouver, BC32 (48%)YesYesYesNone
YYC Ark ConstructionCalgary, AB31 (47%)YesYesYesNone

Trifecta Plumbing, Vancouver, BC

trifectaplumbing.ca, 51 out of 66. Joint highest in the set, and the only site of the twelve to earn any credit at all on named authorship. The service-area list is explicit: twelve named municipalities across the Lower Mainland, in text. What it gets wrong: no BreadcrumbList, and no form on the homepage, so every enquiry routes through a phone call or a click away.

Reborn Renovations, Calgary, AB

rebornrenovations.com, 51 out of 66. The most complete schema in the set: GeneralContractor, HomeAndConstructionBusiness and LocalBusiness together, plus FAQPage and BreadcrumbList, plus a homepage form and named service communities. What it gets wrong: the H1 check fails, which means the page's single most important heading is either missing or duplicated. It also returned a 403 to our audit tool's user agent.

Ultimate Renovations, Calgary, AB

ultimaterenovations.com, 49 out of 66. Deep business schema, 9 out of 10 on organisation depth, with an OfferCatalog listing actual services rather than a bare business type. What it gets wrong: it is the only site of the twelve with no service-area statement our check could find, and there is no form on the homepage. Forty-five years of work and the page never names the towns it serves.

Elevation Renovations, Calgary, AB

elevationrenovations.ca, 48 out of 66. One of only four sites in the set publishing an llms.txt discovery file, and one of four with FAQPage markup backing visible questions. Calgary, Okotoks and the Foothills are named in text. What it gets wrong: the meta description scores 3 out of 5, and there is no BreadcrumbList, so the site's hierarchy is invisible to anything parsing it.

Rusch Design Build, Calgary, AB

ruschdesignbuild.com, 47 out of 66. Strong business schema at 8 out of 10, with address, coordinates, opening hours and an AggregateRating, and the accreditations are stated in text rather than implied by badge images. What it gets wrong: no BreadcrumbList and no homepage form. The contact path is a phone number and a click.

Lloyd HVAC Services, Toronto, ON

lloydhvac.com, 45 out of 66. The most technically ambitious page here: HVACBusiness schema at 9 out of 10, BreadcrumbList, an llms.txt file, and the owners named in the body copy. What it gets wrong: for all that markup there is still no author attribution the rubric can read, and no form on the homepage.

Trademark Renovations, Calgary, AB

trademarkrenovations.com, 44 out of 66. Full marks on H1, meta description and BreadcrumbList, with a homepage form and named surrounding communities. What it gets wrong: no business type in schema at all. The JSON-LD describes a WebPage and a breadcrumb trail, so nothing on the page tells a machine this is a licensed general contractor. It also returned a 403 to our audit user agent.

Hydro-Flo Plumbing & Heating, Edmonton, AB

hydro-flo.ca, 40 out of 66. Publishes an llms.txt file, names the surrounding communities it serves, and answers a set of real questions in visible copy. What it gets wrong: the only structured data on the page is WebSite and SearchAction. Visible questions and no FAQPage markup, more than twenty years in business and no business type declared. The content is there and the markup is not.

Canadian Roofing Company, Toronto, ON

canadianroofingcompany.ca, 35 out of 66. FAQPage markup present and a LocalBusiness type declared, which is more than half this set manages. What it gets wrong: no meta description at all, scoring 0 out of 5, and the H1 check fails. Thirty-five years in the GTA and the search snippet is whatever Google decides to assemble.

New Canadian Drain & Plumbing, Toronto, ON

newcanadiandrain.com, 35 out of 66. The only site in the set using the specific Plumber type rather than a generic one, with FAQPage, BreadcrumbList, an llms.txt file and a homepage form. What it gets wrong: the H1 check fails and the organisation-depth check scores 0 out of 10, so the Plumber block is present but too thin to carry address, hours and identity.

Universal Plumbing and Heating, Vancouver, BC

universalheating.ca, 32 out of 66. Homepage form, BreadcrumbList, full-mark meta description, and a service-area section covering the Lower Mainland. What it gets wrong: no sitemap.xml our audit could fetch, scoring 0 out of 4, and no business type in schema. The site is discoverable by people and awkward for machines.

YYC Ark Construction, Calgary, AB

yycarkconstruction.ca, 31 out of 66. Lowest in the set, and the reason is one line: no JSON-LD anywhere on the page. The human-facing content is genuinely good, with a services list, a free-estimate path, a phone number, an email address and WCB registration stated plainly. What it gets wrong is entirely invisible to a visitor and entirely visible to a crawler.

Methodology. All twelve homepages were fetched on 2026-07-24 with a standard desktop browser user agent, along with each site's robots.txt, sitemap.xml and llms.txt. Scores come from the same 13-check, 66-point rubric that runs inside our free AEO audit, described in full in the rubric breakdown. Tap-to-call was detected as a tel: link in the homepage HTML, form as a form element in the homepage HTML, service area as a named-area statement in visible text, and business type from the JSON-LD blocks on the page. Companies were selected for trade and city spread across Calgary, Edmonton, Toronto and Vancouver. None is a Meridian15 client and none was contacted. A homepage is one page, so a low score is a measurement of that page, not a verdict on the business.

What the twelve have in common

Counts out of twelve, not impressions.

  • 12 of 12 have a tap-to-call link. This trade is far ahead of the general market on the one thing that matters most.
  • 11 of 12 name a service area in visible text.
  • 11 of 12 put a quote, estimate or booking call to action in the homepage copy, but only 5 of 12 put an actual form on the homepage.
  • 8 of 12 declared a business type in schema. 1 of 12 ships no JSON-LD at all.
  • 0 of 12 earned full credit for named authorship. One earned partial credit. Eleven have no accountable human attached to the content.
  • 4 of 12 ship FAQPage markup. 5 of 12 ship BreadcrumbList. 4 of 12 publish an llms.txt file, which is higher than we expected.
  • 12 of 12 allow AI search and retrieval crawlers in robots.txt. Nobody in this set is blocking themselves out of AI answers.
  • 2 of 12 returned a 403 to our audit tool's own user agent while serving a browser normally, which is a WAF rule nobody chose deliberately.
  • Scores ranged from 31 to 51 out of 66, averaging 42.3. Nothing reached the Strong tier at 85%.

The pattern: this trade has the human-facing basics right and the machine-facing basics wrong. Phone numbers work. Service areas are stated. Schema is thin, authorship is absent, and the difference between the top and bottom of this table is almost entirely markup.

What most contractor websites still get wrong

Twelve sites is a small sample. Here is what the larger Calgary datasets say, where the samples are 152 and 403 homepages.

Contact paths that are not one tap. Every site in this set passed, but across the wider market 41% of Calgary businesses cannot be phoned in one tap and only 3.4% ship a booking widget. Contractors are the exception here, not the rule, and it is worth knowing that is an advantage rather than a baseline.

Schema that declares nothing. Four of our twelve declared no business type. Across 403 Calgary homepages, 72% ship structured data and only 61% declared a business type, with 91% skipping FAQPage even where visible questions exist. Shipping markup and shipping useful markup are different achievements.

Speed. We did not score load time in this run. The wider picture is that 71% of Calgary small business sites are slow, with a median 33 script tags and 736ms time to first byte. Every gallery-style contractor template we have opened is fighting that number.

No accountable human. Eleven of twelve have nobody named on the content. For a trade sold entirely on trust, where the buying decision is "will this person be in my house", that is the strangest gap in the whole dataset.

The checklist to run on your own site

  1. A tel: link in the header, on mobile, above the fold.
  2. A form on the homepage, not only on a contact page. Seven of these twelve make you click first.
  3. Named service areas in visible text, not just in a footer image.
  4. A business type in JSON-LD, and the specific one where it exists: Plumber, HVACBusiness, RoofingContractor, GeneralContractor.
  5. Address, phone, and opening hours inside that schema block, not only in the footer markup.
  6. Exactly one H1, matching what the page is about. Three of twelve fail this.
  7. A meta description on every page. One of twelve ships none at all.
  8. FAQPage markup wherever visible questions already exist, and nowhere else.
  9. A named owner or lead on the about page, with a real bio.
  10. A reachable sitemap.xml, and a robots.txt that does not block AI retrieval crawlers by accident.

Run the same free audit on your own homepage and compare your number to the table above. It is thirteen checks, sixty-six points, no email required.

What a contractor website costs and how long it takes

Meridian15 publishes fixed project pricing through our web design and development service. A simple one-page site can be as low as $2,000. Most business sites with a handful of pages land around $5,000 to $10,000. Larger builds with ecommerce, integrations, or bespoke functionality scale up from there. Simple sites typically launch in 1 to 2 weeks, and larger brand and ecommerce builds run 4 to 8 weeks or longer. The scope-by-scope version is what a custom site costs, and the ongoing side is keeping it maintained after launch. Finished work sits in selected builds.

Frequently asked questions

What makes a good contractor website?

Three things in the first five seconds: proof of finished work in real photographs, a phone number that is a tap target, and a service area stated in visible text. After that it is the machine-facing layer, meaning a declared business type in JSON-LD with address and hours, one H1, a meta description, and a named human attached to the content. In the twelve Canadian contractor homepages we measured on 2026-07-24, the human-facing basics were mostly right and the machine-facing layer was mostly missing.

How much does a contractor website cost?

Meridian15 prices builds as fixed projects. A simple one-page site can be as low as $2,000, most business sites with a handful of pages land around $5,000 to $10,000, and larger builds with ecommerce, integrations, or bespoke functionality scale up from there. Simple sites typically launch in 1 to 2 weeks and larger builds run 4 to 8 weeks or longer.

What pages does a contractor website need?

Five, at minimum. A homepage that proves the work, one page per major service rather than a single combined services page, a project gallery with real photographs, a service-area page naming the towns and neighbourhoods you cover, and a contact page with both a form and a tap-to-call number. An about page with a named owner is the sixth, and eleven of the twelve sites we measured had nobody named on their content at all.

Should a contractor use a website template or a custom build?

A template is the right answer when the alternative is no website. The cost shows up later in page weight, in markup you cannot control, and in the platform fees nobody counts at signup. A custom build wins when the site is a real lead source, when speed matters, or when you need structured data the template does not emit. Four of the twelve sites we measured declared no business type in schema, and on most templates that is not something the owner can fix.

How do contractors get leads from their website?

Two paths, and both have to work. The phone, which means a tap-to-call link above the fold, and a form on the homepage rather than one click away. Eleven of our twelve sites asked for a quote or an estimate in their homepage copy, and only five put an actual form there. Behind both paths sits local search: a Google Business Profile, named service areas in visible text, and a declared business type in schema so an answer engine can tell what you do and where you do it.

Calgary based, Canada wide

Score your own site against the twelve

Run the free audit on your homepage, then bring the number. Twenty minutes covers what to fix yourself, what needs a rebuild, and what is worth ignoring.

Book A Call