Coming Soon - The Watchman Tower WordPress plugin is currently in development. This documentation is prepared in advance for the upcoming release.
Settings Overview
The Watchman Tower plugin offers simple configuration with sensible defaults. All settings are managed through the plugin dashboard. Location: WordPress Admin → Watchman Tower → SettingsHeartbeat Interval
What is it?
The interval controls how frequently your WordPress site sends health data to Watchman Tower. Default: 300 seconds (5 minutes)Adjusting the Interval
1
Locate Control
Find “Heartbeat Interval” in the dashboard settings panel
2
Set Value
Use the slider or input field to set seconds (60-3600)
3
Auto-Save
Changes save automatically via AJAX - no button needed
4
Applies Immediately
New interval takes effect on the next heartbeat cycle
Allowed Range
| Minimum | Maximum | Default |
|---|---|---|
| 60 seconds (1 minute) | 3600 seconds (1 hour) | 300 seconds (5 minutes) |
Recommended Intervals by Site Type
🛒 eCommerce / High-Traffic Sites
🛒 eCommerce / High-Traffic Sites
Recommended: 60-120 seconds Why: - Quick issue detection = minimal
revenue loss - High uptime expectations - Customer-facing transactions
Example: WooCommerce store processing orders 24/7
💼 Business / Corporate Websites
💼 Business / Corporate Websites
Recommended: 180-300 seconds Why: - Balance between monitoring
coverage and server load - Good for most production sites - Default value
(300s) works well Example: Company website with contact forms and
content
📝 Blogs / Content Sites
📝 Blogs / Content Sites
Recommended: 600-900 seconds Why: - Less time-sensitive content -
Lower traffic = less urgency - Reduces server load Example: Personal
WordPress blog with moderate traffic
🧪 Development / Staging
🧪 Development / Staging
Recommended: 1800-3600 seconds Why: - Not customer-facing - Minimal
monitoring needed - Reduces noise in logs Example: dev.yoursite.com or
staging environment
Performance Considerations
Lower intervals (60-120s):- ✅ Faster issue detection
- ✅ More granular uptime data
- ❌ Slightly higher server load
- ❌ More API calls (may affect rate limits)
- ✅ Lower server resource usage
- ✅ Fewer API requests
- ❌ Longer time to detect issues
- ❌ Less detailed uptime graphs
Even at 60-second intervals, the heartbeat is lightweight (~2KB payload).
Performance impact is negligible on modern hosting.
How It Works
Pause Monitoring
What is it?
Temporarily disable heartbeat monitoring without disconnecting your site. Toggle: ON/OFF switch in dashboardWhen to Pause
Maintenance Windows
Planned server maintenance or updates
Development Work
Testing changes that might break the site
Migrations
Moving to a new host or server
Known Issues
Preventing alerts during acknowledged downtime
How to Pause
1
Open Dashboard
Navigate to Watchman Tower plugin dashboard
2
Toggle Switch
Click the “Pause Monitoring” toggle to ON
3
Confirm
Confirm in the modal dialog (if enabled)
4
Verify
Status badge changes to yellow “Paused”
What Happens When Paused
| Aspect | Status |
|---|---|
| Heartbeat sending | ⏸ Stopped |
| Alert notifications | ⏸ Disabled |
| Dashboard status | 🟡 Shows “Paused” |
| Site connection | ✅ Maintained |
| Plugin active | ✅ Still running |
| Settings accessible | ✅ Can be changed |
Important: Paused state is synced with Watchman Tower, so you won’t
receive false downtime alerts. Your uptime percentage calculations also
exclude paused periods.
How to Resume
Simply toggle the switch back to OFF:- Click the toggle
- Heartbeat loop restarts immediately
- Status updates to “Connected”
- Next heartbeat scheduled based on interval
Pause Duration
No time limit - monitoring stays paused until you manually resume. Best practice: Don’t forget to re-enable! Set a reminder if pausing for extended maintenance.Paused vs Disconnected
| Feature | Paused | Disconnected |
|---|---|---|
| Heartbeats | ⏸ Stopped | ❌ Not connected |
| Connection | ✅ Active | ❌ Removed |
| Settings | ✅ Saved | ❌ Cleared |
| Resume | 🔄 One click | ⚙️ Full setup again |
| Use Case | Temporary | Permanent |
Manual Heartbeat
Send Heartbeat Now
Button: “Send Heartbeat Now” in Quick Actions panel Triggers an immediate heartbeat, bypassing the scheduled interval.When to Use
- ✅ After changing settings (to verify changes)
- ✅ Testing connectivity after setup
- ✅ Troubleshooting heartbeat issues
- ✅ Forcing data sync with dashboard
- ✅ After WordPress/plugin updates
How It Works
1
Click Button
Click “Send Heartbeat Now” in dashboard
2
AJAX Request
JavaScript sends AJAX call to WordPress admin
3
Collect Metrics
Plugin gathers fresh site health data
4
API Call
Data sent to Watchman Tower API via HTTPS
5
Update UI
Dashboard status widget refreshes immediately
6
Confirmation
Success/error message displayed
Rate Limiting
Limit: 1 manual heartbeat per minute Why: Prevents API abuse and excessive server load Error message if exceeded:Behind the Scenes
Advanced Settings
Constants (wp-config.php)
For advanced users, you can override settings via constants:Available Constants
Available Constants
| Constant | Type | Purpose | |----------|------|---------| |
WTHB_HEARTBEAT_INTERVAL | int | Force interval (seconds) | |
WTHB_DISABLE_MANUAL_HEARTBEAT | bool | Hide manual button | |
WTHB_API_ENDPOINT | string | Custom API URL | | WTHB_TIMEOUT | int | API
request timeout (seconds) | | WTHB_DEBUG | bool | Enable debug logging |
Note: Constants override dashboard settings and are not editable via UI.WordPress Cron
The heartbeat relies on WordPress cron (WP-Cron). Check if cron is working:WP-Cron Issues & Solutions
WP-Cron Issues & Solutions
Problem: WordPress cron doesn’t fire reliably on low-traffic sites.
Solution 1: Disable WP-Cron and use system cron Add to
wp-config.php:
php define('DISABLE_WP_CRON', true); Add to system crontab: ```bash */5-
-
-
- wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1 ``` Solution 2: Use a cron trigger service - UptimeRobot (ping wp-cron.php every 5 minutes) - EasyCron - SetCronJob Learn more about WP-Cron →
-
-
Data Privacy Settings
What Data is Collected
See detailed breakdown in Metrics Reference → Summary:- Site health metrics (WordPress version, PHP version, etc.)
- Performance data (RAM usage, disk space)
- Security settings (SSL, plugin/theme versions)
- Active plugins list (names only, not code)
What is NOT Collected
- ❌ User passwords or credentials - ❌ Database contents - ❌ Post/page content - ❌ Personal user data - ❌ Customer information - ❌ Payment details
- ❌ Email addresses (except admin email as site contact)
GDPR Compliance
The plugin is GDPR-compliant:- No cookies set
- No personal data tracked
- No third-party scripts on frontend
- Data processing agreement available
- Right to deletion honored
Opt-Out Options
Option 1: Pause monitoring (temporary) Option 2: Disconnect site (removes all data) Option 3: Delete site from Watchman Tower dashboard (permanent)Multisite Considerations
Network Activation
When network-activated on WordPress Multisite:- Each subsite gets its own instance ID
- Configure settings per-site (not network-wide)
- Independent monitoring per subsite
- Separate heartbeat intervals possible
Super Admin Controls
Super admins can:- Network activate/deactivate
- View all subsite connections
- Force disconnect subsites (if needed)
Troubleshooting Settings
Settings not saving
Settings not saving
Possible causes: - JavaScript errors on page - AJAX requests blocked by
security plugin - Database connection issues Solutions: - Check browser
console for errors - Temporarily disable security plugins - Check file
permissions - Clear cache (browser + WordPress)
Interval changes not taking effect
Interval changes not taking effect
Explanation: New interval applies to the NEXT heartbeat cycle, not the
current one. Solution: Send a manual heartbeat to sync immediately.
Pause toggle not working
Pause toggle not working
Check: - JavaScript enabled in browser? - Admin AJAX URL correct? -
Nonce validation passing? Debug:
javascript console.log(wthbData); // Check if data available Manual heartbeat button missing
Manual heartbeat button missing
