High-Traffic Site
Site receives significant traffic or is revenue-generating.
Once your Cloudflare Pages site is live, maintenance is minimal compared to WordPress. This guide covers day-to-day operations, monitoring, and long-term management.
| Task | Time | Frequency |
|---|---|---|
| WordPress core updates | 15-30 min | Monthly |
| Plugin updates (10-20 plugins) | 30-60 min | Monthly |
| Theme updates | 15-30 min | Quarterly |
| Security scan review | 15-30 min | Weekly |
| Backup verification | 15-30 min | Monthly |
| Database optimization | 15-30 min | Monthly |
| PHP version check | 15-30 min | Quarterly |
| Hosting plan review | 15 min | Annually |
| SSL certificate renewal | 15-30 min | Annually (if not auto) |
| Performance tuning | 30-60 min | Monthly |
| Comment spam cleanup | 15-30 min | Weekly |
| Total | 3-6 hours/month |
| Task | Time | Frequency |
|---|---|---|
| Review Cloudflare analytics | 10 min | Weekly |
| Check form submission delivery | 5 min | Weekly |
| Lighthouse audit | 10 min | Monthly |
| Review SendGrid activity | 5 min | Monthly |
| Total | 30-45 min/month |
The following calendar shows the monthly routine at a glance:
gantt
title Monthly Maintenance Routine
dateFormat YYYY-MM-DD
axisFormat %b %d
section Week 1
Review analytics (10 min) :a1, 2024-01-01, 1d
section Week 2
Check form submissions (5 min) :b1, 2024-01-08, 1d
section Week 3
Review analytics (10 min) :c1, 2024-01-15, 1d
section Week 4
Monthly audit (30 min) :crit, d1, 2024-01-22, 1d
| Week | Task | Time | Details |
|---|---|---|---|
| Week 1 | Review analytics | 10 min | Cloudflare Dashboard: traffic, errors, threats |
| Week 2 | Check form submissions | 5 min | Verify emails arriving, compare volume to baseline |
| Week 3 | Review analytics | 10 min | Cloudflare Dashboard: traffic, errors, threats |
| Week 4 | Monthly audit | 30 min | Lighthouse, SendGrid, dependency check |
| Total | ~55 min/month | vs WordPress: 3-6 hours/month |
For most sites: nothing. Cloudflare Pages is designed to run without daily attention. Only monitor daily if:
High-Traffic Site
Site receives significant traffic or is revenue-generating.
Active PPC Campaigns
Running PPC campaigns that depend on form submissions.
Recent Changes
In the first 2 weeks after a major change or deployment.
Cloudflare Analytics
Form Submissions
Quick Site Check
# Run Lighthouse auditnpm run audit:baseline
# Or manually:npx lighthouse https://yoursite.com/ \ --only-categories=performance \ --output=json \ --output-path=./lighthouse-monthly.json \ --chrome-flags="--headless"What to check:
npm outdated# Check for outdated packagesnpm outdated
# Update non-breaking changesnpm update
# Check Wrangler versionnpx wrangler --version
# Update Wranglernpm install wrangler@latest --save-dev| Change Type | Recommended Tier | Time |
|---|---|---|
| Phone number | Tier 1 (Browser) or Tier 3 (AI) | 2-5 min |
| Business hours | Tier 1 or Tier 3 | 2-5 min |
| Service description | Tier 1 or Tier 2 (CMS) | 5-10 min |
| New blog post | Tier 2 (CMS) | 10-30 min |
| New page | Tier 2 (CMS) or Tier 4 (Dev) | 15-60 min |
| Design changes | Tier 4 (Dev) or Tier 3 (AI) | 30-120 min |
functions/api/submit-form.jsRECIPIENT_EMAILS arraynpm run deploypublic/*/index.html)functions/api/submit-form.js)public/images/ (or appropriate directory)<img src=""> in HTMLCloudflare Analytics
Traffic, errors, threats, bandwidth. Access via Dashboard > Analytics.
Cloudflare Pages Logs
Deployment status, Function errors. Access via Dashboard > Pages > Deployments.
SendGrid Activity
Email delivery, bounces, opens. Access at https://app.sendgrid.com/.
Google Search Console
SEO health, crawl errors, rankings. Access at https://search.google.com/search-console/.
Cloudflare Web Analytics
Privacy-friendly visitor analytics. Access via Dashboard > Analytics > Web Analytics.
| Tool | Purpose | Cost |
|---|---|---|
| UptimeRobot | Uptime monitoring, alerts | Free (50 monitors) |
| Pingdom | Performance monitoring | $10+/month |
| Google Analytics (GA4) | Detailed visitor analytics | Free |
| PageSpeed Insights | Performance scoring | Free |
| GTmetrix | Performance analysis | Free (limited) |
Free monitoring with email/SMS alerts:
https://yoursite.com/Time: ~30 seconds
Time: ~2-5 minutes
# View recent commitsgit log --oneline -10
# Revert the last commitgit revert HEAD
# Deploy the reverted versionnpm run deployTime: ~2-5 minutes
# Checkout a specific known-good commitgit checkout <commit-hash> -- public/ functions/
# Deploy immediatelynpm run deploy
# Then fix the issue on a branchNo special considerations. Free tier handles any single site easily.
| Consideration | Recommendation |
|---|---|
| Cloudflare account | One account for all sites (Acme Medical) |
| Build limits | 500 builds/month shared. Budget ~10 deploys/site/month |
| SendGrid | One account, multiple sender addresses |
| Monitoring | UptimeRobot with monitors for each site |
| Repository | One repo per site, or monorepo with subdirectories |
| Consideration | Recommendation |
|---|---|
| Cloudflare plan | Consider Pro ($20/month) for advanced analytics |
| Build limits | May need paid plan for more builds |
| SendGrid | May need paid plan for more emails |
| Monitoring | Centralized dashboard (UptimeRobot, Grafana) |
| Content editing | AI-assisted editing becomes essential |
| Batch operations | Scripted batch deploys, automated testing |
| Repository | Monorepo with shared components |
For 100+ sites, automate common operations:
#!/bin/bashSITES=( "https://site1.com" "https://site2.com" "https://site3.com")
for site in "${SITES[@]}"; do echo "Auditing $site..." npx lighthouse "$site" \ --only-categories=performance \ --output=json \ --output-path="./audits/$(echo $site | sed 's/https:\/\///;s/\//-/g').json" \ --chrome-flags="--headless"done
echo "All audits complete. Results in ./audits/"#!/bin/bashPROJECTS=( "cloudflare-builder-drsmith" "cloudflare-builder-clinicsite" "cloudflare-lp-riverside")
for project in "${PROJECTS[@]}"; do echo "Deploying $project..." cd "$project" npx wrangler pages deploy public cd ..donedig yoursite.comSENDGRID_API_KEY in environment variablesnpm run servenpm run deploySENDGRID_API_KEY in environment variablesfunctions/api/submit-form.js if API format differs| Signal | Upgrade Path | Cost |
|---|---|---|
| >500 builds/month | Cloudflare Pro | $20/month |
| >100 emails/day | SendGrid Essentials | $15/month |
| Need advanced analytics | Cloudflare Pro | $20/month |
| Need WAF rules | Cloudflare Pro | $20/month |
| >100k Function requests/day | Cloudflare Workers Paid | $5/month |
Astro Migration
When: Building new sites. Effort: Medium.
Decap CMS
When: Non-devs need to edit. Effort: Medium.
AI-Assisted Editing
When: Managing 10+ sites. Effort: Low.
Automated Testing
When: Deploying frequently. Effort: Medium.
GitHub Actions CI/CD
When: Wanting auto-deploy. Effort: Low.
Cloudflare Turnstile
When: Getting form spam. Effort: Low.
Cloudflare Web Analytics
When: Wanting privacy-friendly analytics. Effort: Low.
| Document | Update When |
|---|---|
| DEVELOPER-HANDOFF.md | Team changes, process changes |
| QUICK-REFERENCE.md | New commands, URL changes |
| This maintenance guide | New procedures or tools |
| Contact information | Team member changes |
For every significant change to a site:
Week 1
Review analytics — 10 min. Check Cloudflare Dashboard for traffic and error patterns.
Week 2
Check form submissions — 5 min. Verify emails arriving and volume is normal.
Week 3
Review analytics — 10 min. Check Cloudflare Dashboard for traffic and error patterns.
Week 4
Monthly audit — 30 min. Lighthouse, SendGrid review, dependency check.
Total: ~55 minutes/month per site
vs WordPress: 3-6 hours/month per site