A roofing company in Broken Arrow can have forty five-star reviews, a crew that's been doing this for fifteen years, and a website that loads fast, and still not show up when someone in their own service area searches “roof repair near me.” It happens more than you'd think, and it's rarely about the quality of the work. It's almost always three or four small, fixable things in how the business is set up on Google.

That competition is real, too, not just a feeling: roofing is now Tulsa's single most over-represented trade by a wide margin, and still growing, per five years of BLS data I pulled and checked myself. More roofers chasing the same searches makes the setup mistakes below cost more, not less.

The Map Pack Isn't Just a Review Contest

It's tempting to assume the map pack (the three-listing block with the map that shows above the regular search results) ranks whoever has the most reviews or the highest rating. Reviews matter, but they're one signal among several. Google is also weighing proximity to the searcher, how well the business profile matches the exact service being searched, and how consistently the business is listed the same way across the web. A roofer with thirty reviews and a clean, specific profile will regularly outrank one with eighty reviews and a generic setup.

Service-Area Businesses Are Set Up Differently (And Most Get It Wrong)

Most roofing companies don't have a public storefront. Customers don't visit an office, the work happens at the job site. Google has a specific setup for this: a service-area business profile, where you list the cities and zip codes actually served instead of a walk-in address. The mistake is common and quiet. Businesses set up their profile as a standard storefront listing, sometimes using a home address they'd rather not publish, or they skip the service-area settings entirely and let Google guess. Guessing usually means showing up for a smaller radius than the business actually works.

The Category Mistake That Quietly Kills Rankings

Google Business Profile asks for a primary category, and “Roofing Contractor” isn't always the right one, depending on what the business actually does, “Roofer,” “Siding Contractor,” or “Gutter Cleaning Service” might be a better primary match, with the rest added as secondary categories. Getting this wrong doesn't break the listing, but it does mean the profile is optimized for a slightly different search than the one actually bringing in calls. It's a five-minute fix that regularly moves the needle more than a month of content.

“Roofing Contractor Tulsa” and “Roof Repair Broken Arrow” Aren't the Same Search

Someone searching “roofing contractor Tulsa” is usually early: comparing options, maybe not ready to call. Someone searching “roof repair Broken Arrow” or “emergency roof leak Owasso” is close to hiring, often today. Treating these as the same keyword and writing one generic services page for all of it means neither search is served particularly well. The businesses that consistently show up across multiple suburbs' map packs usually have location-specific content: real mentions of the neighborhoods and the kind of jobs that come from each one, not a city name swapped into a template.