Solutions to common issues with Guard Dog. If you don’t find your issue here, check the FAQ or visit the WordPress.org support forums.
Emergency: Locked Out of Site
Scenario 1: Forgot Custom Login URL
What happened: You enabled custom login URL but forgot what you set it to.
Quick fix via FTP/File Manager:
- Connect to your site via FTP or cPanel File Manager
- Navigate to
/wp-content/plugins/ - Rename
guard-dogfolder toguard-dog-disabled - Access your site via normal
/wp-login.php - Log in to WordPress admin
- Rename folder back to
guard-dog - Go to Guard Dog settings and note/change your login URL
Fix via database:
- Access phpMyAdmin or database tool
- Go to the
wp_optionstable - Find row where
option_name=guard_dog_login_slug - The
option_valueshows your custom login URL - Change it or delete the row to disable custom URL
Fix via wp-config.php:
- Edit
wp-config.phpvia FTP - Add this line before
/* That's all, stop editing! */:
define('GUARD_DOG_BYPASS', true);
- Access
/wp-login.phpnormally - Log in and fix settings
- Remove the line from wp-config.php after fixing!
Scenario 2: Locked Out by IP Whitelist
What happened: Enabled site-wide blocking or IP whitelist without adding your IP.
Fix via database:
- Access phpMyAdmin
- Go to
wp_optionstable - Find
guard_dog_site_wide_blockingand set value to0 - Or find
guard_dog_ip_whitelistand add your IP - Save changes
Fix via FTP:
- Rename Guard Dog plugin folder to disable it
- Access site normally
- Fix settings
- Rename folder back
Scenario 3: Locked Out by Failed Login Attempts
What happened: Too many failed login attempts, now locked out.
Options:
Wait it out:
- Lockout expires automatically (usually 15-30 minutes)
- Simplest solution if you can wait
Database fix:
- Access phpMyAdmin
- Find table:
wp_guard_dog_login_attempts - Find your IP address in the table
- Delete that row or set
lockout_expiryto past date - You can immediately log in
FTP fix:
- Disable plugin temporarily (rename folder)
- Log in normally
- Re-enable plugin
- Adjust login limiting settings if needed
Scenario 4: Lost 2FA Device and Recovery Codes
What happened: Can’t access authenticator app and don’t have recovery codes.
Fix via admin assistance:
- Contact another site administrator
- They can disable 2FA on your account
- Then log in with just password and re-setup 2FA
Fix via database:
- Access phpMyAdmin
- Go to
wp_usermetatable - Find your user ID (check
wp_userstable) - Delete rows where:
user_id= your IDmeta_key=_guard_dog_totp_enabled
- This disables 2FA for your account
Fix via FTP:
- Temporarily disable Guard Dog plugin
- Log in with just password
- Re-enable plugin
- Set up 2FA again with new device
Installation & Setup Issues
Plugin Won’t Activate
Error: “The plugin does not have a valid header”
Cause: Incomplete plugin files or corrupted download
Fix:
- Deactivate and delete the plugin
- Re-download from WordPress.org
- Upload fresh copy
- Activate
Error: “PHP Fatal error: Cannot redeclare class”
Cause: Plugin files exist in multiple locations
Fix:
- Check
/wp-content/plugins/for duplicate folders - Remove duplicate
guard-dogfolders - Keep only one copy
Error: “This plugin requires PHP 7.4 or higher”
Cause: Your server uses PHP 7.3 or older
Fix:
- Contact your hosting provider
- Request PHP upgrade to 7.4 or higher (8.0+ recommended)
- Most hosts allow this via cPanel
Database Tables Not Created
Symptoms: Plugin active but features don’t work, “table doesn’t exist” errors
Fix:
- Deactivate Guard Dog
- Reactivate Guard Dog
- Check if tables now exist (via phpMyAdmin)
Manual table creation (advanced):
If deactivate/reactivate doesn’t work, check PHP error logs for database errors. You may need to create tables manually or contact hosting support.
Settings Won’t Save
Symptoms: Click “Save Changes” but settings don’t persist
Possible causes:
- File permissions issue
- WordPress can’t write to database
- Check file ownership and permissions
- PHP timeout
- Large forms timeout before saving
- Increase
max_execution_timein php.ini
- Memory limit
- PHP runs out of memory
- Increase
memory_limitin php.ini or wp-config.php
- Form size limit
- POST data too large
- Increase
post_max_sizein php.ini
- Caching issue
- Old values cached
- Clear all caches (plugin, object, page cache)
Fix:
- Clear all caches
- Try in different browser (incognito mode)
- Check PHP error logs
- Contact hosting support to increase limits
- Test with other plugins disabled (conflict check)
Feature-Specific Issues
Custom Login URL Issues
Issue: Both URLs show 404
Symptoms: Custom login URL and /wp-login.php both give 404
Fix:
- Go to Settings → Permalinks
- Click “Save Changes” (flushes rewrite rules)
- Test both URLs again
Issue: Redirect loop when accessing custom URL
Cause: Conflicting plugin or theme redirect
Fix:
- Disable other security plugins
- Switch to default WordPress theme temporarily
- Clear .htaccess redirects
- Check for hardcoded redirects in theme
Issue: Custom URL works but other features break
Symptoms: Password reset doesn’t work, logout fails, etc.
Cause: Theme or plugin using hardcoded URLs
Fix:
- Contact theme/plugin developer
- Theme should use
wp_login_url()function - Never hardcode
/wp-login.php
CAPTCHA Issues
Issue: CAPTCHA not appearing
Causes & Fixes:
- JavaScript error:
- Open browser console (F12)
- Look for errors
- Disable conflicting plugins
- Wrong API keys:
- Verify Site Key and Secret Key
- Check they’re from correct provider
- Re-copy from provider dashboard
- Domain not registered:
- Add your domain in CAPTCHA provider dashboard
- For localhost: add
localhostto allowed domains
- Ad blocker:
- Disable ad blocker
- Test in incognito mode
- Ad blockers often block CAPTCHA scripts
- Theme CSS conflict:
- CAPTCHA may be hidden by CSS
- Inspect element to check
- Add custom CSS to position correctly
Issue: CAPTCHA appears but verification always fails
Causes:
- Wrong Secret Key:
- Secret Key doesn’t match Site Key
- Re-copy both keys
- Domain mismatch:
- Your domain isn’t registered with provider
- Register it in provider dashboard
- Server firewall:
- Server blocking API calls to CAPTCHA provider
- Contact hosting support
- reCAPTCHA v3 score threshold too strict:
- Lower threshold to 0.3 or 0.4
- Test and gradually increase
Issue: Different CAPTCHA appears on mobile
This is normal – Some providers show different challenges on different devices. Test on actual mobile devices to ensure it works.
Two-Factor Authentication Issues
Issue: “Invalid verification code” error
Causes & Fixes:
- Time sync issue:
- Phone clock out of sync with server
- Enable automatic time sync on phone
- Check authenticator app time sync setting
- Code expired:
- Codes change every 30 seconds
- Wait for new code to appear
- Enter immediately
- Wrong account in app:
- Multiple accounts in authenticator
- Ensure you’re using code for correct site
- Typing error:
- Enter exactly as shown (no spaces)
- Be careful with similar characters (0 vs O)
Issue: QR code won’t scan
Fixes:
- Increase screen brightness
- Clean camera lens
- Move closer/farther from screen
- Use manual entry:
- Click “Can’t scan?”
- Enter secret key manually in app
Issue: Lost recovery codes
If you can still log in:
- Go to your user profile
- Generate new recovery codes
- Save them securely this time
If you can’t log in:
- See Locked Out – Lost 2FA Device above
Issue: Email 2FA codes not arriving
Causes:
- Email provider not configured:
- Check Settings → Email Provider
- Verify credentials are correct
- Spam folder:
- Check spam/junk mail
- Add sender to safe list
- Wrong email address:
- Check user’s email in profile
- Verify it’s correct
- Email delivery delay:
- Wait 1-2 minutes
- Check provider dashboard for errors
Fix:
- Configure or verify email provider settings
- Test email sending
- Use app-based 2FA as more reliable alternative
Login Attempt Limiting Issues
Issue: Legitimate users getting locked out frequently
Causes:
- Settings too strict
- Users mistyping passwords
- Shared IP (office/school)
Fixes:
Adjust settings:
- Increase Maximum Retries to 7-10
- Keep lockout duration reasonable (15-30 min)
Whitelist IPs:
- Add office/home IPs to IP Whitelist
- Whitelisted IPs never get locked out
User education:
- Tell users to use password managers
- Reduce typos
Issue: Lockouts not working (bots still trying unlimited attempts)
Causes:
- Feature disabled
- IP on whitelist
- Cache serving old data
Fixes:
- Verify feature is enabled in Login Security settings
- Check IP isn’t whitelisted
- Clear all caches
- Check Activity Log to verify lockouts are being recorded
Access Control Issues
Issue: IP whitelist not working
Symptoms: Whitelisted IP still blocked
Causes:
- Wrong IP format:
- Typo in IP address
- Extra spaces
- Wrong CIDR notation
- Dynamic IP changed:
- Your IP changed since adding to whitelist
- Check current IP vs. whitelisted IP
- IPv6 vs IPv4:
- Added IPv4 but server sees IPv6
- Add both versions
- Behind proxy/CDN:
- WordPress sees different IP than your actual IP
- Check Activity Log to see what IP is recorded
- Whitelist that IP
Fix:
- Verify your current IP (whatismyipaddress.com)
- Check what WordPress sees (Activity Log)
- Whitelist the IP WordPress is seeing
- Remove old/wrong entries
Issue: Accidentally enabled site-wide blocking
Symptoms: Entire site shows “Access Denied”
Fix:
- See Locked Out – IP Whitelist above
Activity Log Issues
Issue: Events not being logged
Causes:
- Event type disabled:
- Check Event Settings
- Enable desired event types
- Database error:
- Check PHP error logs
- Table may be corrupted
- Caching:
- Old data being displayed
- Clear caches and refresh
Fix:
- Enable event types in Activity Log settings
- Check PHP error logs for database errors
- Clear caches
Issue: Too many log entries, database growing
Symptoms: Activity log table very large, site slowing down
Fix:
Immediate:
- Go to Settings → Data Management
- Clear logs older than 30 days
- This provides immediate relief
Long-term:
- Enable automatic cleanup (90-day retention)
- Disable verbose event types:
- Uncheck “Post Updated”
- Uncheck “Profile Updated”
- Keep security events only
- Export logs before clearing (for records)
Issue: Can’t export logs
Causes:
- Memory limit too low
- Too many entries
- Server timeout
Fix:
- Filter logs to smaller dataset
- Export in batches (by date range)
- Increase PHP memory limit
- Contact hosting support
Temporary User Access Issues
Issue: Access link not working
Symptoms: Clicking link doesn’t log user in
Causes:
- User expired:
- Past expiry date
- Automatically deleted
- Login limit reached:
- Used all allowed logins
- User deleted
- Link incomplete:
- Didn’t copy full URL
- Missing token parameter
- User manually deleted:
- Admin deleted the user
- Link no longer valid
Fix:
- Create new temporary user
- Send new access link
- Verify full link is copied
Issue: Can’t create temporary user
Error messages:
“Username already exists”:
- Choose different username
- Previous temp user may still exist
“Invalid email”:
- Use proper email format
- Check for typos
General errors:
- Check PHP error logs
- Verify database tables exist
- Try different browser
Performance Issues
Site Running Slow After Installing Guard Dog
Diagnosis:
- Check Activity Log table size:
SELECT COUNT(*) FROM wp_guard_dog_activity_log;
- If > 100,000 rows, clear old logs
- Disable verbose event logging:
- Turn off post updates, profile updates
- Keep security events only
- Check failed login attempts table:
SELECT COUNT(*) FROM wp_guard_dog_login_attempts;
- Clear old/expired lockouts
Fixes:
- Clear old activity logs
- Reduce events being logged
- Enable automatic cleanup
- Optimize database tables
- Use object caching (Redis/Memcached)
Database Errors
Error: “Table ‘wp_guard_dog_activity_log’ doesn’t exist”
Fix:
- Deactivate Guard Dog
- Reactivate Guard Dog
- Tables should be recreated
If still failing, check:
- Database permissions (can WordPress create tables?)
- PHP error logs for specific error
- Contact hosting support
Error: “Duplicate column” or “Column already exists”
Cause: Database migration issue during update
Fix:
- Note the error message
- Post in support forums with:
- Exact error message
- WordPress version
- PHP version
- Guard Dog version
Compatibility Issues
Conflict with Other Security Plugins
Symptoms:
- Features not working
- Duplicate login forms
- Multiple CAPTCHA challenges
- Errors on login page
Common conflicts:
- Two plugins both modifying login URL
- Multiple 2FA plugins
- Multiple CAPTCHA plugins
- Multiple login limiting features
Fix:
- Identify overlapping features
- Disable one plugin’s version of the feature
- Or completely remove one plugin
- Test thoroughly
Recommended:
- Use Guard Dog for login/2FA/CAPTCHA
- Use Wordfence/Sucuri for malware scanning
- Don’t use multiple plugins for same feature
Theme Conflicts
Symptoms:
- Login page looks broken
- CAPTCHA in wrong position
- Buttons not working
Cause: Theme CSS or JavaScript interfering
Fix:
- Switch to default WordPress theme (Twenty Twenty-Three)
- Test if issue persists
- If fixed: contact theme developer
- They need to fix their theme’s compatibility
WooCommerce Issues
Issue: WooCommerce My Account login doesn’t work with custom login URL
Cause: WooCommerce may hardcode login URLs in some areas
Fix:
- WooCommerce should work automatically
- If issues persist, report to WooCommerce support
- They should use
wp_login_url()function
Issue: WooCommerce checkout broken after enabling features
Rarely happens, but if it does:
- Temporarily disable CAPTCHA
- Check if issue persists
- If fixed: CAPTCHA position issue
- Contact theme developer
Debug Mode
Enabling Debug Logging
To troubleshoot issues:
- Go to Guard Dog → Settings → Debug
- Check “Enable Debug Logging”
- Set Debug Level:
- ERROR – Only critical errors
- WARNING – Warnings and errors
- INFO – General information
- DEBUG – Verbose debugging (very detailed)
- Save settings
- Reproduce the issue
- Download debug log
Reading Debug Logs
Debug logs show:
- Timestamp of events
- Log level (ERROR, WARNING, INFO, DEBUG)
- Component (which feature)
- Message
- Context data
Example log entry:
[2024-10-23 14:30:15] ERROR [Login URL] Direct access to wp-login.php blocked
IP: 203.0.113.50
Sharing Debug Logs
When reporting issues:
- Enable debug logging
- Reproduce the issue
- Download the log
- Remove any sensitive data (passwords, private keys)
- Include relevant portion in support request
Getting Additional Help
Before Requesting Support
Gather this information:
- WordPress version: Dashboard → Updates
- PHP version: Site Health → Info → Server
- Guard Dog version: Plugins page
- Active plugins: List all active plugins
- Theme: Active theme name and version
- Error messages: Exact text of any errors
- Debug log: Relevant portion if available
Where to Get Help
Free community support:
- WordPress.org Support Forums
- Response time: Usually within 24-48 hours
Before posting:
- Search existing threads
- Check FAQ and this troubleshooting guide
- Gather information above
When posting:
- Use descriptive title
- Include all gathered information
- Explain steps to reproduce
- Mention what you’ve already tried
Reporting Bugs
To report a bug:
- Verify it’s reproducible
- Check it’s not already reported
- Post in support forums with:
- “[BUG]” in title
- WordPress/PHP versions
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable