The sample
- Published websites
- 117
- By trade
- Plumbers 21, Electricians 16, Roofers 13, Builders and Contractors 11, Heating and HVAC 25, Landscapers and Gardeners 14, Handyman 2, Cleaners 3, Pest Control 12
- By region
- UK 35, US 82
- Captured between
- 7 Sep 2026 and 28 Sep 2026
- Data runs to
- 28 Sep 2026 (the newest entry published)
- Computed on
- 15 Oct 2026
- Builder credited
- 47 of 117
- Editor's own builds
- 5, labelled on their entries and counted like any other
Every site here was picked by one person because he thought it was well built, so this is a sample of sites one editor liked, not a sample of trade websites in general. It leans to the US, and the UK side is small, so every percentage sits beside its count and no percentage is given where a group is under 10.
How the numbers were made
Each site was captured as a full-page desktop screenshot at 1,440 pixels wide. The feature, style and colour tags were set from that screenshot by the drafter, following the rules in the entry rubric, and approved by the editor before the entry was published. Platform, typeface and tech were read from the page at capture time: the generator meta tag, the asset hosts and the fonts loaded. Where nothing settled the platform it is recorded as unknown and left out of the platform shares. Each table below says which of the two classes it rests on.
Percentages are whole numbers of the group named in the caption. One entry per business domain. Tags are only set when the thing is visible, so a feature that is present but off the home page (a quote form two clicks deep, say) is not counted, and these figures are floors rather than ceilings.
Definitions
What each feature tag means. The same definitions govern every entry in the gallery.
- Click to call
- The phone number is a tel: link or styled as a button, so a tap on a phone dials it.
- Phone in header
- A phone number sits in the header or a top bar on every page.
- Sticky call to action
- A call, quote or book button stays fixed on screen while the page scrolls.
- Quote form
- A quote or enquiry form on the home page, or one click away behind a visible link.
- Online booking
- A booking or scheduling widget, or a book online flow.
- Live chat
- A chat bubble is visible, or the page loads a chat script.
- Reviews widget
- An embedded third-party review feed, such as Google, Trustpilot, Checkatrade or Yelp.
- Review count
- A number of reviews, or an aggregate rating with a count, printed on the page.
- Accreditation badges
- Legible trade body or scheme logos: Gas Safe, NICEIC, FMB, TrustMark, BBB, Angi and the like.
- Licence number
- An actual licence, registration or company number printed on the page.
- Before and after
- Paired before and after photos of the firm's own work.
- Project gallery
- A gallery or grid of the firm's own jobs, three or more images.
- Service area map
- A map or list of the towns and postcodes covered.
- Team photos
- Photos of the actual staff, named or not.
- Van photo
- The firm's own liveried van or truck in a photo.
- Prices shown
- Prices, call-out fees or price ranges printed on the page.
- Emergency line
- A 24-hour or emergency number called out separately from the main number.
Features
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Click to call | 114 | 97% | |
| Phone in header | 104 | 89% | |
| Quote form | 64 | 55% | |
| Review count | 62 | 53% | |
| Accreditation badges | 60 | 51% | |
| Service area map | 55 | 47% | |
| Licence number | 51 | 44% | |
| Team photos | 49 | 42% | |
| Van photo | 48 | 41% | |
| Project gallery | 40 | 34% | |
| Online booking | 35 | 30% | |
| Reviews widget | 35 | 30% | |
| Emergency line | 31 | 26% | |
| Live chat | 19 | 16% | |
| Prices shown | 19 | 16% | |
| Sticky call to action | 10 | 9% | |
| Before and after | 5 | 4% |
Features by region
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Click to call | 34 | 97% | |
| Phone in header | 31 | 89% | |
| Quote form | 22 | 63% | |
| Review count | 22 | 63% | |
| Accreditation badges | 21 | 60% | |
| Service area map | 21 | 60% | |
| Team photos | 15 | 43% | |
| Project gallery | 13 | 37% | |
| Licence number | 12 | 34% | |
| Van photo | 12 | 34% | |
| Reviews widget | 10 | 29% | |
| Prices shown | 8 | 23% | |
| Emergency line | 7 | 20% | |
| Live chat | 6 | 17% | |
| Sticky call to action | 5 | 14% | |
| Online booking | 4 | 11% |
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Click to call | 80 | 98% | |
| Phone in header | 73 | 89% | |
| Quote form | 42 | 51% | |
| Review count | 40 | 49% | |
| Accreditation badges | 39 | 48% | |
| Licence number | 39 | 48% | |
| Van photo | 36 | 44% | |
| Service area map | 34 | 41% | |
| Team photos | 34 | 41% | |
| Online booking | 31 | 38% | |
| Project gallery | 27 | 33% | |
| Reviews widget | 25 | 30% | |
| Emergency line | 24 | 29% | |
| Live chat | 13 | 16% | |
| Prices shown | 11 | 13% | |
| Before and after | 5 | 6% | |
| Sticky call to action | 5 | 6% |
Features by trade
Trades with 10 or more published entries. The others are in the overall table but have too few sites for a table of their own.
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Click to call | 21 | 100% | |
| Phone in header | 21 | 100% | |
| Van photo | 16 | 76% | |
| Online booking | 13 | 62% | |
| Quote form | 12 | 57% | |
| Review count | 12 | 57% | |
| Reviews widget | 10 | 48% | |
| Team photos | 10 | 48% | |
| Accreditation badges | 9 | 43% | |
| Licence number | 9 | 43% | |
| Emergency line | 8 | 38% | |
| Service area map | 7 | 33% | |
| Live chat | 5 | 24% | |
| Prices shown | 3 | 14% | |
| Sticky call to action | 3 | 14% | |
| Project gallery | 2 | 10% |
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Click to call | 15 | 94% | |
| Phone in header | 13 | 81% | |
| Accreditation badges | 11 | 69% | |
| Licence number | 10 | 63% | |
| Service area map | 10 | 63% | |
| Review count | 9 | 56% | |
| Team photos | 9 | 56% | |
| Van photo | 8 | 50% | |
| Emergency line | 6 | 38% | |
| Online booking | 6 | 38% | |
| Prices shown | 4 | 25% | |
| Quote form | 4 | 25% | |
| Reviews widget | 4 | 25% | |
| Project gallery | 3 | 19% | |
| Live chat | 1 | 6% |
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Click to call | 13 | 100% | |
| Phone in header | 12 | 92% | |
| Quote form | 12 | 92% | |
| Project gallery | 10 | 77% | |
| Review count | 7 | 54% | |
| Service area map | 7 | 54% | |
| Accreditation badges | 6 | 46% | |
| Licence number | 6 | 46% | |
| Reviews widget | 3 | 23% | |
| Team photos | 3 | 23% | |
| Van photo | 3 | 23% | |
| Emergency line | 2 | 15% | |
| Live chat | 2 | 15% | |
| Before and after | 1 | 8% | |
| Sticky call to action | 1 | 8% |
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Click to call | 10 | 91% | |
| Phone in header | 7 | 64% | |
| Project gallery | 7 | 64% | |
| Accreditation badges | 6 | 55% | |
| Licence number | 6 | 55% | |
| Review count | 5 | 45% | |
| Quote form | 4 | 36% | |
| Reviews widget | 3 | 27% | |
| Service area map | 3 | 27% | |
| Live chat | 2 | 18% | |
| Before and after | 1 | 9% | |
| Sticky call to action | 1 | 9% | |
| Team photos | 1 | 9% |
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Click to call | 25 | 100% | |
| Phone in header | 23 | 92% | |
| Licence number | 16 | 64% | |
| Van photo | 16 | 64% | |
| Accreditation badges | 15 | 60% | |
| Team photos | 13 | 52% | |
| Quote form | 12 | 48% | |
| Review count | 12 | 48% | |
| Service area map | 12 | 48% | |
| Online booking | 11 | 44% | |
| Emergency line | 10 | 40% | |
| Prices shown | 7 | 28% | |
| Live chat | 5 | 20% | |
| Reviews widget | 5 | 20% | |
| Project gallery | 3 | 12% | |
| Sticky call to action | 2 | 8% |
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Click to call | 14 | 100% | |
| Phone in header | 12 | 86% | |
| Project gallery | 11 | 79% | |
| Quote form | 10 | 71% | |
| Service area map | 5 | 36% | |
| Accreditation badges | 4 | 29% | |
| Review count | 4 | 29% | |
| Reviews widget | 4 | 29% | |
| Team photos | 4 | 29% | |
| Online booking | 2 | 14% | |
| Before and after | 1 | 7% |
| Feature | Count | Share | Proportion |
|---|---|---|---|
| Phone in header | 12 | 100% | |
| Click to call | 11 | 92% | |
| Accreditation badges | 8 | 67% | |
| Review count | 8 | 67% | |
| Service area map | 7 | 58% | |
| Quote form | 6 | 50% | |
| Team photos | 6 | 50% | |
| Emergency line | 5 | 42% | |
| Reviews widget | 5 | 42% | |
| Van photo | 4 | 33% | |
| Licence number | 3 | 25% | |
| Live chat | 3 | 25% | |
| Prices shown | 3 | 25% | |
| Online booking | 2 | 17% | |
| Before and after | 1 | 8% | |
| Project gallery | 1 | 8% | |
| Sticky call to action | 1 | 8% |
Platforms
8 of the 117 sites gave nothing to read a platform from and are left out of the shares below, which are of the 109 with a known platform. "Custom" means a bespoke build with no known platform behind it.
| Platform | Count | Share | Proportion |
|---|---|---|---|
| WordPress | 70 | 64% | |
| Custom | 14 | 13% | |
| Astro | 10 | 9% | |
| Wix | 6 | 6% | |
| Webflow | 4 | 4% | |
| Squarespace | 3 | 3% | |
| Duda | 1 | 1% | |
| Framer | 1 | 1% |
| Platform | Count | Share | Proportion |
|---|---|---|---|
| WordPress | 20 | 61% | |
| Astro | 8 | 24% | |
| Custom | 5 | 15% |
| Platform | Count | Share | Proportion |
|---|---|---|---|
| WordPress | 50 | 66% | |
| Custom | 9 | 12% | |
| Wix | 6 | 8% | |
| Webflow | 4 | 5% | |
| Squarespace | 3 | 4% | |
| Astro | 2 | 3% | |
| Duda | 1 | 1% | |
| Framer | 1 | 1% |
Styles and colours
An entry carries one to three style tags and one to three colour tags, so the counts in each table add up to more than the sample.
| Style | Count | Share | Proportion |
|---|---|---|---|
| Photographic | 64 | 55% | |
| Bold | 60 | 51% | |
| Corporate | 42 | 36% | |
| Dark | 17 | 15% | |
| Friendly | 17 | 15% | |
| Minimal | 11 | 9% | |
| Colourful | 9 | 8% | |
| Illustrated | 7 | 6% | |
| Typographic | 3 | 3% | |
| Traditional | 1 | 1% |
| Colour | Count | Share | Proportion |
|---|---|---|---|
| White | 107 | 91% | |
| Blue | 43 | 37% | |
| Red | 32 | 27% | |
| Green | 31 | 26% | |
| Yellow | 31 | 26% | |
| Black | 30 | 26% | |
| Navy | 30 | 26% | |
| Orange | 18 | 15% | |
| Grey | 6 | 5% | |
| Teal | 5 | 4% | |
| Beige | 3 | 3% | |
| Purple | 3 | 3% | |
| Brown | 2 | 2% | |
| Pink | 1 | 1% |
Overlaps
How often one tag appears alongside another in this sample. These describe the sample; they do not say that one thing leads to the other.
- Of the 62 sites that print a review count, 28 (45%) also embed a third-party reviews widget.
- Of the 35 sites with online booking, 34 (97%) still keep a phone number in the header.
- Of the 60 sites showing accreditation badges, 32 (53%) also print a licence or registration number.
- Of the 10 sites with a sticky call to action, 9 (90%) make the phone number a tap-to-call link.
Limitations
- Selection: the sites were chosen by one editor for being well built, so the sample describes his picks, not trade websites in general.
- Desktop only: every capture is a 1,440 pixel desktop view. Nothing here describes how a site behaves on a phone.
- Regions: 82 US sites to 35 UK sites, so the UK percentages rest on a small group.
- One reader: tags were set by one drafter and approved by one editor. No second reader checked them.
- Platform is inferred from page hints, not confirmed with the builder, and 8 sites have none.
- Tags record presence, not quality: a quote form that asks three good questions and one that asks twenty count the same.
Questions about these numbers
Where do the numbers come from?
From the tags on the 117 published entries. Each tag was set by hand from the entry's full-page screenshot and the page hints recorded at capture, then approved before publication. The page counts those tags every time the site is built; nothing is typed in or estimated.
Why do some rows say n/a instead of a percentage?
A percentage of fewer than 10 sites would read as more precise than it is, so groups under that size show the count alone. The by-trade tables leave out any trade under 10 entries altogether.
How often do the figures change?
Whenever an entry is published and the site is rebuilt. The computation date and the newest entry's date are printed under The sample, and the JSON file carries both, so a quoted figure can always be tied to a day.
Why are there more US sites than UK sites?
Because that is what the editor has published so far: 82 US sites and 35 UK sites on the day this was computed. The two regions are tabulated separately so a reader can compare them without the larger group swamping the smaller.
If a site has no tag for something, does it lack it?
Not necessarily. A tag is set only when the thing is visible in the desktop capture or named in the page hints. A feature that sits on an inner page, or appears only on a phone, is not counted, so every figure here is a floor.
Why is platform "unknown" left out of the platform shares?
A site whose platform could not be read from the page would otherwise be counted against every real platform and pull their shares down. It is reported as its own count instead: 8 of 117 at the last build.
Are the editor's own builds included?
Yes. 5 of the 117 sites were built by the editor's own agency. They are labelled as such on their entries and counted like any other site.
Can I quote or reuse these figures?
Yes, with attribution to Handsome Local and a link to this page. The counts are published as JSON below. The screenshots belong to the businesses shown and are not part of the dataset.
The data
The counts on this page are at /research/trade-website-features.json with the computation date, the data cut and the definitions, and are rebuilt whenever an entry is published. They may be quoted with attribution to Handsome Local and a link to this page. The screenshots belong to the businesses shown and are not part of the dataset.