Skip to content

Maintenance

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.


TaskTimeFrequency
WordPress core updates15-30 minMonthly
Plugin updates (10-20 plugins)30-60 minMonthly
Theme updates15-30 minQuarterly
Security scan review15-30 minWeekly
Backup verification15-30 minMonthly
Database optimization15-30 minMonthly
PHP version check15-30 minQuarterly
Hosting plan review15 minAnnually
SSL certificate renewal15-30 minAnnually (if not auto)
Performance tuning30-60 minMonthly
Comment spam cleanup15-30 minWeekly
Total3-6 hours/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
WeekTaskTimeDetails
Week 1Review analytics10 minCloudflare Dashboard: traffic, errors, threats
Week 2Check form submissions5 minVerify emails arriving, compare volume to baseline
Week 3Review analytics10 minCloudflare Dashboard: traffic, errors, threats
Week 4Monthly audit30 minLighthouse, SendGrid, dependency check
Total~55 min/monthvs WordPress: 3-6 hours/month

  • Form submissions: Check email inbox for expected form submissions
  • Site accessibility: Load site in browser, verify pages work
  • Error check: Cloudflare Dashboard > Analytics > quick scan for 5xx errors

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.


  1. Cloudflare Analytics

    • Go to https://dash.cloudflare.com/
    • Select domain > Analytics
    • Check: Total requests (normal range?)
    • Check: Error rates (any 5xx spikes?)
    • Check: Threat activity (any unusual patterns?)
  2. Form Submissions

    • Check recipient inbox
    • Compare volume to baseline (significant drop = investigate)
    • If using SendGrid: check https://app.sendgrid.com/ > Email Activity
  3. Quick Site Check

    • Load the site in a browser
    • Submit a test form (optional — weekly)
    • Check on mobile (optional)

Terminal window
# Run Lighthouse audit
npm 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:

  • Lighthouse score stable (no significant drops)
  • LCP still < 2.5s
  • No new CLS issues
  • TBT within acceptable range
  1. Go to https://app.sendgrid.com/
  2. Check: Email Activity > Deliverability
  3. Check: No bounces or blocks
  4. Check: Usage within free tier (< 100 emails/day)
  1. Dashboard > Pages > your-project
  2. Check: Build count this month (limit: 500/month free)
  3. Check: Function invocations (limit: 100k/day free)
  4. If approaching limits: consider reducing deploy frequency or upgrading

  • Performance trend: Compare Lighthouse scores over 3 months
  • SEO health: Check Google Search Console for issues
  • Security headers: Test at https://securityheaders.com/
  • SSL certificate: Verify valid and auto-renewing
  • SendGrid account: Review sender reputation
  • Content freshness: Review if content needs updating
  • Dependencies: Check if Wrangler needs updating: npm outdated
  • Documentation: Update any outdated procedures
Terminal window
# Check for outdated packages
npm outdated
# Update non-breaking changes
npm update
# Check Wrangler version
npx wrangler --version
# Update Wrangler
npm install wrangler@latest --save-dev

Change TypeRecommended TierTime
Phone numberTier 1 (Browser) or Tier 3 (AI)2-5 min
Business hoursTier 1 or Tier 32-5 min
Service descriptionTier 1 or Tier 2 (CMS)5-10 min
New blog postTier 2 (CMS)10-30 min
New pageTier 2 (CMS) or Tier 4 (Dev)15-60 min
Design changesTier 4 (Dev) or Tier 3 (AI)30-120 min
  1. Edit functions/api/submit-form.js
  2. Update the RECIPIENT_EMAILS array
  3. Deploy: npm run deploy
  4. Test by submitting a form
  1. Add new image to public/images/ (or appropriate directory)
  2. Update the <img src=""> in HTML
  3. Deploy

Cloudflare Analytics

Traffic, errors, threats, bandwidth. Access via Dashboard > Analytics.

Cloudflare Pages Logs

Deployment status, Function errors. Access via Dashboard > Pages > Deployments.

Cloudflare Web Analytics

Privacy-friendly visitor analytics. Access via Dashboard > Analytics > Web Analytics.

ToolPurposeCost
UptimeRobotUptime monitoring, alertsFree (50 monitors)
PingdomPerformance monitoring$10+/month
Google Analytics (GA4)Detailed visitor analyticsFree
PageSpeed InsightsPerformance scoringFree
GTmetrixPerformance analysisFree (limited)

Free monitoring with email/SMS alerts:

  1. Sign up at https://uptimerobot.com/
  2. Add monitor:
    • Monitor Type: HTTPS
    • Friendly Name: “YourSite.com”
    • URL: https://yoursite.com/
    • Monitoring Interval: 5 minutes
  3. Configure alert contacts (email, SMS, Slack)
  4. Add monitors for each site

  • Site showing errors after a deployment
  • Forms broken after a code change
  • Visual layout broken
  • Performance significantly degraded

Time: ~30 seconds

  1. Go to https://dash.cloudflare.com/
  2. Pages > Your Project > Deployments
  3. Find the last working deployment
  4. Click the three dots menu > “Rollback to this deployment”
  5. Confirm
  6. Site reverts immediately
  1. Verify site works correctly
  2. Identify what caused the issue
  3. Fix the issue in code
  4. Test fix locally
  5. Deploy fix to staging
  6. Test staging
  7. Deploy to production

No special considerations. Free tier handles any single site easily.

For 100+ sites, automate common operations:

audit-all-sites.sh
#!/bin/bash
SITES=(
"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/"

  1. Check Cloudflare Status: https://www.cloudflarestatus.com/
  2. If Cloudflare is up: Check your deployment in Dashboard > Pages
  3. If recent deployment: Rollback immediately (see Rollback section)
  4. If no recent changes: Check DNS with dig yoursite.com
  5. Contact Cloudflare support if needed

  • Cost review: Verify still on free tier, check for unexpected charges
  • Performance review: Run full Lighthouse audit on all sites
  • SEO review: Check Google Search Console for all sites
  • Security review: Check security headers, review access permissions
  • Content review: Flag outdated content for client review
  • Technology review: Check for Wrangler/Astro/Cloudflare updates
  • Process review: Identify bottlenecks, improve workflows
  • Training review: New team members trained, documentation current
SignalUpgrade PathCost
>500 builds/monthCloudflare Pro$20/month
>100 emails/daySendGrid Essentials$15/month
Need advanced analyticsCloudflare Pro$20/month
Need WAF rulesCloudflare Pro$20/month
>100k Function requests/dayCloudflare 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.


DocumentUpdate When
DEVELOPER-HANDOFF.mdTeam changes, process changes
QUICK-REFERENCE.mdNew commands, URL changes
This maintenance guideNew procedures or tools
Contact informationTeam member changes

For every significant change to a site:

  1. Note what changed
  2. Note when
  3. Note who made the change
  4. Update relevant documentation

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