SOP: Adding Sites
FreshHow to connect new WordPress sites to your MainWP Dashboard.
Prerequisites
- [ ] MainWP Dashboard installed and working
- [ ] Admin access to the child WordPress site
- [ ] Child site accessible via HTTPS
Method 1: Manual (Single Site)
Step 1: Install Child Plugin
Child Site → Plugins → Add New → Search "MainWP Child" → Install → ActivateStep 2: Configure Child Plugin (Optional)
Child Site → Settings → MainWP Child
- Unique Security ID: [set if desired]
- Require Unique Security ID: [toggle]Step 3: Add from Dashboard
Dashboard → MainWP → Sites → Add New
- URL: https://child-site.com
- Admin: [child site admin username]
- Security ID: [if set in Step 2]
→ Click "Add Site"Step 4: Verify Connection
Dashboard → MainWP → Sites → Manage Sites
- Site should show green "Connected" status
- Click "Sync" to pull initial dataMethod 2: Bulk Import (CSV)
Step 1: Prepare CSV File
Format:
csv
site_url,admin_username,security_id,group
https://site1.com,admin,,Group A
https://site2.com,admin,,Group A
https://site3.com,wpadmin,my-sec-id,Group B| Column | Required | Description |
|---|---|---|
| site_url | Yes | Full URL with https:// |
| admin_username | Yes | WordPress admin on child site |
| security_id | No | Unique Security ID (if configured) |
| group | No | Tag/group to assign |
Step 2: Install Child Plugin on All Sites
Before importing, ensure MainWP Child is installed and activated on every site in the CSV.
Step 3: Import
Dashboard → MainWP → Sites → Import Sites → Upload CSV → ImportStep 4: Verify All Connections
Dashboard → MainWP → Sites → Manage Sites
- Check all imported sites show "Connected"
- Run bulk sync: Select All → SyncMethod 3: Via REST API
bash
# Add a single site
curl -X POST \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://new-site.com",
"admin": "admin",
"uniqueId": ""
}' \
"https://your-dashboard.com/wp-json/mainwp/v2/sites"Method 4: Via Abilities API
bash
curl -X POST -u "admin:app-password" \
-H "Content-Type: application/json" \
-d '{
"input": {
"url": "https://new-site.com",
"admin_username": "admin"
}
}' \
"https://your-dashboard.com/wp-json/wp-abilities/v1/abilities/mainwp/add-site-v1/run"Post-Connection Checklist
After adding each site:
- [ ] Sync completed successfully
- [ ] Plugin list populated
- [ ] Theme list populated
- [ ] WordPress version detected
- [ ] Site health data available
- [ ] Assign to appropriate tag/group
- [ ] Assign to client (if applicable)
- [ ] Enable uptime monitoring (if desired)
Troubleshooting
| Issue | Fix |
|---|---|
| "Already connected" | Site is already in Dashboard — check Manage Sites |
| "Could not connect" | Check connection issues |
| CSV import fails | Verify CSV format, check for BOM characters |
| Bulk import partial | Some sites may need manual connection |
| "Insufficient permissions" | Use a WordPress admin account, not editor/author |