Free SEO ROI templates
Four templates for the numbers side of SEO. They are on this page, not behind a form. Select the text, or use the copy button, and paste it into your doc or spreadsheet.
Want a first number before you fill them in? Run the SEO ROI calculator.
Template A
One-page SEO business case
Nine headings, in the order a CFO reads them. Keep each to two or three lines. If it runs past one page, move detail to an appendix. Full method: how to write an SEO business case.
SEO business case: [site or brand] — [date]
- The ask. The budget you want, the term, and the decision you need by a date.
- The opportunity. One or two sentences on what organic search could add, and why now.
- Where we are today. Monthly organic visits, conversion rate, average order or deal value, and organic revenue. Name the source of each.
- The forecast. Added revenue over 24 months in low, likely and high cases. Use the forecast table (template B).
- The cost. Agency or freelance fees, content, developer time and tools. Monthly and in total.
- Payback and ROI. The month added profit is likely to cover the spend. ROI = (gain − cost) ÷ cost, for each case.
- Risks and assumptions. What could make the forecast wrong. Link to the assumptions log (template D).
- How we will report. The KPIs, the cadence and who reads it. Use the monthly report outline (template C).
- The decision. Approve, approve a smaller pilot, or decline. Say what each option means for the forecast.
Template B
24-month forecast table
Three parts: the inputs, the formulas, and the summary grid. Build one calculation sheet per case (low, likely, high), then pull the results into the grid. Method: how to forecast organic traffic.
1. Inputs (name each cell so the formulas read clearly)
| Name | Input | Low | Likely | High | Source |
|---|---|---|---|---|---|
Baseline | Monthly organic visits today | GA4, organic search, last 3–12 months | |||
Growth | Monthly traffic growth rate | Your history, competitor gaps, planned work | |||
CR | Conversion rate (visit to sale or lead) | GA4 key events from organic | |||
AOV | Average order or deal value | Shop or CRM data | |||
Margin | Gross margin on that value | Finance | |||
Cost | Monthly SEO cost | Quotes, salaries, tools |
2. Calculation sheet (one per case; row 2 = month 1, row 25 = month 24)
| Column | Output | Formula | Spreadsheet (row 2) |
|---|---|---|---|
| A | Month (m) | 1 to 24 | 1, 2, 3 … 24 |
| B | Organic visits | Baseline × (1 + Growth)^m | =Baseline*(1+Growth)^A2 |
| C | Added visits | Visits − Baseline | =B2-Baseline |
| D | Added conversions | Added visits × CR | =C2*CR |
| E | Added revenue | Added conversions × AOV | =D2*AOV |
| F | Added gross profit | Added revenue × Margin | =E2*Margin |
| G | Cumulative cost | Cost × m | =Cost*A2 |
| H | Cumulative net | Sum of profit to date − cumulative cost | =SUM($F$2:F2)-G2 |
| — | Payback month | First month where cumulative net ≥ 0 | =INDEX(A2:A25,MATCH(TRUE,H2:H25>=0,0)) |
| — | ROI at month 24 | (Total profit − total cost) ÷ total cost | =(SUM(F2:F25)-G25)/G25 |
3. Summary grid
| Month | Added revenue | Cumulative net | ||||
|---|---|---|---|---|---|---|
| Low | Likely | High | Low | Likely | High | |
| 1 | ||||||
| 2 | ||||||
| 3 | ||||||
| 4 | ||||||
| 5 | ||||||
| 6 | ||||||
| 7 | ||||||
| 8 | ||||||
| 9 | ||||||
| 10 | ||||||
| 11 | ||||||
| 12 | ||||||
| 13 | ||||||
| 14 | ||||||
| 15 | ||||||
| 16 | ||||||
| 17 | ||||||
| 18 | ||||||
| 19 | ||||||
| 20 | ||||||
| 21 | ||||||
| 22 | ||||||
| 23 | ||||||
| 24 | ||||||
| Payback month | ||||||
| ROI at month 24 | ||||||
A single growth rate is a simplification. Real traffic moves with seasons and updates. Treat the likely case as a target to report against, not a promise.
Template C
Monthly SEO ROI report
Six sections and six KPIs. Every number sits next to the forecast it is judged against. Which KPIs matter and why: SEO KPIs that tie to revenue.
SEO ROI report: [month, year]
- Headline. One sentence: ahead of, on, or behind the forecast, and by how much.
- KPI table. The six KPIs below, each set against the forecast.
- What moved and why. The pages, fixes and content behind the change. Plain words.
- Spend and payback. What was spent this month, what came back, and the running ROI.
- Next month. The work planned next, and which forecast line it should lift.
- Assumptions changed. Any input revised this month, with the reason. Update the log (template D).
| KPI | How to measure | This month | Forecast | Variance | Year to date |
|---|---|---|---|---|---|
| Organic sessions | GA4, organic search channel | ||||
| Organic leads or orders | GA4 key events from organic visits | ||||
| Organic revenue | GA4 revenue, or CRM pipeline value for B2B | ||||
| Cost per sale | SEO cost this month ÷ organic sales or leads | ||||
| Running ROI | (Cumulative gross profit − cumulative cost) ÷ cumulative cost | ||||
| Payback | Forecast payback month vs the month now projected |
Template D
Assumptions log
Every input in the forecast, with where it came from and who owns it. This is the page finance checks first. Rows A1 to A5 match the forecast inputs; add your own below them.
| ID | Assumption | Low / likely / high | Source | Owner | Confidence | Last checked | Change note |
|---|---|---|---|---|---|---|---|
| A1 | Monthly traffic growth | Search Console trend, competitor gap review | SEO lead | Low / medium / high | |||
| A2 | Organic conversion rate | GA4, organic, last 12 months | Marketing lead | Low / medium / high | |||
| A3 | Average order or deal value | Shop or CRM export | Finance | Low / medium / high | |||
| A4 | Gross margin | Finance | Finance | Low / medium / high | |||
| A5 | Monthly SEO cost | Signed quotes and internal time | Budget owner | Low / medium / high |
Guides that go with these templates
- How to write an SEO business case
Pairs with template A.
- How to forecast organic traffic
Pairs with template B.
- SEO KPIs that tie to revenue
Pairs with template C.
- How to calculate SEO ROI
The formula behind every template.
Browse every article in SEO ROI guides.
Rather have the forecast built for you?
Send us your numbers. We will fill these templates with your own data and show the payback month.