Content and SEO
Find the month a content program becomes cheaper per visit than paid search, using cumulative cost, a stated ramp and visits weighted by how well they convert.
On this page
Content is the channel you pay for before it sends anyone. A post costs its $400 in the month it is written and takes a year and a half to reach its full traffic, so any single month's figures mislead, flattering the program in one direction or condemning it in the other. With the assumptions written down, the arithmetic finds the month a content program becomes cheaper than paid, and the input that month depends on most.
The program, stated as assumptions
The invoicing app considers a blog aimed at freelancers' questions about getting paid. Every figure below is an assumption, chosen to be plausible and easy to multiply.
- Output: 8 posts a month at $400 each, the course's written post (four hours at $100), so $3,200 a month.
- Ramp: a post earns 1/18 of its mature search traffic in the month it is published, 2/18 the month after, and so on, reaching 200 visits a month in its 18th month and holding there. No post loses traffic within 36 months, which is generous.
- The alternative: a paid search click at $2, the course's figure from paid media basics, not the $0.50 average of module 2's broad paid traffic, because a blog visitor also arrives from a search.
- Counted: search visits only, with no promotion spend.
The mistake: one month's cost per visit
Six months in, the program spends $3,200 and receives 1,867 visits that month: $1.71 a visit, under the $2 click. The tempting conclusion is that content beats paid from month 6.
It does not. Month 6's visits come from 48 posts written over six months, and five-sixths of what those posts cost was paid in earlier months. The program has spent $19,200 and received 4,978 visits in all, or $3.86 a visit. The month-only ratio divides one month's cost by visits that every earlier month paid for, and so it flatters the program at every point on the curve. Judging too early fails the other way: in month 3 even the flattering ratio says $6.00 a visit, which invites someone to cancel a program that is exactly on plan.
Cumulative cost per visit, derived
A post in its a-th month brings 200 × a ÷ 18 visits. By month T, a batch of posts that has been live for T months has earned 200 ÷ 18 × (1 + 2 + … + T) = 200 ÷ 18 × T(T + 1) ÷ 2 visits a post. Summing that over the T monthly batches gives the program's total, and dividing the spend by it gives the number to compare with paid:
for T up to 18 months
cumulative visits(T) = 8 x (200 / 18) x T(T+1)(T+2) / 6
cumulative cost(T) = 8 x $400 x T
cost per visit(T) = 6 x 400 x 18 / (200 x (T+1)(T+2)) = 216 / ((T+1)(T+2))
month-only ratio(T) = 2 x 400 x 18 / (200 x T(T+1)) = 72 / (T(T+1))
Cumulative cost per visit falls under $2 when (T + 1)(T + 2) exceeds 108. Month 8 gives 216 ÷ 90 = $2.40 and month 9 gives 216 ÷ 110 = $1.96, so on raw visits the program beats paid in month 9, three months later than the month-only ratio claimed.
The second mistake: a blog visit is not a paid click
A paid click comes from someone who searched for an invoicing app. A blog visit comes from someone who searched for how to word a late-payment reminder. They sign up at different rates. Assume a blog visit signs up at 1%, a third of a paid click's 3%, and measure it as soon as the first posts have traffic. Then a blog visit is worth a third of a paid click, and the price to beat is $2 ÷ 3 = $0.67.
Cumulative cost per visit falls under $0.67 when (T + 1)(T + 2) exceeds 324. Month 16 gives $0.71 and month 17 gives 216 ÷ 342 = $0.63, so on comparable visits the program beats paid in month 17, after $54,400 of spend.
What the program is worth, and what it costs to wait
The same chain as any channel prices the visits, at the 12-month margin rather than the lifetime $800, so that the program is held to the same 12-month payback target as paid. In margin, a blog visit is worth 1% × the chain's 20% paying × $368 = $0.74, and cumulative cost per visit falls below that in month 16. By month 18 the program brings 15,200 visits a month, about 152 sign-ups and 30 paying customers, for the same $3,200: roughly $105 a customer against $333 on the course's paid chain. That is the compounding the channel is known for, and it is real.
The price is the wait. The program spends $54,400 before it is cheaper than paid on a comparable basis, and a company that stops publishing in month 10 buys the expensive half of the curve and none of the cheap half. This is the same estimation habit as back-of-the-envelope sizing: the shape of the curve is worth more than any point on it.
The inputs the crossover month depends on
The cost-per-visit formula is 6 × c × R ÷ (V × (T + 1)(T + 2)), with c the cost per post, R the ramp in months and V the mature visits per post, and the conversion ratio sets the price it is compared with. Each enters as a plain factor, so halving the mature traffic does exactly what doubling the cost per post does. Past month 18 the formula no longer holds, and the months below come from running the batches month by month:
| Change from the base case | Month it beats $0.67 |
|---|---|
| none: $400 a post, 18-month ramp, 200 visits | 17 |
| 150 mature visits a post | 20 |
| 24-month ramp | 20 |
| 100 mature visits a post | 25 |
| $800 a post | 25 |
| a blog visit signs up at a sixth of a paid click's rate | 25 |
The cost per post is a quote you hold in your hand. The mature traffic is the input known least: it comes from a keyword tool's estimate of search volume multiplied by a ranking nobody can promise, and answer engines that reply on the results page now take a share of exactly the informational searches a blog is written for, which module 5 measures. So name V as the input the decision is most sensitive to, and read it early. The first batch of posts should reach 6 ÷ 18 × 200 = 67 visits a post by month 6. If it is near 33, the mature figure is nearer 100, the crossover moves to month 25, and the time to decide is month 6, not month 17.
In practice
To the founder or the board: "On these assumptions content costs $54,400 before it is cheaper than paid, in month 17, and by month 18 it is buying customers at about a third of paid's price. We will know by month 6 whether the traffic assumption holds: the first batch should be at 67 visits a post." To the writer or agency: price per post is one input of three, and a cheap post that ranks for nothing is the expensive option. To the team: track each monthly batch against the ramp, not the blog's total, which mixes posts of every age.
The same arithmetic answers the five decisions' question about generating 500 posts a month: generation lowers c, and the open question is what it does to V.
The mistake that costs money is judging a content program on one month's cost per visit. Month 6's $1.71 looks better than paid while the program stands at $3.86 a visit, and the honest crossover, with visits weighted for how they convert, is month 17. The exercise should we start a content program runs the decision for a different company.
Check yourself
1. Generated drafts with a $50 review bring the cost per post to $51. Assuming the same 200 mature visits, when does the program beat $0.67, and do you believe it?
With c = $51, cost per visit is 6 × 51 × 18 ÷ (200 × (T + 1)(T + 2)) ≈ 27.5 ÷ ((T + 1)(T + 2)), under $0.67 once (T + 1)(T + 2) exceeds 41, which is month 5. The sum is right and the assumption is not: if every competitor can also publish at $51, each post's share of the same searches falls, and V is the input that moves. Run the cheap posts as a test and measure each batch's ramp before planning on month 5.
2. At month 8 the cumulative cost per visit is $2.40, and the CFO wants to stop the program because it still costs more than paid. Do you?
No, if the ramp is on plan. $2.40 at month 8 is exactly the base curve, and stopping now strands $25,600 of spend whose visits mostly lie ahead. Check the first batch: on plan it is at 8 ÷ 18 × 200 ≈ 89 visits a post. If it is, continue. If it is near 45, the mature traffic is about half, the crossover is near month 25, and stopping is a fair decision.