DANIYOURSEOGUY
Home / Portfolio / US Roofing Client #1

THIN CONTENT & ZERO DESIGN
TO THE 3-PACK

A mid-sized residential roofer came to me with a website that had almost nothing on it — thin pages, copy-pasted city pages, and a Google profile that was barely filled in. Here's every small thing I did to rank it. In plain English.

+590%
Click growth / 6mo
32.4 → 18.6
Avg Google position
#1–3
Maps pack (core cities)
Where we started

What I inherited: a website that gave Google nothing to rank

When an owner says "I have a website but it doesn't bring me any calls," this is almost always why. The site existed — but to Google's eyes it was thin, repetitive, and untrustworthy. Three problems were dragging everything down.

Before — the problems
  • Thin content. Every page had 150–250 words. Google had no idea what the business actually did or where.
  • Duplicate pages. The "city" pages were the same paragraph copy-pasted with only the city name swapped — Google reads that as spam.
  • Zero real design. A default template, no phone number up top, no reviews, no photos, no reason to trust it.
  • Half-empty Google profile. Unverified, one category, no photos, 12 reviews, no posts.
  • Slow & unindexed. 4-second load, missing pages in Google, no schema.
After — what we built
  • Real, useful pages. 800–1,200 words of genuine, specific information per service and city.
  • One unique page per place. Different content, real local detail, no duplication.
  • A site people trust. Phone, reviews, real job photos, and clear calls to action above the fold.
  • A fully optimized Google profile. Verified, every field filled, 100+ photos, weekly posts.
  • Fast & fully indexed. 1.8-second load, schema markup, every page found by Google.
Before vs after — first 6 months
Monthly clicks — before498
Monthly clicks — after3,450
Impressions — before28K
Impressions — after186K
Same business, same crew — the only thing that changed was a site Google could finally understand and trust.
The idea, in one sentence

Give Google a clear, trustworthy answer to "who's the best roofer near me?"

Google's whole job is to answer that question. It can only recommend a roofer it understands and trusts. So everything below comes down to two things: making the business easy to understand (clear content about what you do and where) and making it easy to trust (reviews, photos, a complete profile, a real website). Here is the exact order I did it in.

The work — step by step

Every small thing that added up to page-one rankings

1

Fixed the website foundation

Put the phone number and a "Get a Free Quote" button at the very top of every page. Added the business name, address and phone (NAP) in the footer of every page, matching the Google profile exactly. Compressed images and cut the load time from 4.0s to 1.8s. Added an SSL certificate so the site shows as secure. Submitted a sitemap in Google Search Console so Google could find every page.

2

Killed the thin & duplicate content

Rewrote every page so it actually said something: what the service is, how it's done, what it costs, why it matters, and answers to the questions homeowners actually ask. Each city page got its own real content — local neighborhoods, common roof types in that area, local weather damage, and a map. No more copy-paste. I deleted the worthless duplicate pages entirely so they couldn't drag the rest down.

3

Built one strong page per service & per city

Built 18 neighborhood landing pages — one for each ZIP code the owner actually serves. Each one targets "[service] in [city]" the way a real homeowner searches. They link to each other sensibly so Google understands the structure of the site, without any spammy keyword stuffing.

4

Optimized the Google Business Profile (the big one)

This is what gets you into the Maps 3-pack. It got its own full process — see the checklist below.

5

Built local citations & links

Listed the business on 80+ trusted directories (Yelp, BBB, Angi, HomeAdvisor, roofing-specific sites, the local chamber of commerce) with the exact same name, address and phone everywhere. Consistency tells Google the business is real. Then earned a handful of genuine local links from suppliers and a local news mention.

6

Turned on the reviews engine

Set up an automatic text + email that asks every finished customer for a Google review. Replied to every single review — using the city and service naturally in the reply, which is itself a ranking signal. Reviews went from 12 to 140+ over six months.

7

Captured storm season

When a hail event hit in months 3–4, I deployed a 14-day content sprint targeting "storm damage roof repair" and insurance-claim searches — exactly when local demand spiked. That's where a big chunk of the 590% click growth came from.

The GMB / Google Business Profile process

How I optimize a Google profile to win the Maps 3-pack

The "3-pack" is the little map with three businesses that shows at the top of local searches. For a roofer, ranking there is worth more than anything else — it's where the phone calls come from. This is the exact checklist I run on every client's Google Business Profile:

Claim & verifyTake ownership of the profile and verify it so Google trusts it's really you.
Primary categorySet it to "Roofing Contractor" — the single biggest profile ranking factor.
Secondary categoriesAdd Roof Repair, Gutter Service, Metal Roofing Contractor where relevant.
Fill every fieldServices, products, hours, website, attributes — Google rewards a complete profile.
Keyword-rich descriptionWrite the "from the business" section around what people actually search for.
Service areasList every city and ZIP the roofer covers, matching the website's city pages.
100+ real photosBefore/after jobs, crew, trucks, the office — geo-tagged, added every week.
Weekly Google PostsOffers, finished jobs, tips — a steady stream signals an active business.
Products & services with pricesEach service written out with a short description and a starting price.
Seed the Q&AAdd and answer the common questions so the profile looks complete and helpful.
Reviews + repliesSteady new reviews, and a reply on every one using the city and service.
Consistent NAPName, address, phone identical on the profile, the website, and every directory.
Why this works

Google ranks the profile it understands best and trusts most. A complete, active, well-reviewed profile with consistent information everywhere is exactly what it's looking for — so it puts that roofer in the 3-pack ahead of competitors who set their profile up once and forgot it.

The result

From invisible to first call homeowners make

Six months in, total clicks were up 590%, average position moved from 32.4 to 18.6, and the business sat in the top three of the Maps pack for its core cities. Most importantly: the phone rang. No tricks, no shortcuts — just a clear, trustworthy business that Google was finally able to recommend.

Click growth over 6 months
Start 6 months
498 → 3,450 monthly clicks · average position 32.4 → 18.6 over the same window.
What this means for your roofing business

If your site is thin, your city pages are copy-pasted, or your Google profile is half-finished, you're leaving the 3-pack to your competitors. The fix isn't magic — it's the checklist above, done properly and kept active. That's exactly what I do for every roofer I work with.

Want results like these?

Let me show you what's holding your rankings back.

Free 30-minute audit. I'll point out the exact thin pages, duplicate content and profile gaps costing you calls.

Get My Free Audit
Call Now Free Audit