Search Console average position is lying to you
It is not a Google bug and it is not a broken property. The Search Console average position does exactly what it promises: it averages. The problem is that almost nobody knows what it is averaging.
TL;DR
- ✓ It is an impression-weighted average, not your position. The query that showed you most carries the most weight.
- ✓ Only searches where you appeared are counted. The times you do not show up never enter the math, which flatters the number.
- ✓ It blends countries, cities, devices and days into one figure. If you sell across LATAM, that is up to 18 markets in a single number.
- ✓ It arrives 2 to 3 days late, and a 28-day view shows a 28-day average. A recent crash barely registers.
- ✓ Search Console tells you how it went. A rank tracker tells you where you stand today. They cover each other blind spots.
How average position is calculated in Search Console, step by step
Before arguing about whether the number lies, it helps to know how average position is calculated. There is no magic and no estimation involved: it is a precisely defined piece of arithmetic, and the entire misunderstanding comes from assuming it measures something else.
1. An impression is logged every time you appear
Every time one of your links is served on a results page, Google logs an impression and records where that link sat. The user does not need to click, or even scroll far enough to see you. Being served on the page is enough.
2. Position means place on the page, not blue link number N
Google scans SERP blocks top to bottom and left to right. An image carousel, a video block, a questions section or an AI summary sitting above you all occupy slots in that count. That is how you can "drop" without losing a single spot to a competitor: the page changed shape, you did not.
3. With two URLs in one search, only the higher one counts
At property level, if one of your pages ranks third and another eighth, Search Console records a 3. The 8 appears nowhere. Filter the report down to a single page and you see that page position instead. This is why the same day, the same site and the same query can hand you two different numbers depending on the filter.
4. Everything inside the filter gets averaged
Finally, Search Console adds up all those recorded positions and divides by the number of impressions. Unfiltered, that mixes every query, every country, both devices and every day in the range. Change any filter and the number changes with it.
A tiny example makes it obvious. Say you had four impressions in a week: three at position 5 and one at position 40. The math is (5 + 5 + 5 + 40) ÷ 4 = 13.75, so Search Console shows 13.8. You were never at position 13.8. Nobody ever saw you there. That number does not describe anyone real experience; it describes an arithmetic operation.
There is a subtler detail that matters even more: the average is weighted by impressions. A query that served you 5,000 times outvotes one that served you 50, even if the second is the one bringing in customers. If your most valuable commercial term has modest volume, its position barely influences your property-level number. You can collapse on it and watch the report line stay almost flat.
This is also why average position is not comparable between sites or between sections. A blog full of long-tail queries and a store with fifty product pages can both display 15.7 on screen with opposite realities underneath. If you want to understand what each metric in the report really covers and how it lines up with your own measurements, the guide to connecting Search Console to a rank tracker is the place to start, and the full list of what the app measures lives in Rankiamos features.
Why Google Search Console average position does not match what you see
The complaint always arrives in the same shape: "the report says 15 and I search and I am at 3". The fact that Google Search Console average position does not match your own search is not a defect. It is four mismatches stacking up at once.
1. One is an average, the other is a single case
The report summarizes thousands of searches by different people. You are looking at one, yours. Comparing an average against a single observation makes no statistical sense, the same way you would not compare the monthly mean temperature with this afternoon.
2. Survivorship bias
Only searches where you appeared make it in. Queries where you rank nowhere generate no impression and therefore do not exist in the calculation. The report never tells you where you are absent, which is precisely what you need in order to grow.
3. Your own search is contaminated
History, location, signed-in session, device language. Incognito mode does not fully clean it either, because location still travels with the request. We break that down in why incognito searches do not show your real position.
4. They describe different moments
You are looking at the SERP right now. The report shows data from two or three days ago, averaged over whatever date range you selected. Even if they measured the same thing, they would not agree.
The two paradoxes that confuse everyone
Out of those mismatches come two behaviours that look absurd and are perfectly logical:
The improvement that looks like a decline. You publish new content, Google starts testing you across dozens of long-tail queries, and you enter them at position 50 or 60. Each of those appearances adds bad impressions to the average. Your good queries did not move a single spot, yet site-wide average position slides from 12 to 18. You gained surface area and the report paints it as a setback. If clicks rise during those weeks while average position worsens, you already have your diagnosis.
The decline that looks like an improvement. The symmetrical case, and a far more dangerous one. You stop appearing across a large group of queries where you sat at position 70, because a page got deindexed, because you lost relevance, because the SERP changed. Those impressions vanish from the calculation, the average sheds its ballast, and your average position "improves" from 24 to 16. The chart shows a beautiful climb while you are losing visibility. The only way to catch it is to read impressions and position together, never position alone.
The operating rule is short: never interpret average position on its own. Always pair it with impressions and clicks, always in the same date range and the same filters. Position moving without impressions moving means one thing; position moving alongside impressions means something entirely different.
Position 4 in Bogotá, 19 in Mexico City and an average nobody experiences
The arithmetic with real numbers, which is where this stops being theory.
Take a typical commercial query for an agency working across several Spanish-speaking markets. Same keyword, same language, four countries. Here is how Search Console splits the impressions over the last 28 days:
| Market | Impressions | Actual position there | Contribution |
|---|---|---|---|
| Colombia | 420 | 4.1 | 1,722 |
| Mexico | 380 | 19.3 | 7,334 |
| Spain | 150 | 28.0 | 4,200 |
| US Hispanic | 90 | 34.5 | 3,105 |
| Total | 1,040 | 15.7 | 16,361 |
16,361 divided by 1,040 gives 15.7. That is the number on your screen, and it is correct: Google got nothing wrong. The problem is that no user on the planet saw your site at position 15.7. People in Colombia saw you fourth. People in Mexico saw you on page two. People in Spain and the United States saw you on page three. The average lands in a gap where nobody lives.
Now the expensive part: what decision do you make with a 15.7? The intuitive read is "I am on the edge of page one, one push and I am in". With that diagnosis you go chase links, rewrite the title, pile more content into the same URL. None of it addresses the real problem, because the real problem points in two opposite directions at once:
- → In Colombia you are already top 5. You do not need more ranking there, you need more clicks: title, meta description, brand, reviews. Building authority in that market is paying for something you already own.
- → In Mexico you sit at 19. A better title will not fix that. You need content built for that market, local signals and, most likely, time. It is a different project with a different budget.
- → In Spain and the US you are on page three. The honest question is not how to climb, it is whether competing there is worth it at all. The answer may be no, and knowing that is worth money too.
Three different strategies hidden behind one number. And here comes the second blow: two completely different sites can display the same 15.7. One with every query hovering steadily around 15, another with half its queries in the top 3 and half at position 30. The first needs a general push; the second needs surgery in one specific market. The report renders them identical.
The conclusion is not that the average is miscalculated. It is that an average, by definition, erases variance, and variance is exactly where your opportunity lives.
In LATAM it hurts twice: 18 Spanish-speaking markets in one number
An English-language site selling in the United States has a moderate averaging problem: one dominant market, one language, one currency. Anyone doing SEO in LATAM plays a different game. Spanish is spoken across 17 countries in the region, plus Spain, plus the US Hispanic market. That is 19 distinct SERPs for the exact same string of text, with different competitors, different intent and even different vocabulary.
And by default they all land in the same cell of the report. If you never touched the country filter, your average position is a salad of 19 markets weighted by wherever you happen to collect the most impressions. Since Spanish-language search volume concentrates heavily in Mexico, Spain and Colombia, your global figure tends to describe the big market and hide the small ones completely. A Peruvian business can be sitting on page one in Lima for months and still see an average of 20 because Spain contributes the bulk of impressions from position 40.
Yes, there is a country filter. It still is not enough.
Credit where it is due: Search Console does let you filter by country, and that filter solves a good chunk of the problem above. You should use it whenever you work more than one market. But it carries four limits you cannot engineer around:
- 1. It does not go below country. There is no breakdown for Bogotá, Medellín, Guadalajara or Rosario. And Google reorders the top 10 by city on any query with local intent, which in LATAM covers most commercial queries.
- 2. The country figure is another average. "Colombia" bundles Bogotá, the coast and the coffee region into one number, dominated by wherever the volume is. You trade a large average for a smaller one, not for a fact.
- 3. Small markets collapse into noise. With 30 impressions a month in Uruguay, that country average position jumps from 9 to 22 because three odd searches entered the calculation. You cannot make decisions on that.
- 4. You only see where you already appear. If you rank nowhere in Chile, Chile does not show up in the report. A missing country is not good news, it is a blind spot.
Add to that a change that broke a lot of old habits: country domains like google.com.mx stopped serving their own results and all traffic consolidated into google.com, which adapts the SERP to the user location. There is no manual shortcut left for "view Google as if I were in Mexico". Location has to travel with the query, and only a tool that geolocates properly can do that.
For a business with one location and one market, average position filtered by country is a defensible approximation. For an agency with clients in three countries, or an e-commerce shipping across half the region, it is a figure that hides more than it reveals.
The 2 to 3 day lag: the report always talks about the past
There is a second problem, independent of the averaging, that affects decisions more than people expect: Search Console average position never describes the present. The performance report refreshes daily, but with a customary lag of two to three days. You cannot see today. Or yesterday.
For slow-moving changes that hardly matters. For real work it does. You ship a title fix on Monday morning and you get no signal until Thursday. If something broke during the deploy, a stray noindex tag, a bad redirect, a template that quietly stopped rendering, the report will tell you three days late. By then you have lost three days of traffic.
The date-range dilution effect
The lag is only half of it. The other half is that the default view aggregates a long range, and a long average flattens any recent change. Run the numbers: imagine you spent 27 days steady at position 8 and the last 3 days you collapsed to 20. That is a brutal drop, the kind that earns you a phone call from the client.
30-day average with the crash included:
(27 × 8) + (3 × 20) = 216 + 60 = 276
276 ÷ 30 = 9.2
On screen you go from 8.0 to 9.2. A 1.2-point wobble, the kind you write off as noise. Underneath it is a twelve-position drop that is already costing you money.
Two habits fix half of this without leaving Search Console: narrow the range to 7 days and switch on the comparison with the previous period, and read the day-by-day chart instead of the aggregate figure. It does not remove the lag, but it stops hiding what happened.
The third temporal limit is memory: Search Console keeps 16 months of data and deletes anything older without warning, so not even your history is guaranteed long term. How to preserve it is covered separately in the Search Console 16-month limit.
Real position vs average position: two different questions
The whole GSC vs rank tracker debate is framed wrong from the start.
The entire real position vs average position argument clears up the moment you accept they are not two versions of one number, but two answers to questions that barely resemble each other:
Search Console answers
"On average, how did my site do across every search real people ran in this period?" Observed data, complete query universe, zero control over conditions.
A rank tracker answers
"Where does this keyword rank, in this city, on this device, today?" Controlled and repeatable measurement, universe limited to whatever you chose to watch.
| Criterion | Search Console | Rank tracker |
|---|---|---|
| Nature of the data | Weighted average of real impressions | Point measurement on a specific SERP |
| Query universe | All of them, including unknown ones | Only what you added |
| Geographic granularity | Country at best | City |
| Mobile and desktop | Separable by filter | Measured separately and comparable |
| Latency | 2 to 3 days | The day of the check |
| History available | 16 months back from day one | From the day you add the keyword |
| User personalization | Included, it is what actually happened | Excluded, neutral measurement |
| Good for | Discovery, trends, prioritizing | Diagnosis, market comparison, reporting |
Look closely at the history row, because it works against us and it needs saying: Search Console hands you 16 months of data the moment you connect the property, while any rank tracker, ours included, only starts accumulating history the day you add the keyword. Retroactivity is impossible; nobody can measure a SERP that already happened. That is an excellent reason to connect Search Console even if you run a tracker, and to add today the keywords you will want to analyse six months from now.
The other uncomfortable row is the query universe. A rank tracker discovers nothing on its own: it watches what you told it to watch. Search Console, by contrast, surfaces terms you would never have imagined, and that is usually where the cheap growth hides. Running one without the other means giving up half the map.
Search Console, Analytics and rank tracker: what each one measures
The whole confusion sorts itself out with one simple idea: each tool lives at a different moment of the user journey. A rank tracker looks at the SERP. Search Console looks at what happens on the SERP. Analytics looks at what happens after the click. There is no real overlap, there is a sequence.
| Tool | Moment | Typical metrics | Question it answers |
|---|---|---|---|
| Rank tracker | The SERP today | Position by city and device, competitors, changes | Where do I stand right now? |
| Search Console | Before the click | Impressions, clicks, CTR, average position | How did I do, and for which queries? |
| Analytics | After the click | Sessions, conversions, revenue, behaviour | Was that traffic worth anything? |
With that table in mind, most day-to-day questions route themselves:
- →"Did I move up or down for this keyword in Medellín this week?" · Rank tracker. Search Console does not reach city level and arrives late.
- →"Which new queries am I showing up for?" · Search Console. It is the only source with your complete query universe.
- →"Plenty of impressions, barely any clicks, what do I fix?" · Search Console flags the case; the tracker confirms whether the issue is the position or the snippet.
- →"Is this organic traffic producing sales?" · Analytics. Neither the tracker nor Search Console sees anything inside your site.
- →"The client says they cannot find themselves, are they right?" · Rank tracker. It is the only neutral measurement you can put on a screen in a meeting without arguing about somebody browser history.
One clarification for honesty: Rankiamos integrates with Google Search Console, not with Google Analytics. Conversions and revenue stay in Analytics, and that is how it should be. What we do cover are the first two rows, in one app: the queries Google reports in Search Console and the position the SERP shows today for the keywords you track, each in its own section. Comparing the two is where most client misunderstandings get cleared up.
You can check what each plan includes on the pricing page, and the full inventory of measurements in what Rankiamos does under the hood. If you are starting by connecting your property, the step-by-step process is in the Search Console integration guide.
How Rankiamos handles it
The point is not to replace Google’s average, it is to add the number it is missing: where you rank today, measured.
🔗 Search Console connected, free plan included
The Google Search Console integration ships with the Free plan, no card required. It brings up to 250 queries from the last 28 days with clicks, impressions, CTR and average position for each one, in their own section of the app, separate from the positions you measure.
📍 Position by city, not just by country
Each keyword-and-city combination is measured separately, in 52 cities across 19 countries: Spanish-speaking Latin America, Spain and the United States (measured in English). Each city uses one quota unit, and on Pro you can also track mobile and desktop separately, each one using its own unit.
⚡ No three-day wait
The Pro plan checks automatically every day (a keyword that goes 30 days without any change is checked every 3 days until it moves), and on both plans you can re-check any keyword by hand 6 hours after its last check: 13 units a day on Free, 30 on Pro. When you ship a change, verifying it does not depend on Google reporting calendar.
🧠 Context, not just the number
On Pro you get AI analysis (30 a month, on demand), competitor movements, cannibalization detection, Google AI Overview citations, map pack position, and search volume with CPC, estimated traffic value and seasonality. The top 10 competitors with 45 days of history, the iPhone and lock screen widgets and the Apple Watch app come with both plans.
What we do not do: our history starts the day you add the keyword, it is not retroactive. Search Console does give you 16 months back in its own interface (inside Rankiamos, the integration shows the last 28 days). That is why the recommendation is to connect both sources and add today the keywords you will want to analyse in six months. There is also no web or Android version: Rankiamos is an app for iPhone, iPad, Mac and Apple Watch, and its interface is in Spanish only.
Free plan: 2 projects, 5 keywords, weekly check, Search Console included · No card
Frequently asked questions
What exactly is average position in Search Console? ▾
Why does my average position say 15 when I search and see myself at 3? ▾
Is it normal for average position to get worse right as traffic grows? ▾
Can I see average position by city in Search Console? ▾
How often does Search Console average position update? ▾
Does average position count AI Overviews and other SERP blocks? ▾
So should I stop looking at average position? ▾
Read also
Connect Search Console to a rank tracker
How to link your property, what data travels, and how to read both sources together without losing your mind.
MethodIncognito searches do not show your real position
What Google still personalizes in a private window, and why that check does not qualify as a measurement.