Why your local heatmap is red
GoHighLevel added an interactive local heatmap this week. Run it on a client and you will almost certainly see red pins. This is what they mean, why the grid cannot tell you, and what to do about each cause.
What a heatmap actually measures
The grid drops a set of points across an area and asks Google, from each one, where the business ranks for a keyword. Green means near the top from that spot. Red means it is not showing.
That is genuinely useful, and worth saying plainly: a map of where you are invisible is far more honest than a single national rank number, which nobody has ever actually experienced.
But a heatmap answers where. It does not answer why, and the why is the part you get paid for.
Red usually means one of five things
1. Distance, and nothing else
Google weights proximity heavily in the map pack. A business four miles from a pin is often beaten by an identical one half a mile away, no matter how good its website is. Some of your red is simply geography.
How to tell: the red forms a clean ring at the edge of the grid and worsens smoothly as you move out. That is distance. Red scattered in patches near the centre is not.
What to do: nothing, on the map. Fighting proximity with SEO is expensive and mostly loses. If those outer areas matter commercially, that is a service-area page and paid coverage question, not a ranking one.
2. The profile is thin
Missing categories, no service list, no hours, a service area that does not match where they actually work, or five photos from 2021. The map pack is drawn largely from the Business Profile rather than the website, so a thin profile shows as red across the whole grid rather than in one corner.
How to tell: uniformly mediocre everywhere, including directly on top of the business.
What to do: primary category first, and be precise. A roofer listed as “contractor” competes with everyone; one listed as “roofing contractor” competes with roofers. Then services, then hours, then photos.
3. The website does not back the profile up
Google cross-checks. If the profile says the business does drain clearance across six towns, and the website has one page saying “plumbing” with no towns named anywhere on it, the profile is making a claim nothing supports.
How to tell: the grid is red for a specific service keyword but reasonable for the generic trade term. That gap is the website failing to corroborate a service.
What to do: a real page per service, naming the towns, with content that would be useful to a person. Not a doorway page with the town swapped out, which Google has handled for years.
4. The business details disagree with themselves
A different phone number on the website than the profile. An old address on a directory. Two Facebook pages. Google is trying to decide whether these are all the same business, and inconsistency makes it less confident, which shows up as ranking lower everywhere at once.
How to tell: you cannot, from the map. This one is invisible on a grid and you have to go and look.
What to do: pick the canonical name, address and phone, then make every place on the internet agree, starting with the website and the profile.
5. Something is broken on the website
The least glamorous and the most common. When we audited 259 UK trade websites, the most frequent findings were not sophisticated: pages that were slow, pages missing the basics, and pages quietly telling search engines not to list them at all.
A page carrying a stray noindex tag will never rank anywhere, and no amount of profile work changes that. Worth ruling out before you spend a month on anything else.
The one a heatmap will never show you
There is a sixth cause, and it appears on no grid anywhere, because grids only ask Google.
A growing number of people now ask an assistant instead: who is a good roofer near Leicester. The assistant fetches real pages, live, using its own named crawler. Plenty of trade websites block those crawlers at the firewall without knowing it, serving a perfectly good page to a visitor and an error to every assistant that asks.
The owner never finds out, because their own browser is never blocked. We found this across the 259 sites we checked. One served three thousand words to a person and fifteen to an assistant.
It takes about thirty seconds to check and costs nothing: fetch the page with an assistant’s user agent and see whether you get the page or a 403.
A sensible order to work through
- Rule out the broken and the invisible. Noindex tags, blocked crawlers, pages that will not load.
- Fix the profile. Primary category, services, hours, service area.
- Make the business details agree everywhere.
- Build the pages that back up the services the profile claims.
- Then rerun the heatmap, and accept that the outer ring may stay red because it is four miles away.
Rerunning the grid before any of that just produces the same map with a different date on it.
Who wrote this
We build Ospry Suite, which does the technical half of that list: it audits a site, checks whether assistants can read it, tracks where it ranks over time, and reports what is measurably wrong. It is free to start, and there is an honest list of what does not work yet.
None of it is needed to use anything on this page. The order above works whatever you check it with.
Or send me a client URL and the town they work in, and I will run the audit and tell you what is wrong with it. No charge and nothing attached: gregcosby@northoradigital.uk.