Local SEO

SEO alerts

What raises one (rank changes, score drops, new failing checks), that they land in the feed and morning summary rather than as pushes, and how to turn them off.

Updated · 5 min read

An SEO alert is one of five things the rank tracker and the on-page SEO scan may have found news about since the last check. It is recorded the moment the check finishes and held for the morning summary; it never pushes on its own.

Where it lands

Every SEO alert does two things, in order:

  1. A row in the Alerts feed with the event type seo_alert:<kind>:<key> or seo_good:<kind>:<key>. The feed reads in the dashboard's Alerts page and in the app's Alerts tab.
  2. A line in the next morning summary, around 8 a.m. Eastern, sent with One summary each morning on.

There is no push of its own. Whether the morning summary is on or off, an SEO alert does not interrupt anyone: a ranking that moved overnight can wait until 8 a.m. The same is true for a good-news alert. The dedupe rule is the same: the same alert is not raised again for 7 days unless it got worse (good news is never repeated early).

What raises one

Five kinds, all from src/seo-alerts-analyze.ts:

Kind When it fires Severity
pack_lost A phrase that was in the local 3-pack is not in it now Problem
rank_drop An organic or Google Maps position fell 3 or more places, or fell off the results we read Problem
top3_entered A phrase that was not in the top 3 on a surface is now in it Good news
score_drop The homepage SEO score fell 10 or more points since the last scan Problem
new_failing_check A high-impact SEO check that passed (or was not run) last scan fails now, up to 5 per scan Problem

A first measurement is a baseline. With no earlier check of the same phrase on the same surface, or no earlier scan, nothing is raised. Positions measured from different places are not compared either; a moved business would otherwise read as a crash.

A rank_drop and a pack_lost do not double-count. The local pack has three places, so leaving it is pack_lost and never a rank_drop on top of it. top3_entered is a separate seo_good event and is not folded into the problem alerts.

score_drop and new_failing_check come from the on-page SEO scan at the end of a domain's nightly re-scan (Starter and up), not from a rank check. A scan that has no earlier scan on file raises nothing either; only a scan with a previous one can move a score.

What a rank_drop says

The alert reads roughly:

"Emergency plumber canton" fell from #5 to #11 on Google.

For organic and Maps, the threshold is 3 places. For the local pack, leaving it is the event (pack_lost). The full chain: the previous check from the same city, the new one from the same city, the difference. Different cities are not compared.

If the previous position is null (the phrase was not in the results we read) and the new position is null, there is no alert — both sides have to be measurable to know it moved.

How to turn them off

The account switch is notify_seo_alerts on users. On by default; 0 turns it off account-wide. There is no per-domain switch.

  • Web: Settings, Notifications (the Alerts group). The row is SEO alerts, on by default. The row is set from the API today; the web Settings panel reads but does not yet toggle it.
  • iOS: Account, Settings, Notifications. Same row, same field (notify_seo_alerts). The iPhone app reads the value from the same /api/settings response the web does.
  • API/MCP: PUT /api/settings with { notify_seo_alerts: false }; tool update_account_settings. Reading the current value is GET /api/settings (or get_account_settings). The MCP tool description: "Search ranking and SEO changes: a phrase leaving the map pack or falling 3+ places, a phrase reaching the top 3, the homepage SEO score falling 10+ points or a new high-impact SEO failure. Feed and morning summary only, never a push of its own."

Turning it off stops new alerts. The Alerts feed still shows past ones, and the morning summary still folds in alerts from other categories (down/up, vendor incidents, dark-web hits, KEV and CVE matches, renewal, certificate, DNS records, security score, change events, DMARC, lookalikes). Only SEO alerts stop.

What is not an SEO alert

A change in rank that does not pass the threshold (rank_drop is 3 places or off the results; top3_entered is any move into the top 3) is not raised. Phrases that fluctuate inside the top 3 stay there silently. Pages of the rank history are not alerts; the Keywords panel reads them at any time.

Common questions

I got an alert for a phrase I did not ask to track. It was measured by the scheduled rank tracker or a manual rank check on one of the phrases saved as a keyword target for the domain. To remove it, delete the phrase from the keyword targets.

Two alerts on the same phrase. A repeat inside 7 days is only raised when the new severity beats the old one. A 7-day-old alert can be raised again. Good news is never repeated early.

My score dropped but I got nothing. Only a fall of 10 points or more, with a previous scan on file, is raised. A scan that has no earlier one is a baseline.

Still stuck?

Ask the people who run the scanner.

Send the domain and what you expected to see. We look at the same scan you are looking at and write back with what it means and what to change.