Impressions, Clicks, and CTR: Search Console Metrics
Google Search Console measures search performance with four metrics. An impression is counted when a link to your site appears in search results. A click is counted when a user follows that link to your site. CTR (click-through rate) is clicks divided by impressions. Position is the average topmost rank of your result. These are exactly the columns you get when you export the Performance report: “Top queries, Clicks, Impressions, CTR, Position”.
This guide explains how to export that report, how to read each column of the CSV, how CTR and position are calculated, why the totals never add up, and which conclusions the data actually supports.
Understanding the Search Console Performance export (Top queries, Clicks, Impressions, CTR, Position)
How to export the Performance report
- Open Search Console and go to Performance → Search results.
- Set the date range (the default is the last 3 months; up to 16 months are available) and any filters: search type, country, device, query or page.
- Click Export in the top-right corner and choose Google Sheets, Download Excel or Download CSV.
- The CSV option downloads a ZIP archive with one file per table. Sheets and Excel put the same tables on separate tabs.
The export respects the filters and the date range that were active at the moment you clicked Export, so the same report can produce very different files.
What is inside the file
| File / tab | First column | What each row is |
|---|---|---|
| Queries | Top queries | One search query and its metrics |
| Pages | Top pages | One URL of your site |
| Countries | Country | Searcher's country |
| Devices | Device | Desktop, Mobile or Tablet |
| Search appearance | Search Appearance | A result type, such as rich results or video, if your site has any |
| Dates | Date | One day of totals for the whole selection |
| Filters | Filter | The search type, date range and filters used for the export |
A typical Queries.csv looks like this:
Top queries,Clicks,Impressions,CTR,Position
buy road bike,120,4100,2.93%,6.8
road bike sizes,64,9800,0.65%,11.2
carbon road bike,9,2300,0.39%,18.4
The header line Top queries,Clicks,Impressions,CTR,Position is the same for every property; only the first column name changes between files (Top pages, Country, Search Appearance, and so on).
How to read each column
| Column | Meaning | Watch out for |
|---|---|---|
| Top queries | The search term users typed | Rare and personal queries are anonymized and never appear in the list |
| Clicks | Clicks from Google results to your site | A click inside Google (for example, expanding an answer) is not counted |
| Impressions | How many times a link to your site was shown | The user does not have to scroll to it for a standard result |
| CTR | Clicks ÷ Impressions, as a percentage | Exported as text with a % sign; convert before calculating |
| Position | Average topmost position, weighted by impressions | Lower is better; it is an average, not a fixed rank |
Google's own definitions are in the help article What are impressions, position, and clicks?
How CTR and position are calculated
The CTR formula is simple:
CTR = Clicks ÷ Impressions × 100%
For the first row of the example above: 120 ÷ 4,100 × 100% = 2.93%.
The common mistake is averaging the CTR column. To get the CTR of a group of queries, divide the sum of clicks by the sum of impressions. For the three rows above: (120 + 64 + 9) ÷ (4,100 + 9,800 + 2,300) = 193 ÷ 16,200 = 1.19%. A simple average of the three CTR values would give 1.32% and overstate the result, because it treats a query with 2,300 impressions the same as one with 9,800.
Position works the same way: it is weighted by impressions. For the example: (4,100 × 6.8 + 9,800 × 11.2 + 2,300 × 18.4) ÷ 16,200 ≈ 11.1. The full method, with a step-by-step table, is in the article about average position.
Spreadsheet formulas
With the Queries tab in Google Sheets or Excel (A — query, B — clicks, C — impressions, D — CTR, E — position, data in rows 2–1001):
- Group CTR:
=SUM(B2:B1001)/SUM(C2:C1001) - Weighted average position:
=SUMPRODUCT(C2:C1001,E2:E1001)/SUM(C2:C1001) - Queries on positions 5–20 with real demand: filter E between 5 and 20, then sort by C descending.
Why the export totals do not add up
- Anonymized queries. Google hides queries that are rare or could identify a user. The sum of clicks in the Queries file is usually lower than the total in the chart, and the gap can be large for sites with many long-tail queries.
- The 1,000-row limit. The interface and the export include at most 1,000 rows per table. For a larger site, use the Search Console API or the bulk export to BigQuery.
- Site vs page aggregation. The chart totals count a search result once per site, even if two of your pages appeared in it. The Pages table counts each page separately, so its sums can exceed the chart totals.
- Fresh data. The last two or three days are often incomplete and get filled in later. Exclude them when you compare periods.
Typical conclusions from the export
| Pattern in the data | Likely meaning | What to do |
|---|---|---|
| Position 1–5, CTR well below the norm for that position | The snippet is not convincing, or SERP features push the result down | Rewrite the title and description; check the result with a SERP preview |
| Many impressions on positions 5–20 | The page is close to the top and lacks authority | Strengthen the page with content and links; small rank gains add many clicks here |
| Impressions grow, position gets worse | The page started appearing for new, lower-ranked queries | Usually a good sign; check that clicks are not falling |
| One query brings impressions to several pages | Pages compete for the same query | Check for keyword cannibalization and pick one target page |
| High CTR mostly on brand queries | Demand comes from people who already know you | Analyse non-brand queries separately to see real SEO growth |
CTR depends primarily on position
Click-through rate falls steeply as the result moves down the page. The curve PromoPilot uses to estimate the potential of pages:
| Position | Expected CTR | Clicks per 1,000 impressions |
|---|---|---|
| 1 | ≈28.5% | ≈285 |
| 3 | ≈11% | ≈110 |
| 5 | ≈6.1% | ≈61 |
| 10 | ≈2.5% | ≈25 |
| 20 | ≈0.9% | ≈9 |
| 30 | ≈0.5% | ≈5 |
These are averaged industry values, not a promise; the shape is explained in the article about the CTR curve. The practical point: moving from 10th to 5th place roughly doubles clicks, while moving from 30th to 20th adds almost nothing. Compare your CTR with what is expected for your position, not with other sites.
Where these metrics appear in PromoPilot
After you connect Search Console, the platform reads the same data through the API, without the 1,000-row limit of the interface:
- “Pulse” — clicks and impressions for 28 days compared with the previous 28, with charts for each metric.
- “Radar” — pages with impressions on positions near the top and an estimate of the clicks they are missing; it also flags pages whose CTR is well below the norm for their position.
- Chrome extension — the “Potential” tab: position, impressions, clicks and CTR of the open page.
- Launch report — impressions and clicks at launch and after 30, 60 and 90 days.
Common reading mistakes
- Averaging CTR or position columns. Always weight by impressions.
- Judging CTR on small numbers. With 12 impressions any CTR is random.
- Celebrating impressions alone. Impressions often grow on irrelevant queries that never bring clicks.
- Comparing periods of different length. Compare 28 days with the previous 28 days.