Every local SEO consultant has had this conversation. You send a report saying the client sits third for their money keyword. The client types it into their own phone, sees themselves at eleven, and forwards you a screenshot with a question mark.
Nobody is lying. The two numbers measure different things. Below are the five reasons a rank tracker disagrees with reality, in the order they cause trouble, and a way to find out which of your tools is telling the truth.
Disclosure: I build a rank tracker, so I have an interest here. Everything below is checkable against the search data APIs that most trackers buy from, and I have written the checks so you can run them yourself.
1. Your tool asked about a region, not a place
This is the big one, and it accounts for most of the spread between any two tools.
Search data providers let you set location two ways. You can pass a location code, which is an identifier for a named place in their database, or you can pass a coordinate pair, an actual latitude and longitude.
The trap is what a location code means. In the major providers, the code for a US city usually resolves to a designated market area or metro region. The code for Chicago does not mean the corner of State and Madison. It means several thousand square miles of Illinois, and the search engine returns a result blended across that whole area.
For a national ecommerce keyword this is harmless. For anything local it is fatal, because the map pack and the localised organic results are decided by where the searcher physically is, at a resolution of a few hundred metres. A dentist can hold position two on one side of a park and position fourteen on the other.
So when your tool says three and the client says eleven, the most likely explanation is that your tool averaged a metro area and the client stood in one specific spot inside it.
The fix is not a better algorithm. It is passing coordinates instead of a region code, which most tools can do and many do not do by default.
2. The tool is counting the wrong things as results
Search data comes back with two position fields, and they mean different things:
rank_absolutecounts every element on the page in order. Ads, the map pack, People Also Ask, video carousels, the AI Overview, and organic results all get a number.rank_groupcounts organic results only.
When somebody says position, they mean the second one. A tool that reports the first will show a keyword sinking every time Google adds a SERP feature above it, even though the page has not moved at all. You will spend a client call explaining a drop that never happened.
This is worth asking a vendor directly, because it is not usually in the marketing copy.
3. Nobody adjusted for the featured snippet
Here is a smaller detail that catches even careful tools.
When a featured snippet is present, it occupies organic position one, and it is drawn from a page that also appears in the normal list below. Depending on how the provider structures the response, the organic results underneath can be numbered starting from one again.
Report that raw and you will tell a client they rank first when a competitor owns the snippet above them and they are functionally second. Over a page of keywords, this quietly shifts a whole report by one position.
4. Personalisation, time of day, and the device
These are real but they are smaller than people think, and they are often blamed for problems that are actually reason one.
Signed-in personalisation mostly affects results the user has clicked before. Time of day matters for queries with an opening-hours signal, like a restaurant at 11pm. Device matters because the mobile map pack sits higher in the layout and gets a larger share of attention.
What this means practically: compare like with like. A desktop tracker reading against a client checking on their phone will disagree, and neither is wrong.
5. The tool is looking at a different depth than it used to
In September 2025 Google removed the num=100 parameter, which had let a single request return a hundred results. Everything that reads Google now pulls ten results per request.
Two consequences followed. Tracking anything past the first page became roughly ten times more expensive to collect, and a number of tools quietly reduced how deep they look. If your tool now reports a keyword as not in top 20 where it used to say 34, the ranking may not have changed at all. The measurement window did.
It also broke a lot of historical comparisons made before that date. Any chart that spans September 2025 deserves a second look.
How to find out which tool is right
You do not need to take anyone’s word for it. This test takes fifteen minutes.
- Pick one keyword and one physical address you can stand at, or one you can name precisely.
- Get the exact coordinates of that address. Right-click the point in Google Maps and copy the latitude and longitude.
- In each tracker, set the location as precisely as the tool allows. Note whether it accepts coordinates or only a city name. That single answer tells you most of what you need to know.
- Run all of them the same day, within an hour of each other.
- Check the same keyword yourself in an incognito window on mobile, standing at or near that point.
The tool that lands closest to your own screen is the one measuring what your client experiences. In my testing the deciding variable is almost always whether coordinates were used, not which provider sits behind the tool.
Four questions worth asking a vendor
| Ask this | The answer you want |
|---|---|
| How do you set location? | Exact coordinates, settable per keyword or per grid point |
| Do you report rank_group or rank_absolute? | rank_group, with SERP features flagged separately |
| How do you handle a featured snippet? | Counted as position one, organic offset applied below it |
| How deep do you track, and did that change in 2025? | A specific number, and an honest answer about the change |
A vendor who answers all four without hedging is worth trusting with a client report. A vendor who cannot say which position field they use has probably never thought about it.
Why this matters more for local than anything else
For a national keyword, a metro-wide average is a reasonable approximation. For a plumber, a dentist or a law firm, the average is the one number that describes nobody. Half the value of local rank tracking is knowing where you stop being visible, and an averaged position deletes exactly that information.
This is why a grid of separate measurement points, each anchored to its own coordinates, gives a different answer than a single number. Not a more flattering answer. Often a worse one. But it is the one that matches what a person standing on that street actually sees.
Common questions
Is a ten to twenty percent gap between tools normal?
It is common, which is not the same as normal. Once both tools are asked about the same coordinates on the same day, the gap usually collapses to nearly nothing. A persistent gap after that points at the position field or the tracking depth.
Should I check rankings in incognito mode?
Incognito removes your account history but not your location, which is the thing that matters most. It is a useful sanity check, not a measurement.
Can I import ranking history from my old tool?
Keywords and projects, yes. Historical positions, not honestly, because they were measured with different location settings. Starting a clean baseline is the more defensible option.
Does any of this apply to AI Overviews?
Partly. AI Overviews are location sensitive in the same way, so the coordinate problem carries over. But an answer either names you or it does not, so position matters less than presence.