Average position, weighted

Search Console does not average your positions. It weights them by impressions. Paste rows from your own Queries export and see both averages side by side, then compare them with a measured 37 property cohort where the two figures differ by 41.87 minus 20.08 positions.

The calculator

Paste a Search Console Queries export, or plain lines of impressions and position. The calculator reports the impression weighted average beside the plain mean of the rows.

A header row with Impressions and Position columns, as in the export, or one row per line, impressions first. Whole numbers, no commas. Nothing leaves the browser.

The example button loads the two query example from Google's help answer 7042828, one impression per query, and gives 2.5 on both measures. Raise the impressions on the first row and the weighted figure moves while the plain mean stays put.

An export omits anonymized queries, and the interface exports at most 1,000 rows (Google's post on the export), so the result can differ from the property total in the report.

What we measured across our own properties

Readings from one operator's own properties, 2026-08-18 to 2026-09-14. belikenative.com is the largest property. The three views read together show why the exclusion matters.

Named query rows from the Search Analytics API. Per property counts in the cohort file.
MeasureAll 37 propertiesbelikenative.comWithout it
Named query rows22,51310,72411,789
Impressions on those rows215,987160,48155,506
Impression weighted average position20.0814.0037.68
Plain mean of row positions41.8729.8852.78
Median row position422557
Rows at position 10 or better21.14%32.22%11.06%
Impressions at position 10 or better60.35%68.98%35.39%
Rows beyond position 2069.59%54.06%83.71%
Impressions beyond position 2028.43%18.64%56.71%
Named share of impressions49.86%52.48%43.58%

The pooled view overstates depth

Most named rows sit beyond position 20, at 69.59%. Most impressions come from rows at position 10 or better, at 60.35%. The plain mean of 41.87 says pages rank far further down than the weighted figure of 20.08 shows.

Without the largest property the gap narrows

belikenative.com dominates the pool with 160,481 of the named row impressions. Remove it and the plain mean drops to 52.78 against a weighted 37.68. Every reading moves, which is why both views ship.

The plain mean was higher than the weighted average on 26 of the 37 properties and lower on 10. It does not go one way on every site.

The position Search Console reports also counts impressions from anonymized queries, which Google omits from query tables (Google's post on the export). The weighted figures here use named rows only, so the two cover different impressions. For the size of the anonymized share see our hidden queries page.

How we checked that Search Console weights by impressions

We compared each property's reported average position with its own daily rows.

The result

On 38 of 38 property selections with impressions on at least two days, the impression weighted average of daily positions matched the reported figure to within one billionth. The plain mean of the same rows missed by as much as 40.53 positions.

The exclusions

Days with no impressions come back with a placeholder position of 0. They are left out because they have no position. One selection, viryd.com, had impressions on several days but no named query row and was checked separately.

Google's help page describes averaging over all impressions. The check shows that weighting on real reports.

How we measured this

We measured these figures ourselves from the Google Search Analytics API. The window was 28 days, 2026-08-18 to 2026-09-14, final web data, aggregationType byProperty, fetched on 2026-09-18. The Search Analytics API reference documents the searchAnalytics.query method we called.

Routes queried and how they cross check

We queried four routes and cross checked them against each other.

  • Property totals. Dimensions [].
  • Daily totals. [date]. Reproduces every property's impressions, clicks and reported position.
  • Named query rows. [query]. The primary route for this page.
  • Query by device. [query, device]. Matches the query rows on every query and impression count, and on position to within floating point rounding. A few rows sitting exactly at position 10 or 20 can move across the cut, so cross check shares at those cuts differ in the second decimal.

An independent exact fraction recomputation of the primary routes agreed on every figure. All routes come from the same provider, so agreement cannot catch an upstream Google error.

Which selections were queried and which were left out

Queried in total were 43 property selections. 37 are in the cohort. Left out: tgtools-site.lipmichal.workers.dev and bestremotetools.com had no impressions in the window. viryd.com, securetoolsguide.com and chrometipsguide.com had a few impressions but no named query row. tg.zovo.one is a URL prefix property whose impressions already sit inside the zovo.one domain property.

Rounding and per property data

Positions are rounded to two decimals and percentages to two decimals. The per property file ships beside the page. Query text is never published.

What this cannot tell you

Not a benchmark

One operator's properties. A different window gives different numbers.

No ranking promise

Average position says nothing about clicks on its own. Google's help answer 7042828 notes a position for your specific search "might be different than the average because of many variables, such as your search history, location, and so on".

Conflict of interest

The operator sells the software described here and owns every site in the dataset.

Not independently checkable

Search Console is authenticated, so readers cannot recheck the private source readings without access. Figures are read on the stamped date and change as Search Console reprocesses data.