This guide will help you install and configure Guard Dog for the first time.
Installation
From WordPress Admin
- Navigate to Plugins → Add New in your WordPress admin
- Search for "Guard Dog"
- Click Install Now on the Guard Dog plugin
- Click Activate after installation completes
Manual Installation
- Download the
guard-dogplugin folder - Upload it to
/wp-content/plugins/via FTP or your hosting file manager - Navigate to Plugins in your WordPress admin
- Find Guard Dog in the list and click Activate
After Activation
Once activated, you'll see a new Guard Dog menu item in your WordPress admin sidebar. This is your security command center.
Initial Configuration
Guard Dog works out of the box with secure defaults, but you should configure these essential features:
Step 1: Change Your Login URL (Recommended)
Why: This is the single most effective way to stop automated bot attacks on your site.
- Go to Guard Dog → Authentication
- In the Custom Login URL section, enter your desired login slug
- Example:
secure-loginwill make your login URLyoursite.com/secure-login - Use something unique and memorable
- Avoid common words like "admin", "login", or "secure"
- Example:
- Click Save Changes
- Important: Bookmark your new login URL immediately!
Learn more about Custom Login URLs →
Step 2: Enable CAPTCHA (Recommended)
Why: CAPTCHA verification ensures only humans can attempt to log in, stopping automated bot attacks.
- Go to Guard Dog → CAPTCHA
- Choose your preferred CAPTCHA provider (see comparison)
- Sign up for API keys from your chosen provider
- Enter your Site Key and Secret Key
- Configure display options (theme, size)
- Click Save Changes
Learn more about CAPTCHA Protection →
Choosing a CAPTCHA Provider
| Provider | Best For | User Experience | Privacy |
|---|---|---|---|
| Google reCAPTCHA v3 | Invisible protection | Excellent – no user interaction | Google tracking |
| Google reCAPTCHA v2 | Traditional verification | Good – simple checkbox | Google tracking |
| hCaptcha | Privacy-conscious sites | Good – accessible challenges | Privacy-focused |
| Cloudflare Turnstile | Modern, fast protection | Excellent – usually invisible | Privacy-first |
Step 3: Enable Login Attempt Limiting (Recommended)
Why: Prevents brute-force password attacks by locking out IPs after failed attempts.
- Go to Guard Dog → Authentication
- In the Login Attempt Limiting section:
- Check "Enable Login Attempt Limiting"
- Set Maximum Retries (default: 5)
- Set Lockout Duration in minutes (default: 15)
- Click Save Changes
Learn more about Login Attempt Limiting →
Step 4: Configure Two-Factor Authentication (Optional but Highly Recommended)
Why: 2FA provides the strongest protection for user accounts.
- Go to Guard Dog → Authentication
- In the Two-Factor Authentication section:
- Check "Enable Two-Factor Authentication"
- Optionally enable email-based 2FA
- Configure enforcement settings if desired
- Click Save Changes
- Go to your User Profile to set up 2FA for your account
Learn more about Two-Factor Authentication →
Step 5: Decide How Users Will Sign In (Optional)
Guard Dog can support more than the default WordPress login form:
- Passkeys for biometric or security-key sign-in
- Social Login for Google, Microsoft, or Apple OAuth
- Frontend Login Form for login pages built inside your theme or page builder
- Frontend Account Security so users can manage 2FA, passkeys, and sessions from account pages
These are optional. Start with password + CAPTCHA + login limiting first, then add the sign-in experience your site actually needs.
Post-Installation Checklist
After initial configuration, review these settings:
- Custom login URL is set and bookmarked
- CAPTCHA is enabled and tested
- Login attempt limiting is enabled
- 2FA is enabled for your admin account
- Test login with new settings from an incognito window
- If behind Cloudflare, Kinsta, WP Engine, or another proxy, configure Trusted Proxy IPs under Sessions
- If using email 2FA, configure and test an email provider
- Add your IP to the whitelist (optional, for extra protection)
- Review Activity Log settings
Recommended Configuration for Different Use Cases
Personal Blog or Small Site
Focus on simplicity:
- ✅ Custom login URL
- ✅ CAPTCHA (reCAPTCHA v3 for invisible protection)
- ✅ Login attempt limiting (5 retries, 15 min lockout)
- ✅ 2FA for admin users (optional)
- ❌ IP whitelisting (too restrictive)
- ✅ Activity logging (security events only)
- Optional: ✅ Passkeys for admin users
Business Website
Balanced security:
- ✅ Custom login URL
- ✅ CAPTCHA (Cloudflare Turnstile or reCAPTCHA v3)
- ✅ Login attempt limiting (3 retries, 30 min lockout)
- ✅ 2FA enforced for all users
- ✅ Username blacklist (common usernames like "admin", "administrator")
- ✅ Activity logging (all events)
- Optional: ✅ Frontend account security page for staff or members
E-commerce or High-Value Site
Maximum security:
- ✅ Custom login URL
- ✅ CAPTCHA (Cloudflare Turnstile)
- ✅ Strict login attempt limiting (3 retries, 60 min lockout)
- ✅ 2FA enforced for all users
- ✅ IP whitelist for admin users
- ✅ Site-wide IP blocking for maintenance mode
- ✅ Comprehensive activity logging
- ✅ Email provider configured for 2FA emails
- ✅ Session management reviewed and proxy IP detection configured if behind a CDN
Development/Staging Site
Access control focus:
- ✅ IP whitelist (office/home IPs only)
- ✅ Site-wide blocking enabled
- ❌ CAPTCHA (not needed with IP whitelist)
- ✅ Temporary user access for clients/testers
- ✅ Activity logging
Testing Your Configuration
Before relying on your security setup, test it:
Test 1: Login URL
- Open an incognito/private browser window
- Try to access
yoursite.com/wp-admin– should redirect to 404 - Access your custom login URL – should show login form
- Successfully log in
Test 2: CAPTCHA
- Open an incognito window
- Go to your login page
- Verify CAPTCHA appears (or works invisibly for v3)
- Complete CAPTCHA and log in
Test 3: Login Limiting
- Open an incognito window
- Enter incorrect password multiple times (up to your max retries)
- Verify you get locked out
- Wait for lockout duration to expire or clear lockout from admin
Test 4: Two-Factor Authentication
- Set up 2FA on your account
- Log out
- Log in with username and password
- Verify 2FA prompt appears
- Enter 2FA code successfully
Test 5: Optional Frontend Login or Account Pages
If you added Guard Dog frontend blocks or shortcodes:
- Open the page in a private browser window
- Confirm the login form or account-security widget renders
- Test passkey and social buttons if enabled
- Confirm post-login redirects go where you expect
Common Initial Setup Issues
Issue: Locked Out After Changing Login URL
Solution: The custom login URL is stored in your database. If you lose access:
- Via FTP or cPanel File Manager, rename the Guard Dog plugin folder to disable it temporarily
- Log in via the standard
/wp-login.php - Rename the plugin folder back
- Go to Guard Dog settings and note/change your login URL
Prevention: Always bookmark your custom login URL immediately after setting it.
Issue: CAPTCHA Not Appearing
Causes:
- JavaScript errors on the page
- Incorrect API keys
- Wrong CAPTCHA provider domain registration
Solution:
- Check browser console for JavaScript errors
- Verify your Site Key and Secret Key are correct
- Ensure your domain is registered with your CAPTCHA provider
- Try a different CAPTCHA provider
Issue: Can't Receive 2FA Emails
Causes:
- WordPress default mail function not working
- Email provider not configured
- Spam filtering
Solution:
- Test your WordPress email with a plugin like WP Mail SMTP
- Configure an email provider in Guard Dog → Settings → Email Provider
- Check spam folders
- Use app-based 2FA instead
Next Steps
Now that you have Guard Dog configured:
-
Enable Activity Logging – Start tracking security events
-
Set Up Access Control – Fine-tune who can access your site
-
Build Frontend Account Pages – Give users self-service 2FA, passkeys, and session controls
-
Create Temporary Access – For contractors or support staff
-
Review Security Best Practices – Optimize your security posture
Getting Help
- FAQ: Frequently Asked Questions →
- Troubleshooting: Troubleshooting Guide →
- Support: WordPress.org Support Forums