diff --git a/scripts/gsc-monitoring/QUICKSTART.md b/scripts/gsc-monitoring/QUICKSTART.md new file mode 100644 index 0000000..1ee992f --- /dev/null +++ b/scripts/gsc-monitoring/QUICKSTART.md @@ -0,0 +1,121 @@ +# Google Search Console Monitoring Setup + +## ✅ What's Been Created + +I've created a complete automated monitoring system in `scripts/gsc-monitoring/`: + +### Files Created: +1. **monitor.py** - Python script that fetches GSC data +2. **requirements.txt** - Python dependencies +3. **Dockerfile** - Container image definition +4. **cronjob.yaml** - Kubernetes CronJob for daily runs +5. **README.md** - Full setup documentation + +### What It Monitors: +- ✅ Search analytics (clicks, impressions, CTR, position) +- ✅ Top 5 search queries daily +- ✅ Crawl errors +- ✅ Sitemap status +- ✅ Runs daily at 9 AM UTC + +--- + +## 🚀 Next Steps (Do These Now) + +### Step 1: Create Google Cloud Project +1. Go to https://console.cloud.google.com +2. Create new project named `manoonoils-monitoring` +3. Enable "Google Search Console API" in APIs & Services → Library + +### Step 2: Create Service Account +1. Go to IAM & Admin → Service Accounts +2. Create service account: `gsc-monitor` +3. Grant role: "Search Console Viewer" (or "Owner") + +### Step 3: Download Key +1. Click on the service account → Keys tab +2. Add Key → Create New Key → JSON +3. **Download and save the JSON file** + +### Step 4: Add to Search Console +1. Go to https://search.google.com/search-console +2. Select `manoonoils.com` property +3. Settings → Users and Permissions → Add User +4. Add the service account email from the JSON file +5. Permission level: "Full" + +### Step 5: Deploy to Kubernetes + +Run on your server: + +```bash +# Copy the JSON key to your server +scp /path/to/downloaded-key.json doorwaysftw:/tmp/gsc-key.json + +# Create the Kubernetes secret +ssh doorwaysftw "kubectl create secret generic gsc-service-account \ + --namespace=manoonoils \ + --from-file=service-account.json=/tmp/gsc-key.json" + +# Deploy the monitoring CronJob +ssh doorwaysftw "kubectl apply -f -" < scripts/gsc-monitoring/cronjob.yaml + +# Verify it's scheduled +ssh doorwaysftw "kubectl get cronjob gsc-monitoring -n manoonoils" +``` + +--- + +## 📊 Viewing Reports + +### Check Latest Report: +```bash +ssh doorwaysftw "kubectl create job --from=cronjob/gsc-monitoring gsc-manual-test -n manoonoils +sleep 10 +kubectl logs job/gsc-manual-test -n manoonoils +kubectl delete job gsc-manual-test -n manoonoils" +``` + +### Reports include: +- Total clicks & impressions (last 7 days) +- Average CTR and position +- Top 5 search queries +- Crawl errors summary +- Sitemap status + +--- + +## 🔒 Security + +- Service account has **read-only** access to GSC +- Credentials stored as Kubernetes Secret +- JSON key never committed to git +- Rotate key every 90 days + +--- + +## 📚 Full Documentation + +See `scripts/gsc-monitoring/README.md` for: +- Detailed setup instructions +- Troubleshooting guide +- Updating the monitor +- Changing schedule + +--- + +## ⏱️ Timeline + +**Setup time:** 10-15 minutes +**First report:** After setup (manual run) or next day (automatic) +**Data availability:** 48-72 hours after setup (Google processes data) + +--- + +## ❓ Questions? + +The README.md has full troubleshooting. Common issues: +- "User does not have permission" → Wait 5-10 min after adding to GSC +- "Site not found" → Verify URL in monitor.py matches exactly + +**Ready to proceed?** Start with Step 1 above!