The Trades and SMB Website Playbook: Speed, Trust, and the Phone Call
HVAC and trades sites convert on speed, fold-level proof, and a tap-to-call path that works on a job-site phone — not brand cinema or chat widget walls.
William Spurlock Founder — Spurlock Studios Updated 24 MIN
Local service buyers are not browsing for brand cinema. They are deciding who to call while a system is down, a pipe is leaking, or a quote window is closing. The craft standard from Websites That Feel Like Films still applies — authored type, real photography, no template sludge — but conversion mechanics shift hard toward speed, trust, and the phone call. This is the trades and SMB playbook.
I have shipped hundreds of production sites and have been SEO certified since 2021. The shops that waste the first check commission a parallax hero while the header hides the number. The shops that get this right treat the site as a phone-first proof surface that matches the truck, the license, and the Google listing.
The short answer
- Primary conversion is a call or a short quote form. Secondary is directions, review clicks, or a financing application that is real.
- The first viewport answers what you do, where you do it, why you are safe to hire, and how to reach you now.
- Speed is a conversion feature. web.dev’s LCP guidance sets a good experience at 2.5 seconds or less at the 75th percentile.
- Trust belongs near the fold: service area, license, reviews, real crew or job photos. Stock handshakes do not close a furnace replace.
- Keep name, address, phone, and hours identical to Google Business Profile. Sequence the listing and the site in Google Business vs website.
What does convert mean on an HVAC site?
A converting HVAC site gets a call or a complete quote request from someone who already has a problem. It is not a brand film. It is not a “Learn more” funnel. If the homepage treats education as the hero job, you are optimizing for the wrong visitor.
| Conversion | What it is | What it is not |
|---|---|---|
| Primary | tel: tap or a four-field quote form | A 12-field “get started” wizard |
| Secondary | Directions, review profile click, financing apply | Newsletter signup as the fold CTA |
| Proof | Named review, license, real job photo | Five-star sprite wall with no context |
| Speed | First useful paint + an unblocked call button | A 12-second cinema reel before the number |
| Trust | Area, hours, insurance, what happens after they call | “Quality craftsmanship” with no receipt |
Measure what the shop can act on:
- Calls from the site (call tracking on the site if budget allows — keep the Google listing number under the business’s control)
- Quote form completes, and which service page they came from
- Time to first call click on mobile
- Bounce on service pages that should be money pages
If you cannot see calls, you are decorating. If you can see calls and they still do not happen, the fold is usually the fault: hidden number, slow LCP, or proof that shows up after the visitor already left.
Call tracking belongs on the site, not as a swap of the Google listing number. Representation guidelines want a number under the business’s direct control and reject numbers that redirect callers away from the shop. A tracking pool on the website can still tell you which service page earned the tap. A tracking swap on the map card can look like a call-center hop.
| Number | Put it | Do not |
|---|---|---|
| Listing / GBP | The number the shop answers | A vendor DNI swap Google may treat as a redirect |
Site header tel: | Same shop number, or a site-only tracker you answer | A dead hop with a voicemail you do not monitor |
| Ads landing pages | Campaign-specific if someone is on the line | Five numbers, none of them staffed |
Why is HVAC the template for other trades?
HVAC is a useful archetype because the stakes are urgent and the skepticism is high. The buyer is often on a phone, in a hot or cold house, comparing two or three names from Maps. The same skeleton works for plumbing, electrical, roofing, pest, cleaning, and many home services. Swap the urgency copy and the proof types. Keep the phone path sacred.
| Trade | Urgency copy | Proof that lands | Do not lead with |
|---|---|---|---|
| HVAC | Emergency vs scheduled, heat/cool failure | License, real installs, membership only if current | Lifestyle family in a perfect living room |
| Plumbing | Leak vs remodel | Before/after wet work, response language you can keep | Stock wrench-on-white |
| Electrical | Safety and permit language | Licensed electrician, panel work photos | Abstract “power” icon grids |
| Roofing | Storm vs replace | Aerials of real roofs, manufacturer certifications you still hold | Fake 24-hour claims |
| Pest / cleaning | Recurring vs one-time | Service schedule, staff faces when privacy allows | Cartoon bugs as the brand |
A converting HVAC (or cousin) site usually includes:
- Click-to-call in the header and sticky on mobile
- Service area in plain language — cities and counties, not only a radius blob
- Emergency vs scheduled paths labeled so nobody mis-taps
- License, insurance, and review proof near the fold — not buried in footer legalese
- Financing or membership notes only if they are real and current
- Photos of real crews and real jobs when you have them; skip stock handshakes
Cinema-grade here means intentional composition and trust. It does not mean a parallax hero of smiling families while the number is a 12-pixel footer link.
What belongs on a service business website checklist?
Use this as a build and audit list. If a row fails, fix it before you buy another plugin.
Trust
- NAP (name, address, phone) matches Google Business Profile character-for-character where it matters — Street vs St is a real mismatch
- Review score and count with an outbound to the profile you actually want
- License numbers where customers and inspectors expect them
- Years in market only if true; do not invent heritage
- Real project photos; before/after when the work shows
- Staff faces beat anonymous vans when privacy allows
Offer clarity
- Core services as plain pages, not a 40-item footer soup
- “Serves [areas]” visible early
- Hours and after-hours policy that match dispatch
- What happens after they call (window, quote process, who shows up)
Speed
- Mobile LCP that does not embarrass you on LTE
- Compressed job photos — not 4MB hero PNGs
- Minimal third-party chat until the basics convert
- Fonts limited; a system stack is acceptable when brand allows
Friction
- Forms ask for name, phone, service needed, optional photo — not a life story
- Click-to-text only if ops can answer texts
- No maze of service funnels that hide the number
Google’s own local ranking tips say local results are mainly based on relevance, distance, and popularity, and that prominence includes reviews and sites that link to the business. A prettier homepage does not buy a better pin. A complete, accurate listing plus a site that tells the same story does the unglamorous work.
What should the homepage fold do?
The first viewport should answer four questions without a scroll: what you do, where you do it, why you are safe to hire, and how to reach you now.
| Fold element | Job | Failure |
|---|---|---|
| Business name as a clear mark | Recognition | Tiny logo, huge stock photo |
| One-line service promise | “AC repair and install across the Valley” | Keyword essay |
| Primary CTA | Call now (tel: link) | Learn more |
| Secondary CTA | Request service (short form anchor) | Second phone-looking button that is a chat |
| Trust row | Rating + years + license teaser | Six service icons |
| Photo | Real truck, crew, or job | Handshake stock or a nightclub mechanical room |
Do not fill the fold with six service icons. Icons do not make calls. Motion should be subtle, fast, and optional. Never delay the phone number for a reel.
A working order:
- Lock the number in the header as a real
tel:link — RFC 3966 is thetel:URI. Use the number people should dial, not a dead tracking hop you cannot answer. - Write the one-line promise in customer language, not internal SKUs.
- Place a sticky call control on mobile that stays tappable while they skim proof.
- Put one real photo in the fold. Compress it. Do not lazy-load the LCP image.
- Only then add a short form anchor. The form is the backup for people who will not talk yet.
If you need cinema-grade composition, borrow the craft from the lane pillar and strip anything that delays the number. Urgency is the design constraint.
How should a service page be structured?
Each core service page should rank for how people speak and still sell the call. “AC repair in Mesa” beats an internal jargon H1. Doorway factories of city+service with identical copy are a different product — they are spam risk, not a playbook.
| Block | What to write | What to skip |
|---|---|---|
| H1 | Customer language + area when it is true | “Residential Solutions™” |
| Opener | Confirm they are in the right place in two sentences | A history of the company |
| Symptoms | Situations you actually handle | A 40-item symptom dump you do not service |
| Process | Inspect → quote → work → warranty | Fake same-day guarantees |
| Proof | Reviews, photos, guarantees that are real | Purchased star walls |
| FAQ | Three questions that page’s buyer asks | Sitewide FAQ pasted on every URL |
| CTA | Call / request, repeated | A buried “contact us” text link |
Procedure I use on a service template:
- H1 that matches the query a homeowner would type.
- Short opener that names the service and the area.
- Symptoms / situations you handle.
- Process in four steps the dispatcher can defend.
- Proof: one named review, one job photo, one real guarantee.
- FAQ specific to that service.
- Repeat the call / request CTA. Do not make them hunt.
Internal links between related services help humans and search. A furnace page that cannot reach AC repair is a dead end in July. Avoid doorway-page factories — Google’s spam policies call out pages created to rank for similar queries and funnel people to an intermediate destination. Ten honest service pages beat sixty clones.
How fast does the site need to be on a job-site phone?
Fast enough that the call button is usable before the visitor rage-taps back to Maps. That is not a vibe. Core Web Vitals treat LCP as the load metric: 2.5 seconds or less for a good experience, measured at the 75th percentile across mobile and desktop. How those thresholds were set is explicit that mobile is the harder, more relevant bar for most sites.
| Metric | Good (p75) | Why a trades site cares |
|---|---|---|
| LCP | ≤ 2.5s | The fold photo or headline is usually the LCP element |
| INP | ≤ 200ms | The call button must respond on a mid-range Android |
| CLS | ≤ 0.1 | A chat widget shoving the number is a missed tap |
Optimize LCP is the practical list: make the LCP resource discoverable in the HTML, do not lazy-load the hero, and give the image fetchpriority="high" when the photo is the LCP element. A 4MB PNG of a truck is not “premium.” It is a conversion tax on LTE.
Speed checklist that actually moves HVAC pages:
- Hero image is compressed, correctly sized, and in the first HTML response
- No autoplaying background video on the homepage
- Chat, heatmaps, and three tag managers wait until the number works
- Web fonts are two files or fewer, or you use the system stack
- Third-party booking iframes are not the LCP element
- You check PageSpeed Insights on a real service URL, not only localhost
If a vendor promises “qualification” in exchange for a 400ms hit and a popup over the number, the vendor is the customer. You are the inventory.
Photo procedure I use before a trades homepage ships:
- Pick one honest job or truck still for the fold. No collage.
- Export a modern format at the display width. Kill the 4MB PNG.
- Put the
srcin the first HTML response. Do not lazy-load it. - Add
fetchpriority="high"when that image is the LCP element (optimize LCP). - Recheck on a phone, not office Wi-Fi. If LCP misses 2.5s at p75, cut the image before you cut the number.
How do you show reviews without looking desperate?
Pull a few specific quotes with names and contexts — “furnace replace in July heat” — rather than a wall of five-star sprites. Link to the full profile. If you have fewer reviews than competitors, improve ops and ask for reviews. Do not fake them.
The FTC’s Consumer Reviews and Testimonials Rule took effect October 21, 2024. It prohibits fake or false reviews, buying reviews you knew or should have known were false, incentives conditioned on a particular sentiment, and insider reviews without disclosure. This is not a design preference. Fake social proof is a business risk.
| Review move | Do | Do not |
|---|---|---|
| On-site quotes | Three specific, named, dated-enough | Fifty anonymous stars |
| Link-out | The profile you want them to read | A screenshot you will not update |
| Staff mentions | Disclose if an employee or family wrote it | Plant five-stars from the office |
| Incentives | Ask after a good job, no rating required | “Five stars and get $20” |
| Suppression | Answer the bad one in public when you can | Delete negatives and keep only praise |
Google also treats review volume and ratings as part of prominence on the listing (local ranking tips). The site should echo that proof, not invent a second score. If the website says 4.9 and the profile says 4.2, the buyer believes the profile and distrusts you.
How should the site and Google Business Profile stay aligned?
The site does not replace the listing. The listing does not replace the site. They are two surfaces for the same shop. Sequence and NAP rules live in Google Business vs website. This playbook assumes you are building the owned surface.
Google’s guidelines for representing your business are strict on service-area businesses: one profile for the central office with a designated service area, no virtual office unless it is staffed during hours, and a phone number under the business’s direct control. Use a local number rather than a call-center hop when you can. Do not put a redirect URL or a social profile in the website field.
| Field | Site | GBP | Break if they differ |
|---|---|---|---|
| Name | Legal / trading name | Same, no keyword stuffing | “Joe’s Plumbing 24/7 Emergency Near You” on the listing |
| Address | Real office or honest SAB treatment | Same | A coworking mailbox you do not staff |
| Phone | tel: on the fold | Number the business controls | A tracking number Google treats as a redirect |
| Hours | After-hours policy in copy | Hours fields | Site says 24/7, listing says 8–5 |
| Services | Real service pages | Categories + services | Pages for work you do not take |
| Area | Cities / counties in prose | Service-area settings | Statewide claims you cannot cover |
LocalBusiness structured data belongs on the site. Google asks you to use the most specific subtype you can. For HVAC that is often HVACBusiness on schema.org. Match name, address, telephone, and hours to the listing. Schema is a confirmation packet, not a ranking cheat code.
- Homepage NAP matches the listing
-
tel:uses the number you can answer - Hours and holiday exceptions get updated the same week on both surfaces
- Service-area copy does not claim zip codes the trucks do not run
- JSON-LD type is specific (
HVACBusiness,Plumber,Electrician) not a vagueOrganizationonly
If cash is tight, fix the listing first. Then make the site the owned close. Do not spend the first check on a cinema homepage while the map card still has the wrong category.
How many area pages should you actually build?
As many as you can make genuinely distinct and maintain. Ten honest pages beat sixty spun ones. Service-area pages help when they carry local proof, local photos, and local FAQs. They hurt when they are a city name swapped into identical copy.
Google’s doorway language is the constraint: pages created primarily to rank for similar queries, or multiple city URLs that funnel everyone to one generic destination, are the pattern they call out in spam policies. Representation guidelines also say a service area should not casually stretch farther than about two hours of driving from where the business is based, with room for some businesses to be larger when that is real (representing your business).
| Area-page test | Pass | Fail |
|---|---|---|
| You actually dispatch there | Named cities you run weekly | A state map you color in |
| Unique proof | A job photo, a review, a crew note from that area | “We proudly serve [City]” × 60 |
| Unique questions | Local permit, climate, or housing stock | The same three FAQs with the city token changed |
| Maintenance owner | Office manager can update it | Only a developer can touch it |
| Internal links | Related services and a parent area hub | Orphan URLs that exist only for search |
Procedure:
- List cities you can name from memory because you work them.
- Write pages only for that set, plus a parent “areas we serve” hub.
- Put one local receipt on each page — photo, review, or a permit note.
- Refuse the SEO vendor’s 80-city package unless you can staff the copy.
- Revisit quarterly. Drop pages for areas you no longer cover.
Blog content helps when it answers real customer questions — “why is my AC freezing up” — and routes to contact. It fails when it is keyword slurry nobody on staff can update. Write fewer posts you can defend in August heat.
When does Webflow beat a custom stack for a shop?
Webflow is often a fit when the owner or office manager will edit seasonal offers, service blurbs, and a handful of local posts without calling a developer. Keep collections simple: Services, Areas, Testimonials, Projects. Lock layout. Teach one editing path.
Custom Astro or other static builds win when performance is non-negotiable and content changes are rare. WordPress can work with discipline and is often already in place — the playbook matters more than the logo on the CMS. Theme forests full of demo pages you never delete destroy trust and SEO. Orphan “Home 02” templates are a tell that nobody owns the site.
| Stack | Use when | Skip when |
|---|---|---|
| Webflow | Office staff must edit offers and service copy safely | You need a plugin zoo more than a locked design |
| Custom static | Few edits, hard LCP budget, you have a maintainer | Every coupon needs an engineer |
| WordPress (existing) | The shop already lives there and you can strip it | You are installing a new theme to “look modern” |
| Page-builder soup | Almost never for a money site | You want five CTAs and a popup on load |
CMS rules that keep a trades site honest:
- Services, areas, testimonials, and projects are collections — not twelve duplicate page templates
- Seasonal banners have start and end dates
- The phone number is a single source, not hardcoded in five symbols
- Demo pages, lorem, and “Home 02” are deleted before launch
- One person on staff can change hours without a deploy
If the office manager is afraid to touch the CMS, you did not ship a site. You shipped a poster.
What breaks when the site promises what the shop cannot do?
If the site says 24/7 and the phone rolls to voicemail until morning, you paid to advertise broken trust. That is the failure mode. Angry overnight callers leave one-star reviews on the listing you spent years building. The website did not “convert.” It created a complaint.
| Promise | Required ops | If ops cannot do it |
|---|---|---|
| 24/7 emergency | On-call rotation that answers | Say the hours you actually cover |
| Same-day service | Real slack in the board | “Same-day when the board allows” |
| Free estimates | A rule for what “free” includes | Price the diagnostic |
| Membership perks | A live plan, not last year’s flyer | Take the module down this week |
| Financing | Live terms, current partner | Remove the badge |
Align copy with dispatch reality. If membership plans changed, update the site the same week. Stale financing logos are a conversion tax. Expired “book by Friday” banners in July train people to ignore you.
Common rebuild triggers I see on trades sites:
- Rankings exist but calls do not — usually CTA and mobile issues
- Chat widget chaos and popups fighting the number
- Five CTAs, none of them Call
- Homepage essay about “quality craftsmanship” with no proof
- Service pages thinner than the Google Business description
- Hours, phone, or area that disagree with the listing
Fix the promise first. Then fix the fold. Then fix speed. A redesign that keeps the lie is a more expensive lie.
Anti-patterns I delete on sight:
- Chat plus cookie plus promo stacked over the sticky call bar
- “24/7” in the hero and 8–5 on the listing
- A financing logo that 404s
- Service pages thinner than the Google Business description
- Demo “Home 02” still in the nav
- A Learn more hero on an emergency trade
How do you handle emergency, after-hours, and seasonal offers?
If you offer emergency service, say response expectations carefully. “Call anytime” with no on-call reality creates overnight anger. If emergency is limited, say when it applies. Design the emergency CTA so it is visually distinct from scheduled maintenance. A mis-tap at 2 a.m. is an ops problem you bought in Figma.
| Path | Label | Visual | Copy constraint |
|---|---|---|---|
| Emergency | Call for emergency service | High contrast, large target | Only if someone answers |
| Scheduled | Request service / book a visit | Secondary, still obvious | Form or call, not both fighting |
| After-hours | What happens if you call now | Plain sentence near the number | Voicemail vs on-call vs next morning |
| Seasonal | Tune-up / membership window | Dated module, kill date in the CMS | No expired urgency |
Seasonal campaigns are real revenue — spring AC tune-ups, fall furnace checks. Build them as CMS items with start and end dates, not one-off designer deploys that leave a July banner up in January. Expired urgency is worse than no banner.
Competing with national lead-selling marketplaces is a separate pressure. Your site should be the owned alternative: clearer proof, a local face, a direct call. Do not bury the phone because a chat vendor promised qualification. Qualification that steals the number from the fold usually benefits the vendor.
Financing badges and warranty seals can help on high-ticket work (full system replace) when they are current and clickable to real terms. A graveyard of expired partner logos signals neglect. Place financing near the quote CTA, not as a neon sticker on every paragraph. If the warranty is the differentiator, give it a short dedicated section. A tiny footer icon does not carry that story.
Who is the site for besides a designer’s laptop?
Trades customers include older homeowners, people on cheap Androids, and people standing in a driveway with dirty hands. Type should be readable. Contrast should hold. Tap targets should be large. Fancy thin gray text on a misty photo fails this audience even when it looks “premium” in a Dribbble shot.
WCAG 2.2 contrast (minimum) is 4.5:1 for normal text. Target Size (Minimum) is 24 by 24 CSS pixels at Level AA, and the Understanding doc still points at the stricter 44-pixel enhanced target for important controls. A call button is an important control. Make it bigger than the spec floor.
| A11y check | Bar | Trades failure |
|---|---|---|
| Text contrast | 4.5:1 | White type on a pale sky photo |
| Call target | Well above 24px; aim closer to 44px | A text-link phone in the footer |
| Sticky bar | Does not cover the form submit | Chat + cookie + call stacked |
| Zoom | Layout holds at 200% | Fixed hero that clips the number |
| Language | Plain, short sentences | “Synergy” and fake folksiness |
Photo direction that sells skilled trades: wide shots of completed installs, detail shots of clean workmanship, crew shots that feel human. Avoid helmet-on-white stock. Avoid glamour lighting that makes a mechanical room look like a club. Natural, sharp, honest photography outperforms fake polish for this buyer. If budget allows one professional shoot per year, prioritize it over another plugin.
Copy voice: write like a competent human who respects the customer’s time. Short sentences. Concrete promises. “Same-day diagnostics when the board allows” is better than “We smash the heat.” Clarity converts. Hype creates chargebacks and bad reviews when the truck arrives.
What does a sprint lock, and what do you maintain after launch?
A Spurlock Studios sprint for SMB and trades typically locks: phone-first header, fold trust, core service templates, area strategy, form and call analytics, and a performance pass. Full rebuilds come when the CMS or IA is beyond saving. Explore /websites when you want that scope written against a real shop, not a theme demo.
| Sprint lock | Done means | Not done means |
|---|---|---|
| Phone-first chrome | Header + sticky tel: on mobile | Number only in the footer |
| Fold trust | Area, proof, real photo | Icon row and a stock hero |
| Service templates | Core money pages on one pattern | A unique snowflake per service |
| Area strategy | Honest hub + few real pages | 60 spun cities |
| Analytics | Calls and forms visible | Vanity pageviews only |
| Performance | LCP in range on a phone | “It felt fine on office Wi-Fi” |
A trades site needs oil changes after launch: update hours, remove expired promos, add new crew photos, refresh offers, check call tracking, confirm forms still email the right inbox. Budget a small monthly maintenance path. A perfect launch that rots for eighteen months becomes a liability.
Maintenance checklist:
- Hours and holiday exceptions match the listing
- Seasonal modules have end dates and someone assigned to kill them
- New crew or truck photos replace the two-year-old set
- Form destination still hits a monitored inbox
- Call tracking on the site still rings a human
- Financing and warranty links still resolve
- No new chat vendor snuck onto the fold
For the wider brand-site philosophy these SMB rules specialize, return to Websites That Feel Like Films. Cinema is the craft. The phone is the job.
FAQ
What makes an HVAC website convert?
A visible phone path, a clear service area, trust proof near the fold, a fast mobile load, and a short quote form. Emergency versus scheduled should be obvious so nobody mis-taps at 2 a.m. Pretty stock photos without a number do not convert, and a cinema reel that delays the call button is the wrong craft for this buyer.
What belongs on a service business website checklist?
Trust signals, offer clarity, speed, low-friction contact, NAP consistency with Google Business Profile, real photos, and analytics on calls and forms. Delete demo pages and conflicting CTAs. Keep hours, phone, and services identical on the listing and the site, then measure time-to-call on a phone.
Should trades businesses use Webflow?
Webflow is strong when a non-developer must edit services, seasonal offers, and a few local posts without breaking the layout. Keep the CMS strict: Services, Areas, Testimonials, Projects. If content barely changes and the LCP budget is tight, a lean custom stack can win — the playbook matters more than the CMS logo.
How many location pages should we create?
As many as you can make genuinely distinct and maintain. Ten honest pages beat sixty spun ones. Tie each page to real dispatch coverage and unique proof. Google’s doorway rules are aimed at city URLs that exist to rank and funnel, not at a short set of areas you actually work.
Do we need online booking?
Only if ops can honor the calendar. A clean call CTA plus a four-field form often outperforms a booking tool nobody monitors. Add booking when technicians, SLAs, and same-day rules are real. A public calendar that double-books is worse than a phone number.
How much should a trades site cost?
Enough to cover strategy, mobile conversion, and maintenance — not just a theme install. Underfunded sites get expensive in missed calls and stale promises. Scope the phone path, fold proof, and service templates first. Decorate second. A sprint that locks those pieces beats a five-figure film that hides the number.
CTA
Phone-first, proof-first, fast enough for a job-site phone. If that is the site you need, start at /websites or book a sprint at /contact?intent=websites-sprint.
What questions does this article answer?
- What makes an HVAC website convert?
- A visible phone path, a clear service area, trust proof near the fold, a fast mobile load, and a short quote form. Emergency versus scheduled should be obvious so nobody mis-taps at 2 a.m. Pretty stock photos without a number do not convert, and a cinema reel that delays the call button is the wrong craft for this buyer.
- What belongs on a service business website checklist?
- Trust signals, offer clarity, speed, low-friction contact, NAP consistency with Google Business Profile, real photos, and analytics on calls and forms. Delete demo pages and conflicting CTAs. Keep hours, phone, and services identical on the listing and the site, then measure time-to-call on a phone.
- Should trades businesses use Webflow?
- [Webflow](https://webflow.com) is strong when a non-developer must edit services, seasonal offers, and a few local posts without breaking the layout. Keep the CMS strict: Services, Areas, Testimonials, Projects. If content barely changes and the LCP budget is tight, a lean custom stack can win — the playbook matters more than the CMS logo.
- How many location pages should we create?
- As many as you can make genuinely distinct and maintain. Ten honest pages beat sixty spun ones. Tie each page to real dispatch coverage and unique proof. Google’s doorway rules are aimed at city URLs that exist to rank and funnel, not at a short set of areas you actually work.
- Do we need online booking?
- Only if ops can honor the calendar. A clean call CTA plus a four-field form often outperforms a booking tool nobody monitors. Add booking when technicians, SLAs, and same-day rules are real. A public calendar that double-books is worse than a phone number.
- How much should a trades site cost?
- Enough to cover strategy, mobile conversion, and maintenance — not just a theme install. Underfunded sites get expensive in missed calls and stale promises. Scope the phone path, fold proof, and service templates first. Decorate second. A sprint that locks those pieces beats a five-figure film that hides the number.
Last reviewed — web.dev LCP and Core Web Vitals; Google Business Profile local ranking and representation guidelines; Search Central LocalBusiness schema and spam/doorway policy; FTC Consumer Reviews and Testimonials Rule; WCAG 2.2 target size and contrast; schema.org HVACBusiness. Checked 2026-08-16.
Websites
Websites Linktree is a leak — build the house
Spotify does not send you the fan’s email. Instagram rents the following. Linktree is a hallway with no register. The House is the owned room: site, membership, checkout, follow-up.
Websites A media kit the brand can steal in sixty seconds
Influencers need a brand-safe /media or /kit with rates and demographics you can stand behind — not a Google Doc with dead links. This is not a booker EPK.
Websites Creator Site or Business Site for the house?
Creator Site ($3,500) is tour, listen, join, buy. Business Site ($8,000) is the register. Pick after the $1,500 sprint — not before you have seen the house.
Websites Discord is unpaid labor — put a register on the house
Keep Discord if the room lives there. The house is the owned URL, checkout, and join path so the community collects money instead of leaking attention.
Will's Journal in your inbox.
What I learned this week building for shops, floors, and houses.
You're on the list.
Sign-up failed — try again.
By subscribing, you agree to the Privacy Policy.