In short
The Search Console Performance report shows clicks, impressions, CTR and average position for your site in Google Search, grouped by query, page, country, device, search appearance or date. The same numbers are counted differently depending on the grouping: the chart and the query, country, device and date tables count your whole property once per search, while the page and search appearance tables count every URL separately. Before you draw a conclusion, check the aggregation, the search type, the date range and the data limits: anonymised queries, the 1,000-row table, preliminary data and Pacific Time.
What the Performance report shows
Open Search Console and choose Performance → Search results. This is the report most people mean when they say "the Performance report". Search Console has two more Performance reports: Discover and Google News. Each appears only once your site has enough impressions on that surface.
The page has two parts that work together. The chart at the top shows totals over time for the metrics you switch on. The table below groups the same data by one dimension at a time: queries, pages, countries, devices, search appearance or dates. Filters at the top (search type, date and anything you add) apply to both.
Out of the box, the report shows clicks and impressions for Web search over the last three months. You can switch on CTR and average position, change the search type and date range, and add filters and one comparison.
| Top queries 5 | Clicks | Impressions | CTR | Position |
|---|---|---|---|---|
| example shoes | 2,140 | 9,820 | 21.8% | 1.2 |
| best running shoes for flat feet | 96 | 41,300 | 0.2% | 11.4 |
| how to clean suede shoes | 410 | 12,050 | 3.4% | 4.8 |
| trail shoes vs running shoes | 55 | 8,760 | 0.6% | 9.1 |
- 1Filters. Search type and date are always present and cannot be removed. Every other filter, and the one comparison you are allowed, is added here.
- 2Metric cards. Click a card to show or hide that metric in the chart and table. CTR and position are off by default.
- 3Chart. Always aggregated by property. A dotted end of the line means preliminary data that may still change.
- 4Dimension tabs. They change how the table is grouped, and for Pages and Search appearance also how it is counted.
- 5Table. At most 1,000 rows; rare queries are left out. The highlighted row is a typical CTR opportunity: many impressions, few clicks, position just off page 1.
What Google officially says
“The default view of the report shows click and impression data for your site in Google Search results for the past three months.”
Search Console Help — Performance report (Search results): Overview and basic setup“Data grouped by Queries, Countries, Devices, or Dates is aggregated by property. Data grouped by Pages or Search appearance is aggregated by page.”
Search Console Help — Performance report (Search results): Overview and basic setup“The position value shown in the Performance report is the topmost position occupied by a link to your property or page in search results, averaged across all queries in which your property appeared.”
Search Console Help — What are impressions, position, and clicks?“Click, impression, and position data are attributed to the canonical URL of the link.”
Search Console Help — What are impressions, position, and clicks?“Some queries are omitted from the report to protect user privacy.”
Search Console Help — Performance report (Search results): Dimensions and data groupings“The table can display a maximum of 1,000 rows”
Search Console Help — Performance report (Search results): Troubleshooting data discrepancies“The RE2 syntax is used.”
Search Console Help — Performance report (Search results): Advanced filtering and comparison“In general, it’s recommended to focus more on trends in impressions and clicks than on position alone.”
Search Console Help — Performance report (Search results): Common tasks and use casesClicks, impressions, CTR and average position
Each metric has a short official definition. The details behind it matter more than the definition itself, because they decide whether a change in the number means a change in reality.
| Metric | Google's definition | How it is counted | Reading tip |
|---|---|---|---|
| Clicks | “The number of times a user clicked your site from Google Search results.” | Only clicks that leave Google count. Clicking the same result again after coming back is one click. By property, a click on a second URL of the same site is still one click; by page, it is two. | The closest number to visits, but it will not match your analytics exactly. |
| Impressions | “How many times your site appeared in Search results.” | Counted when a link is in the current page of results, even if not scrolled into view. In carousels and expanding sections the item usually has to be scrolled to or expanded. By property, several of your results on one page are one impression. | Impressions grow when you rank for more queries, including ones far down the page. |
| CTR | “The click count divided by the impression count.” | Calculated from the clicks and impressions of the current grouping, so it changes between property and page aggregation. | Compare CTR only between queries at similar positions and with similar result types. |
| Average position | “The average position of the topmost result from your site.” | Per search, only your topmost result counts. That value is averaged over all impressions. No impression, no position. | Watch trends per query and page, not the site-wide average. |
What counts as an impression
An impression means a user saw, or could have seen, a link to your site. On a normal results page the link counts as soon as it is on the page, whether or not the user scrolled down to it. Inside a carousel or an expandable block it usually has to be scrolled into view or expanded. On infinite-scroll surfaces, such as mobile image search or Discover, it has to be scrolled into view. Google adds that “Scrolling away and back, or paging away and back, during a single query or session does not count as multiple impressions.”
What counts as a click
A click is counted when the user leaves Google for your page. A click that starts a new Google search, such as tapping a suggested query, is not a click for you. Google states that “Clicking a search result to an outside page, returning, then clicking the same link again counts as only one click.”
How average position is averaged
Position is calculated only for Google Search, not for Discover or Google News. For each search where your site gets an impression, Google takes the topmost position of your property (or of the page, in the Pages table). Google puts it this way: “In Search Console, the metric is shown as average position, which averages the position value for all impressions”.
Google's own example: one query shows your site at positions 2, 4 and 6, so it counts as 2. Another shows it at 3, 5 and 9, so it counts as 3. “The average position across these two queries is (2 + 3)/2 = 2.5.” Because the value is taken per impression, a query with many impressions moves the average far more than a query with a few.
Three more rules explain most surprises:
- “A link must get an impression for its position to be recorded.” If you rank on page 3 and nobody goes there, you get no impression and no position.
- “Note that ads do not occupy a search position.”
- An element such as a carousel or a knowledge panel takes one position, and all links in it share that position. A result at position 11 can be the first result on page 2 on desktop, a knowledge panel on the right, or a row of images.
That is why a site-wide average position is close to meaningless. If you start ranking for many new queries at positions 30–50, your impressions rise and your average position gets worse, even though nothing has dropped. Google recommends: “We recommend that you monitor change in position over time, particularly sudden position changes, as well as absolute position.”
The report never tells you where you rank for a single person. Results depend on location, device, time and search history, so a manual search can show a different position. Google notes: “Even if a query appears in your list, you might not see your site in results if you run the same query in Google Search.”
Aggregation by property vs by page
This is the single most important rule in the report. Google counts the same searches in two ways:
- By property: “All results for the same query that point to the same Search Console property are counted once in total.” Several results from your site on one page are one impression, and the position is your topmost one.
- By page: “Each unique URL in a Search result is counted separately, even if they point to the same site.”
The chart is always aggregated by property. The Queries, Countries, Devices and Dates tables are too. The Pages and Search appearance tables are aggregated by page. Adding a page or search appearance filter also changes how the data is aggregated, which can make the chart totals rise.
The practical consequence, in Google's words: “the click-through rate (CTR) and average position are generally higher when aggregating by property, if multiple pages from the same site appear in the Search results.” It also explains why the sum of rows in the Pages table can be larger than the chart total, and why adding a page filter can make chart totals rise.
Data is also attributed to the canonical URL. “When a user clicks a duplicate URL in Search results, the click counts toward the canonical URL, not the URL the user visits.” If a page you expect is missing from the Pages tab, check in URL Inspection which URL Google chose as canonical; the canonical tags lesson covers how that choice is made.
Finally, data appears only in the property that owns the URL. A URL-prefix property for https://example.com/ will not show data for https://shop.example.com/. A Domain property covers all subdomains and both protocols.
Dimensions
Queries
The search terms that showed your site. Query matching is not case-sensitive. Two limits apply only here: rare queries are anonymised and left out of the table, and Google keeps only the most important rows: “Due to internal limitations, Search Console stores and shows only the most important data rows.” When you need more of the long tail, Google points to bulk data export, covered in the lesson "Exports, API and Looker Studio".
Click any query to filter the whole report to it, then open the Pages tab to see which URLs Google showed for it.
Pages
“The page dimension groups data by the final URL linked by a Search result after any redirects.” The table is aggregated by page, and data goes to the canonical URL. For image search, the Pages tab lists the pages users land on, not the image files.
Countries
The country where the search came from. Use it to separate markets before you judge a trend. A drop in one country can disappear inside a stable total.
Devices
Desktop, mobile or tablet. CTR and position often differ by device because the results pages look different, so compare devices with each other rather than with a site-wide average.
Search appearance
The type of result or feature that was shown, for example Review snippet, Product snippets, Merchant listings, Videos, Discussion forums or Translated results. The list shows only the types your site actually had impressions for. The table is aggregated by page. Two caveats: “You can’t filter by multiple Search appearances.”, and clicks are assigned to a URL rather than to the feature, so “If you filter by Search appearance, it’s not guaranteed that all clicks for a given URL were on the link with the filtered feature type.” Some older types, such as FAQ rich results and How-to rich results, are deprecated and no longer receive data.
Dates
Data grouped by day, week or month, depending on the granularity you pick above the chart. “All dates are in Pacific Time Zone (PT).” “Weeks run from Sunday to Saturday.” Months are calendar months. If your date range starts mid-week, the first and last weekly points are incomplete, so do not read them as a drop.
Search types and the Discover and News reports
The Search type filter decides which Google Search results the report covers. You see one type at a time, or you compare two.
| Search type | What it covers | Note |
|---|---|---|
| Web: text-based | Text queries typed into the standard Google search bar. | The default view. Results with images or videos in the main results also count here. |
| Web: multimodal | Searches with images. “This includes searches originating from Google Lens, Circle to Search on Android, uploaded images, and Chrome image search.” | No Queries tab: “Because multimodal searches mostly use images rather than text, specific text query data isn’t available for this traffic.” |
| Image | Results shown in the Google Images tab. | The Pages tab shows the landing pages, not image URLs. |
| Video | Results shown in the Google Videos tab. | Videos in the main web results are in Web, with the Videos search appearance. |
| News | The News tab and the news search results view in Google Search. | Not the same as the separate Google News report. |
Two surfaces have their own reports. The Discover report covers Google Discover feeds. It has no queries and no position, and “All data is aggregated by page: if two Discover results from the same property appear in the same Discover list, each impression is counted separately.” Discover traffic also moves more than search traffic because Google recommends content without a query. The Google News report covers news.google.com and the Google News apps.
You cannot add the reports together inside Search Console. “Although you can’t combine the data into a single view within Search Console in the browser, you can export the data to compare performance across these different sources.”
Filters and regular expressions
Click + Add filter to filter by query, page, country, device or search appearance, or simply click a row in the table. Filters combine with AND, so you can look at, for example, mobile searches from France for pages in /blog/. Search type and date are always present and cannot be removed.
Containing, not containing, exact
For queries and pages you can match a single substring (containing), exclude it (not containing), match one exact query or URL, or use a regular expression. For substring matching, Google says: “The match is not case-sensitive, but is otherwise exact, including any spaces.” For countries and devices, choosing several values shows their combined data.
Regex: the rules
Choose Custom (regex) in the query or page filter, then Matches regex or Doesn't match regex.
- Syntax. “The RE2 syntax is used.” RE2 has no lookahead, lookbehind or backreferences. Where you would use a negative lookahead elsewhere, use Doesn't match regex instead.
- Partial match. The pattern can match anywhere in the query or URL. Anchor it with
^(start) and$(end) when you mean the whole string. - Case. “Default regex matching is not case-sensitive.” To change that, “You can prepend (?-i) to the beginning of your expression for case-sensitive matches.”
- Full URLs. The page filter matches the full URL, including
https://and the host. In a Domain property, URLs fromwww, other subdomains andhttpall appear, so write patterns that allow for them or start from the path. - Escape special characters. A dot means any character, so write
example\.com,\?and\.pdf.
example|exmaple|exampelBrand (Queries, Matches regex). Add misspellings and product names. Use Doesn't match regex with the same pattern for non-brand.
^(who|what|why|when|where|how|which|can|does|is|are)\bQuestion queries. Queries that start with a question word.
\b(best|top|vs|review|reviews|cheap)\bCommercial investigation queries.
^(\S+\s){4,}\S+$Long-tail queries of five words or more.
^https://(www\.)?example\.com/blog/One folder (Pages). Add (blog|guides) for several folders.
^https://example\.com/pricing/$Exactly one page, without parameters or subpages.
\?URLs with parameters that received impressions.
\.pdf$File types, here PDFs that appear in search.
/product/[0-9]+/?$A URL template, here product pages ending in a numeric ID.
(?-i)/Products/Case-sensitive match, to catch uppercase duplicates of /products/.
^ or $; replace example.com and the brand with your own.The built-in branded queries filter
For many sites, the Query filter also offers Branded and Non-branded, classified by Google. It saves you writing a brand regex, with limits: “This filter provides data starting from when it was first introduced on March 11, 2025.” “The filter isn’t available for sub-properties (for example, https://example.com/blog/) or for sites with a low number of impressions.” Google also warns that “Some queries might be incorrectly identified as branded or non-branded.” A brand regex remains useful where the filter is missing or when you need to control exactly what counts as brand.
Google is also testing an AI-assisted tool that sets up filters and comparisons from a typed request. It is experimental and shown only to some users; always check the filters it applies.
Comparisons
A comparison puts two groups side by side: two date ranges, two devices, two countries, two search types, two search appearances, or two queries or pages. Open the date filter or any other filter and choose Compare. “When you compare two values, the results table will display a Difference column to compare values in each row.” Sort by that column to find the biggest winners and losers.
Rules to keep in mind:
- “You can have only one comparison at a time.” A new comparison replaces the old one.
- Compare like with like. Compare 28 days with the previous 28 days, or with the same 28 days a year earlier for seasonal businesses. Google recommends weekly or monthly granularity because it “neutralizes the "day-of-the-week" effect”.
- Comparing pages or search appearances switches to page aggregation, so “Keep in mind that comparing by page or search appearance, the metric calculation for CTR, impressions, and clicks might change.”
- A
~in one group means the value is too rare in that group to show; filter by that value to see both numbers.
| Page | Last 28 days | Previous 28 days | Difference | Position, last / previous |
|---|---|---|---|---|
| /blog/seo-checklist/ 1 | 1,240 | 1,610 | −370 | 6.8 / 3.9 |
| /blog/regex-guide/ | 410 | 120 | +290 | 5.2 / 12.7 |
| /pricing/ | 860 | 790 | +70 | 2.1 / 2.3 |
| /features/ 2 | 320 | 335 | −15 | 3.4 / 3.3 |
| /blog/conference-2025/ 3 | ~ | 45 | ~ | – / 8.6 |
- 1Real decline: the checklist lost clicks and about three positions. Check the queries behind it (click the row, open Queries) and the pages now ranking above it.
- 2Normal noise: −15 clicks at a stable position on /features/ is not worth a meeting.
- 3Too rare to show: a
~means the value is too small in that period, not necessarily zero.
Data limits to know before you draw conclusions
Anonymised queries Queries
Queries searched by very few people are hidden for privacy. They are in the chart totals, but not in the Queries table, and they drop out of the totals as soon as you add any query filter. That is why brand plus non-brand rarely adds up to the total. Google's guidance is that “When filtering by page or query, the "match" and "does not match" totals may not add up to the unfiltered total, due to the omission of anonymized queries and data truncation.”
1,000 rows in the table Table
The browser table stops at 1,000 rows, and the export from the browser has the same limit. Large sites lose most of the long tail. Filter by folder or country to see a different 1,000 rows, or use the API or bulk data export.
Data truncation Storage
Beyond anonymisation, Search Console stores only the most important rows. Even an export or the API does not give you every query.
Freshness and preliminary data Time
“Collected data is usually available in 2–3 days.” The newest days may be preliminary and are drawn as a dotted line. The report shows complete days by default; the 24-hour view shows hourly, preliminary data. Never compare an unfinished day with a finished one.
Pacific Time Time
Daily data is in Pacific Time, except in the 24-hour view, which uses your local time. If your analytics use another time zone, daily numbers will not line up exactly. Compare weeks or months instead.
About 16 months of history Retention
The report keeps roughly the last 16 months. If you need year-over-year comparisons beyond that, export the data regularly or set up bulk data export.
Exports turn ~ and - into zeros Export
“Values shown as either ~ or - in the report (not available/not a number) will be zeros in the downloaded data.” A position of 0 in a spreadsheet means no position, not position 0.
It is not your analytics Other tools
Search Console counts clicks on Google; your analytics count sessions on your site. They differ for privacy, processing, time zones and consent, and because “Some tools, such as Google Analytics, track traffic only from users who have enabled JavaScript in their browser.” Use each tool for what it measures; the lesson "GA4 for SEO" covers the analytics side.
Typical analyses
CTR opportunities: high impressions, low CTR
- Turn on all four metrics and open the Queries tab for the last three months.
- Sort by impressions and look for queries with a CTR clearly below others at a similar position.
- Search the query yourself and look at what is on the page: AI Overviews, ads, a featured snippet, a video block, competitors' titles.
- Click the query, then open Pages to see which URL Google shows. If it is the wrong page, the fix is content and internal links, not the title.
- Rewrite the title and the meta description to match the intent, then annotate the date and compare four weeks before with four weeks after.
Google describes the logic: “A low CTR can indicate that users see your page in Search results but don’t think it answers their query.” Keep expectations realistic: “Don't assume that you need to capture 100% of a query; there are a lot of variables that determine which page a user clicks.”
Queries and pages at average position 8–20
These are the "striking distance" terms: the bottom of page 1 and page 2, where a moderate improvement brings real clicks. Use the filter icon above the table to show only rows where Position is greater than 7.9 and smaller than 20.1, and sort by impressions. The row filter works only on the up to 1,000 rows already in the table, so narrow the report first with a folder filter. Check the query and the page together, because a page-level average mixes many queries. Then improve the content for that intent, add internal links from strong related pages, and sharpen the title.
Declining pages
Compare the last 28 days with the previous 28 days, open Pages, and sort by the Difference in clicks. For each loser, check whether impressions fell (lost rankings or lost demand) or only CTR fell (a changed results page or a new competitor title). Then compare with the same period last year to rule out seasonality. If a whole folder drops at once, look for a technical cause: the lesson "Page indexing report: every status" shows where to start.
Brand vs non-brand trend
Use the Branded filter or your brand regex, with weekly granularity. Brand demand grows with your marketing; non-brand growth is what SEO work mostly shows up in. Report them separately, and remember that anonymised queries are missing from both.
Unexpected queries
Scan the Queries tab for terms that have nothing to do with your site. Google is direct about it: “If unexpected words (like "Viagra" or "casino") appear, it's likely that your site has been hacked.” Check the Security issues report and the pages behind those queries.
One query, several pages
Click a query and open Pages. If several of your URLs take turns for the same query, you may have cannibalisation; the lesson "Keyword cannibalisation" explains how to confirm and fix it.
Check the pages your Performance report flags
OurSEO Tools runs a 69-point checklist and a technical crawl of up to 1,000 pages with status code, canonical, indexability and load time per URL, so you can see whether a declining page has a technical cause.
Common mistakes
- ✕Reading site-wide average position as a rankingIt is an average of topmost positions over all impressions. New rankings far down the page make it worse while traffic grows.
- ✕Adding up the Pages table to get total clicksThe table is counted by page and the chart by property. Use the chart total for the site.
- ✕Expecting filters to add upMatching plus not matching rarely equals the total because anonymised queries drop out under any query filter.
- ✕Treating the 1,000 rows as all your queriesThe table and browser export are capped; the long tail is in the API and bulk export, and even there not every query.
- ✕Panicking about the last two daysRecent data is preliminary and arrives with a lag of 2–3 days.
- ✕Comparing a Monday with a SaturdayCompare equal periods and use weekly or monthly granularity.
- ✕Forgetting the search typeThe default is Web. Image, Video and News traffic, and the Discover and Google News reports, are separate.
- ✕Matching numbers against analytics one-to-oneClicks are not sessions; time zones, consent and JavaScript tracking all differ.
- ✕Looking for a duplicate URL in PagesData goes to the canonical URL, so the duplicate shows nothing.
- ✕Writing regex as if it were a full matchPatterns match anywhere.
/blog/also matches/en/blog/and?ref=/blog/; anchor with^when you need to.
FAQ
Why is the total in the chart lower than the sum of the Pages table?
The chart counts your property once per search, while the Pages table counts every URL. When several of your pages appear for one query, the page table counts more impressions and clicks than the chart.
How is average position calculated?
For each impression, Google takes your topmost position in that search, then averages those values. In Google's example, positions 2 and 3 in two queries give (2 + 3)/2 = 2.5. Without an impression no position is recorded.
What are anonymised queries?
Queries searched by very few people, hidden to protect privacy. They are included in the chart totals but not shown in the table, and they are dropped from totals when you apply a query filter.
Which regex syntax does Search Console use?
RE2. Matching is partial and not case-sensitive by default; start the pattern with (?-i) for case-sensitive matching. Lookarounds and backreferences are not supported, so use "Doesn't match regex" to exclude.
How fresh is the data, and in which time zone?
Data usually arrives within 2–3 days, and the newest points may be preliminary. Daily data is in Pacific Time; only the 24-hour view uses your local time.
Can I see more than 1,000 queries or pages?
Not in the browser table. Filter the report into smaller segments, or use the Search Console API or bulk data export, which give you much more of the long tail, though still not every anonymised query.
Sources
- Search Console Help — Performance report (Search results): Overview and basic setup
- Search Console Help — What are impressions, position, and clicks?
- Search Console Help — Performance report (Search results): About the data
- Search Console Help — Performance report (Search results): Dimensions and data groupings
- Search Console Help — Performance report (Search results): Advanced filtering and comparison
- Search Console Help — Performance report (Search results): Troubleshooting data discrepancies
- Search Console Help — Performance report (Search results): Common tasks and use cases
- Search Console Help — How are you performing on Google?
- Search Console Help — Performance report (Discover)
Quotes checked against the official pages on 30 October 2026.