mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-25 00:36:31 +02:00
feat: enhance SurfSense with new skills, blog section, and improve SEO metadata
Some checks failed
Build and Push Docker Images / tag_release (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Has been cancelled
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Has been cancelled
Some checks failed
Build and Push Docker Images / tag_release (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_backend, ./surfsense_backend/Dockerfile, backend, surfsense-backend, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-24.04-arm, linux/arm64, arm64) (push) Has been cancelled
Build and Push Docker Images / build (./surfsense_web, ./surfsense_web/Dockerfile, web, surfsense-web, ubuntu-latest, linux/amd64, amd64) (push) Has been cancelled
Build and Push Docker Images / create_manifest (backend, surfsense-backend) (push) Has been cancelled
Build and Push Docker Images / create_manifest (web, surfsense-web) (push) Has been cancelled
- Added multiple new skills to skills-lock.json from the repository `aaron-he-zhu/seo-geo-claude-skills`. - Introduced `fuzzy-search` dependency in package.json for improved search functionality. - Updated pnpm-lock.yaml to include the new `fuzzy-search` package. - Enhanced SEO metadata across various pages, including canonical links and descriptions for better search visibility. - Improved layout and structure of several components, including the homepage and changelog, to enhance user experience.
This commit is contained in:
parent
61b3f0d7e3
commit
7ea840dbb2
120 changed files with 25729 additions and 352 deletions
337
.cursor/skills/alert-manager/SKILL.md
Normal file
337
.cursor/skills/alert-manager/SKILL.md
Normal file
|
|
@ -0,0 +1,337 @@
|
|||
---
|
||||
name: alert-manager
|
||||
description: 'Configure SEO alerts for ranking drops, traffic changes, technical issues, competitor movements. SEO预警/排名监控'
|
||||
version: "6.0.0"
|
||||
license: Apache-2.0
|
||||
compatibility: "Claude Code ≥1.0, skills.sh marketplace, ClawHub marketplace, Vercel Labs skills ecosystem. No system packages required. Optional: MCP network access for SEO tool integrations."
|
||||
homepage: "https://github.com/aaron-he-zhu/seo-geo-claude-skills"
|
||||
when_to_use: "Use when setting up monitoring alerts for rankings, traffic, backlinks, technical issues, or AI visibility changes."
|
||||
argument-hint: "<domain> [metric]"
|
||||
metadata:
|
||||
author: aaron-he-zhu
|
||||
version: "6.0.0"
|
||||
geo-relevance: "low"
|
||||
tags:
|
||||
- seo
|
||||
- geo
|
||||
- seo-alerts
|
||||
- ranking-alerts
|
||||
- traffic-monitoring
|
||||
- competitor-alerts
|
||||
- automated-monitoring
|
||||
- anomaly-detection
|
||||
- SEO预警
|
||||
- SEOアラート
|
||||
- SEO알림
|
||||
- alertas-seo
|
||||
triggers:
|
||||
# EN-formal
|
||||
- "set up SEO alerts"
|
||||
- "monitor rankings"
|
||||
- "ranking notifications"
|
||||
- "traffic alerts"
|
||||
- "competitor alerts"
|
||||
- "automated monitoring"
|
||||
# EN-casual
|
||||
- "notify me when rankings drop"
|
||||
- "alert me if rankings drop"
|
||||
- "notify me of traffic changes"
|
||||
- "watch competitor changes"
|
||||
- "watch my keywords for changes"
|
||||
- "alert me about changes"
|
||||
# EN-question
|
||||
- "how to monitor my rankings"
|
||||
- "how to set up SEO alerts"
|
||||
# ZH-pro
|
||||
- "SEO预警"
|
||||
- "排名监控"
|
||||
- "流量报警"
|
||||
- "竞品变动提醒"
|
||||
# ZH-casual
|
||||
- "排名掉了提醒我"
|
||||
- "流量异常"
|
||||
- "有变化通知我"
|
||||
# JA
|
||||
- "SEOアラート"
|
||||
- "ランキング監視"
|
||||
# KO
|
||||
- "SEO 알림"
|
||||
- "순위 모니터링"
|
||||
# ES
|
||||
- "alertas SEO"
|
||||
- "monitoreo de rankings"
|
||||
# PT
|
||||
- "alertas de SEO"
|
||||
# Misspellings
|
||||
- "SEO allerts"
|
||||
---
|
||||
|
||||
# Alert Manager
|
||||
|
||||
|
||||
> **[SEO & GEO Skills Library](https://github.com/aaron-he-zhu/seo-geo-claude-skills)** · 20 skills for SEO + GEO · [ClawHub](https://clawhub.ai/u/aaron-he-zhu) · [skills.sh](https://skills.sh/aaron-he-zhu/seo-geo-claude-skills)
|
||||
> **System Mode**: This monitoring skill follows the shared [Skill Contract](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/references/skill-contract.md) and [State Model](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/references/state-model.md).
|
||||
|
||||
|
||||
Sets up proactive monitoring alerts for critical SEO and GEO metrics. Triggers notifications when rankings drop, traffic changes significantly, technical issues occur, or competitors make moves.
|
||||
|
||||
**System role**: Monitoring layer skill. It turns performance changes into deltas, alerts, and next actions.
|
||||
|
||||
## When This Must Trigger
|
||||
|
||||
Use this when the conversation involves any of these situations — even if the user does not use SEO terminology:
|
||||
|
||||
Use this whenever the task needs time-aware change detection, escalation, or stakeholder-ready visibility.
|
||||
|
||||
- Setting up SEO monitoring systems
|
||||
- Creating ranking drop alerts
|
||||
- Monitoring technical SEO health
|
||||
- Tracking competitor movements
|
||||
- Alerting on content performance changes
|
||||
- Monitoring GEO/AI visibility changes
|
||||
- Setting up brand mention alerts
|
||||
|
||||
## What This Skill Does
|
||||
|
||||
1. **Alert Configuration**: Sets up custom alert thresholds
|
||||
2. **Multi-Metric Monitoring**: Tracks rankings, traffic, technical issues
|
||||
3. **Threshold Management**: Defines when alerts trigger
|
||||
4. **Priority Classification**: Categorizes alerts by severity
|
||||
5. **Notification Setup**: Configures how alerts are delivered
|
||||
6. **Alert Response Plans**: Creates action plans for each alert type
|
||||
7. **Alert History**: Tracks alert patterns over time
|
||||
|
||||
## Quick Start
|
||||
|
||||
Start with one of these prompts. Finish with a short handoff summary using the repository format in [Skill Contract](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/references/skill-contract.md).
|
||||
|
||||
### Set Up Alerts
|
||||
|
||||
```
|
||||
Set up SEO monitoring alerts for [domain]
|
||||
```
|
||||
|
||||
```
|
||||
Create ranking drop alerts for my top 20 keywords
|
||||
```
|
||||
|
||||
### Configure Specific Alerts
|
||||
|
||||
```
|
||||
Alert me when [specific condition]
|
||||
```
|
||||
|
||||
```
|
||||
Set up competitor monitoring for [competitor domains]
|
||||
```
|
||||
|
||||
### Review Alert System
|
||||
|
||||
```
|
||||
Review and optimize my current SEO alerts
|
||||
```
|
||||
|
||||
## Skill Contract
|
||||
|
||||
**Expected output**: a delta summary, alert/report output, and a short handoff summary ready for `memory/monitoring/`.
|
||||
|
||||
- **Reads**: current metrics, previous baselines, alert thresholds, and reporting context from [CLAUDE.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/CLAUDE.md) and the shared [State Model](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/references/state-model.md) when available.
|
||||
- **Writes**: a user-facing monitoring deliverable plus a reusable summary that can be stored under `memory/monitoring/`.
|
||||
- **Promotes**: significant changes, confirmed anomalies, and follow-up actions to `memory/open-loops.md` and `memory/decisions.md`.
|
||||
- **Next handoff**: use the `Next Best Skill` below when a change needs action.
|
||||
|
||||
## Data Sources
|
||||
|
||||
> **Note:** All integrations are optional. This skill works without any API keys — users provide data manually when no tools are connected.
|
||||
|
||||
> See [CONNECTORS.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/CONNECTORS.md) for tool category placeholders.
|
||||
|
||||
**With ~~SEO tool + ~~search console + ~~web crawler connected:**
|
||||
Automatically monitor real-time metric feeds for ranking changes via ~~SEO tool API, indexing and coverage alerts from ~~search console, and technical health alerts from ~~web crawler. Set up automated threshold-based alerts with notification delivery.
|
||||
|
||||
**With manual data only:**
|
||||
Ask the user to provide:
|
||||
1. Current baseline metrics for alert thresholds (rankings, traffic, backlinks)
|
||||
2. Critical keywords or pages to monitor
|
||||
3. Alert priority levels and notification preferences
|
||||
4. Historical data to understand normal fluctuation ranges
|
||||
5. Manual reporting on metric changes when they check their tools
|
||||
|
||||
Proceed with the alert configuration using provided parameters. User will need to manually check metrics and report changes for alert triggers.
|
||||
|
||||
## Instructions
|
||||
|
||||
When a user requests alert setup:
|
||||
|
||||
1. **Define Alert Categories**
|
||||
|
||||
```markdown
|
||||
## SEO Alert System Configuration
|
||||
|
||||
**Domain**: [domain]
|
||||
**Configured Date**: [date]
|
||||
|
||||
### Alert Categories
|
||||
|
||||
| Category | Description | Typical Urgency |
|
||||
|----------|-------------|-----------------|
|
||||
| Ranking Alerts | Keyword position changes | Medium-High |
|
||||
| Traffic Alerts | Organic traffic fluctuations | High |
|
||||
| Technical Alerts | Site health issues | Critical |
|
||||
| Backlink Alerts | Link profile changes | Medium |
|
||||
| Competitor Alerts | Competitor movements | Low-Medium |
|
||||
| GEO Alerts | AI visibility changes | Medium |
|
||||
| Brand Alerts | Brand mentions and reputation | Medium |
|
||||
```
|
||||
|
||||
2. **Configure Alert Rules by Category**
|
||||
|
||||
For each relevant category (Rankings, Traffic, Technical, Backlinks, Competitors, GEO/AI, Brand), define alert name, trigger condition, threshold, and priority level.
|
||||
|
||||
> **Reference**: See [references/alert-configuration-templates.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/monitor/alert-manager/references/alert-configuration-templates.md) for complete alert tables, threshold examples, and response plan templates for all 7 categories.
|
||||
|
||||
3. **Define Alert Response Plans**
|
||||
|
||||
Map each priority level (Critical, High, Medium, Low) to a response time and immediate action steps.
|
||||
|
||||
4. **Set Up Alert Delivery**
|
||||
|
||||
Configure notification channels (Email, SMS, Slack), recipient routing by role, suppression rules (duplicate cooldown, maintenance windows), and escalation paths.
|
||||
|
||||
5. **Create Alert Summary**
|
||||
|
||||
```markdown
|
||||
# SEO Alert System Summary
|
||||
|
||||
**Domain**: [domain]
|
||||
**Configured**: [date]
|
||||
**Total Active Alerts**: [X]
|
||||
|
||||
## Alert Count by Category
|
||||
|
||||
| Category | Critical | High | Medium | Low | Total |
|
||||
|----------|----------|------|--------|-----|-------|
|
||||
| Rankings | [X] | [X] | [X] | [X] | [X] |
|
||||
| Traffic | [X] | [X] | [X] | [X] | [X] |
|
||||
| Technical | [X] | [X] | [X] | [X] | [X] |
|
||||
| Backlinks | [X] | [X] | [X] | [X] | [X] |
|
||||
| Competitors | [X] | [X] | [X] | [X] | [X] |
|
||||
| GEO | [X] | [X] | [X] | [X] | [X] |
|
||||
| **Total** | **[X]** | **[X]** | **[X]** | **[X]** | **[X]** |
|
||||
|
||||
## Quick Reference
|
||||
|
||||
### If You Get a Critical Alert
|
||||
|
||||
1. Don't panic
|
||||
2. Check alert details
|
||||
3. Follow response plan
|
||||
4. Document actions taken
|
||||
5. Update stakeholders
|
||||
|
||||
### Weekly Alert Review Checklist
|
||||
|
||||
- [ ] Review all alerts triggered
|
||||
- [ ] Identify patterns
|
||||
- [ ] Adjust thresholds if needed
|
||||
- [ ] Update response plans
|
||||
- [ ] Clean up false positives
|
||||
```
|
||||
|
||||
## Validation Checkpoints
|
||||
|
||||
### Input Validation
|
||||
- [ ] Alert thresholds are based on realistic baseline data
|
||||
- [ ] Critical keywords and pages clearly identified
|
||||
- [ ] Response plans defined for each alert priority level
|
||||
- [ ] Notification channels configured with appropriate recipients
|
||||
|
||||
### Output Validation
|
||||
- [ ] Every metric cites its data source and collection date
|
||||
- [ ] Alert thresholds account for normal metric fluctuations
|
||||
- [ ] Response plans are specific and time-bound
|
||||
- [ ] Source of each alert trigger clearly stated (~~SEO tool API alert, ~~search console notification, ~~web crawler alert, or manual user check)
|
||||
|
||||
## Example
|
||||
|
||||
**User**: "Set up ranking drop alerts for my top keywords"
|
||||
|
||||
**Output**:
|
||||
|
||||
```markdown
|
||||
## Ranking Alert Configuration
|
||||
|
||||
### Critical Keywords (Immediate Alert)
|
||||
|
||||
| Keyword | Current | Alert If | Priority |
|
||||
|---------|---------|----------|----------|
|
||||
| best project management software | 2 | Drops to 5+ | 🔴 Critical |
|
||||
| project management tools | 4 | Drops to 8+ | 🔴 Critical |
|
||||
| team collaboration software | 1 | Any drop | 🔴 Critical |
|
||||
|
||||
### Important Keywords (Same-Day Alert)
|
||||
|
||||
| Keyword | Current | Alert If | Priority |
|
||||
|---------|---------|----------|----------|
|
||||
| agile project management | 7 | Drops out of top 10 | 🔴 High |
|
||||
| kanban software | 9 | Drops out of top 10 | 🔴 High |
|
||||
|
||||
### Alert Response Plan
|
||||
|
||||
**If Critical Keyword Drops**:
|
||||
1. Check if page is still indexed (site:url)
|
||||
2. Look for algorithm update announcements
|
||||
3. Analyze what changed in SERP
|
||||
4. Review competitor ranking changes
|
||||
5. Check for technical issues on page
|
||||
6. Create recovery action plan within 24 hours
|
||||
|
||||
**Notification**: Email + Slack to SEO team immediately
|
||||
```
|
||||
|
||||
## Tips for Success
|
||||
|
||||
1. **Start simple** - Don't create too many alerts initially
|
||||
2. **Tune thresholds** - Adjust based on normal fluctuations
|
||||
3. **Avoid alert fatigue** - Too many alerts = ignored alerts
|
||||
4. **Document response plans** - Know what to do when alerts fire
|
||||
5. **Review regularly** - Alerts need maintenance as your SEO matures
|
||||
6. **Include positive alerts** - Track wins, not just problems
|
||||
|
||||
## Alert Threshold Quick Reference
|
||||
|
||||
| Metric | Warning | Critical | Frequency |
|
||||
|--------|---------|----------|-----------|
|
||||
| Organic traffic | -15% WoW | -30% WoW | Daily |
|
||||
| Keyword positions | >3 position drop | >5 position drop | Daily |
|
||||
| Pages indexed | -5% change | -20% change | Weekly |
|
||||
| Crawl errors | >10 new/day | >50 new/day | Daily |
|
||||
| Core Web Vitals | "Needs Improvement" | "Poor" | Weekly |
|
||||
| Backlinks lost | >5% in 1 week | >15% in 1 week | Weekly |
|
||||
| AI citation loss | Any key query | >20% queries | Weekly |
|
||||
| Security issues | Any detected | Any detected | Daily |
|
||||
|
||||
> **Reference**: See [references/alert-threshold-guide.md](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/monitor/alert-manager/references/alert-threshold-guide.md) for baseline establishment, threshold setting methodology, fatigue prevention, escalation paths, and response playbooks.
|
||||
|
||||
|
||||
### Save Results
|
||||
|
||||
After delivering monitoring data or reports to the user, ask:
|
||||
|
||||
> "Save these results for future sessions?"
|
||||
|
||||
If yes, write a dated summary to `memory/monitoring/YYYY-MM-DD-<topic>.md` containing:
|
||||
- One-line headline finding or status change
|
||||
- Top 3-5 actionable items
|
||||
- Open loops or anomalies requiring follow-up
|
||||
- Source data references
|
||||
|
||||
If any findings should influence ongoing strategy, recommend promoting key conclusions to `memory/hot-cache.md`.
|
||||
|
||||
## Reference Materials
|
||||
|
||||
- [Alert Threshold Guide](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/monitor/alert-manager/references/alert-threshold-guide.md) — Recommended thresholds by metric, fatigue prevention strategies, and escalation path templates
|
||||
|
||||
## Next Best Skill
|
||||
|
||||
- **Primary**: [rank-tracker](https://github.com/aaron-he-zhu/seo-geo-claude-skills/blob/main/monitor/rank-tracker/SKILL.md) — pair alerts with a baseline measurement workflow.
|
||||
|
|
@ -0,0 +1,293 @@
|
|||
# Alert Configuration Templates
|
||||
|
||||
Detailed alert configuration templates for each alert category. Use these templates when setting up a new alert system for a domain.
|
||||
|
||||
---
|
||||
|
||||
## Ranking Alerts
|
||||
|
||||
### Position Drop Alerts
|
||||
|
||||
| Alert Name | Condition | Threshold | Priority | Action |
|
||||
|------------|-----------|-----------|----------|--------|
|
||||
| Critical Drop | Any top 3 keyword drops 5+ positions | Position change >=5 | Critical | Immediate investigation |
|
||||
| Major Drop | Top 10 keyword drops out of top 10 | Position >10 | High | Same-day review |
|
||||
| Moderate Drop | Any keyword drops 10+ positions | Position change >=10 | Medium | Weekly review |
|
||||
| Competitor Overtake | Competitor passes you for key term | Comp position < yours | Medium | Analysis needed |
|
||||
|
||||
### Position Improvement Alerts
|
||||
|
||||
| Alert Name | Condition | Threshold | Priority |
|
||||
|------------|-----------|-----------|----------|
|
||||
| New Top 3 | Keyword enters top 3 | Position <=3 | Positive |
|
||||
| Page 1 Entry | Keyword enters top 10 | Position <=10 | Positive |
|
||||
| Significant Climb | Keyword improves 10+ positions | Change >=+10 | Positive |
|
||||
|
||||
### SERP Feature Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Snippet Lost | Lost featured snippet ownership | High |
|
||||
| Snippet Won | Won new featured snippet | Positive |
|
||||
| AI Overview Change | Appeared/disappeared in AI Overview | Medium |
|
||||
|
||||
### Keywords to Monitor
|
||||
|
||||
| Keyword | Current Rank | Alert Threshold | Priority |
|
||||
|---------|--------------|-----------------|----------|
|
||||
| [keyword 1] | [X] | Drop >=3 | Critical |
|
||||
| [keyword 2] | [X] | Drop >=5 | High |
|
||||
| [keyword 3] | [X] | Drop >=10 | Medium |
|
||||
|
||||
---
|
||||
|
||||
## Traffic Alerts
|
||||
|
||||
### Traffic Decline Alerts
|
||||
|
||||
| Alert Name | Condition | Threshold | Priority |
|
||||
|------------|-----------|-----------|----------|
|
||||
| Traffic Crash | Day-over-day decline | >=50% drop | Critical |
|
||||
| Significant Drop | Week-over-week decline | >=30% drop | High |
|
||||
| Moderate Decline | Month-over-month decline | >=20% drop | Medium |
|
||||
| Trend Warning | 3 consecutive weeks decline | Any decline | Medium |
|
||||
|
||||
### Traffic Anomaly Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Traffic Spike | Unusual increase | Investigate |
|
||||
| Zero Traffic | Page receiving 0 visits | High |
|
||||
| Bot Traffic | Unusual traffic pattern | Medium |
|
||||
|
||||
### Page-Level Alerts
|
||||
|
||||
| Page Type | Alert Condition | Priority |
|
||||
|-----------|-----------------|----------|
|
||||
| Homepage | Any 20%+ decline | Critical |
|
||||
| Top 10 pages | Any 30%+ decline | High |
|
||||
| Conversion pages | Any 25%+ decline | High |
|
||||
| Blog posts | Any 40%+ decline | Medium |
|
||||
|
||||
### Conversion Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Conversion Drop | Organic conversions down 30%+ | Critical |
|
||||
| CVR Decline | Conversion rate drops 20%+ | High |
|
||||
|
||||
---
|
||||
|
||||
## Technical SEO Alerts
|
||||
|
||||
### Critical Technical Alerts
|
||||
|
||||
| Alert Name | Condition | Priority | Response Time |
|
||||
|------------|-----------|----------|---------------|
|
||||
| Site Down | HTTP 5xx errors | Critical | Immediate |
|
||||
| SSL Expiry | Certificate expiring in 14 days | Critical | Same day |
|
||||
| Robots.txt Block | Important pages blocked | Critical | Same day |
|
||||
| Index Dropped | Pages dropping from index | Critical | Same day |
|
||||
|
||||
### Crawl & Index Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Crawl Errors Spike | Errors increase 50%+ | High |
|
||||
| New 404 Pages | 404 errors on important pages | Medium |
|
||||
| Redirect Chains | 3+ redirect hops detected | Medium |
|
||||
| Duplicate Content | New duplicates detected | Medium |
|
||||
| Index Coverage Drop | Indexed pages decline 10%+ | High |
|
||||
|
||||
### Performance Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Core Web Vitals Fail | CWV drops to "Poor" | High |
|
||||
| Page Speed Drop | Load time increases 50%+ | Medium |
|
||||
| Mobile Issues | Mobile usability errors | High |
|
||||
|
||||
### Security Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Security Issue | GSC security warning | Critical |
|
||||
| Manual Action | Google manual action | Critical |
|
||||
| Malware Detected | Site flagged for malware | Critical |
|
||||
|
||||
---
|
||||
|
||||
## Backlink Alerts
|
||||
|
||||
### Link Loss Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| High-Value Link Lost | DA 70+ link removed | High |
|
||||
| Multiple Links Lost | 10+ links lost in a day | Medium |
|
||||
| Referring Domain Lost | Lost entire domain's links | Medium |
|
||||
|
||||
### Link Gain Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| High-Value Link | New DA 70+ link | Positive |
|
||||
| Suspicious Links | Many low-quality links | Review |
|
||||
| Negative SEO | Spam link attack pattern | High |
|
||||
|
||||
### Link Profile Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Toxic Score Increase | Toxic score up 20%+ | High |
|
||||
| Anchor Over-Optimization | Exact match anchors >30% | Medium |
|
||||
|
||||
---
|
||||
|
||||
## Competitor Monitoring Alerts
|
||||
|
||||
### Ranking Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Competitor Overtake | Competitor passes you | Medium |
|
||||
| Competitor Top 3 | Competitor enters top 3 on key term | Medium |
|
||||
| Competitor Content | Competitor publishes on your topic | Info |
|
||||
|
||||
### Activity Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| New Backlinks | Competitor gains high-DA link | Info |
|
||||
| Content Update | Competitor updates ranking content | Info |
|
||||
| New Content | Competitor publishes new content | Info |
|
||||
|
||||
### Competitors to Monitor
|
||||
|
||||
| Competitor | Domain | Monitor Keywords | Alert Priority |
|
||||
|------------|--------|------------------|----------------|
|
||||
| [Competitor 1] | [domain] | [X] keywords | High |
|
||||
| [Competitor 2] | [domain] | [X] keywords | Medium |
|
||||
| [Competitor 3] | [domain] | [X] keywords | Low |
|
||||
|
||||
---
|
||||
|
||||
## GEO (AI Visibility) Alerts
|
||||
|
||||
### AI Citation Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Citation Lost | Lost AI Overview citation | Medium |
|
||||
| Citation Won | New AI Overview citation | Positive |
|
||||
| Citation Position Drop | Dropped from 1st to 3rd+ source | Medium |
|
||||
| New AI Overview | AI Overview appears for tracked keyword | Info |
|
||||
|
||||
### GEO Trend Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Citation Rate Drop | AI citation rate drops 20%+ | High |
|
||||
| GEO Competitor | Competitor cited where you're not | Medium |
|
||||
|
||||
---
|
||||
|
||||
## Brand Monitoring Alerts
|
||||
|
||||
### Mention Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Brand Mention | New brand mention online | Info |
|
||||
| Negative Mention | Negative sentiment mention | High |
|
||||
| Review Alert | New review on key platforms | Medium |
|
||||
| Unlinked Mention | Brand mention without link | Opportunity |
|
||||
|
||||
### Reputation Alerts
|
||||
|
||||
| Alert Name | Condition | Priority |
|
||||
|------------|-----------|----------|
|
||||
| Review Rating Drop | Average rating drops | High |
|
||||
| Negative Press | Negative news article | High |
|
||||
| Competitor Comparison | Named in competitor comparison | Medium |
|
||||
|
||||
---
|
||||
|
||||
## Alert Response Plans
|
||||
|
||||
### Critical Alert Response
|
||||
|
||||
**Response Time**: Immediate (within 1 hour)
|
||||
|
||||
| Alert Type | Immediate Actions |
|
||||
|------------|-------------------|
|
||||
| Site Down | 1. Check server status 2. Contact hosting 3. Check DNS |
|
||||
| Traffic Crash | 1. Check for algorithm update 2. Review GSC errors 3. Check competitors |
|
||||
| Manual Action | 1. Review GSC message 2. Identify issue 3. Begin remediation |
|
||||
| Critical Rank Drop | 1. Check if page indexed 2. Review SERP 3. Analyze competitors |
|
||||
|
||||
### High Priority Response
|
||||
|
||||
**Response Time**: Same day
|
||||
|
||||
| Alert Type | Actions |
|
||||
|------------|---------|
|
||||
| Major Rank Drops | Analyze cause, create recovery plan |
|
||||
| Traffic Decline | Investigate source, check technical issues |
|
||||
| Backlink Loss | Attempt recovery outreach |
|
||||
| CWV Failure | Diagnose and fix performance issues |
|
||||
|
||||
### Medium Priority Response
|
||||
|
||||
**Response Time**: Within 48 hours
|
||||
|
||||
| Alert Type | Actions |
|
||||
|------------|---------|
|
||||
| Moderate Rank Changes | Monitor trend, plan content updates |
|
||||
| Competitor Movement | Analyze competitor changes |
|
||||
| New 404s | Set up redirects, update internal links |
|
||||
|
||||
### Low Priority
|
||||
|
||||
**Response Time**: Weekly review
|
||||
|
||||
| Alert Type | Actions |
|
||||
|------------|---------|
|
||||
| Positive Changes | Document wins, understand cause |
|
||||
| Info Alerts | Log for trend analysis |
|
||||
|
||||
---
|
||||
|
||||
## Alert Notification Setup
|
||||
|
||||
### Notification Channels
|
||||
|
||||
| Priority | Channels | Frequency |
|
||||
|----------|----------|-----------|
|
||||
| Critical | Email + SMS + Slack | Immediate |
|
||||
| High | Email + Slack | Immediate |
|
||||
| Medium | Email + Slack | Daily digest |
|
||||
| Low | Email | Weekly digest |
|
||||
|
||||
### Alert Recipients
|
||||
|
||||
| Role | Critical | High | Medium | Low |
|
||||
|------|----------|------|--------|-----|
|
||||
| SEO Manager | Yes | Yes | Yes | Yes |
|
||||
| Dev Team | Yes | Yes (tech only) | No | No |
|
||||
| Marketing Lead | Yes | Yes | No | No |
|
||||
| Executive | Yes | No | No | No |
|
||||
|
||||
### Alert Suppression
|
||||
|
||||
- Suppress duplicate alerts for 24 hours
|
||||
- Don't alert on known issues (maintenance windows)
|
||||
- Batch low-priority alerts into digests
|
||||
|
||||
### Alert Escalation
|
||||
|
||||
| If No Response In | Escalate To |
|
||||
|-------------------|-------------|
|
||||
| 1 hour (Critical) | SEO Manager -> Director |
|
||||
| 4 hours (High) | Team Lead -> Manager |
|
||||
| 24 hours (Medium) | Team -> Lead |
|
||||
377
.cursor/skills/alert-manager/references/alert-threshold-guide.md
Normal file
377
.cursor/skills/alert-manager/references/alert-threshold-guide.md
Normal file
|
|
@ -0,0 +1,377 @@
|
|||
# Alert Threshold Guide
|
||||
|
||||
Complete reference for configuring SEO/GEO alert thresholds. Covers baseline establishment, threshold setting methodology, tuning process, alert routing configuration, notification channel setup, and response playbooks for each alert type.
|
||||
|
||||
---
|
||||
|
||||
## 1. Baseline Establishment Process
|
||||
|
||||
Before setting any alert thresholds, you must establish a baseline that represents normal metric behavior for your site. Without a baseline, you will either set thresholds too tight (causing alert fatigue) or too loose (missing real problems).
|
||||
|
||||
### Baseline Collection Timeline
|
||||
|
||||
| Metric Category | Minimum Baseline Period | Ideal Baseline Period | Why |
|
||||
|----------------|------------------------|----------------------|-----|
|
||||
| Organic traffic | 4 weeks | 8-12 weeks | Accounts for weekly cycles and monthly patterns |
|
||||
| Keyword rankings | 2-4 weeks | 4-8 weeks | Rankings fluctuate daily; need to establish normal range |
|
||||
| Backlink metrics | 4 weeks | 8 weeks | Link acquisition is lumpy; need to see natural cadence |
|
||||
| Technical metrics | 2 weeks | 4 weeks | Most technical metrics are relatively stable |
|
||||
| Core Web Vitals | 4 weeks (28-day rolling) | 8 weeks | CrUX data is 28-day rolling average |
|
||||
| AI citations | 4 weeks | 8 weeks | AI answer composition changes frequently |
|
||||
|
||||
### Baseline Data Collection Steps
|
||||
|
||||
| Step | Action | Output |
|
||||
|------|--------|--------|
|
||||
| 1 | Record daily metric values for the baseline period | Raw data spreadsheet |
|
||||
| 2 | Calculate mean (average) for each metric | Central tendency |
|
||||
| 3 | Calculate standard deviation for each metric | Normal variation range |
|
||||
| 4 | Identify outliers (values > 2 standard deviations from mean) | Anomaly list |
|
||||
| 5 | Remove known outliers (holidays, outages, one-time events) | Clean baseline |
|
||||
| 6 | Recalculate mean and standard deviation on clean data | Final baseline values |
|
||||
| 7 | Document seasonal patterns if baseline covers enough time | Seasonal adjustment notes |
|
||||
|
||||
### Baseline Metrics to Record
|
||||
|
||||
| Metric | Daily | Weekly | Monthly |
|
||||
|--------|-------|--------|---------|
|
||||
| Organic sessions | Record | Calculate WoW % change | Calculate MoM % change |
|
||||
| Keyword positions (top 20) | Record | Calculate average movement | Calculate net position change |
|
||||
| Keywords in top 10 | Record | Calculate weekly count | Calculate monthly trend |
|
||||
| Crawl errors | Record | Calculate weekly new errors | Calculate monthly trend |
|
||||
| New backlinks | N/A | Record weekly count | Calculate monthly velocity |
|
||||
| Lost backlinks | N/A | Record weekly count | Calculate monthly velocity |
|
||||
| Core Web Vitals | N/A | Record from CrUX | Calculate monthly trend |
|
||||
| AI citations | N/A | Record weekly count | Calculate monthly trend |
|
||||
| Pages indexed | N/A | Record weekly count | Calculate monthly change |
|
||||
| Server response time | Record | Calculate weekly average | Calculate monthly average |
|
||||
|
||||
---
|
||||
|
||||
## 2. Threshold Setting Methodology
|
||||
|
||||
### The Standard Deviation Method
|
||||
|
||||
For most metrics, set thresholds based on standard deviations from your baseline mean.
|
||||
|
||||
| Threshold Level | Formula | Meaning |
|
||||
|----------------|---------|---------|
|
||||
| **Info** | Mean +/- 1 standard deviation | Normal fluctuation range; log but do not alert |
|
||||
| **Warning** | Mean +/- 1.5 standard deviations | Unusual but not necessarily problematic |
|
||||
| **Critical** | Mean +/- 2 standard deviations | Statistically significant anomaly; investigate |
|
||||
| **Emergency** | Mean +/- 3 standard deviations | Extreme anomaly; immediate action required |
|
||||
|
||||
**Example calculation:**
|
||||
|
||||
```
|
||||
Metric: Daily organic sessions
|
||||
Baseline mean: 10,000 sessions/day
|
||||
Standard deviation: 800 sessions/day
|
||||
|
||||
Info range: 8,200 - 11,800 (normal)
|
||||
Warning: < 8,800 or > 11,200
|
||||
Critical: < 8,400 or > 11,600
|
||||
Emergency: < 7,600 or > 12,400
|
||||
```
|
||||
|
||||
### The Percentage Method
|
||||
|
||||
For metrics where standard deviation is not practical, use percentage-based thresholds.
|
||||
|
||||
| Metric | Warning Threshold | Critical Threshold | Comparison Period |
|
||||
|--------|------------------|-------------------|-------------------|
|
||||
| Organic traffic | -15% vs. comparison | -30% vs. comparison | Week over week |
|
||||
| Keyword positions | >3 position average drop | >5 position average drop | Week over week |
|
||||
| Pages indexed | -5% change | -20% change | Week over week |
|
||||
| Referring domains | -5% loss | -15% loss | Month over month |
|
||||
| Crawl error rate | >2x baseline rate | >5x baseline rate | Day over day |
|
||||
| Conversion rate | -20% drop | -40% drop | Week over week |
|
||||
|
||||
### The Absolute Value Method
|
||||
|
||||
For binary or count-based metrics, use absolute thresholds.
|
||||
|
||||
| Metric | Warning Threshold | Critical Threshold |
|
||||
|--------|------------------|-------------------|
|
||||
| New crawl errors | >10 new errors/day | >50 new errors/day |
|
||||
| Server 5xx errors | Any occurrence | >5 occurrences/hour |
|
||||
| Security issues | N/A | Any detection |
|
||||
| Manual penalties | N/A | Any notification |
|
||||
| SSL certificate expiry | <30 days to expiry | <7 days to expiry |
|
||||
| Robots.txt changes | Any unexpected change | Key pages blocked |
|
||||
|
||||
---
|
||||
|
||||
## 3. Threshold Configuration by Metric Category
|
||||
|
||||
### Traffic Thresholds
|
||||
|
||||
| Metric | Comparison | Warning | Critical | Emergency |
|
||||
|--------|-----------|---------|----------|-----------|
|
||||
| Total organic sessions | WoW | -15% | -30% | -50% |
|
||||
| Total organic sessions | DoD | -25% (weekday) | -40% | Site appears down |
|
||||
| Non-brand sessions | WoW | -20% | -35% | -50% |
|
||||
| Organic conversions | WoW | -20% | -40% | -60% |
|
||||
| Organic revenue | WoW | -15% | -30% | -50% |
|
||||
| Bounce rate | WoW | +10pp | +20pp | +30pp |
|
||||
| Page-level traffic (top 10 pages) | WoW | -25% | -40% | -60% |
|
||||
|
||||
**Note:** Day-over-day traffic thresholds need day-of-week adjustment. Monday traffic typically differs from Saturday traffic. Compare Monday to Monday, not Monday to Sunday.
|
||||
|
||||
### Ranking Thresholds
|
||||
|
||||
| Metric | Scope | Warning | Critical |
|
||||
|--------|-------|---------|----------|
|
||||
| Position change (Tier 1 keywords) | Individual keyword | Drop >= 3 | Drop >= 5 |
|
||||
| Position change (Tier 2 keywords) | Individual keyword | Drop >= 5 | Drop >= 10 |
|
||||
| Position change (Tier 3 keywords) | Individual keyword | Drop >= 10 | Drop off page 3 |
|
||||
| Average position (all keywords) | Aggregate | +2.0 (worsening) | +5.0 (worsening) |
|
||||
| Keywords in top 10 | Count | -10% of count | -20% of count |
|
||||
| Keywords in top 3 | Count | Any decrease | -3 or more |
|
||||
| Brand keyword position | Individual | Any drop from #1 | Drops below #3 |
|
||||
| Featured snippet lost | Individual | Any loss | Loss of 3+ snippets |
|
||||
|
||||
### Technical Thresholds
|
||||
|
||||
| Metric | Warning | Critical | Emergency |
|
||||
|--------|---------|----------|-----------|
|
||||
| New 4xx errors | >5/day | >20/day | >100/day |
|
||||
| New 5xx errors | >1/day | >5/day | >20/day |
|
||||
| Crawl rate change | -30% vs. baseline | -60% vs. baseline | Near-zero crawl |
|
||||
| Index coverage drop | -5% | -15% | -30% |
|
||||
| Average server response time | >500ms | >1000ms | >2000ms |
|
||||
| LCP (mobile) | Moves to "Needs Improvement" | Moves to "Poor" | >6s |
|
||||
| CLS | >0.1 | >0.25 | >0.5 |
|
||||
| INP | >200ms | >500ms | >1000ms |
|
||||
| Robots.txt change | Any unexpected edit | Pages blocked | Entire site blocked |
|
||||
| Sitemap errors | New errors | Sitemap inaccessible | Sitemap returning 5xx |
|
||||
|
||||
### Backlink Thresholds
|
||||
|
||||
| Metric | Warning | Critical |
|
||||
|--------|---------|----------|
|
||||
| Referring domains lost (weekly) | >5% of total | >15% of total |
|
||||
| High-authority link lost (DR 60+) | Any loss | Loss of 3+ in one week |
|
||||
| Toxic link spike | >10 new toxic links/week | >50 new toxic links/week |
|
||||
| Anchor text over-optimization | Exact match reaches 20% | Exact match reaches 30% |
|
||||
| Negative SEO pattern | Unusual link velocity from low-DR sites | Massive spam link spike |
|
||||
|
||||
### GEO / AI Visibility Thresholds
|
||||
|
||||
| Metric | Warning | Critical |
|
||||
|--------|---------|----------|
|
||||
| AI citation rate | Drops 10+ percentage points | Drops below 10% |
|
||||
| Key query citation lost | Any Tier 1 query | 3+ Tier 1 queries |
|
||||
| Citation position degradation | Average position worsens by 2+ | Dropped from citations entirely |
|
||||
| Competitor gains citation you lost | 1 instance | Pattern across queries |
|
||||
|
||||
---
|
||||
|
||||
## 4. Alert Routing Configuration
|
||||
|
||||
### Routing Matrix
|
||||
|
||||
| Alert Category | P0 (Emergency) | P1 (Urgent) | P2 (Important) | P3 (Monitor) |
|
||||
|---------------|----------------|-------------|----------------|--------------|
|
||||
| **Traffic** | SEO Lead + Eng Manager + VP | SEO Lead + Marketing Mgr | SEO Team | Weekly digest |
|
||||
| **Rankings** | SEO Lead + Content Lead | SEO Team | SEO Team | Weekly digest |
|
||||
| **Technical** | SEO Lead + Eng Lead + DevOps | SEO Lead + Eng Team | SEO Team + Eng | Weekly digest |
|
||||
| **Backlinks** | SEO Lead | SEO Team | SEO Team | Weekly digest |
|
||||
| **Competitor** | N/A | SEO Lead | SEO Team | Weekly digest |
|
||||
| **GEO/AI** | SEO Lead + Content Lead | SEO Team | SEO Team | Weekly digest |
|
||||
| **Security** | SEO Lead + Eng Manager + VP + Legal | All above | N/A | N/A |
|
||||
|
||||
### Role-Based Alert Filtering
|
||||
|
||||
| Role | Receives | Does Not Receive |
|
||||
|------|---------|-----------------|
|
||||
| SEO Lead | All P0, P1, P2 alerts | P3 (weekly digest only) |
|
||||
| SEO Analyst | P1, P2 in their area | P0 (escalation only), other areas |
|
||||
| Content Lead | P0-P1 ranking + GEO alerts | Technical alerts, backlink alerts |
|
||||
| Engineering Lead | P0-P1 technical alerts | Ranking, content, backlink alerts |
|
||||
| Marketing VP | P0 only | P1-P3 (receives weekly summary) |
|
||||
| DevOps | P0 technical + security | All non-infrastructure alerts |
|
||||
|
||||
---
|
||||
|
||||
## 5. Notification Channel Setup
|
||||
|
||||
### Channel Selection by Priority
|
||||
|
||||
| Priority | Primary Channel | Secondary Channel | Escalation Channel |
|
||||
|----------|----------------|-------------------|-------------------|
|
||||
| P0 | SMS + Phone call | Slack (#seo-emergencies) | PagerDuty / on-call rotation |
|
||||
| P1 | Slack (#seo-alerts) | Email | SMS (if not acknowledged in 4h) |
|
||||
| P2 | Email | Slack (#seo-daily) | Auto-escalate to P1 after 1 week |
|
||||
| P3 | Weekly digest email | Dashboard | Auto-escalate to P2 after 1 month |
|
||||
|
||||
### Notification Content Requirements
|
||||
|
||||
Every alert notification should include:
|
||||
|
||||
| Field | Required | Example |
|
||||
|-------|----------|---------|
|
||||
| Alert name | Yes | "Critical Ranking Drop" |
|
||||
| Priority level | Yes | "P0 — Emergency" |
|
||||
| Metric affected | Yes | "Position for 'project management software'" |
|
||||
| Current value | Yes | "Position 12" |
|
||||
| Previous value | Yes | "Position 3 (yesterday)" |
|
||||
| Threshold breached | Yes | "Dropped >5 positions" |
|
||||
| Timestamp | Yes | "2025-01-15 09:00 UTC" |
|
||||
| Affected URL | Yes (if applicable) | "yoursite.com/blog/pm-guide" |
|
||||
| Quick action link | Yes | Link to relevant tool/dashboard |
|
||||
| Suggested first step | Recommended | "Check if page is still indexed: site:yoursite.com/blog/pm-guide" |
|
||||
|
||||
### Notification Suppression Rules
|
||||
|
||||
| Rule | Configuration | Reason |
|
||||
|------|-------------|--------|
|
||||
| Duplicate cooldown | Do not re-alert on same metric for 24 hours | Prevent alert storms |
|
||||
| Maintenance window | Suppress non-security alerts during scheduled maintenance | Avoid known-cause alerts |
|
||||
| Weekend adjustment | Increase traffic thresholds by 20% on weekends | Weekend traffic naturally lower |
|
||||
| Holiday adjustment | Suppress traffic alerts on major holidays | Known seasonal impact |
|
||||
| Recovery auto-close | Auto-close alert if metric returns to normal within 48h | Reduce stale alerts |
|
||||
| Batch related alerts | Group multiple ranking drops into single "Ranking Alert" | Reduce notification volume |
|
||||
|
||||
---
|
||||
|
||||
## 6. Threshold Tuning Guide
|
||||
|
||||
### When to Tune Thresholds
|
||||
|
||||
| Signal | Action |
|
||||
|--------|--------|
|
||||
| Too many false positives (>30% of alerts are noise) | Widen thresholds by 0.5 standard deviations |
|
||||
| Missed a real problem | Tighten the specific threshold that should have caught it |
|
||||
| Seasonal change approaching | Adjust baselines for known seasonal patterns |
|
||||
| Major site change (redesign, migration) | Re-establish baseline from scratch (2-4 week observation) |
|
||||
| New competitor enters market | Add competitor monitoring, adjust ranking sensitivity |
|
||||
| After algorithm update | Let metrics stabilize for 2-4 weeks, then recalibrate |
|
||||
|
||||
### Monthly Threshold Review Checklist
|
||||
|
||||
| Check | Action |
|
||||
|-------|--------|
|
||||
| Review all alerts fired in the past month | Count true positives vs. false positives |
|
||||
| Calculate false positive rate | If >30%, thresholds are too tight |
|
||||
| Check for missed events | If a real issue was not alerted, threshold is too loose |
|
||||
| Review metric baselines | Recalculate mean and standard deviation with latest data |
|
||||
| Adjust seasonal baselines | Incorporate seasonal patterns from year-over-year data |
|
||||
| Update keyword tiers | Promote/demote keywords based on current business priority |
|
||||
| Verify notification routing | Confirm all recipients are still in the correct roles |
|
||||
| Test alert delivery | Send a test alert through each channel to verify delivery |
|
||||
|
||||
### Threshold Evolution Over Time
|
||||
|
||||
| Site Maturity | Threshold Approach | Rationale |
|
||||
|-------------|-------------------|-----------|
|
||||
| New site (0-6 months) | Wide thresholds, few alerts | Metrics are volatile; avoid noise |
|
||||
| Growing (6-18 months) | Moderate thresholds, expand coverage | Enough data for meaningful baselines |
|
||||
| Established (18+ months) | Tight thresholds, comprehensive | Stable baselines, can detect subtle changes |
|
||||
| Post-migration | Reset to wide, re-tighten over 4-8 weeks | Old baselines are invalid |
|
||||
|
||||
---
|
||||
|
||||
## 7. Playbook Templates by Alert Type
|
||||
|
||||
### Playbook: Organic Traffic Emergency (P0)
|
||||
|
||||
**Trigger:** Organic traffic drops >50% day-over-day
|
||||
|
||||
| Step | Time | Action | Tool |
|
||||
|------|------|--------|------|
|
||||
| 1 | 0 min | Verify site is accessible from multiple locations | Manual browser check, uptime monitor |
|
||||
| 2 | 5 min | Check Google Search Status Dashboard for outages | Google Status Dashboard |
|
||||
| 3 | 10 min | Check Search Console for manual actions or security issues | ~~search console |
|
||||
| 4 | 15 min | Check robots.txt for accidental blocking | Direct URL check |
|
||||
| 5 | 20 min | Check for noindex tags added to key pages | Crawl or manual page inspection |
|
||||
| 6 | 30 min | Review recent deployments or CMS changes | Deploy log, git history |
|
||||
| 7 | 45 min | Check server logs for unusual patterns | Server access logs |
|
||||
| 8 | 60 min | If unresolved, escalate to Engineering Manager | Slack/phone |
|
||||
|
||||
### Playbook: Security Alert (P0)
|
||||
|
||||
**Trigger:** Google Search Console security issue or manual action
|
||||
|
||||
| Step | Time | Action |
|
||||
|------|------|--------|
|
||||
| 1 | 0 min | Read the exact message in Search Console |
|
||||
| 2 | 5 min | Notify Engineering Manager and VP Marketing |
|
||||
| 3 | 15 min | Scan site for malware or injected content |
|
||||
| 4 | 30 min | If compromised: take affected pages offline, rotate all credentials |
|
||||
| 5 | 1 hour | Identify attack vector and patch vulnerability |
|
||||
| 6 | 2 hours | Clean all affected pages, submit for re-review |
|
||||
| 7 | 24 hours | Verify resolution in Search Console |
|
||||
| 8 | 1 week | Post-incident review and security hardening |
|
||||
|
||||
### Playbook: Algorithm Update Impact (P1-P2)
|
||||
|
||||
**Trigger:** Confirmed Google algorithm update + ranking/traffic changes
|
||||
|
||||
| Step | Time | Action |
|
||||
|------|------|--------|
|
||||
| 1 | Day 0 | Confirm update via Google Search Status Dashboard or official channels |
|
||||
| 2 | Day 0 | Document pre-update baseline metrics (rankings, traffic, visibility) |
|
||||
| 3 | Day 1-3 | Monitor daily — do not make changes while update is rolling out |
|
||||
| 4 | Day 7 | First analysis: which pages/keywords improved, which declined |
|
||||
| 5 | Day 7 | Analyze pattern: content quality? link profile? technical? YMYL? |
|
||||
| 6 | Day 14 | Develop action plan based on analysis |
|
||||
| 7 | Day 14-60 | Implement improvements (content quality, E-E-A-T signals, technical fixes) |
|
||||
| 8 | Next update | Re-evaluate impact after next core update |
|
||||
|
||||
### Playbook: Backlink Attack / Negative SEO (P1)
|
||||
|
||||
**Trigger:** Unusual spike in low-quality backlinks (>100 new links from spam domains in one week)
|
||||
|
||||
| Step | Time | Action |
|
||||
|------|------|--------|
|
||||
| 1 | Day 0 | Verify the spike in ~~link database |
|
||||
| 2 | Day 0 | Identify the pattern (same anchor text? same link network? same country?) |
|
||||
| 3 | Day 1 | Export all new toxic links |
|
||||
| 4 | Day 1 | Create disavow file with identified spam domains |
|
||||
| 5 | Day 2 | Upload disavow to Google Search Console |
|
||||
| 6 | Day 2 | Document the attack pattern for future reference |
|
||||
| 7 | Day 7 | Re-check for continued spam link activity |
|
||||
| 8 | Day 14 | Verify disavow processed, monitor rankings for impact |
|
||||
|
||||
### Playbook: Core Web Vitals Degradation (P2)
|
||||
|
||||
**Trigger:** Any CWV metric moves from "Good" to "Needs Improvement" or "Poor"
|
||||
|
||||
| Step | Time | Action |
|
||||
|------|------|--------|
|
||||
| 1 | Day 0 | Identify which metric degraded and which page groups are affected |
|
||||
| 2 | Day 1 | Run PageSpeed Insights on representative pages |
|
||||
| 3 | Day 1 | Check recent deployments for potential cause (new scripts, images, layout changes) |
|
||||
| 4 | Day 2 | Create engineering ticket with diagnosis and fix recommendations |
|
||||
| 5 | Day 3-14 | Engineering implements fix |
|
||||
| 6 | Day 14 | Verify improvement in lab data (PageSpeed Insights) |
|
||||
| 7 | Day 42 | Verify improvement in field data (CrUX — 28-day rolling window) |
|
||||
|
||||
---
|
||||
|
||||
## 8. Alert System Maintenance
|
||||
|
||||
### Quarterly System Review
|
||||
|
||||
| Task | Frequency | Owner |
|
||||
|------|-----------|-------|
|
||||
| Recalculate all baselines with latest data | Quarterly | SEO Lead |
|
||||
| Review and update keyword tier assignments | Quarterly | SEO Team |
|
||||
| Audit notification routing (team changes, role changes) | Quarterly | SEO Lead |
|
||||
| Test all notification channels (SMS, Slack, email) | Quarterly | SEO Lead |
|
||||
| Review alert response times (are SLAs being met?) | Quarterly | SEO Lead |
|
||||
| Archive resolved alerts older than 90 days | Quarterly | SEO Analyst |
|
||||
| Update playbooks based on lessons learned | Quarterly | SEO Team |
|
||||
|
||||
### Alert Effectiveness Metrics
|
||||
|
||||
Track these metrics about your alerting system itself:
|
||||
|
||||
| Metric | Target | Meaning |
|
||||
|--------|--------|---------|
|
||||
| False positive rate | <30% | % of alerts that were not actionable |
|
||||
| Mean time to acknowledge (MTTA) | P0: <15min, P1: <4h | Time from alert to first human response |
|
||||
| Mean time to resolve (MTTR) | P0: <2h, P1: <24h | Time from alert to resolution |
|
||||
| Missed incident rate | 0% | Real problems that were not alerted |
|
||||
| Alert volume per week | Manageable for team size | If overwhelming, thresholds need tuning |
|
||||
Loading…
Add table
Add a link
Reference in a new issue