Your rank tracker says position 4. Search Console says average position 11.3. Neither is broken. They are measuring different objects, and the gap between them is usually larger than any ranking change you are trying to detect.
If you report both numbers to the same stakeholder without explaining the difference, you will eventually have to defend a "drop" that never happened. Worth understanding the mechanism now.
What Search Console's position number actually counts
Google documents average position as the average of your topmost result's position, computed across impressions. Three parts of that sentence do most of the damage:
It's an average over impressions, not over days or over SERPs. If a query fires 10,000 times from mobile in Brazil at position 14 and 200 times from desktop in the US at position 3, the reported average sits near 14. Your tracker, which checks desktop US once a day, reports 3. Both are accurate descriptions of different populations.
Position is only recorded when an impression happened. Google has documented that results on later result pages generate an impression only if the user actually navigates to that page. A query where you sit at position 47 and nobody paginates that far produces no impression and no position data at all. Your reported average is therefore conditioned on user behavior, not just on where Google placed you. A rank tracker has no such filter — it records 47 regardless.
It's the topmost result. If three of your URLs appear on the same SERP, the property-level and query-level position reflects the best one. Filter by page and you get that page's own position, which means the per-page positions in a filtered report will not average back to the unfiltered query number.
One more: the position is an ordinal slot in the result sequence, not a pixel depth. Google counts the sequence of result blocks, and some SERP features occupy slots in that sequence. "Position 3" on a SERP topped by an AI Overview, a video carousel, and People Also Ask can sit well below the fold. Exactly which features consume a slot has changed over time and is not something you can reliably derive from your own data.
What a rank tracker actually measures
A tracker issues a search request from a chosen location, device profile, and language, parses the returned HTML, and assigns an ordinal to your URL using its own rules about which blocks count as results. That is a single sample from a single configuration at a single moment.
That design has specific consequences:
- No impression weighting. Every tracked keyword contributes equally to your "average rank" regardless of whether it gets 50,000 searches or 2.
- A fixed geography. Google's results vary by location well below country level for many query classes. "US desktop" is a point, not a distribution.
- A parser-specific definition of position. Two tools can report 5 and 8 for the same SERP purely because one counts a local pack as one result and the other counts it as three, or skips it entirely.
- It reports a rank where Search Console reports nothing. Keywords with zero impressions still get a number.
This is also why the September 2025 change to the num=100 parameter mattered so much. Google stopped reliably serving 100 results per request, and it was widely reported that many sites saw desktop impressions fall and average position improve at the same time — consistent with deep-position impressions that had been generated by automated hundred-result requests disappearing from the dataset. Tool coverage of deep positions changed in the same window. If you have a position time series that spans that period, it contains a measurement break, not a ranking event.
Side-by-side: what each source holds constant
| Dimension | Search Console | Rank tracker |
|---|---|---|
| Sampling unit | Every real impression | One scheduled query |
| Weighting | Impression-weighted | Keyword-equal |
| Location | All, mixed | One, fixed |
| Device | All, mixed (filterable) | One, fixed |
| Deep positions | Only if a user paginated | Recorded directly |
| Zero-demand keywords | Absent | Present |
| Multiple own URLs | Topmost only | Tool-dependent |
| Rare queries | Some omitted for privacy | Not applicable |
Why your average position moves when nothing ranked differently
Because the number is impression-weighted over a changing query set, the mix can move it on its own.
Suppose you rank 3 for a head term with 1,000 impressions and 20 for a tail of long queries with 1,000 impressions. Average position is roughly 11.5. Now a seasonal spike triples tail impressions with no ranking change anywhere: the average slides toward 16. Your dashboard shows a four-point "decline" produced entirely by demand mix.
The same mechanism runs in reverse. Pages that stop surfacing for weak deep-position queries lose those impressions, and the average improves. An improving average position with flat clicks is almost always a mix story, not a ranking story.
Reconciling the two numbers properly
Don't compare the global average to a tracked rank. Narrow Search Console until it describes the same population your tracker samples: one query, exact match, one country, one device.
{
"startDate": "2025-03-01",
"endDate": "2025-03-28",
"dimensions": ["query", "date"],
"dimensionFilterGroups": [{
"filters": [
{"dimension": "query", "operator": "equals", "expression": "running shoes"},
{"dimension": "country", "operator": "equals", "expression": "usa"},
{"dimension": "device", "operator": "equals", "expression": "DESKTOP"}
]
}],
"type": "web"
}
Even then, expect residual disagreement from local variation within the US and from the ordinal-counting differences above. The useful test is not whether the two numbers match — it's whether they move together. If the tracker shows a three-slot gain and the matched Search Console series is flat, the gain exists in one city at one hour and not in the population of real queries.
What to do
- Stop reporting unfiltered average position as a KPI. It is a mix-sensitive aggregate. Use clicks and impressions for trend reporting, and position only inside a fixed segment.
- Pick one source per question. Diagnosing a specific SERP layout or a competitor's feature placement: tracker. Measuring whether real users see you higher: Search Console, filtered to country and device.
- Segment before you compare over time. Hold country, device, and query set constant across both endpoints, or you are measuring demand mix.
- Track position distributions, not just means. The share of impressions landing in positions 1–3, 4–10, and 11+ tells you far more than a single average, and it is robust to tail churn.
- Annotate measurement breaks. The
num=100change is one; tracker provider migrations and property type changes are others. A time series without annotations invites false causal stories. - When the two disagree, check impression volume first. A tracked keyword with near-zero impressions is a vanity metric regardless of what rank it shows.