Detect content decay from Google Search Console and alert via Slack and email
Go to WorkflowDescription
Who is this for?
SEO managers, content marketers, bloggers, and growth teams who want to automatically catch declining content performance before it's too late — without manually checking Google Search Console every week.
What this workflow does
This workflow runs weekly to compare your recent Google Search Console performance against a historical baseline. It identifies pages experiencing traffic decay at three severity levels, sends detailed reports via Slack and email, logs all data to a tracking sheet, and auto-generates prioritized fix tasks for your most critical pages.
How it works
Weekly trigger fires every Monday at 8 AM.
Fetches two GSC date ranges in parallel — the last 7 days (recent) and the previous 28 days (baseline, normalized to weekly averages).
Compares per-page metrics including clicks, impressions, average position, and CTR.
Classifies each page into one of five signals:
CRITICAL_DECAY — clicks dropped 50%+ or position fell 5+ spots with 30%+ click loss
DECAYING — clicks dropped 30%+ or position fell 3+ spots
EARLY_DECAY — clicks dropped 15%+ or position fell 1.5+ spots
STABLE — no significant change
GROWING — clicks increased 20%+
Logs all results to a Decay Log Google Sheet tab for historical trending.
Builds a weekly report with summary counts, estimated clicks lost, and per-page breakdowns.
Sends the report to Slack and email simultaneously.
Auto-generates fix tasks for critical pages with specific recommendations (backlink audit, content refresh, CTR optimization, or technical investigation) and logs them to a Fix Tasks sheet tab.
Setup steps
Set environment variables in your n8n instance:
GSC_SITE_URL — your verified site URL (e.g., https://yoursite.com)
DECAY_SHEET_URL — URL of your Google Sheet for logging
Create a Google Sheet with two tabs:
Decay Log with headers: date, page_path, signal, clicks_now, clicks_before, click_change_pct, position_now, position_before, position_change, impressions_now, impression_change_pct, ctr_now
Fix Tasks with headers: created, priority, page_path, page_url, signal, click_change_pct, position_change, recommended_action
Connect Google Search Console OAuth2 credentials (your site must be verified in GSC).
Connect Google Sheets OAuth2 credentials.
Connect Slack OAuth2 credentials and configure your alert channel.
Configure email (SMTP) credentials and update the recipient email address in the "Email Weekly Report" node.
Activate the workflow.
Requirements
n8n instance (self-hosted or cloud)
Google Search Console property with verified ownership
Google Cloud project with Search Console API and Sheets API enabled
Slack workspace with a bot configured
SMTP email credentials (or swap for Gmail node)
How to customize
Decay thresholds** — Adjust the percentage and position-change cutoffs in the "Compare Periods and Detect Decay" code node to match your sensitivity needs.
Schedule** — Change from weekly to daily or bi-weekly in the trigger node.
Baseline period** — Modify the 28-day comparison window to 14 or 90 days.
Row limit** — Increase the rowLimit in GSC API calls beyond 500 if you have a large site.
Fix task logic** — Enhance the remediation recommendations with AI-powered content analysis or integrate with project management tools (Notion, Asana, Trello).
Notifications** — Add Telegram, Discord, or Microsoft Teams alongside or instead of Slack.