Why your roofing website is not ranking, and exactly what to fix
You have a website. You show up for your company name. But homeowners searching for a roofer in your city are not finding you. Here is a plain diagnosis of every reason why, and the exact fix for each one.
You built a site, or paid someone to. It has your logo, your number, your services, a contact form. Search your own company name and there you are. Search “roofing contractor in your city” and you are nowhere.
That gap is where most roofing companies are stuck, and it has specific causes. Not mysterious algorithm factors. Concrete, diagnosable problems with clear fixes. The companies on page one do not have better luck or bigger budgets. They have sites that avoid the mistakes below.
This assumes you already have a site and want to know why it is not performing. If you want the full strategy from scratch, start with our roofing SEO overview instead.
Start here
The 60-second diagnostic
Open an incognito window so your own history does not skew results, run these searches, and note honestly where you appear.
| Search this | Where you should appear |
|---|---|
| roofing contractor [your city] | Page one, ideally top five. Map pack is better. |
| roof repair [your city] | Page one. Often your highest-volume search. |
| roofer near me | Map pack, or page one organic. |
| roof replacement [your city] | Page one. Your highest-value jobs. |
| emergency roof repair [your city] | Page one. Fast converting, urgent. |
| your company name | Position one, every time. If not, you have a technical problem. |
Missing from page one on more than two of the first five? You have real ranking problems. The next section tells you which.
The twelve reasons
1. Your homepage targets everything, so it ranks for nothing
The headline says “Quality Roofing Services” and the paragraph below mentions repair, replacement, gutters, siding, storm damage, commercial, and emergency work in one breath. The page is optimized for no keyword because it targets every keyword.
Google needs one clear primary signal per page. Your homepage should target one term, usually roofing contractor plus your city, and everything on it should reinforce that.
- Title tag: “Roofing Contractor in [City] | [Company]” instead of “Home”
- H1 names the service and the area, not a slogan
- Every other service moves to its own page
- City appears naturally four to six times, including the first 100 words
- First paragraph states your city, your primary service, and your differentiator
2. You have no dedicated service pages
Someone searching roof repair is running a different search than someone searching roof replacement. Google matches searches to pages, not to websites. One page trying to catch both will rank poorly for both.
- An individual page for every major service, not a list on one page
- 600 to 900 words minimum on each
- Its own URL, its own title, its own call to action
- Each page targets one specific keyword
- Each answers the questions homeowners actually ask about that service
3. Your title tags are generic or missing
The title tag is your single most important on-page element. It is the blue link in search results and the primary signal Google uses to understand a page. If yours say “Home” or “Services,” you are leaving your strongest signal blank.
- Format that works: primary keyword, city, company name
- Every page gets a unique title tag, no duplicates
- Keep them under 60 characters so they do not truncate
- City appears in every service and location page title
- Unique 150 to 160 character meta description on every page
4. You have no location pages
Most roofers serve a radius covering several towns, but most roofing sites only mention the primary city. A homeowner twelve miles out searching for a roofer will not find you if your site never names their town.
A real location page is not the city name swapped into a template. It has genuine content about that community.
- A dedicated page for every city and suburb you serve
- 600 to 800 words minimum per page
- Reference real local context: neighbourhoods, housing stock, local codes
- Include a testimonial from that community where you have one
- Link to each location page from your main service pages
5. Your Google Business Profile is incomplete
Your profile is the primary driver of map pack rankings, which sit above organic results and generate a disproportionate share of roofing calls. The most damaging version of this problem is NAP inconsistency: if your profile says ABC Roofing LLC, your site says ABC Roofing, and Yelp says ABC Roofing Company, Google sees three businesses.
- Write a full, keyword-rich profile description rather than one line
- Add every service you offer as an individual entry
- Upload 40 or more photos, adding new project shots weekly
- Post at least twice a month
- Standardise name, address, and phone across every directory
- Add secondary categories like storm damage restoration
6. You have too few reviews, or they are old
Google uses review volume, recency, and content as ranking signals. Twelve reviews with the newest from fourteen months ago will rank below a competitor with ninety and a steady flow. Even when you do rank, low counts make homeowners skip you.
Recency gets overlooked. Two hundred reviews with none in six months suggests a business that has slowed down or changed hands.
- Ask same day, in person, then send a direct link by text
- Target at least five new reviews a month
- Build a process every crew member can follow
- Ask for specifics: which service, what they valued
- Respond to every review, good and bad, within 48 hours
7. Your site is slow on mobile
Google indexes mobile-first, so it judges your site on the phone version. The stakes are higher in roofing than most trades, because urgent searches happen on phones. A homeowner standing in the driveway looking at storm damage will not wait five seconds for your site to load.
- Run your site through PageSpeed Insights, free at pagespeed.web.dev
- Target largest contentful paint under 2.5 seconds
- Compress every image under 200KB, use WebP
- Enable lazy loading below the fold
- If it was built desktop-first, rebuilding beats patching
8. Your content is too thin to rank
A service page with 150 words does not give Google enough to rank it above a competitor who answers real questions. A homeowner researching replacement wants to know how it works, how long it takes, what materials compare how, what signals repair versus replacement, rough cost ranges, and how to choose a contractor.
- 600 to 900 words per service page, 800 plus on the homepage
- Write for the homeowner’s questions, not your own self-promotion
- Mine Google’s People Also Ask for what they actually want answered
- Add four to six FAQ questions to every service page
- No duplicated or near-duplicate content across pages
9. You have no schema markup
Schema is structured code that tells Google specific facts about your business rather than making it infer them. Most roofing sites have none, which means competitors who do are handing Google cleaner data and earning richer search results.
- LocalBusiness schema on the homepage, in JSON-LD
- Service schema defining each roofing service
- FAQ schema on pages with FAQ sections
- Review or AggregateRating schema for star ratings
- Validate everything before publishing
10. You have no internal linking structure
Internal links tell Google how your pages relate and pass authority between them. Most roofing sites are a collection of disconnected pages, so Google crawls each in isolation without understanding the structure.
- Homepage links directly to every core service page
- Each service page links to its three to five most relevant location pages
- Blog posts link to the service page they relate to
- Every important page has at least two or three internal links pointing at it
- Use descriptive anchor text, not “click here”
11. You have no local backlinks
Backlinks are among the strongest authority signals Google uses, and a site with none starts every ranking contest at a deficit. For roofers the practical sources are not obscure tactics, they are the normal byproducts of running a real local business: chamber of commerce membership, manufacturer and supplier dealer listings, local news coverage of storm response, and partnerships with general contractors or agents who refer you.
12. Technical errors Google cannot crawl past
These are the silent killers, because they negate good work everywhere else and are invisible to a normal visitor. Pages accidentally blocked from indexing, broken links fragmenting your authority, duplicate content with no canonical tags, and missing or misconfigured sitemaps. The only way to find them is to audit with the right tools.
Which of these is yours?
We will tell you exactly what is broken
We audit roofing sites against all twelve of these and send back a prioritised fix list for your site and your market. Free, no obligation.
Do them in this order
Priority fix order
These do not have equal impact. If you found several problems, this is the sequence that produces the fastest movement.
- Technical errors. Fix before anything else. Blocked pages mean Google cannot see any other improvement you make.
- Google Business Profile. The map pack drives a large share of roofing calls and moves faster than almost anything else.
- Title tags. Fast to implement, immediate signal improvement. Do every page this week.
- Homepage content. Rewrite around one clear keyword with your city in the first paragraph. It is your highest-authority page.
- Service pages. The biggest structural change most roofing sites need.
- Reviews. Start now. They compound, so every month you wait is ground lost to competitors already collecting.
- Content depth. Expand thin pages, highest-value services first.
- Location pages. Top five to eight markets first. Suburbs often rank faster than city-level terms.
- Mobile speed. Image compression and lazy loading are quick wins. A rebuild takes longer.
- Internal linking. Once service and location pages exist, connect them deliberately.
- Schema markup. Once content on key pages is final.
- Backlinks. Chamber and manufacturer listings immediately, the rest as steady ongoing effort.
The honest question: patch or rebuild?
Some owners will read that list and recognise two or three problems. Others will recognise ten. If most of them apply, it is worth asking whether patching a broken site is more efficient than rebuilding it properly.
It comes down to two things: the age and authority of your domain, and whether the current site is structurally sound. If your domain is three or more years old and has accumulated real authority, that history is worth preserving through fixes. If the site is under two years old with essentially no organic traffic and fundamental architectural problems, a clean rebuild on the same domain usually gets there faster than retrofitting.
Either way, four things are always worth doing because they live outside the website: profile optimization, review collection, title tag corrections, and clearing Search Console errors.
Questions
Diagnosing your site, answered
Start with Google Search Console. It is free and shows you directly which pages are indexed, which have errors, what you rank for, and your average positions. Then run PageSpeed Insights for speed, check your title tags in the page source, and use a free backlink checker to see how many referring domains you have.
Map pack rankings come down to your Google Business Profile, your reviews, your proximity to the searcher, and the consistency of your business information across the web. If you rank organically but not in the map pack, the likely causes in order are an under-optimized profile, inconsistent name and address data, too few reviews compared to the businesses that are ranking, or a service area that does not include the city you want. Fix problems five and six first.
Technical fixes and title tags can show in Search Console within two to four weeks as Google recrawls. Content improvements typically move rankings at weeks four to eight. Location pages in less competitive suburbs can hit page one within six to ten weeks. Competitive city-level terms take three to six months of consistent work. Profile and review work is the fastest path to map pack movement, often visible in 30 to 60 days.
Several are well within reach: profile optimization, asking for reviews, fixing title tags, compressing images, correcting name and address inconsistencies. The more technical items, schema, crawl errors, internal link structure across a large site, and content at scale, benefit from experience. Most roofing companies do best handling the profile, reviews, and basic content themselves while bringing in a specialist for the structural work.
A few less obvious causes. Your competitors may have years more domain authority, and closing that gap takes sustained time. Your market may simply be more competitive than average. Your backlink profile may be far weaker than theirs, meaning content quality alone will not close it. Or there may be a manual action against your site, which you can rule out in the Manual Actions report in Search Console.
A broken site is not a fixed cost. It is a daily leak.
Every day your site fails to rank for the searches your best prospects are making is a day those homeowners call someone else. Not because that company is better at roofing, but because their website told Google more clearly that they were the right answer.
None of this requires exotic tactics or enormous budgets. It requires the fundamentals done properly: clear targeting on every page, real content for every service and location, a maintained profile, a steady flow of reviews, and a site Google can crawl without obstacles.
Work the priority order. Check each problem honestly against your own site. The companies dominating local search are not doing anything mysterious. They did these things and kept doing them, while their competitors left the same list unfixed for years.
Is your market still open?
Get the prioritised fix list for your site
We check your site against all twelve problems and tell you exactly what is wrong, what to fix first, and whether your trade is still available in your market.