This guide is for bloggers, marketers, agency owners and small business owners who already have Google Search Console set up and want to turn the Performance report into a short, prioritised to-do list. You do not need paid tools. You need a method for reading four metrics, a few filters and one comparison.
What the four metrics actually measure
Open Search Console, choose your property, then go to Performance and Search results. Above the chart you can toggle Clicks, Impressions, CTR and Average position. Google’s help pages define them as follows:
- Clicks: how often someone clicked a link from Google to your site. Clicks that stay inside Google, such as query refinements, are not counted, and clicking a result, going back and clicking it again counts as one click.
- Impressions: a user has seen, or potentially seen, a link to your site. Items in a carousel or expandable section usually need to be scrolled into view or expanded to count.
- CTR: clicks divided by impressions.
- Average position: the topmost position your link held, averaged across queries. Google’s own example: a query where you appeared at positions 2, 4 and 6 counts as 2, another at 3, 5 and 9 counts as 3, so the average is 2.5.
Two details change how you read the data. First, position is an average and can differ from what you see yourself, because results vary by searcher. Second, the chart is aggregated by property (two of your pages for one query count as one impression), while in the table the Pages tab is aggregated by page. That is why chart and table totals sometimes disagree.
Know the data limits before you act
- Not every query is listed. Google says Search Console stores and shows only the most important data rows, and anonymized queries are hidden from the table. They still count in chart totals unless you apply a query filter, so filtering by query can make totals look smaller.
- Recent data can change. The newest data may be preliminary and is shown as a dotted line. Complete days are shown by default.
- Dates use Pacific Time (except the 24-hour view), and weeks run Sunday to Saturday.
Step 1: Find queries with high impressions and low CTR
- Set the date filter to a window long enough to smooth out noise. The default is the past three months, which is a reasonable start.
- Turn on Impressions, CTR and Average position, then open the Queries tab.
- Sort by Impressions, highest first.
- Scan for queries where your position is good but CTR is lower than similar queries on your own site.
Compare against your own site rather than a published benchmark. No universal CTR-by-position figure applies to every query, because results pages differ in features and intent. A query with a navigational or very specific intent will have a different CTR from a broad one.
Hypothetical example: a query shows 8,000 impressions, 40 clicks (0.5% CTR) and an average position of 3.1. Other queries at similar positions on your site show a noticeably higher CTR. Click the query row to filter by it, switch to the Pages tab to see which URL ranks, then check how that result looks in Google. A vague title or a meta description that does not mention the searcher’s need are common causes. Our guide to writing compelling meta descriptions covers the rewrite.
Trade-off: change one thing at a time, and allow time before judging the result.
Step 2: Find pages sitting around positions 8 to 20
Pages that rank just outside the most visible results often need a smaller push than pages that are not ranking at all. The 8 to 20 range is a working rule, not a Google threshold.
- Open the Queries tab with Average position and Impressions switched on.
- Click the Average position column header to sort, and scroll to the 8 to 20 band. The table does not filter by position range, so you read the band manually or export the data (see Step 6) and filter it in a spreadsheet.
- Keep only queries with meaningful impressions. A position of 12 on 15 impressions is not a priority.
- For each candidate, filter by the query, open Pages and note which URL ranks.
Then compare that page with what ranks above it. Does yours answer the question directly? Is it missing a section the top results cover? Does it have internal links from related posts? Internal linking is often the cheapest improvement.
Step 3: Spot possible cannibalisation
Cannibalisation means two or more of your pages compete for the same query. Search Console has no “cannibalisation” report, so you infer it.
- Click + Add filter, choose Queries, pick the containing option and enter the query. Click Apply.
- Open the Pages tab. If several URLs share impressions for the same query, they may be overlapping.
- Open each URL with Dates selected to see whether they swap in and out over time.
Overlap is not always a problem. Two pages can legitimately appear for one query. Treat it as a flag worth a closer look when the pages target the same intent. Options include merging them with a redirect, differentiating their focus, or pointing internal links to the stronger page.
Step 4: Compare dates after an update or a change
- Click the Date filter (or click New and choose Date).
- Choose Compare and set the two periods, for example the weeks before and after a site change or a Google update.
- Click Apply. The table gains a Difference column.
Google notes that the Weekly or Monthly granularity helps neutralise day-of-week effects, so use periods of equal length. Only one comparison can be active at a time, and a value that is very rare in one period shows “~”. If you see a decline, work out whether it is site-wide or limited to certain queries or pages before changing anything; our post on why Google rankings drop walks through the diagnosis. Comparison shows what changed, not why. Seasonality, your own edits and an update can all overlap.
Step 5: Use regex filters to group queries and pages
- Click + Add filter and choose Queries or Pages.
- Choose Custom (regex).
- Enter the expression, pick Matches regex or Doesn’t match regex, then click Apply.
Google says the syntax is RE2. Matching can occur anywhere in the string unless you anchor with ^ or $, and it is case-insensitive by default (add (?-i) for case-sensitive). Hypothetical examples:
^(how|what|why|when|can|does)\son Queries groups question-style searches./blog/.+/$on Pages isolates a section of a site.
Regex also works in comparison mode. Test patterns on a small query first, since a typo can match more or less than intended.
Step 6: Export your data
Use the export button on the report to download chart and table data. One catch from Google’s help: values shown as “~” or “-” download as zeros, so a zero in a spreadsheet may mean “no data”, not “no clicks”. Exporting also lets you filter by position range in a spreadsheet. Because the table shows only the most important rows, Google points to bulk data export for the most complete picture.
What you see, what it may mean, what to try
| What you see | What it may mean | What to try |
|---|---|---|
| High impressions, low CTR, good position | Title or snippet does not match the intent, or the result is crowded by other features | Rewrite title and description; check how the result appears in Google |
| Position roughly 8 to 20 with solid impressions | Relevant page, but weaker than the results above it | Improve depth, add internal links, update outdated sections |
| Several URLs for one query | Possible overlap in intent | Differentiate, merge or consolidate internal links |
| Impressions up, clicks flat | You appear for more queries, but few are relevant | Filter by query, check which new queries add impressions |
| Clicks down after a date | Update, seasonality or a site change | Compare equal date ranges, then split by page and query |
Common mistakes
- Chasing position alone. Position is an average that can differ from what any one searcher sees, so read it alongside clicks and impressions.
- Judging a change after a few days, or comparing periods of different lengths or seasons.
- Ignoring crawl or indexing problems; fix those first, as covered in our crawl errors guide.
Key takeaways
- CTR is clicks divided by impressions; position is a topmost-position average, so read it as a guide, not an exact rank.
- Compare CTR with your own similar queries, not a generic benchmark.
- Position 8 to 20 is a practical shortlist, not an official category, and cannibalisation is inferred from the Pages tab.
- Remember the data limits: hidden anonymized queries, preliminary recent data, and “~” values exporting as zeros.
FAQ
Why do chart totals differ from the table?
The chart is aggregated by property and the Pages tab by page. Anonymized queries are also hidden from the table but counted in the chart unless a query filter is on.
Is regex matching case-sensitive?
Not by default. Prefix the expression with (?-i) to make it case-sensitive.
Can I compare more than one thing at a time?
No. Only one comparison can be active; adding a new one replaces the existing one.
Does a position of 2.5 mean my page ranked 2.5?
No. It is an average of topmost positions across queries, as in Google’s example of positions 2 and 3 averaging 2.5.
