Help & Documentation
Browse the full documentation index · Press Esc to close
Overview Dashboard

SERP Volatility

SERP Volatility is Metricstab's portfolio-wide ranking-churn gauge. It answers a single question: did the SERP move more than usual today? When the gauge spikes, something happened — an algorithm update, a major competitor change, an indexing event, a manual action — and you should investigate before the click impact shows up in your trend chart.

What it is

A single daily number — the churn score — that summarises how much your ranking positions moved across the entire portfolio that day. It is paired with a 30-day baseline so you can tell at a glance whether today is Calm, Elevated, or a Spike.

This is intentionally not a per-query list. Per-query position standard deviation on GSC data is noisy: the underlying daily position is itself an aggregate across personalised SERPs, devices and locations. Aggregating across many queries cancels most of that noise and leaves you with a much cleaner signal.

How we compute it

  1. Pull the trailing 38 days of gsc_query_day.
  2. For every (query, day) with at least 10 impressions, compute the impression-weighted average position (SUM(sum_position) / SUM(impressions)).
  3. Pair each day with the same query's prior day. If the query also had ≥10 impressions yesterday, compute |Δposition| — the absolute change in that query's position from yesterday to today.
  4. Per day, the churn score is the impression-weighted mean of those |Δposition| values across all qualifying queries: SUM(|Δposition| × impressions) / SUM(impressions).
  5. Days with fewer than 5 qualifying queries are dropped (sample too small to be meaningful).
  6. The baseline is the mean and standard deviation of the prior 30 days (excluding today, so an ongoing event does not poison its own baseline).
  7. The z-score is (today − baseline mean) / baseline std. The Calm/Elevated/Spike label is set from that z: z < 1 → Calm, 1 ≤ z < 2 → Elevated, z ≥ 2 → Spike.
The card requires at least 14 days of qualifying history (with at least 7 days in the baseline window) before it appears. New sites or sites with very thin daily traffic will not show this card until enough data has accrued.

How to read each part

  • Today's churn score — the average ranking move (in SERP positions) per impression-weighted query for the latest available day. A score of 0.4 means a typical query moved roughly 0.4 positions vs yesterday; a score of 3.0 means rankings churned by ~3 positions on average — a lot.
  • Calm — today is within 1σ of the baseline. Normal day-to-day SERP rotation.
  • Elevated — 1–2σ above baseline. Worth a quick look at Winners/Losers but no immediate action needed.
  • Spike — ≥2σ above baseline. The SERP itself moved meaningfully — investigate today.
  • σ chip (e.g. +1.4σ) — how many standard deviations away from the 30-day baseline today sits.
  • Sparkline — the last 30 daily churn scores. The dashed orange line is the baseline mean — an obvious pop above it is the signal.

What to do with it

If today is a Spike
  • Open Winners/Losers for a date range that includes the spike day and look for big position changes.
  • Cross-check against Annotations — was there a release, a deployment, a known SEO event?
  • Check third-party SEO trackers (e.g. Semrush Sensor, MozCast) for confirmed Google updates that day.
  • Look at Anomalies Snapshot: if clicks/impressions also moved that day, it's likely real impact rather than just SERP shuffle.
If Elevated
  • No emergency — but make a note. If the next day is also Elevated or worse, it's the start of an event, not noise.
  • Glance at Striking Distance and Content Decay — these reports surface the underlying queries/pages most likely to be affected.

Caveats & gotchas

  • GSC's daily position is itself an aggregate of personalised SERP positions. The churn score captures relative change well but should not be read as a precise rank-tracker delta.
  • For very small sites (few queries clearing the 10-impressions/day floor), the score can be choppy. The 5-query minimum filter cuts the worst of this; below that we drop the day entirely.
  • The baseline is computed against the prior 30 days only. A sustained week-long event will eventually be absorbed into the baseline — the card flags change, not level.
  • Search Console has a 2–3 day data lag, so "today" on this card is the latest day GSC has reported for your site, not the literal calendar today.

Related reports