Local SEO  ·  October 8, 2025

What the leaked code says about how Google weights review velocity

I've been going through the leaked Content Warehouse documentation on and off since it showed up on GitHub back in May. Most of the interesting analysis from other people has focused on organic search, which makes sense - that's where the money is. But I've been spending my time in the local-specific modules because that's the work I actually do every day.

One thing I came across: there's a field called review_velocity_decay in what looks like a local quality scoring module.

// local_quality/review_signals.proto
message ReviewVelocitySignal {
  float review_velocity_decay = 1;
  int32 window_days = 2;
  float recency_weight = 3;
}

The name is pretty self-explanatory. Review velocity - how fast new reviews come in - has a decay function applied to it. A burst of reviews doesn't help you forever. The signal degrades.

This isn't exactly a shock. Most local SEOs have assumed review velocity matters and that raw count alone isn't the whole picture. But the structure around it is more interesting than I expected.

That window_days field sits right next to the decay value. Which means Google is probably looking at review velocity inside specific time windows - maybe 30, 60, 90 days - rather than computing a running average across the life of the listing. I can't tell what the actual window values are from the proto definitions alone, but the fact that it's parameterized suggests they've tuned it.

The practical implication, if I'm reading this right: those 50 reviews you got from a review generation campaign two years ago are contributing almost nothing to your current ranking signal. What matters is what's come in within whatever time window Google is using, and how consistent the flow has been.

Agencies that run those "review blitz" campaigns where they generate 30 reviews in a week and then move on - this would explain why the ranking bump from those campaigns tends to fade. The decay function eats the signal.

What I don't know

I don't have the implementation details. Proto definitions tell you the shape of the data, not how it's used. The recency_weight field could mean individual reviews are also weighted by age, or it could be something else entirely.

I'm going to keep digging through the local modules and will post anything else that seems worth writing about. There's a lot in here that nobody has looked at yet.


Previous: Starting to dig through the local modules   ·   Next: Citation consistency source weighting