Search Click Curve Builder

Your own curve, from your own clicks.

  • Your own data
  • Ranges, not guesses
  • Brand split option
A short staircase of soft rounded green blocks on a pale desk with a tiny rounded flag standing on the top step, in soft daylight.

The guide

Borrowed click curves describe someone else's searches. Build yours from your own clicks

Click-through rate by position depends on brand, page features and devices, so the only curve worth planning with is one built from your own Search Console rows, read as ranges.

  • (2 + 3) / 2 = 2.5 Google's own example of how average position is computed
  • 19.9% vs 29.0% example rate at position 2 without and with brand rows
  • 107 to 168 clicks worked example: 1,000 impressions moved from position 6 to 3
  • 1,000 rows most rows the Search Console interface will export
Read the full guide Fold the guide 7 min · 18 sources

Every few months a new chart circulates showing what share of searchers click the first result, the second, the third and so on down the page. The numbers differ from chart to chart, sometimes by a factor of two, and each is presented as the way search works. People paste them into forecasts, multiply by search volume and report the traffic a ranking is worth.

The charts are not exactly wrong. They are answers to a question about other people’s searches. Your queries, your page titles, your mix of phones and desktops and the boxes that happen to sit above your listing are not in them. A curve built from someone else’s clicks tells you about them.

There is a better source sitting in your own account, and it is more honest about what it does not know.

What the number actually measures

Click-through rate is a ratio: clicks on a link divided by the number of times it was shown. Google’s Search Console help defines it in exactly those terms for search results, as clicks divided by impressions. The definitions of the two parts matter more than the division.

An impression is counted when a link to your site appears in the current page of results, whether or not the searcher scrolled down to it. Inside a carousel or an expanding section it usually has to be scrolled or opened into view before it counts. So an impression is closer to “could have been seen” than to “was seen”, and a link low on a long page collects impressions from people who never got that far.

Position is stranger still. Search Console records the topmost position your link held in each search, and the reports show the average over all the searches in which you appeared. The help page gives its own example. One query shows you at positions 2, 4 and 6, so it counts as 2; another shows you at 3, 5 and 9, so it counts as 3; the average is (2 + 3) / 2 = 2.5. A position is only recorded when the link earned an impression, and Google warns that the method may change.

That average hides a great deal. A row reading 4.5 might be a query where you sit steadily in fourth or fifth place, or one where you were first for a week and ninth for the rest of the month. Those two rows can have very different click rates, and nothing in the export tells them apart. Each element on the page also takes a single position, so a carousel of several results all share one number, and a large panel in the side column can have a high position number while being one of the most visible things on screen.

Why borrowed curves mislead

The first distortion is brand. Someone who types your company’s name already wants your site, and will click it at rates no generic query can approach. Wikipedia’s article on search engine results pages describes how many kinds of result now crowd a page, yet for a search on your own name the searcher has usually chosen before the page loads. Mix those queries into a curve and the top positions look better than they will ever be for the queries you are actually trying to win.

The synthetic example in the tool shows the size of the effect. With its brand rows set aside, position 2 converts at 19.9% of impressions. Put the brand rows back and the same bin reads 29.0%, because two dozen navigational queries with high rates now dominate the impressions there. Nothing about ranking changed. Only the mixture did, which is the same trap that statisticians call Simpson’s paradox when a trend inside groups disappears or reverses once the groups are pooled.

The second distortion is what else is on the page. Google’s gallery of visual elements lists text results with sitelinks, groups of related questions, image and video blocks and more, and notes that the same result can look different depending on the device, the query and the language. A featured snippet at the top answers some questions outright. Position 3 under a block of related questions is not the same place as position 3 under nothing at all.

The third is device and audience. The performance report reminds readers that results depend on the time, place, device and recent history of the person searching, and the reporting interface can split your data by device for exactly that reason. A site read mostly on phones lives on a different page from one read at desks. An industry average blends all of these into one smooth line that describes nobody in particular.

Building your own curve

The raw material is the performance report itself. Exported from the Queries or Pages tab, it gives one row per query or page with clicks, impressions, the click-through rate and the average position, the same four fields the Search Console API returns. It comes as plain comma-separated text of the kind RFC 4180 describes, with quotes around any field that contains a comma, or as a ZIP of such files; a browser can unpack the usual DEFLATE compression itself with its built-in decompression stream, so nothing needs to leave your computer.

Know what is missing before trusting the result. Google’s own deep dive into these limits explains that anonymized queries, those not issued by more than a few dozen users over two to three months, are left out of the tables although they count in the totals. The interface also exports at most 1,000 rows, while the API can return up to 50,000 rows per day per site per search type. A query export is therefore a sample of your busiest searches, not a census.

From there the steps are plain. Drop rows with too few impressions to say anything, set aside queries containing your brand terms, and group the rest by average position: one bin per whole position from 1 to 10, then a bin for 11 to 20 and another for everything deeper.

Within each bin, add up the clicks and divide by the added impressions. That is the same as averaging each row’s own rate weighted by its impressions, and the weighting is not a detail. A simple average of row rates lets a query with twelve impressions count as much as one with twelve thousand. In a synthetic test where busy queries also convert better, the unweighted average came out 57% below the true pooled rate, while the weighted one was off by less than a tenth of a percent.

Each bin then needs an honest range. The usual tool for a proportion is the Wilson score interval, which the NIST engineering statistics handbook recommends over the simpler normal formula, and which Wikipedia notes can be used safely with small samples and skewed observations.

But the Wilson interval assumes independent trials with one shared probability, and impressions grouped by query are nothing of the kind: every query has its own appetite for clicks. So the interval here uses an effective number of impressions, the raw count divided by a design effect that compares how much the bin’s rate really varies from query to query, measured by a jackknife over rows, with how much it would vary if every impression were an independent coin. When a handful of rows hold most of a bin’s impressions, Kish’s effective sample size shrinks and a Student t multiplier widens the range further.

That combination is a judgment call, so it was tested rather than trusted. Across 2,000 seeded synthetic exports with known true rates, the 95% intervals contained the truth in 94.6% of bins that held at least five rows. That is a property of made-up data built to resemble an export, not a promise about yours.

Finally, the bins are joined into a curve that never rises as position worsens, using isotonic regression by the pool adjacent violators algorithm. When a deeper bin happens to beat the one above it, the two are pooled into their weighted average, which is the least-squares answer under that one constraint and takes a single pass over sorted data.

Estimating ranges, not single numbers

Now the question people actually ask: what is it worth to move a query from sixth place to third? In the tool’s built-in example, with brand rows excluded, the fitted curve gives about 4.2% at position 6 and 14.4% at position 3. For a query with 1,000 impressions, that is roughly 42 clicks now and 144 after the move.

The bin around position 3 holds 19 rows, but a few of them carry most of its impressions, so its 95% interval runs from 10.7% to 16.8%. Applied to the same 1,000 impressions, the honest answer is 107 to 168 clicks, a gain of about 65 to 127. Leave the brand rows in and the same move reads 161 clicks with a range of 110 to 181, a forecast flattered by searches that were never in play.

A range that wide is not a failure of the method. It is the information. A plan that only works at the top of the range is a plan that depends on luck, and one that still makes sense at the bottom can be defended.

Some things no curve of this kind can do. It holds impressions fixed, although climbing the page usually brings more of them. It cannot see the features above a particular result, so it averages across them. It describes the past and says nothing about whether a ranking can be won or kept, and click-through rate itself is a disputed influence on rankings. And average position will keep blurring the picture, because a single number is standing in for a whole spread of places.

What it does offer is a curve drawn from your own searchers, your own pages and your own mix of devices, with its uncertainty printed beside it. That is a smaller claim than a universal benchmark. It is also one you can check.

Sources

Every source consulted for this guide. Links checked October 20, 2026.

  1. What are impressions, position, and clicks? Google Search Console Help
  2. Performance report (Search results): Overview and basic setup Google Search Console Help
  3. A deep dive into Search Console performance data filtering and limits Google Search Central Blog
  4. Search Analytics: query Google for Developers, Search Console API
  5. Visual Elements Gallery of Google Search Google Search Central
  6. Click-through rate Wikipedia
  7. Search engine results page Wikipedia
  8. Simpson's paradox Wikipedia
  9. Binomial proportion confidence interval Wikipedia
  10. 7.2.4.1. Confidence intervals NIST/SEMATECH e-Handbook of Statistical Methods
  11. Design effect Wikipedia
  12. Ratio estimator Wikipedia
  13. Student's t-distribution Wikipedia
  14. Isotonic regression Wikipedia
  15. Isotone Optimization in R: Pool-Adjacent-Violators Algorithm (PAVA) and Active Set Methods Journal of Statistical Software (de Leeuw, Hornik and Mair)
  16. RFC 4180: Common Format and MIME Type for Comma-Separated Values (CSV) Files RFC Editor
  17. DecompressionStream: DecompressionStream() constructor MDN Web Docs
  18. ZIP (file format) Wikipedia