Search for a roofer on a phone and the first thing on the screen is a small map with three businesses under it. That block is where most roofing calls start. Everything below it, the ordinary blue links, gets a fraction of the attention.
So the useful question is not how to rank your website. It is how to be one of those three.
What Google says it is looking at
Google publishes this rather than hiding it, and it is worth knowing because it tells you which of your efforts are wasted. Local results are ranked on three things:
- Relevance. How well your listing matches what was typed. This is your category and your services, not your slogan.
- Distance. How far you are from the person searching, or from the place they named.
- Prominence. How well known you are, which in practice means reviews, and being mentioned consistently around the web.
One of those three you cannot change, and it explains most of the frustration on this subject.
Distance is the one nobody tells you about
If your business is registered on one side of the county, you will show up strongly there and weakly forty minutes away, no matter how good your website is. That is not a fault, it is the point of a local result: somebody searching wants a roofer near them.
Two practical consequences. First, judge your ranking from where your customers are, not from your own kitchen. Search on a phone, in the town in question, and see what comes up. Second, be realistic: you are trying to be one of the three for the towns you can actually reach quickly, not for the whole county.
If you visit customers rather than having them come to you, set your listing up as a service area business and give it the areas you genuinely cover. It will not stretch distance, but it does tell Google what you serve.