Daily
Get a Slack alert when your Google ranking drops
If your site slips five or more places for a keyword you track, you hear about it that day.
- Runs
- Daily
- Apps
- SerpApi
- AI
- Not needed
- Access
- API key
Send this to your assistant
Create a ClickRuntime automation: every day, check where example.com ranks in Google for these 10 keywords and post to #seo in Slack if any of them drop 5 or more places.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
For many small sites, a handful of keywords produce most of the leads. If your page for 'commercial cleaning Denver' drops from position 3 to position 12 after an algorithm update or a competitor's new page, enquiries fall within days, but nothing tells you why. Traffic numbers in analytics lag and are noisy, and ranking tools that track daily are paid products with dashboards you have to remember to open. By the time you notice, you may have lost weeks of leads.
Every day it runs one SerpApi Google search per keyword on your list, finds the position of your domain in the organic results, compares it with the position it stored the day before, and posts the drops to Slack. Days with no drops are silent. Small business owners, SEO freelancers and in-house marketers use it as a quiet watch on the pages that make money.
What you get out of it
Lost positions noticed within a day
A drop reported the next morning gives you time to inspect the page, check what changed and respond. Waiting for a monthly report means the traffic loss is already a month old.
Competitor moves become visible
If a rival's new page overtakes you, the alert is the first sign. You can look at what they published and decide whether to improve your own page while the gap is small.
Quiet when nothing is wrong
Only drops are posted, so a clean day produces no message. That makes the channel meaningful, and a post demands attention rather than being filed under routine updates. On a stable day the channel stays empty, so one post about 'commercial cleaning Denver' gets read at once.
Checks tie to your real keywords
The list contains the exact terms that drive your business. You are not distracted by hundreds of vanity keywords that a general rank tool tracks by default. Twenty money terms get watched daily, instead of two thousand vanity keywords nobody acts on.
Evidence when reporting to a client
Freelancers and agencies can show when a drop began and how large it was. That timestamp helps separate a site change from a Google update and keeps client conversations factual.
How it works
What happens, step by step
Once a day, ClickRuntime searches Google for each keyword you track.
It finds where your site appears in the results and compares that with yesterday's position.
When a keyword has slipped five places or more, it is added to the alert.
A message in your Slack channel lists each drop with the old and new position. Today's positions are saved for tomorrow's check.
Before it runs live
- Connect SerpApi
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Run it at a different time, more or less often, or only on weekdays
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other SerpApi steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, state, notify
DOMAIN = "example.com"
KEYWORDS = ["crm for startups", "simple crm", "sales pipeline tool", "free crm", "crm with email",
"lead tracking app", "crm for agencies", "contact manager", "deal tracker", "crm pricing"]
@on_trigger
def run(event):
key = credentials.secret("SERPAPI_KEY")
last = state.get("positions") or {}
now, drops = {}, []
for kw in KEYWORDS:
data = http.get("https://serpapi.com/search.json",
params={"engine": "google", "q": kw, "num": 100, "api_key": key}).json()
pos = next((r["position"] for r in data.get("organic_results", []) if DOMAIN in r["link"]), 101)
now[kw] = pos
if kw in last and pos - last[kw] >= 5:
drops.append(f"• {kw}: {last[kw]} → {pos if pos <= 100 else 'not in top 100'}")
if drops:
notify.slack(f"Ranking drops for {DOMAIN}:\n" + "\n".join(drops), channel="#seo")
state.set("positions", now)
return {"drops": len(drops)}FAQ
Common questions
How does it find my site's position?
How big a drop triggers an alert?
Can it check rankings for a specific country or city?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Get a weekly report of your Google rankings
Each Monday an email shows your position for every tracked keyword and how it moved since last week.
See how it worksGet an email when your brand is in the news
New Google News articles that mention your brand reach you once a day, each one only once.
See how it worksGet this week's promo codes for your shops
Every Monday you get the promo codes that look current for the stores you buy from, without repeats.
See how it worksKeep exploring
Set up “Get a Slack alert when your Google ranking drops” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
