StageGuard
v1.1.1A WordPress plugin designed to clearly indicate that a website is running in a staging environment with a few extensions
README
StageGuard
Description
StageGuard is a WordPress plugin designed to clearly indicate and manage a staging environment. It provides various features to protect your staging site, prevent accidental emails, and manage plugin activations.
Features
- Displays a prominent message in the admin panel and on the frontend indicating a staging environment - only if WooCommerce is not installed
- Automatically deactivates specific plugins on staging environments
- Prevents activation of certain plugins and provides a custom error message
- Activates Coming Soon mode for WooCommerce (if installed)
- Modifies search engine visibility settings
- Provides password protection for the staging site (redirects to WordPress login)
- Advanced IP restriction with multiple formats:
- Individual IP addresses (e.g.,
192.168.1.1) - CIDR notation for IP ranges (e.g.,
192.168.1.0/24) - IP address ranges (e.g.,
192.168.1.1-192.168.1.10) - Supports both IPv4 and IPv6
- Automatic localhost whitelisting for safety
- Smart proxy header detection (X-Forwarded-For, X-Real-IP)
- Individual IP addresses (e.g.,
- Filters robots.txt to discourage search engine indexing (no physical file modification)
- Catches and logs emails sent from the staging environment
- Includes WP-CLI commands for managing the plugin
- Clean, modular architecture with separated concerns
Deactivated Plugins
StageGuard will deactivate the following plugins:
- BunnyCDN
- Redis Cache
- Google Listings and Ads
- Metorik Helper
- Order Sync with Zendesk for WooCommerce
- Redis Object Cache
- RunCloud Hub
- Site Kit by Google
- Super Page Cache for Cloudflare
- WooCommerce - ShipStation Integration
- WP OPcache
- Headers Security Advanced & HSTS WP
- WP-Rocket
- Tidio Chat
- LiteSpeed Cache
- WP Fastest Cache
- PhastPress
- W3 Total Cache
- WP Optimize
- Autoptimize
- NitroPack
- WP Sync DB
- WP Sync DB Media Files
- UpdraftPlus
- Mailchimp for WooCommerce
Installation
- Upload the
stageguardfolder to the/wp-content/plugins/directory. - Activate the plugin through the 'Plugins' menu in WordPress.
- Go to Settings > StageGuard to configure the plugin.
Configuration
Navigate to Settings > StageGuard in your WordPress admin panel to configure:
1. Debug Mode
Toggle WordPress debug mode on or off. When enabled, WP_DEBUG constant will be set to true in wp-config.php.
2. Password Protection
Enable to redirect non-logged-in users to the WordPress login page. This ensures only authenticated users can access the staging site.
3. IP Restriction
Enable IP-based access control to restrict who can view the staging site.
4. Allowed IPs
Specify IP addresses that should have access to the staging site. Supports multiple formats:
- Individual IPs:
192.168.1.1(one per line) - CIDR Notation:
192.168.1.0/24(allows entire subnet) - IP Ranges:
192.168.1.1-192.168.1.10(allows range of IPs) - IPv6 Support:
2001:db8::1or2001:db8::/32
The system automatically whitelists 127.0.0.1 and ::1 (localhost) for safety. Your current IP address is displayed in the settings page for convenience.
Viewing Logs
You can view the StageGuard logs in two ways:
- Admin Interface: Go to Settings > StageGuard Logs in the WordPress admin area.
- WP-CLI: Use the command
wp stageguard show_logto view logs in the terminal.
WP-CLI Commands
StageGuard supports the following WP-CLI commands:
wp stageguard debug_mode <on|off>: Toggle debug mode on or off.wp stageguard show_log [--lines=<number>]: Display the StageGuard log. Use the--linesoption to specify the number of lines to show (default is 50).wp stageguard status: Shows current status.wp stageguard password_protection: Toggle password protection on or off.wp stageguard ip_restriction: Toggle IP restrictions on or off.wp stageguard show_log --clear: Clearing logs.
Troubleshooting
If you're having issues with StageGuard, check the following:
- Logging Issues: Ensure that the web server has write permissions to the
wp-contentdirectory for logging. - Staging Indicator Not Showing: Check if your theme is properly loading the
wp_headaction. - Password Protection Not Working: Make sure you're not already logged in to WordPress. The protection only affects non-authenticated users.
- IP Restriction Issues:
- Verify your IP format is correct (use the formats shown in Configuration section)
- Check if you're behind a proxy - the plugin detects
X-Forwarded-Forheaders - Remember that
127.0.0.1and::1are always whitelisted
- robots.txt Not Updating: The plugin uses WordPress's virtual robots.txt. If you have a physical
robots.txtfile, it will take precedence. Delete the physical file to use the plugin's filter.
Requirements
- WordPress: 6.4 or higher
- PHP: 8.0 or higher
- License: GPL-2.0-or-later
Support
For support, please open an issue on the GitHub repository.
Contributing
We welcome contributions! Please feel free to submit pull requests or open issues for bugs and feature requests.
Details
- Version
- 1.1.1
- Last updated
- January 10, 2026
- License
- GPL-2.0
- Language
- PHP
- Stars
- 0
- Forks
- 0
Download
Download ZIPSponsor us
Our software is free forever. Sponsorships help us maintain 30+ plugins and build new tools for the WordPress ecosystem.
Contact us about sponsoringCommunity
Write for us
Got a WordPress story, tutorial, or opinion? We welcome guest posts from the community.
Pitch a guest post