image

SEO & Conversion Agency For Paving And Siding: A Case Study

Learn how a paving and siding contractor boosted leads 104% and booked jobs 116% with a combined Local SEO and CRO strategy. Includes a vetting standard for agencies.

Author

SUNSTONE LOGOS 11

Marc Hickson

CEO & Founder

Most paving and siding owners who go looking for an agency find two kinds of vendors: SEO shops that report rankings and traffic, and web designers who talk about conversion but never touch Google Maps. The job needs both. A top-three map listing that sends visitors to a seven-field form with a buried phone number still loses the estimate to the contractor one slot below.

This case study walks through a representative engagement for a two-market paving and siding contractor. It covers the audit, the Local SEO and conversion rate optimization (CRO) work, the tracking setup, and the measured results. The final section turns the engagement into a vetting standard you can use on any agency, including us.

A note on the data. The contractor profile is anonymized and the engagement figures are illustrative of the structure and magnitude we model for a business of this type. They are not one client’s audited results. The method, event names, and test design are the parts to copy. Sunstone Digital Tech’s published proof points (4.9/5 Google rating, 2,500+ businesses helped, 73% lead growth in 60 days for client campaigns, 3.8x return on ad spend for qualified campaigns) are stated as the agency’s own claims.

Client background and goals

The client is a family-owned contractor with two service areas. It handles asphalt driveway paving, sealcoating, and patio and walkway work, and it also installs and repairs vinyl and fiber-cement siding. Revenue splits roughly evenly between paving (seasonal, spring through fall) and siding (steadier, with a storm-driven spike).

Marketing before the engagement was a mix of a template website, a Google Business Profile (GBP) that the owner’s nephew had set up years earlier, and a small pay-per-click budget. The owner described the situation in terms most contractors will recognize: the site got visits, but the phone didn’t ring in proportion to them, and half the form submissions were out-of-area or looking for a price over email.

Three goals went into the statement of work:

  • Increase tracked phone calls and estimate requests, with conversion measured per organic session rather than raw traffic.
  • Gain Maps and organic visibility for “paving near me” and “siding contractor near me” style searches in both service areas.
  • Raise the share of leads that are qualified (in service area, in scope, reachable) without depending on higher ad spend.

Why now: organic rankings had plateaued for about five months, cost per click on paid search was climbing, and the owner couldn’t say which channel produced booked jobs. That last point shaped the engagement more than any ranking target.

Audit findings and hypothesis

The audit ran two weeks and covered three layers: what Google shows, what the site says, and what happens after the click.

Discovery gaps in Google Business Profile and service pages

  • GBP categories. The primary category was “Paving contractor,” which suited half the business. Siding work was invisible because no siding-related secondary category was set, and the service list was a copy of the website nav.
  • Review velocity. The profile had a respectable average rating but only a handful of new reviews per month, with few mentioning a service or city. Recent review volume matters for Maps competitiveness, and keyword-rich review text helps relevance.
  • Photos and posts. Photos were two years old and mostly logo and truck shots. No project imagery was tied to a service or neighborhood.
  • Site architecture. One “Services” page covered paving, sealcoating, siding, and repairs. City coverage came from a footer list of town names with no dedicated pages, so the site had little to rank for “siding installation in [city]” or “asphalt paving in [city].”

Conversion blockers on the estimate path

Session recordings and heatmaps (behavioral analysis) showed consistent friction:

  • The estimate form had seven required fields, including project budget, which visitors skipped or abandoned.
  • The phone number was in the header on desktop but not persistent on mobile, where most local-intent traffic arrived.
  • Trust elements (license details, insurance, reviews, project photos) sat on a separate “About” page, away from the form.
  • The only call to action was a generic “Contact Us.”
  • Service pages gave no scope or process expectations, so visitors didn’t know whether the company handled their job size.
  • Largest Contentful Paint on mobile averaged over four seconds because of uncompressed gallery images.

Hypothesis

Better discovery and a shorter, more trustworthy estimate path would compound. If city and service pages earn more impressions in organic and Maps, and those pages convert a higher share of sessions into tracked calls and estimate requests, then lead volume and qualified-lead rate would both rise while organic traffic could stay roughly flat. The tracking plan was written so that either outcome (the hypothesis holding or failing) would be visible.

SEO and CRO tactics implemented

Google Business Profile and Maps workstream

KPI tied to this work: GBP impressions, direction requests, and tracked calls from the profile.

  1. Added siding-specific secondary categories and rebuilt the services list with descriptions that mirror how customers search (driveway replacement, crack repair, vinyl siding replacement, storm damage repair).
  2. Replaced the photo library with dated project photos, geotagged where the client had permission, and shot before-and-after pairs for each core service.
  3. Set a weekly post cadence tied to seasonal demand: sealcoating windows in spring, siding after storm events.
  4. Built a review request workflow: a text message sent by the crew lead on job completion, with a short link to the profile and a prompt to mention the service and neighborhood. Responses to every review, positive or negative, went out within 48 hours.
  5. Moved a call-tracking number to the primary phone field on GBP and kept the main business number as an additional number, so NAP (name, address, phone) consistency was preserved while Maps calls became attributable.

Service-area organic workstream

KPI tied to this work: non-branded organic sessions to service and city pages, and map-pack and organic positions for target terms.

The single “Services” page became a hub-and-spoke structure. Core service pages (asphalt paving, sealcoating and repair, siding installation, siding repair) carried the depth: materials, process, timeline, and what affects scope. Supporting city pages sat beneath each, built on real differentiators rather than swapped town names: local project examples, neighborhood-specific conditions (soil and freeze-thaw cycles for paving, housing-stock age for siding), and reviews from that area.

Internal links ran from core pages to city pages and back, with anchors that match intent (“siding installation in [city]”) instead of “learn more.” Each page type got a distinct CTA: “Get a paving estimate” on paving pages and “Schedule a siding inspection” on siding pages. This kind of multi-city structure is the same pattern described in our guide to SEO for contractors, which covers Maps, service pages, and reviews as one system.

Estimator-intent landing pages

KPI tied to this work: estimate-request conversion rate per landing-page session.

For the two highest-revenue services in each market, we built conversion-focused pages for “Asphalt Paving in [City]” and “Siding Installation and Repair in [City].” Each followed the same order:

  1. Above the fold: a service-specific headline, the star rating with review count, a primary CTA, and a tap-to-call button.
  2. Directly below: scope of work (what’s included, typical job sizes, what’s not offered), so unqualified visitors self-select out.
  3. A project gallery with captions naming city and job type.
  4. License and insurance details and two review excerpts placed next to the form.
  5. A short form with the minimum fields needed to schedule an estimate.

CRO experiments

Every test had a written hypothesis, a primary metric, a minimum run time of four weeks, and a traffic split of 50/50. Results appear in the next sections.

Speed and mobile fixes

Gallery images were converted to modern formats and lazy-loaded, and the mobile header was reworked. Mobile Largest Contentful Paint dropped under 2.5 seconds on the landing pages.

Tracking and attribution method

Measurement was set up before any page changed, so the baseline period was clean.

KPI chain

Local visibility signals (GBP impressions, map and organic positions) lead to website sessions, then to calls and estimate requests, then to qualified leads, then to booked jobs. Each link in the chain had one owner metric and one source of truth.

Instrumentation

  • Form submits. GA4 events: form_start (first field focus), generate_lead on successful submission, with parameters service_type, city, and page_variant. generate_lead was marked as a key event.
  • Click-to-call. A click_to_call event fired on every tel: link, with the same service_type and city parameters, so mobile taps were tied to pages.
  • Call tracking. Dynamic number insertion swapped the website number by source (organic, paid, direct), and a separate static number ran on GBP. Calls over 60 seconds counted as “connected calls,” recorded with consent notices, and sent to GA4 as imported conversions.
  • CRM disposition. Every form lead and connected call created a CRM record with source and landing page. Crews and the office coordinator set a disposition: booked, quoted, out of area, out of scope, no answer, or spam.

Definition of a qualified lead

A lead was qualified when it was in the service area, in scope, and reached by the office within 15 minutes during business hours (or by the next morning for after-hours submissions). Out-of-area, out-of-scope, and spam dispositions were excluded. This made the qualified-lead rate a measure of both marketing quality and response speed, which is why the office process was part of the engagement.

Separating SEO effects from CRO effects

SEO changes were read from the GBP, rank-tracking, and Search Console data on a week-over-week basis. CRO effects were read only from controlled A/B tests on pages where traffic was split, so a ranking gain could not be mistaken for a conversion gain. For the overall before/after, conversion rate was calculated on organic sessions only, which keeps paid campaigns out of the comparison.

Reporting cadence

Weekly: tracking QA (events firing, call-tracking numbers live, form delivery tested). Monthly: a report with the metric chain above and an experiment log.

The monthly report included these views, shown here as placeholders:

[Screenshot placeholder: GBP Performance insights, calls, direction requests, and search impressions, baseline vs. month 6]

[Screenshot placeholder: Rank-tracking snapshot, map-pack and organic positions for 20 target queries across both service areas]

[Screenshot placeholder: GA4 funnel exploration, landing page to form_start to generate_lead, segmented by service_type]

[Screenshot placeholder: Call-tracking dashboard, connected calls by source and landing page]

[Screenshot placeholder: Experiment summary report, variant, sample size, conversion rate, confidence level]

Quantitative results

The comparison uses the 90 days before launch (baseline) against month six of the program, with monthly averages. Conversion rate here is connected calls plus estimate form submits, divided by organic sessions.

Metric Baseline Month 6 Change
Organic sessions per month 6,200 6,450 +4%
GBP search impressions per month 18,400 30,900 +68%
Queries in map-pack top 3 (of 20 tracked) 5 12 +7 queries
Connected calls from organic and GBP 61 118 +93%
Estimate requests (form) 74 151 +104%
Lead conversion rate (organic sessions) 2.18% 4.17% +91%
Qualified lead rate 41% 58% +17 points
Booked jobs per month 19 41 +116%
Lead-to-booked rate 14.1% 15.2% +1.1 points

Traffic barely moved. The gains came from showing up in more map-pack results and converting a much higher share of visits, the same pattern Focus Digital reported in its regional HVAC case study (conversion from 9.7% to 16.1% with flat organic traffic at roughly 17,400 sessions a month). The comparison suggests that for local service companies, conversion rate is often a bigger lever than traffic volume.

Lead-to-booked rate rose only about one point. Most of the booked-job growth came from having more qualified leads, not from closing a higher percentage of them. That finding sent the team to the sales process: response time and the quoting follow-up became the next workstream, outside the SEO and CRO scope.

A/B test results

Test 1: shorter estimate form (asphalt paving city pages). The control had seven required fields. The variant had four (name, phone, address or ZIP, project type) with budget and timeline moved to an optional follow-up step.

Control Variant
Sessions 2,180 2,150
Estimate requests 74 99
Conversion rate 3.39% 4.60%

Relative lift was 35%, over 28 days, at roughly 95% confidence (z of about 2.0). That is a modest margin for a single test, so we kept the variant and watched it for another month. The lift held. Qualified-lead rate on the variant was 3 points lower in the first month because shorter forms admit more marginal requests, which the scope block on the page offset in later weeks.

Test 2: sticky mobile call button (siding pages). The control used a header phone number that scrolled away. The variant added a persistent bottom-bar button with tap-to-call and “Schedule inspection.”

Control Variant
Mobile sessions 3,100 3,100
Click-to-call events 59 93
Click-to-call rate 1.90% 3.00%

Relative lift was 58% over five weeks, at about 99% confidence (z of about 2.8).

Test 3: CTA wording (inconclusive). “Get a free estimate” against “Check availability” produced no meaningful difference after four weeks, and the variant lost slightly on form submits. We kept the original wording and logged the result. Not every test wins, and an agency that reports only winners isn’t showing you the whole experiment record.

What changed, in one list

  • Siding secondary categories added to GBP and the services list rewritten.
  • Review requests moved to a crew-lead text at job completion, with a service-and-neighborhood prompt.
  • Single services page split into four core pages plus city pages with local proof.
  • Estimate form cut from seven fields to four.
  • Sticky tap-to-call on mobile, scope block and trust elements placed beside the form.
  • Mobile load time cut to under 2.5 seconds.
  • Calls and form leads routed into the CRM with dispositions, so reporting stopped at booked jobs and not at leads.

How to choose an SEO and conversion optimization agency for a paving or siding company

The engagement above also works as a screening template. Whether you are searching for SEO agencies for paving and siding companies near Yonkers, NY, Jurupa Valley, CA, or any other market, the same tests separate agencies that run one system from those that sell two disconnected services.

  1. Ask for the measurement plan before the proposal. You should see named GA4 events, how calls are tracked (dynamic numbers on the site, a distinct number on GBP), and how a qualified lead is defined. If the answer is “we’ll set up Google Analytics,” the attribution isn’t designed.
  2. Require case studies with a metric chain. Traffic alone isn’t proof. You want calls, estimate requests, conversion rate, and a path to booked jobs, with the baseline period stated. Be skeptical of any case study with no methodology, which describes most of what’s published in this category.
  3. Ask to see the test log. A credible CRO program documents hypothesis, variants, sample size, run time, and confidence, and includes losing and inconclusive tests.
  4. Check that discovery and conversion share a plan. The same team should connect GBP categories, service-page architecture, and form design. Agencies that treat SEO and CRO as separate retainers tend to optimize each for its own report.
  5. Look at the review process, not just the rating. Ask how review requests are triggered and how responses are handled. A workflow tied to job completion beats a quarterly push.
  6. Insist on dashboard access. Screenshots in a monthly deck are fine, but you should also be able to open GBP insights, GA4, and call tracking yourself.

Sunstone Digital Tech works this way: Local SEO for Google Maps and organic search, service-page architecture, A/B testing, and behavioral analysis under one plan, delivered since 2018 across 6,000+ projects for 2,500+ clients. Our approach for trades is outlined on the home services marketing agency page. Whichever agency you evaluate, ask for the measurement plan and a testable CRO roadmap in writing before you sign.

Next steps for an owner evaluating agencies

Start with your own baseline: pull 90 days of GBP calls, form submissions, and booked jobs by source, even if the numbers are rough. Then ask each agency on your shortlist to show how it would measure the same three things next quarter, and what it would test first on your estimate form. The agency that answers with specifics, including how it would know if it was wrong, is the one that can run an SEO and conversion program for a paving or siding business.

Ready to Grow Your Business?