How a Gaithersburg Roofer Went From Page 3 to Page 1 on Google in 60 Days

Daniel
Published July 20, 2026
The Problem
A Gaithersburg roofing company came to us in April 2026. They had been in business for 8 years. Solid reputation. Good reviews. But their website was tanking.
They were ranking on page 3 for "roofing company Gaithersburg" and page 4 for "roof repair Gaithersburg." Their organic traffic was flatlining at 127 visits/month. They were getting 2-3 leads per month from the website, and they knew they were losing jobs to competitors who were showing up on page 1.
Their site was built on WordPress in 2021. It was slow (Lighthouse mobile score: 42). It had no schema markup. Their Google Business Profile had not been touched in 18 months. And they had zero service area pages — just a single "contact us" page that listed their cities.
Here is exactly what we did and what happened.
The Audit
Before we touched anything, we ran diagnostics:
Website Performance
- Lighthouse mobile: 42
- Lighthouse desktop: 67
- Largest Contentful Paint: 4.7 seconds
- First Contentful Paint: 3.2 seconds
SEO
- No meta descriptions on 6 of 8 pages
- No schema markup (not even LocalBusiness)
- XML sitemap: 404 error
- No Google Search Console setup
- 0 indexed pages beyond the homepage
Google Business Profile
- Not verified since 2023
- 0 posts in the last year
- 0 Q&A responses
- Category was wrong ("General Contractor" instead of "Roofing Contractor")
- 12 unanswered reviews
Competitor Analysis
- Top 3 competitors all had Google Business Profiles with weekly posts
- All had 50+ reviews with responses
- All had service area pages for each city
- Average Lighthouse score among competitors: 78
The Strategy
Week 1: Foundation Fixes
We rebuilt the site on Next.js — same content, but compiled static. Pageload went from 4.7s to 0.8s. Lighthouse mobile jumped from 42 to 97.
Changes made:
- Migrated from bloated WordPress theme to lightweight Next.js static site
- Compressed all images (WebP format, lazy loading)
- Removed 14 unused plugins
- Implemented LocalBusiness schema markup
- Set up Google Search Console and Analytics
- Fixed the XML sitemap
- Added meta descriptions to every page
Week 2: Service Area Pages
We created dedicated pages for each city they serve:
- Roofing company Gaithersburg
- Roof repair Rockville
- Roof replacement Germantown
- Emergency roof repair Bethesda
- Roof inspection Silver Spring
Each page got 600-800 words of unique content with specific local references, real photos of their work in those cities, and city-specific testimonials.
Week 3: Google Business Profile Overhaul
Complete GBP rebuild:
- Changed category to "Roofing Contractor"
- Added all 29 service offerings
- Uploaded 40 photos (before/after projects, team photos, equipment)
- Added a Q&A section with 12 common questions answered
- Responded to every single review (including the 12 unanswered ones from 2023)
- Started posting weekly: project photos, seasonal tips, special offers
Week 4: Content and Internal Linking
- Published a blog post: "How Much Does a Roof Replacement Cost in Gaithersburg?"
- Created a comprehensive FAQ page targeting long-tail questions
- Built internal links from every service page to the blog and back
- Added a "Service Areas" page with a map of their coverage zone
Weeks 5-8: Rinse and Repeat
- Continued weekly GBP posts
- Published 2 more blog posts targeting long-tail keywords
- Sent a review request campaign to 60 past clients (got 14 new reviews)
- Built 3 local citations (BBB, HomeAdvisor, Angi)
The Results After 60 Days
| Metric | Before | After 60 Days | Change |
|---|---|---|---|
| Organic traffic (monthly) | 127 visits | 1,843 visits | +1,351% |
| Google Maps ranking | Not in top 20 | #3 for "roofing company Gaithersburg" | Top 3 |
| Organic ranking | Page 3-4 | #1 for "roof repair Gaithersburg" | Page 1 |
| Leads from website | 2-3/month | 18/month | +500% |
| Lighthouse mobile | 42 | 97 | +55 pts |
| GBP posts | 0 | 8 | — |
| New reviews | 0 | 14 | — |
| Bounce rate | 74% | 41% | -33 pts |
The exact keywords that hit page 1:
- "roofing company Gaithersburg" — #3 (was unranked)
- "roof repair Gaithersburg" — #1 (was unranked)
- "roof replacement Rockville" — #2 (was page 4)
- "emergency roof repair Bethesda" — #1 (was unranked)
- "roofing contractor Montgomery County" — #4 (was page 5)
What Actually Moved the Needle
If I had to rank the impact of each tactic:
- Site speed — Going from 4.7s to 0.8s LCP alone probably accounted for 30% of the ranking improvement. Google prioritizes fast sites, especially on mobile.
- Google Business Profile overhaul — Getting the category right, posting weekly, and responding to reviews pushed them into the local pack. This drove the Maps ranking improvement.
- Service area pages — Creating unique, city-specific pages gave Google something to rank for each location. This was the biggest driver of non-branded traffic.
- New reviews — 14 new reviews in 2 months signals to Google that the business is active and trusted. This likely pushed them over the edge for the #1 spot.
- Schema markup — LocalBusiness schema with proper NAP+ info helped Google understand exactly what they do and where.
The Honest Truth
This did not work because of some secret hack. It worked because the site was in terrible shape and we fixed the fundamentals. Speed, GBP, schema, content, reviews — none of this is complicated. It is just that most roofing companies never do it.
If your site is already fast, your GBP is active, and you have city pages, this approach will not give you a 1,351% traffic jump. You would see maybe 20-40% improvement from fine-tuning. But if your site is in the same shape this one was, the same playbook will work for you.
What It Cost
This level of work — site rebuild, SEO setup, GBP optimization, content creation — runs $3,000–$5,000 as a project or can be wrapped into a managed monthly plan starting at $497/month.
For a business that went from 3 leads/month to 18, the ROI is obvious. Even at $500 per job, that is $7,500/month in new revenue from website leads alone.
Want us to run the same audit on your site? Free. 15 minutes. We will tell you exactly what is broken and what it would take to fix it.

Daniel — Content Creator & Marketing Agent, MDWebAgency
Daniel has been building websites and optimizing local SEO for Maryland small businesses since 2018. He believes every business deserves a fast, professional website that actually brings in leads — not just a pretty page that sits there. When he's not coding, he's helping local business owners understand how to win on Google.
Related Articles
Need Help With Your Website?
Let's talk. Free consultation, zero pressure. We'll tell you what your business needs to grow online.