A rebrand and website rebuild that anchored a multi-year lead-gen program for a growing North-Shore-MA roofing business.
The client had a great reputation with homeowners and contractors, but a website that didn't reflect it — and a marketing program that depended entirely on word of mouth and referrals. Lead flow was healthy in storm seasons and unpredictable the rest of the year, with no visibility into where calls were coming from or what they cost.
We were asked to bring the brand, site and acquisition system up to the level of the work itself — and to build something the office team could run without depending on us indefinitely.
Engagement: Multi-year retainer, ongoing. Initial 12-week build phase followed by monthly SEO, paid media, and review-program management.
Before the engagement, the business had:
Every channel was technically present, but none of them were measurable.
Updated mark, type system and color palette — rolled out across trucks, uniforms and proposals.
Modern marketing site with service pages, town-level landing pages and lead-capture wired to the CRM.
Google Business Profile cleanup, citations, and a content plan built around storm and seasonal terms.
Google Ads and Local Services Ads tuned for emergency and storm-season lead flow.
Post-job review requests with a workflow the office team can actually run.
Monthly reporting on leads, cost per lead and attributed revenue — in plain English.
Months 1–3 — Foundations. Brand refresh and full website rebuild on a fast, mobile-first stack. Conversion tracking wired end-to-end: GA4, Google Ads conversion import, dynamic call tracking on every page, and lead-form submissions piped into the CRM with attribution preserved. GBP cleaned up — categories, services, photos, hours — and a recurring posting schedule started.
Months 4–6 — Local SEO & reviews. Town-level landing pages built around storm and seasonal terms (ice dam removal, storm damage, asphalt vs. metal, roof repair vs. replacement). Citation cleanup across the major local directories. A post-job review program rolled out — branded SMS request sent within 24 hours of project sign-off, fallback email at 72 hours. Review velocity went from a couple per month to several per week.
Months 6+ — Paid media optimization. Google Ads restructured into tight ad groups by service line and location. Negative keyword sweeps every two weeks. Google Local Services Ads enabled and tuned. Storm-season budgets pre-loaded so the campaigns scale automatically when weather hits.
Ongoing. Monthly reporting in plain English — leads, cost per lead, channel attribution, and a one-page summary the owner can read in two minutes. Quarterly strategy reviews covering what's working, what's not, and where to put the next dollar.
Year-over-year organic traffic after 12 months of local SEO work.
Drop in paid-search cost per lead once the campaign was restructured.
Average rating across 140+ post-engagement reviews.
Numbers measured against the 12-month baseline preceding engagement kickoff. Organic-traffic figure pulled from Google Search Console clicks. Cost-per-lead figure compares the first 90 days of the restructured Google Ads program to the prior 90 days. Review count is total post-engagement reviews collected via the recurring review-request workflow.
Three decisions did most of the heavy lifting: