Skip to content

SOP: Adding Sites

Fresh

How 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 → Activate

Step 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 data

Method 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
ColumnRequiredDescription
site_urlYesFull URL with https://
admin_usernameYesWordPress admin on child site
security_idNoUnique Security ID (if configured)
groupNoTag/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 → Import

Step 4: Verify All Connections

Dashboard → MainWP → Sites → Manage Sites
  - Check all imported sites show "Connected"
  - Run bulk sync: Select All → Sync

Method 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

IssueFix
"Already connected"Site is already in Dashboard — check Manage Sites
"Could not connect"Check connection issues
CSV import failsVerify CSV format, check for BOM characters
Bulk import partialSome sites may need manual connection
"Insufficient permissions"Use a WordPress admin account, not editor/author