October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk3 min

Why Your Search Console Script Undercounts Clicks and Impressions (and What You Can Fix)

Search Console scripts can show fewer clicks than the chart for fixable reasons and for reasons Google controls. Here is how to tell which, and what to do.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If your Search Console script reports fewer clicks or impressions than the Performance report chart, there are two separate causes. Some are bugs in your script: a low rowLimit, no startRow paging, mismatched filters or dimensions, or comparing fresh data with finalized data. Others sit inside Search Console: Google withholds anonymized queries and caps the rows it returns. Fixing your code solves only the first group. The second group cannot be recovered by any script.

The two kinds of undercounting

Cause Where it lives Can you fix it?
Default or low rowLimit, no paging Your script Yes
Filters, dimensions, search type or date range differ from the report Your script Yes
Recent data still processing Timing Yes, by rechecking later
Anonymized queries withheld Search Console No
Row ceiling on API and exports Search Console Partly, via bulk export

What Google says about row completeness

Google’s Search Analytics: query reference states that the API “is bounded by internal limitations of Search Console and does not guarantee to return all data rows but rather top ones.” The default is 1,000 rows per request, the maximum rowLimit is 25,000, and you page with startRow. Results are sorted by clicks descending, with arbitrary order among ties, and dates with no data are omitted.

As an Amazon Associate I earn from qualifying purchases.

Google’s 2022 Search Central post on filtering and limits adds that API exports have an upper limit of 50,000 rows per day per site per search type, though a given request may not reach it. It also says the Search Console interface exports at most 1,000 rows.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Anonymized queries: the part no script can recover

Google withholds query text for queries it treats as anonymized for privacy. Per the same 2022 post, that applies to queries searched by only a few dozen users over a two-to-three-month period. Those clicks and impressions can still count in the chart total, but they do not appear as query rows. Applying a query filter also excludes them.

So summing every query row will not necessarily equal the unfiltered chart total, even with perfect code. Your script is not wrong, and it cannot “fix” this gap.

Diagnostic sequence

  1. Match the scope. Use the same property, search type (web, image, video, and so on) and date range as the report.
  2. Compare like with like. Compare the report’s unfiltered total with an API request that has no query dimension, not with a sum of query rows. For site-wide totals, use the aggregate.
  3. Inspect filters and dimensions. Any filter, and any query dimension, changes what is counted. Query and page breakdowns also put more load on the API, and page-plus-query combinations are especially heavy.
  4. Page properly. Set rowLimit to 25,000 and increase startRow by the number of rows returned until a request returns no rows. Don’t stop at the default 1,000.
  5. Log every request: rowLimit, startRow, returned row count, date range, dimensions, filters and data state. A silent truncation shows up as a round-number row count, such as exactly 1,000.
  6. Treat recent days as provisional. The query API supports fresh and hourly data states. Google says recent rows can be incomplete while processing continues, and the response can include metadata on the first incomplete date or hour (see the API reference). Label those rows and re-pull after processing.

This sequence is guidance inferred from Google’s documented behavior, not the result of testing a specific script.

When the API ceiling is the problem

If a large site hits the daily row cap even with correct paging, Google’s bulk data export sends Search Console data to BigQuery on an ongoing basis and is not affected by the daily data row limit. It still excludes anonymized query text. Google says Search Console doesn’t charge for the export, but BigQuery storage and queries may cost money, so review its pricing; Google’s BigQuery efficiency tips cover keeping those costs down. Note that the export is ongoing, so it won’t backfill history from before you set it up. Check Google’s setup documentation for the details.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Also check Google’s usage limits for request quotas, which are a separate matter from row completeness.

Don’t use Search Console as a Google Analytics substitute

Google describes Search Console as the source of truth for Search performance and Google Analytics as the source for on-site behavior. Their click and session counts mean different things and shouldn’t be expected to match. See Google’s guidance on using both.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

The Bottom Line

<p>Fix paging, scope and timing first; those are yours to control. Then accept that anonymized queries and the row ceiling are Google’s limits, and use unfiltered aggregates for totals and BigQuery export for depth.</p>

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.