Project Overview
Shelley Construction is a residential roofing contractor in Pleasant Grove, Utah, listed in GAF's contractor directory and serving Utah County and Salt Lake County with roof replacement, repair, storm damage restoration, gutters, and exteriors.
I handled the local and technical SEO. The clearest way to show this work is the before and after that public web archives preserve: the old site had a generic title, no meta description, and zero structured data; the site today is a deep local-search architecture with layered structured data, four JSON-LD blocks on the homepage alone.
The Challenge
The old homepage was titled just “Roofing and Construction”: no meta description, no SEO plugin, not a single line of structured data, all of it preserved in archived copies of the old WordPress site. To a search engine, the company was close to invisible: nothing machine-readable said who it was, where it worked, or what it offered.
Roofing is also a seasonal, event-driven market. In Utah, hail does the selling: when a storm hits, homeowners search for their city plus “hail damage repair,” and a contractor without pages for those searches simply doesn't exist in that moment.
My Role
My work was the SEO layer: structure, signals, and content targeting.
- Local SEO: city-level service-area targeting across Utah County and Salt Lake County
- Technical SEO: metadata, canonical URLs, sitemap, and indexing
- Structured data: RoofingContractor, Service, FAQ, and Breadcrumb schema
- Storm-damage campaign architecture: hail pages per city
- Keyword-targeted titles and descriptions across the site
The Solution
The core of the work is coverage architecture. The site's sitemap now spans 96 URLs: 12 service pages, 30 city service-area pages, a hail-damage hub with 33 city-specific storm pages, a hail-storm section, and a blog, so every service, every market, and every storm scenario has a page built for its search.
Structured data went from zero to thorough. The homepage carries RoofingContractor markup with the company's address, geo coordinates, hours, an offer catalog, and the cities it serves, plus FAQ and Organization blocks; service pages like the roof-replacement page add their own Service, Breadcrumb, and FAQ markup, and geo meta tags anchor the site to Pleasant Grove.
Metadata was rewritten around real searches, and archives track the progression: the generic WordPress-era title was gone by March 2026, the homepage title and description were revised again into the current keyword-targeted copy between mid-April and early May 2026, and new content kept landing through August, with city pages titled for their own markets, like “Midvale Roofer.”
GA4 is installed, with the site's call and free-estimate CTAs as the natural conversion points for a contractor.
Technical Highlights
30-city service-area build-out
A dedicated page for every market across Utah County and Salt Lake County, each targeting its own city search.
Storm-damage campaign pages
A hail-damage hub plus 33 city-specific storm pages, matching how homeowners search right after a hailstorm.
Schema from zero
From no structured data at all to RoofingContractor, Service, FAQ, Breadcrumb, and Organization markup.
Conversion points wired up
GA4 installed, with calls and free-estimate requests as the numbers that matter for a contractor.
Results & Outcome
Verified Results
- Public archives document the before and after: the archived 2024 WordPress site (still on WordPress into 2025) had no meta description and zero structured data, while the site today serves keyword-targeted metadata and multiple JSON-LD blocks on the pages checked (August 2026).
- The sitemap spans 96 URLs with content added from May through August 2026, and the Midvale and Lindon city pages now appear in Google under the titles written for them.
Project Outcomes
- The company went from no machine-readable local-search footprint to structurally complete coverage: every service, city, and storm scenario has a page.
- Search engines now get a full machine-readable picture of the business: who it is, where it works, its hours, and its services.
- The architecture is built for Utah's storm cycle, ready for the searches that follow hail events.
