Site Lifecycle Workflow
FreshManaging a WordPress site from initial connection through active management to offboarding.
Lifecycle Stages
Stage 1: Onboard
New Site Checklist
- Install MainWP Child plugin on the site
- Connect from Dashboard (see Adding Sites SOP)
- Assign to client —
Dashboard → Clients → Assign Site - Assign tags — categorize by type (eCommerce, blog, corporate, etc.)
- Initial sync — pull all site data
- Security scan — run initial vulnerability check
- 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
| Task | Description |
|---|---|
| Uptime monitoring | Enable with appropriate check interval |
| Update policy | Auto-update minor, manual for major |
| Backup schedule | Daily database, weekly full |
| Security hardening | Apply via extension |
| Performance baseline | Run initial Lighthouse audit |
| Reporting schedule | Configure client report frequency |
Stage 3: Active Management
Daily/weekly management tasks:
| Frequency | Task |
|---|---|
| Daily | Review Dashboard overview for alerts |
| Daily | Check uptime monitoring for downtime |
| Weekly | Review and apply plugin/theme updates |
| Weekly | Check security scan results |
| Monthly | Generate client reports |
| Monthly | Review site performance trends |
| Quarterly | Full security audit |
| Quarterly | Review 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:
- Final backup — create and download a complete backup
- Generate final report — document site state at offboarding
- Remove from Dashboard — disconnect the site
- Uninstall Child plugin — remove from the child site
- 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"