SEO Traffic Estimator from CTR by Ranking Position (Monthly Traffic from Search Volume, Gain from Ranking Higher)
Choose what to calculate, enter the monthly search volume and position, and press "Calculate". Your estimated monthly traffic is worked out from a CTR curve by position (the reference curve or your own), and a graph shows the estimated traffic at each position.
Table of Contents
-
What you can do on this page
-
What is this calculation used for?
-
How to Use
-
Formulas and figures
-
Formula for estimated monthly traffic (from search volume and CTR at a position)
-
Formula for the traffic gain from ranking higher
-
Formula for the required search volume (from the traffic goal and CTR at the target position)
-
Formula for the required position (find the required CTR and compare it with the CTR curve)
-
Formula for estimated conversions and revenue (from CVR and average order value, optional)
-
-
Symbols and terms
-
Good to know before you start
-
How to calculate it in Excel
-
How to calculate it in Google Sheets
-
How to calculate it in Python
-
How to write it in LaTeX and other math languages (copy and paste)
-
How to have ChatGPT do the calculation
-
DataChef Features
-
Related Features
-
NumberChef Calculators List
What you can do on this page
- Enter the monthly search volume and your current position (#1 to #10, #11 or lower, or not ranking), and a curve of click-through rate (CTR) by position gives you a rough estimate of your monthly traffic
- Add a target position to see the traffic gain and the percentage change from ranking higher, as in "How many more visits a month if I move from #5 to #3?"
- It also works backward: "What position do I need for 1,000 visits a month?" (the position that reaches your traffic goal) and "If I can rank #3, how much search volume do I need for 1,000 visits a month?" (the required search volume)
- Optionally enter the CVR (%) and the average order value ($) to also get estimated conversions and estimated revenue per month
- Besides the reference CTR curve, you can type in your own site's actual CTRs from Google Search Console in 11 fields (#1 to #10 and #11 or lower)
- A plain-language explanation of the formulas and copy-and-paste formulas for Excel, Google Sheets and Python are all on this page
What is this calculation used for?
Before writing an article, estimate how many people would come if you ranked near the top for the keyword. For a keyword with 3,000 searches a month, ranking #3 brings about \(3000 \times 11.0 \div 100 = 330\) visits a month. For a keyword with 300 searches a month, even #1 brings only \(300 \times 27.6 \div 100 \approx 83\) visits.
Sort your candidate keywords by this estimated traffic, and you know where to put your effort first. But keywords with more search volume usually have more competition, and you may only reach a lower position, so the trick is to estimate with a position you can realistically reach.
"Fixing this page will bring more traffic" is not enough to get a budget approved. For a keyword with 20,000 searches a month where you rank #8 now (CTR 3.3%, 660 visits), moving to #4 (CTR 8.4%) gives \(20000 \times 8.4 \div 100 = 1680\) visits, a gain of 1,020 visits a month.
With a 1% CVR and an $80 average order value, that is about 10 more conversions, or roughly $800 more revenue a month, stated in dollars. You cannot promise the ranking will improve, but an estimate of "this much changes if we move up" lets you discuss priorities with numbers.
Suppose your goal is "3,000 more visits a month from organic search". If you expect each article to rank #5 (CTR 6.3%) for a keyword with 2,000 searches a month, one article brings \(2000 \times 6.3 \div 100 = 126\) visits, so you need \(3000 \div 126 \approx 23.8\), about 24 articles.
On the other hand, if you want 1,000 visits a month from a single article, reaching it at #5 needs \(1000 \div 6.3 \times 100 \approx 15873.02\), rounded up to at least 15,874 searches (15,873 searches give \(15873 \times 6.3 \div 100 = 999.999\) visits, just short). You can see what size and how many keywords to target for the size of your goal.
The reference curve is just one shape this site uses as a standard, and real CTRs differ by site and type of search. In Search Console, take the keywords with an average position around #3 and total them up. The impressions and clicks give you your own site's CTR at #3 (for example, 4,000 clicks from 50,000 impressions is 8%).
Do this for each position and use the results as a custom curve, and your estimates become more accurate. It is especially worth it in fields with many rich results, or for keywords mixed with branded searches such as company names, where the gap from the reference curve is large.
The same thinking works for a personal blog. For a keyword with 1,000 searches a month where big sites hold the top spots and #8 is about the best you can do, you get about \(1000 \times 3.3 \div 100 = 33\) visits. If you can reach #2 for a less competitive keyword with 500 searches a month, you get \(500 \times 15.8 \div 100 = 79\) visits. A smaller keyword can sometimes bring more people.
Estimating with the position you can reach, not just the size of the search volume, makes it easier to decide which articles to write with the time you have.
Formulas and figures
Symbols and terms
Symbols
| \(T\) | T | Estimated monthly traffic. It stands for traffic (visits to a site). It is an estimate of how many people (sessions) come from that keyword's search results in a month, found with \(T = V \times \mathrm{CTR}_{r} \div 100\). |
| \(V\) | V | Monthly search volume. It stands for volume and is how many times the keyword is searched in a month. (Example - for 10,000 searches a month, \(V = 10000\)) |
| \(r\) | r | The ranking position. It stands for rank. Besides #1 to #10, this page treats #11 or lower (page 2 and later) as one position, and "not ranking" (not shown) as a CTR of 0%. |
| \(\mathrm{CTR}_{r}\) | CTR sub r | The click-through rate (%) at position \(r\). CTR stands for click-through rate, and the small \(r\) at the lower right is a subscript for "at position \(r\)". The values for all positions make up the CTR curve. On the reference curve, \(\mathrm{CTR}_{1} = 27.6\), \(\mathrm{CTR}_{3} = 11.0\) and so on. |
| \(\Delta T\) | delta T | The change (gain) in traffic. \(\Delta\) (delta) is a Greek letter that math uses for "change" or "difference". \(\Delta T = T_{\text{target}} - T_{\text{current}}\), and it is negative when the position gets worse. |
| \(\mathrm{CTR}_{\text{required}}\) | CTR required | The click-through rate (%) needed to reach the traffic goal. It is found with \(\mathrm{CTR}_{\text{required}} = T \div V \times 100\), and the lowest position on the CTR curve with at least this CTR is the "required position". |
| \(100\) | one hundred | The base of a percent. Multiply a decimal by 100 to get a percent, and divide a percent by 100 to get the decimal back (\(0.11 \times 100 = 11\%\), \(11\% \div 100 = 0.11\)). |
| \(\lceil\ \rceil\) | ceiling | The symbol for rounding the number inside up to a whole number (the ceiling function). \(\lceil 9090.9 \rceil = 9091\), while a whole number stays as it is, as in \(\lceil 5000 \rceil = 5000\). "Ceiling" refers to the nearest whole number at or above the number. |
| \(\mathrm{CVR}\) | C-V-R | The conversion rate (%). It stands for conversion rate: the share of visits that end in a goal action (a conversion), such as a purchase or a sign-up. |
| \(\mathrm{CV}\) | C-V | The estimated number of conversions. It is short for conversion and is found with \(\mathrm{CV} = T \times \mathrm{CVR} \div 100\). |
| \(P\) | P | The average order value ($). It stands for price and is the average revenue per conversion. |
| \(S\) | S | The estimated revenue ($ per month). It stands for sales and is found with \(S = \mathrm{CV} \times P\). |
Terms
| search volume | How many times a keyword is searched in a set period (usually a month). It is an estimate you can check in Keyword Planner or other SEO tools, and it changes with the season and the month. It is the most basic number for deciding which keywords to target in SEO. |
| ranking position | Where your page appears in the search results for a keyword. It changes with who searches, where and when, so Search Console shows it as the "average position" over a period. This page separates #1 to #10 (page 1), #11 or lower (page 2 and later) and not ranking (not shown). |
| CTR curve (CTR by position) | The click-through rates for each position, lined up. #1 is the highest and the rate drops quickly as the position gets lower, so on a graph it is a curve sloping down to the right. This site's reference curve is #1 27.6%, #2 15.8%, #3 11.0%, #4 8.4%, #5 6.3%, #6 4.9%, #7 3.9%, #8 3.3%, #9 2.7%, #10 2.4% and #11 or lower 1.0%. Real values change a lot with search intent and the layout of the results page, so use your own site's actual values if you have them. |
| estimated monthly traffic | The number of people (sessions) expected to come to your site from that keyword's search results in a month. It is an estimate from "search volume × CTR". In reality the same person may come several times and the number of searches changes from month to month, so it is only a rough guide. |
| traffic gain from ranking higher | The extra traffic you get when your position improves (estimated traffic at the target position − estimated traffic at the current position). The CTR gaps are bigger near the top, so moving from #3 to #1 adds far more than moving from #10 to #8, even though both are two places. |
| organic search | The part of the search results that is not ads. The CTR curve on this page is about CTR by position in organic search. When a results page has many ads, even the #1 organic result sits lower on the screen, so its CTR tends to be lower. |
| search intent | What the searcher wants to know or do. It may be looking something up ("what is ..."), coming to buy a product by name, or finding a company's official site by its name. The CTRs at the top change a lot with the intent (a search for an official site piles onto #1, while clicks on a look-it-up search spread out more). |
| rich results | Special features on the results page other than the usual blue links, such as images, videos, Q&A, maps and featured snippets (a box at the top showing an excerpt from a page). When they appear, the usual links get fewer clicks, which is a main reason CTRs by position move away from the reference curve. |
| branded search (brand keywords) | A search for a particular site by a company, product or service name. If that site is #1, most people click it, so the #1 CTR is often much higher than the reference curve (for example, more than half of searchers click it), while other sites get very few clicks. |
| Google Search Console | A free tool from Google that shows your site's impressions, clicks, CTR and average position in search results. If you total up your actual CTR for each position and enter it as a custom curve, you can tune this page's estimates to your own site. |
| Keyword Planner | A Google Ads tool for checking the estimated monthly search volume of each keyword. It is made for advertising, but it is also widely used to check search volume when choosing keywords for SEO. |
| rounding up | Rounding to the next whole number whenever there is a fractional part (9090.9 → 9091). When you look for a count that is "enough", like the required search volume, rounding down or to the nearest number can leave you short of the goal, so you round up. |
| conversion (CV) | An action a site counts as a success toward its goal, such as a purchase, a sign-up, a demo request or an inquiry. Each site decides what counts as a conversion. The share of traffic that converts is the conversion rate (CVR). |
| average order value (AOV) | The average revenue per conversion (per order). Multiply it by the estimated conversions to get the estimated revenue. It is used to compare the value of keywords in dollars. |
| percent equation | "Part = whole × percent" and its two rearranged forms, "percent = part ÷ whole" and "whole = part ÷ percent". With traffic as the part, search volume as the whole and CTR as the percent, the first, third and fourth formulas on this page are exactly these three forms. |
Good to know before you start
Here is what helps you use the calculation on this page with real understanding, not just by pressing the button.
| Percents (Grade 6) |
|
| The percent equation (Grades 6–7) |
|
| Multiplying and dividing decimals (Grades 5–6) |
|
| Rounding and rounding up (Grade 4) |
|
| Inequalities and comparing values (Grade 6) |
|
| Expressions and rearranging equations (Grades 7–8) |
|
How to calculate it in Excel
| Monthly search volume V | 10000 |
| CTR at the position (%) | 11 |
| Estimated monthly traffic T | =B1*B2/100 |
| Monthly search volume V | 10000 |
| CTR at current position (%) | 6.3 |
| CTR at target position (%) | 11 |
| Current estimated traffic | =B1*B2/100 |
| Estimated traffic at target position | =B1*B3/100 |
| Traffic gain ΔT | =B5-B4 |
| Monthly traffic goal T | 1000 |
| CTR at target position (%) | 11 |
| Required monthly search volume V | =ROUNDUP(B1/B2*100,0) |
| Monthly traffic goal T | 500 |
| Monthly search volume V | 10000 |
| Required CTR (%) | =B1/B2*100 |
| Estimated monthly traffic T | 1100 |
| CVR (%) | 2 |
| Average order value P ($) | 50 |
| Estimated conversions | =B1*B2/100 |
| Estimated revenue S ($) | =B4*B3 |
For example, the first table shows 1100 in B3 (1,100 visits a month), the second shows 470 in B6 (a gain of 470 visits), the third shows 9091 in B3 (a required search volume of 9,091), the fourth shows 5 in B3 (a required CTR of 5%) and the fifth shows 22 in B4 and 1100 in B5 (22 conversions and $1,100). The ROUNDUP function in the third table rounds up to a whole number. Compare the required CTR from the fourth table with the reference curve (#1 27.6, #2 15.8, #3 11, #4 8.4, #5 6.3, #6 4.9, #7 3.9, #8 3.3, #9 2.7, #10 2.4, #11 or lower 1) and read off the lowest position at or above that value (#5 for 5%). Just replace the inputs in column B with your own numbers.
How to calculate it in Google Sheets
| Monthly search volume V | 10000 |
| CTR at the position (%) | 11 |
| Estimated monthly traffic T | =B1*B2/100 |
| Monthly search volume V | 10000 |
| CTR at current position (%) | 6.3 |
| CTR at target position (%) | 11 |
| Current estimated traffic | =B1*B2/100 |
| Estimated traffic at target position | =B1*B3/100 |
| Traffic gain ΔT | =B5-B4 |
| Monthly traffic goal T | 1000 |
| CTR at target position (%) | 11 |
| Required monthly search volume V | =ROUNDUP(B1/B2*100,0) |
| Monthly traffic goal T | 500 |
| Monthly search volume V | 10000 |
| Required CTR (%) | =B1/B2*100 |
| Estimated monthly traffic T | 1100 |
| CVR (%) | 2 |
| Average order value P ($) | 50 |
| Estimated conversions | =B1*B2/100 |
| Estimated revenue S ($) | =B4*B3 |
How to calculate it in Python
import math
# This site's reference CTR curve (%): index 0 is #1 ... index 9 is #10, index 10 is #11 or lower
ctr_curve = [27.6, 15.8, 11.0, 8.4, 6.3, 4.9, 3.9, 3.3, 2.7, 2.4, 1.0]
def ctr_of(rank):
"""CTR (%) at position rank (1 to 11; 11 = #11 or lower). 0 (not ranking) is 0%"""
if rank == 0:
return 0.0
return ctr_curve[rank - 1]
volume = 10000 # monthly search volume
current_rank = 5 # current position
target_rank = 3 # target position
traffic_current = volume * ctr_of(current_rank) / 100 # current estimated monthly traffic
traffic_target = volume * ctr_of(target_rank) / 100 # estimated monthly traffic at target position
gain = traffic_target - traffic_current # gain from ranking higher
print(f"Current estimated traffic: {traffic_current}")
print(f"Estimated traffic at target position: {traffic_target}")
print(f"Traffic gain: {gain}")
# Required search volume: from the traffic goal and the CTR at the target position (rounded up)
target_traffic = 1000
# round(..., 6) guards against floating-point error making the round-up one too high
required_volume = math.ceil(round(target_traffic * 100 / ctr_of(target_rank), 6))
print(f"Required search volume: {required_volume}")
# Required position: the lowest position with at least the required CTR (search from #11+ up to #1)
target_traffic2 = 500
required_ctr = target_traffic2 / volume * 100
required_rank = None
for rank in range(11, 0, -1):
if ctr_of(rank) >= required_ctr:
required_rank = rank
break
print(f"Required CTR: {required_ctr}% Required position: #{required_rank} or higher")
# Estimated conversions and revenue (optional)
cvr = 2 # CVR (%)
price = 50 # average order value ($)
cv = traffic_target * cvr / 100
sales = cv * price
print(f"Estimated conversions: {cv} Estimated revenue: ${sales}")
How to write it in LaTeX and other math languages (copy and paste)
T = V × CTRᵣ ÷ 100
T = V \times \dfrac{\mathrm{CTR}_{r}}{100}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>T</mi>
<mo>=</mo>
<mi>V</mi>
<mo>×</mo>
<mfrac><msub><mi>CTR</mi><mi>r</mi></msub><mn>100</mn></mfrac>
</mrow>
</math>
T = V xx CTR_r/100
volume*ctr/100
T := V*CTR_r/100;
T = V*CTR_r/100;
T = V × CTR_r/100
ΔT = T_target − T_current
\Delta T = T_{\text{target}} - T_{\text{current}}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>Δ</mi><mi>T</mi>
<mo>=</mo>
<msub><mi>T</mi><mtext>target</mtext></msub>
<mo>−</mo>
<msub><mi>T</mi><mtext>current</mtext></msub>
</mrow>
</math>
Delta T = T_"target" - T_"current"
trafficTarget - trafficCurrent
DeltaT := T_target - T_current;
DeltaT = T_target - T_current;
ΔT = T_target − T_current
V = ⌈T ÷ CTRᵣ × 100⌉
V = \left\lceil \dfrac{T}{\mathrm{CTR}_{r}} \times 100 \right\rceil
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>V</mi>
<mo>=</mo>
<mo>⌈</mo>
<mfrac><mi>T</mi><msub><mi>CTR</mi><mi>r</mi></msub></mfrac>
<mo>×</mo>
<mn>100</mn>
<mo>⌉</mo>
</mrow>
</math>
V = |~ T/CTR_r xx 100 ~|
Ceiling[traffic/ctr*100]
V := ceil(T/CTR_r*100);
V = ceil(T/CTR_r*100);
V = ⌈T/CTR_r × 100⌉
CTR_required = T ÷ V × 100
\mathrm{CTR}_{\text{required}} = \dfrac{T}{V} \times 100
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>CTR</mi><mtext>required</mtext></msub>
<mo>=</mo>
<mfrac><mi>T</mi><mi>V</mi></mfrac>
<mo>×</mo>
<mn>100</mn>
</mrow>
</math>
CTR_"required" = T/V xx 100
traffic/volume*100
CTR_required := T/V*100;
CTR_required = T/V*100;
CTR_required = T/V × 100
CV = T × CVR ÷ 100, S = CV × P
\mathrm{CV} = T \times \dfrac{\mathrm{CVR}}{100},\quad S = \mathrm{CV} \times P
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>CV</mi>
<mo>=</mo>
<mi>T</mi>
<mo>×</mo>
<mfrac><mi>CVR</mi><mn>100</mn></mfrac>
<mo>,</mo>
<mspace width="1em"/>
<mi>S</mi>
<mo>=</mo>
<mi>CV</mi>
<mo>×</mo>
<mi>P</mi>
</mrow>
</math>
CV = T xx CVR/100, S = CV xx P
{traffic*cvr/100, traffic*cvr/100*price}
CV := T*CVR/100; S := CV*P;
CV = T*CVR/100; S = CV*P;
CV = T × CVR/100, S = CV × P
How to have ChatGPT do the calculation
You are an assistant for estimating SEO traffic. Do the following calculation by actually running Python code, and base your answer only on the numbers from the execution result (do not answer by mental math or guessing). Use this click-through rate (CTR) curve by position: #1 27.6%, #2 15.8%, #3 11.0%, #4 8.4%, #5 6.3%, #6 4.9%, #7 3.9%, #8 3.3%, #9 2.7%, #10 2.4%, #11 or lower 1.0%. A keyword has a monthly search volume of 10,000, and my page currently ranks #5. Find each of the following: 1. The current estimated monthly traffic (search volume × CTR at #5 ÷ 100) 2. The estimated monthly traffic if the page moves up to #3, and the traffic gain from that move 3. The monthly search volume needed for 1,000 visits a month if the page ranks #3 (traffic goal ÷ CTR at #3 × 100, rounded up to a whole number) 4. The position needed for 500 visits a month with a monthly search volume of 10,000 (the lowest position with a CTR of at least the required CTR = 500 ÷ 10,000 × 100) Show the formulas you used and the numbers from the execution result.
How to Use
-
1Enter your numbersType the numbers you want to calculate with into the input fields
-
2CalculatePress the "Calculate" button
-
3Check the resultThe result appears on the spot. The same page also explains the idea behind the calculation and the formula
DataChef Features
No technical knowledge required.
Intuitive and user-friendly operation.
Can be used without registering personal information.
Automatic file deletion by clicking "download".
and rapid file conversion.
No attribution required.
No need to contact us for commercial use permission.
