Performances Report (GSC)

How Recherche Google Console's Performances report fonctionne — ce que clicks, impressions, average CTR, and average position really count, plus anonymized requêtes and limites.

Première publication : 23 juin 2026 · Dernière mise à jour : 3 août 2026 · Advanced
Langues

Pour website properties, Recherche Google Console's Performances report montre réel clicks, impressions, CTR, and average position à travers page, requête, country, device, appearance, and date dimensions. Platform properties pour Instagram, TikTok, X, and YouTube utiliser connexe metrics to report how posts perform on Recherche Google, Découvrir, and Google News—pas à l’intérieur the platform itself. The website report remains privacy-filtered and row-limited; ne faites pas assume its API and BigQuery paths prise en charge platform properties unless Google documents que prise en charge.

TL;DR — The Performances report is réel served-results données — clicks, impressions, average CTR, average position — à travers six dimensions, kept pour 16 months. Impressions and position are counted per requête, par page and alors averaged; position is the topmost position votre property held pour que requête, and it’s seulement recorded quand there’s an impression. It’s privacy-filtered, pas sampled: anonymized requêtes are dropped from the requête table but stay in the chart totals, so rows won’t sum. The UI caps at 1 000 rows — the Search Analytics API renvoie up to 25 000 rows per requête (pas the 50 000 you’ll voir repeated), and BigQuery bulk export is the chemin pour everything. Web Search, Découvrir, and Google News are separate reports.

Evidence for this claim Search Console's Performance report exposes clicks, impressions, CTR, and average position, with dimensions including query, page, country, and device. Scope: Current Search performance report metrics and dimensions. Confidence: high · Verified: Google Search Console: Performance report Evidence for this claim Performance tables omit anonymized queries for privacy, so query-row totals may not equal chart totals. Scope: Current anonymized-query behavior. Confidence: high · Verified: Google Search Console: Anonymized queries

Scope: the mechanics ci-dessous are pour website properties. Platform properties have leur propre post/content reporting à travers Search, Découvrir, and News. Google’s current platform-property documentation ne fait pas establish que the legacy Search Console API or BigQuery bulk export supports ceux properties, so ne faites pas extend the API/export guidance ci-dessous to social accounts sans testing and documentation.

It’s réel données, pas a model

The premier chose to internalize: ces numbers come from réel results Google showed to réel personnes. John Mueller put it directement — the report is “fondé on réel résultats de recherche que were affiché to utilisateurs. It’s pas a theoretical number, but plutôt a number fondé on réel results.” It’s filtered by privacy rules and reshaped by averaging — pas a statistical sample — but it isn’t invented.

That’s aussi pourquoi it’s the ground truth pour votre site in a façon a third-party rank tracker can’t be — it’s Google reporting on Google.

The four metrics, exactly how they’re counted

Clicks

A click is counted quand a utilisateur clicks via to une page outside of Google. Google’s wording: “quelconque click que sends the utilisateur to une page outside of Google Search, Découvrir, or News is counted as a click.” Clicks que garder the utilisateur à l’intérieur Google (expanding a result, dire) don’t count. Un documented exception: the AMP reader opens à l’intérieur Google but is encore counted as a click.

Impressions

An impression signifie “a utilisateur has seen (or potentially seen) a lien to votre site in Search, Découvrir, or News.” The “potentially seen” partie matters: on a normal results page, “an impression is counted whenever an item apparaît in the current page of results, si or pas the item is scrolled into view” — so vous obtenir an impression même si the utilisateur jamais scrolls bas to votre result. The exceptions are carousels, expandable widgets, and infinite scroll, où “the item doit typically be scrolled into view to count an impression.”

There’s aussi an aggregation wrinkle, and it isn’t a toggle vous choisir — it follows the dimension you’re viewing. The chart is toujours aggregated by property. In the table, grouping by Requêtes, Countries, Devices, or Dates aggregates by property aussi (un impression pour the whole card, même si several of votre URLs matched), pendant que grouping by Pages or Search appearance aggregates by page (the même card peut montrer up as several pages with un impression chaque). So switching qui dimension you’re viewing peut modifier votre totals sans vous touching a filter.

Average CTR

Average CTR is simplement “the click count divided by the impression count.” It’s “average” parce que it’s computed à travers whatever définir of rows you’re looking at, so filtering by page or requête changements it.

Average position

Ce is the la plupart misread metric on the report, so it’s worth being precise. Position is “an attempt to montrer approximately où on lune page a donné lien was seen, relative to autre results,” where “1 is the topmost position.” The reported number is “the topmost position occupied by a link to your property” — averaged à travers every requête où vous appeared. Mueller à nouveau: “Si là are multiple URLs from votre website qui are affiché in the résultats de recherche page we’ll utiliser the topmost un pour ce average.”

Two consequences:

  • It’s seulement recorded on an impression. “A lien doit obtenir an impression pour its position to be recorded.” So page-2 and page-3 appearances que nobody scrolled to don’t drag votre average bas — they’re simply pas counted.
  • A worked exemple. Dire une page ranks #1 pour its head term but aussi surfaces at positions 20–40 pour fifty long-tail variants. Its average position pourrait lire 12. That’s pas “you rank 12th” — it’s the blend. Accuracy improves with impression volume; thinly-seen requêtes faire the average noisier.

Ce is aussi pourquoi votre average position won’t match votre rank tracker. Mueller’s explanation: “Vous pourrait pas toujours voir the même position quand vous vérifier yourself. That’s généralement due to personalization, or geo-targeting, or parce que of short-lived visibility in search.”

Dimensions and the search-type filter

Vous pouvez slice by six dimensions — Requêtes, Pages, Countries, Devices, Search appearance, and Dates — and the Search appearance dimension breaks out rich-result types (videos, AMP, recipes, and so on) où ils appliquer. Dans Web Search there’s a search-type filter pour web, image, video, and news results.

Don’t confuse que filter with Découvrir and Google News, qui are separate reports in the left nav, pas valeurs of the Web-Search search-type filter. Si vous lire votre Web Search numbers as votre whole Google footprint, you’re manquant ceux entirely.

16 months, comparison mode, and the personalization caveat

The report retains the la plupart recent 16 months of données, so anything older nécessite to be exported and stored yourself. Date ranges prise en charge comparison mode (period over period). And si vous run a requête yourself and don’t voir votre propre site, that’s attendu — results are spécifique to the temps, placer, device, and recent history of the person searching.

Un plus freshness remarque: there’s an optional 24-hour view que montre données from the dernier disponible day with seulement a few hours’ delay — utile pour checking how newly publié content is picking up. The Search Analytics API extends que with an hourly HOURLY_ALL données state covering up to 10 days, qui Google explicitly flags as données que “might be partial.” Treat anything from the la plupart recent day or two as preliminary and let it settle avant drawing conclusions.

Pourquoi votre données is “missing”: anonymized requêtes

Ce is the section I have first-party données on. To protéger privacy, Google withholds low-volume and sensitive searches from the requête table pendant que encore counting les in the chart totals. Google’s propre phrasing, qui I quoted in my study of anonymized GSC requêtes: “To protéger utilisateur privacy, the Performances report doesn’t montrer tout données. Par exemple, we pourrait pas track some requêtes que are made a very petit number of times or ceux que contain personal or sensitive information.”

How beaucoup is hidden? In my Ahrefs study, “Almost Half of GSC Clicks Go to Anonymous Requêtes” (publié February 2025), à travers un month of données spanning 146 741 websites and nearly 9 billion total clicks, “ces instances of anonymous requêtes account pour 46,08% of tout clicks in our study.” Nearly half. In a February 2026 follow-up, I pulled April-2025 données à travers 22 billion clicks and 887 534 GSC properties and trouvé anonymized requêtes had crept up to 46,77% — so ce isn’t a fluke of my original sample, and the direction is up, pas bas.

Two practical takeaways:

  • Votre requête table va jamais sum to votre total clicks. The gap is the anonymized requêtes. That’s pas a bug — it’s the privacy filter plus property-vs-page aggregation doing exactly ce que they’re designed to do.
  • It’s probable getting worse, pas meilleur. As AI Overviews and autre fonctionnalités reshape the SERP, expect plus of the click données to fall ci-dessous the visibility threshold.

Au-delà 1 000 rows: the API and BigQuery bulk export

The UI caps quelconque export at 1 000 rows. The la plupart courant “how do I get more” question has two réel réponses — and un persistent myth to kill:

  • Search Analytics API (searchanalytics.query). Its rowLimit field has a “Valid range is 1-25,000; Default is 1,000.” So vous obtenir up to 25 000 rows per requête, paginated with startRow (“Zero-based index of the premier row in the réponse”). Pas 50 000 — the 50 000 figure floating autour s’applique to Looker Studio, pas ce endpoint. The Inspection d’URL outil and the broader Search Console API are siblings ici pour programmatic accès.
  • BigQuery bulk export. Ce is the chemin quand vous vouloir everything. It writes tout the performances données disponible to votre property — and crucially, au lieu de silently dropping anonymized requêtes, it folds les into a special aggregated row per site/URL per day, so impressions and clicks encore sum correctement. There’s aucun daily 1 000-row cap. The données lands in searchdata_site_impression (aggregated by property) and searchdata_url_impression (aggregated by URL).

Courant misreadings to éviter

  • “Average position 1 means I rank #1.” Aucun — it’s the topmost lien, averaged à travers tout votre requêtes.
  • “My query table should add up to my total clicks.” Aucun — anonymized requêtes push the chart total ci-dessus the visible rows.
  • “GSC clicks should match my Google Analytics sessions.” Aucun — différent definitions, deduplication, consent and measurement gaps, and timing tout diverge.
  • “GSC average position should match my rank tracker.” Aucun — personalization, geo, device, and temps pull live checks apart.
  • “The API gives 50,000 rows.” It’s 25 000 per requête; paginate with startRow.
  • “Discover/News traffic is in my Web Search numbers.” It isn’t — separate reports.
  • “More impressions means something’s broken.” Impressions peut rise from nouveau requêtes or SERP fonctionnalités with aucun modifier in clicks; toujours lire impressions alongside CTR and position, pas alone.

Pour the broader walkthrough of every report, voir the Recherche Google Console hub; the Page Indexation report covers the coverage/indexation side plutôt que ce performances side.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.