If you’ve ever set up a Related Search on Content (RSOC) ad block on your site, you already know the frustrating part: you pick a list of keywords you think will work, paste them into your AdSense for Search configuration, and then wait. Some keywords bring in steady clicks. Some bring in a flood of impressions but almost no revenue. And some just sit there doing nothing at all.

The hard question is always the same: which keywords should I keep, and which should I replace?

I’ve spent the last few weeks building a spreadsheet-based tool that answers exactly that question – using your actual performance data, scored against thoughtful thresholds, and with a clear final recommendation for every keyword in every ad block. In this post, I’ll walk you through the complete logic so you can understand how each decision is made, step by step.

Who this is for: Publishers running RSOC (or AdSense for Search) ad blocks who want a systematic way to optimize their keyword lists. No coding required to use the tool – just Google Sheets.

What’s in this post

  1. Why keyword optimization matters for RSOC
  2. The four metrics that actually reveal keyword health
  3. How time windows surface trends you’d otherwise miss
  4. The scoring formula – revenue-aware, not just click-aware
  5. Turning scores into KEEP, MONITOR, or REPLACE decisions
  6. Adding trend detection for smarter recommendations
  7. The final recommendation matrix
  8. Putting it all together – a worked example

Why keyword optimization matters for RSOC

Here’s the core problem. An RSOC ad block typically holds 5 to 10 keywords. Each keyword competes for impressions – when a visitor lands on your page, Google decides which keyword in your block to show based on a mix of relevance, predicted earnings, and availability. The keywords that earn well get shown more. The keywords that don’t earn anything are still taking up slots that could be used by something better.

So every weak keyword in your block is an opportunity cost. It’s not just earning nothing – it’s actively preventing a better keyword from taking that slot. If you let this slide for months, you could easily be leaving 30 to 50% of your potential revenue on the table without realizing it.

But there’s a catch. You can’t just look at your AdSense dashboard for a week and pick winners. Performance fluctuates. A keyword might look strong in one 7-day period and weak in the next. You need a way to separate real signal from noise – and that’s where time windows come in.

The four metrics that actually reveal keyword health

Most publishers focus on just one or two metrics: clicks and click-through rate. But to really understand whether a keyword is worth keeping, you need to look at the full funnel – from impression all the way to dollars earned.

Four metrics matter, and they line up in a natural sequence:

Engagement Rate = Srch ÷ Imp [How often do people who see your block actually search]

CTR = Clks ÷ Srch [How often searches lead to an ad click]

RPC = Rev ÷ Clks [How much each ad click is actually worth]

EPI = Rev ÷ Imp [Full-funnel efficiency – dollars per impression]

The first two – Engagement Rate and CTR – are your traditional engagement signals. They tell you whether the keyword attracts attention and drives clicks. But they don’t tell you whether those clicks are making you any money.

That’s where RPC (Revenue Per Click) comes in. A keyword might have excellent CTR but terrible RPC – meaning people are clicking but the ads are paying pennies. RPC varies hugely across niches: finance keywords might earn $2+ per click, while generic lifestyle keywords could be under $0.20.

And finally, EPI (Earnings Per Impression) is the most powerful single metric because it’s mathematically the product of all three funnel stages:

The EPI identity > EPI = Engagement Rate × CTR × RPC

EPI rewards keywords that perform well at every stage simultaneously. A keyword can’t have high EPI unless its visibility, engagement, and revenue quality are all decent.

Here’s a concrete example that shows why this matters:

Keyword A – high RPC

Impressions ————- 1,200

Ad Clicks ————- 45

RPC ————- $0.82

Revenue ————- $36.90

EPI ————- $0.031

Keyword B – more clicks, low RPC

Impressions ————- 1,200

Ad Clicks ————- 52

RPC ————- $0.11

Revenue ————- $5.72

EPI ————- $0.005

If you only looked at clicks, you’d pick Keyword B. It has more clicks and a slightly better CTR. But Keyword A earns six times more money from the same impression count. Any system that ignores revenue will point you in exactly the wrong direction – and that’s the biggest reason most simple “top clicks” reports lead publishers astray.

How time windows surface trends you’d otherwise miss

Even with the right metrics, a single week of data isn’t enough to make a confident decision. Keywords fluctuate. Weekends behave differently from weekdays. Seasonal trends drift in and out. What you need is a way to compare recent performance against older performance – so you can tell whether a keyword is improving, declining, or just steady.

The approach I settled on uses three non-overlapping time windows, with the most recent 14 days getting the most weight:

W3 · Older = 48 days > Days 43–90 ago

W2 · Mid = 28 days > Days 15–42 ago

W1 · Recent = 14 days > Last 14 days – Today

Why 14 / 28 / 48? A few reasons. Fourteen days is long enough to smooth out weekday/weekend noise and capture a full two-week cycle. Twenty-eight days gives you a meaningful mid-range comparison – essentially a month. Forty-eight days of older data creates enough historical context to detect real trends rather than random variation. Together, these three windows cover 90 days, which is generally enough data to make reliable decisions.

The windows don’t overlap, which is important. If they did, recent data would get double-counted and drown out the older signal. By keeping them separate, we can compare scores across windows directly.

Configurable defaults

These day counts are just defaults. In the actual tool, you can set W1, W2, and W3 to any values you want – or turn any window off completely. Some publishers might prefer W1=7, W2=14, W3=30 for faster reactions. Others might want longer windows for slower-moving content.

The scoring formula – revenue-aware, not just click-aware

Once we have the metrics and the windows, we need to combine them into a single score per window. This is where a lot of tools go wrong – they either weigh everything equally, or they focus purely on clicks and miss the revenue signal entirely.

The scoring formula I use treats revenue as the primary signal, with RPC and EPI as supporting metrics:

Revenue-aware scoring formula

Score = (Revenue × 50%) + (RPC × 100 × 30%) + (EPI × 10000 × 20%)

The multipliers (100 for RPC, 10000 for EPI) bring small decimal values into the same numeric range as raw revenue dollars, so no single component drowns out the others.

Half the score comes from absolute revenue – because a keyword earning $500 over 14 days is objectively more valuable than one earning $50, regardless of efficiency ratios. Thirty percent comes from RPC, which rewards keywords with high-quality clicks. And twenty percent comes from EPI, which rewards full-funnel efficiency.

If you don’t have revenue data available – for example, if you’re tracking only impressions and clicks – the tool can fall back to a clicks-based formula using Ad Clicks, CTR, and Engagement Rate. But the revenue-aware version produces significantly better recommendations when the data is available.

Each of the three windows gets its own score. Then we blend them:

Blended final score: Final = (W1 × 60%) + (W2 × 30%) + (W3 × 10%)

W1 gets the most weight because recent performance is the strongest predictor of future performance. Older data matters, but it matters less.

Turning scores into KEEP, MONITOR, or REPLACE decisions

A score on its own doesn’t mean much. Is 150 good? Is 80 bad? It depends entirely on context – specifically, on how that keyword compares to the other keywords in the same ad block.

So every keyword’s score gets compared against the group average – the average blended score of all keywords in that ad block. Two threshold multipliers then divide keywords into three zones:

These multipliers are configurable. If you want to be more aggressive about replacing keywords, you could set the KEEP threshold to 1.2 and the REPLACE threshold to 0.9 – that would flag far more keywords as MONITOR or REPLACE. If you want to be more conservative, you could widen the bands.

One thing to notice: this is a relative measurement, not an absolute one. A keyword earning $200 in an ad block where the average is $400 gets flagged REPLACE. The same keyword in a block where the average is $100 would be a KEEP. This is exactly what we want, because RSOC ad blocks compete with themselves – it’s the weakest link in the block that should be replaced.

Adding trend detection for smarter recommendations

Status alone isn’t quite enough. Consider two keywords with identical KEEP status – both scoring well above the group average. One has been steadily climbing over the past 90 days. The other has been steadily falling and is about to cross into MONITOR next month. You’d want to treat these two keywords very differently, even though their current status is the same.

That’s what trend detection solves. By comparing a keyword’s score across W3 → W2 → W1 (from oldest to newest), we can categorize its trajectory:

TrendPatternMeaning
RisingW3 < W2 < W1Strictly increasing – gaining momentum
DecliningW3 > W2 > W1Strictly decreasing – losing momentum
StableNet change < 10%Consistent performer – no clear direction
VolatileDirection flip-flopsErratic – score jumps around without a pattern

Strictly increasing means every window is higher than the one before it. A rising trend is a bullish signal – whatever is happening with that keyword is working. A declining trend is a warning that needs attention, even if the current status is still KEEP.

The final recommendation matrix

Status and trend combine into a final recommendation. This is the single most useful column in the output – it tells you exactly what to do with each keyword:

StatusTrendFinal Recommendation
KeepRising⭐ Star – Keep & Scale
KeepStable✅ Keep – Stable
KeepDeclining⚠ Warning – Fading
MonitorRising📈 Watch – Recovering
MonitorDeclining📉 Fading – Plan Replace
ReplaceRising📈 Watch – Rising (Hold)
ReplaceStable❌ Replace
ReplaceDeclining❌ Replace

Notice how the same KEEP status produces three very different recommendations depending on the trend. A keyword that’s KEEP + Rising is a Star – you want to lean into it, maybe create more content around it, and keep it front and center. A keyword that’s KEEP + Declining is a warning sign – it’s currently doing fine but trending the wrong way, and you should start thinking about what could replace it.

Even more interesting: a keyword classified as REPLACE but with a Rising trend gets a Watch – Rising (Hold) recommendation. Don’t replace it yet. If the trend continues, it could climb back into MONITOR or even KEEP within another month.

“The best recommendations come from combining where a keyword is now with where it’s heading.”

Putting it all together – a worked example

Let me walk through a real example from my sample dataset. The keyword is “high ticket affiliate marketing” in ad block AB-002. Over 90 days, here’s how it performed across the three windows:

WindowImpressionsClicksRevenueScore
W1 · Recent (14 days)10,800420$1,155.00847
W2 · Mid (28 days)17,200680$1,495.60814
W3 · Older (48 days)22,400870$1,539.90790

The blended score comes out to 834.4. Compared to the ad block average of around 550, this score is 1.52× the average – comfortably above the 1.4× KEEP threshold. Status: Keep.

Now look at the trend. Scores go from 790 (W3) → 814 (W2) → 847 (W1). Each window is higher than the one before. Trend: Rising.

Combining status KEEP with trend Rising gives us the top-tier recommendation: ⭐ Star – Keep & Scale. This is a keyword you want to actively promote, build more content around, and potentially feature in more ad blocks across your site.

What to do with a Star keyword

Stars are your highest-confidence bets. They’re performing above the group average and gaining momentum. Consider creating more content targeting similar searches, or testing variants of the keyword in adjacent ad blocks to see if the pattern holds elsewhere.

Wrapping up

The thing I want to emphasize is that no single metric tells the whole story. Clicks matter, but only in combination with RPC and EPI. Current status matters, but only in combination with trend. A single week of data matters, but only in combination with the older windows.

The tool works because it combines all of these signals into one decision. For each keyword, you get a status, a trend, and a final recommendation – all backed by math that respects both recent performance and longer-term patterns.

If you run RSOC ad blocks and you’ve never systematically optimized them, I’d encourage you to start. Even a simple monthly review, using just a few of the principles I’ve covered here, can meaningfully lift your revenue. The keywords carrying their weight deserve to stay. The ones taking up slots without contributing deserve to be replaced. And the ones trending the wrong way deserve your attention before they become a problem.

In future posts, I’ll cover how to actually set up the Google Sheet template, how to paste in your AdSense export, and how to interpret the output columns in the live tool. For now, hopefully this walkthrough has given you a clearer mental model of how data-driven keyword optimization can work – and why revenue-aware scoring matters so much more than counting clicks.

Have questions or want the tool?

Drop a comment below with your questions about RSOC optimization, or if you’d be interested in the Google Sheet template itself. I’m happy to share more details about how I use this in my own blog network.