Skip to content

Site Lifecycle Workflow

Fresh

Managing a WordPress site from initial connection through active management to offboarding.

Lifecycle Stages

Stage 1: Onboard

New Site Checklist

  1. Install MainWP Child plugin on the site
  2. Connect from Dashboard (see Adding Sites SOP)
  3. Assign to clientDashboard → Clients → Assign Site
  4. Assign tags — categorize by type (eCommerce, blog, corporate, etc.)
  5. Initial sync — pull all site data
  6. Security scan — run initial vulnerability check
  7. Backup setup — configure backup schedule and storage

Via API

bash
# Add site
curl -X POST -u "admin:xxxx" \
  -H "Content-Type: application/json" \
  -d '{"input":{"url":"https://new-client.com","admin_username":"admin"}}' \
  "https://dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/add-site-v1/run"

# Assign to client
curl -X POST -u "admin:xxxx" \
  -H "Content-Type: application/json" \
  -d '{"input":{"client_id":5,"site_id":123}}' \
  "https://dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/update-client-v1/run"

Stage 2: Configure

TaskDescription
Uptime monitoringEnable with appropriate check interval
Update policyAuto-update minor, manual for major
Backup scheduleDaily database, weekly full
Security hardeningApply via extension
Performance baselineRun initial Lighthouse audit
Reporting scheduleConfigure client report frequency

Stage 3: Active Management

Daily/weekly management tasks:

FrequencyTask
DailyReview Dashboard overview for alerts
DailyCheck uptime monitoring for downtime
WeeklyReview and apply plugin/theme updates
WeeklyCheck security scan results
MonthlyGenerate client reports
MonthlyReview site performance trends
QuarterlyFull security audit
QuarterlyReview backup restoration process

Stage 4: Suspend (If Needed)

When a client pauses their service:

bash
# Suspend client + all their sites
curl -X POST -u "admin:xxxx" \
  -H "Content-Type: application/json" \
  -d '{"input":{"client_id":5}}' \
  "https://dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/suspend-client-v1/run"

Suspension:

  • Deactivates MainWP monitoring for the client's sites
  • Sites remain connected but not actively managed
  • No updates are applied
  • No reports generated

Reactivate

bash
curl -X POST -u "admin:xxxx" \
  -H "Content-Type: application/json" \
  -d '{"input":{"client_id":5}}' \
  "https://dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/unsuspend-client-v1/run"

Stage 5: Offboard

When permanently removing a site:

  1. Final backup — create and download a complete backup
  2. Generate final report — document site state at offboarding
  3. Remove from Dashboard — disconnect the site
  4. Uninstall Child plugin — remove from the child site
  5. Update client records — note offboarding date and reason
bash
# Disconnect site
curl -X POST -u "admin:xxxx" \
  -H "Content-Type: application/json" \
  -d '{"input":{"site_id":123}}' \
  "https://dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/disconnect-site-v1/run"