About the author
M Asif Rahman
Founder, WPDeveloper
At WPDeveloper we have built for WordPress for a long time, and keeping sites safe kept coming up in what people asked us. BetterShield is our answer, built together with my partner and a team I am grateful to work with. Here I share what we see and learn.
Articles by M Asif Rahman
45 articles
-
BetterShield
Activity log · File editorKnow who saved a file in the editor
File edited Rated HighRecords Who and which fileActivity logHardeningSee who saved a file in the WordPress theme and plugin editor
BetterShield records each file editor save in WordPress as High, naming who saved which file and never its contents. Here is how to read the row.
· 8 min read -
BetterShield
AI assistants · Tool limitsGive each app only the tools its job needs
Connected app Chosen tools onlySave Tools Seen on next refreshMCPAI assistantsWordPress MCP permissions: limit each AI app’s tools
Choose which security tools each connected AI app may use on your WordPress site, and watch other plugins’ MCP endpoints and ability changes.
· 7 min read -
BetterShield
Hardening · REST API routesWatch a route for a week, then close it
Require Sign-inWatches the route a weekClose to VisitorsSigned-out callers refusedUndoRestores the old accessHardeningSecurity auditRequire sign-in for a WordPress REST API route, after a week
Close one public REST API route to signed-out visitors, but only after a week of watching who uses it, with Undo if a form or app stops working.
· 7 min read -
BetterShield
Switching · Limit Login AttemptsMove your sign-in limits across, safely
Sign-in limitsPreview firstProxy checkBefore you switchSwitchingLogin protectionLimit Login Attempts Reloaded alternative: switch to BetterShield
Moving from Limit Login Attempts Reloaded to BetterShield? See what the import carries, what to check behind a proxy, and the order that avoids a lockout.
· 9 min read -
BetterShield
Settings · Alert pausesQuiet the email, not the protection
Mute all alertsStops all security emailMaintenance window30 minutes to 4 hoursSettingsActivity logPause WordPress security alerts for maintenance, keep protection on
Choose between Mute all alerts, a planned maintenance window and holding one event type, and see what each one keeps running while you work on your site.
· 9 min read -
BetterShield
Setup · The first hourSet up once, then check what it did
Way back inLink and codesProtectOne screen, one ApplyHubLast, and optionalChecklistSettingsWordPress security plugin setup: Quick Setup and what to check
How to set up a WordPress security plugin in your first hour: what BetterShield's Quick Setup does at each step, and what to check after it finishes.
· 9 min read -
BetterShield
Settings · Password checkRemoving a protection should take a password
DefaultOff until you turn it onOne confirmationLasts 15 minutesHardeningSettingsAsk for your password before anyone removes a WordPress protection
Turn on BetterShield’s password check so removing a protection needs the administrator’s password first. What it covers, what it skips, and how to undo it.
· 8 min read -
BetterShield
Page builders · Add-onsMany add-ons, each one checked or watched
Directory add-onsOfficial copiesPremium add-onsWatched for changesHardeningSecurity auditElementor security: add-ons, code editors and file changes
Elementor security for page-builder sites: compare directory add-ons with official copies, watch premium add-ons and the theme, and switch the code editors off.
· 12 min read -
BetterShield
Two-factor · Trusted browsersSkip the code on your own browser, not every browser
Browser Choose to trustDuration Up to 90 daysTwo-factorSign-inWordPress 2FA remember device: trust a browser for up to 90 days
Let a browser skip the WordPress two-factor code screen for 1 to 90 days, see which browsers are trusted, and forget them when a laptop is lost.
· 8 min read -
BetterShield
AI · Plain-language auditPlain-language answers on your own AI key
Explain My Audit Open findingsYou press the button Sent only on requestAI assistantsSecurity auditExplain a WordPress security audit in plain language with AI
Use your own AI provider to explain one finding, a whole audit or an incident in plain language, see what is sent first, and keep your key out of the plugin.
· 8 min read -
BetterShield
Login security · The layersAdd each layer to the sign-in in order
Lockouts5 failures in 15 minutesTwo-factorCode from an appPasskeysDevice unlockLogin protectionSign-inWordPress login security: the layers in order, lockouts to passkeys
Secure the WordPress login in a sensible order: recovery first, then lockouts, the bot check, two-factor, passkeys and an optional new sign-in address.
· 11 min read -
BetterShield
Access · Temporary rolesGive a developer access that ends itself
AccessAdd a roleDurationEnds automaticallyUser rolesSessionsTemporary WordPress access for a developer, with an end date
Give a developer or support person a WordPress role for one hour to 30 days, see what they did, and let the access end on its own, without a shared login.
· 7 min read -
BetterShield
Blog security · WritersProtect the accounts that can publish
Editor and AuthorTwo-factor requiredComment formHidden bot checkVisitorsFewer details shownUser rolesTwo-factorWordPress blog security: authors, editors, comments and visitors
Secure a multi-author WordPress blog: two-factor for writers, limits on comments, and what to stop showing visitors, step by step with BetterShield.
· 11 min read -
BetterShield
Hardening · VersionStop announcing which WordPress you run
PagesVersion removedFeeds and assetsVersion removedHardeningSecurity auditHide the WordPress version without breaking caches
Remove the WordPress version from pages, feeds and script addresses, see what it does and does not change, and why caches still refresh after every update.
· 7 min read -
BetterShield
AI assistants · Change accessLet an assistant propose, and you say yes
Small fix Applies, with an undoHeavier change Waits for your yesMCPAI assistantsWordPress MCP write access: approvals, limits and undo
How to let an AI assistant change your WordPress site: which fixes apply at once, which wait for your yes, the hourly limits, and how each change is undone.
· 9 min read -
BetterShield
Sign-in · New networkTell people when their account signs in elsewhere
New-network emailTo the account holderBlockingNothing is blockedLogin protectionSign-inWordPress new sign-in email: tell people when they sign in elsewhere
Email each account holder when their account signs in from a network it has not used before. See what the email says, what it never does and how to turn it on.
· 7 min read -
BetterShield
Monitoring · WeeklyOne short look, in the same order each week
Weekly summaryMonday by defaultLast visitWhat changed sinceAuditCompared with a daySecurity auditActivity logWordPress security monitoring: what to look at each week
A weekly WordPress security monitoring routine built from what BetterShield records: the summary email, the Overview, audit comparisons and unusual activity.
· 12 min read -
BetterShield
Passkeys · Passwords offSwitch passwords off, with a way back in
PasskeyDevice sign-inPasskeysSign-inPasskey-only sign-in in WordPress: turn passwords off by role
Passkey-only sign-in stops passwords signing in the roles you pick. See every safeguard, what refused people see and how password sign-in comes back.
· 10 min read -
BetterShield
Membership · AccountsMany members, a few staff, one set of rules
MembersOut of the dashboardStaffTwo-factor requiredSessionsCap per accountUser rolesTwo-factorMembership site security: members, instructors and shared logins
Membership and LMS site security for WordPress: keep sign-up quiet, require two-factor of staff, cap sessions, and keep members out of the dashboard.
· 13 min read -
BetterShield
Recovery · Site lockdownOne switch closes the dashboard, not the site
DashboardOther sessions endFront endStays as it wasRecoverySessionsWordPress site lockdown: sign others out and freeze changes
How to lock down a WordPress site in one step: who is signed out, what is frozen, what visitors see, how to lift it and how to check it worked.
· 9 min read -
BetterShield
Switching · Kadence SecuritySwitch plugins and keep your brute force numbers
Pause sign-inYour own numbersFile editorSwitched offPHP in uploadsStoppedSwitchingLogin protectionSwitch from Kadence Security to BetterShield: what carries over
Moving from Kadence Security to BetterShield? See what the import carries over, what it holds back and why, and the order that avoids a lockout.
· 9 min read -
BetterShield
Hardening · Cloud metadataPlugins should not ask your server for its keys
Cloud metadata169.254.169.254RequestRefusedHardeningSettingsRefuse cloud-metadata requests in WordPress: the fix that starts on
How to refuse plugin requests to cloud-metadata addresses in WordPress, let your own services through, check it is working, and undo it.
· 9 min read -
BetterShield
Agencies · Many sitesEvery client site, one place to look
ConnectApprove on each siteReviewScores and findingsReportWeekly or monthlySecurity auditSettingsManage security across many WordPress sites from one hub
Connect each client site to the free BetterShield Hub, review scores in one list, send client reports and hand a site back cleanly, with the undo for each step.
· 11 min read -
BetterShield
Recovery · Two routesTwo ways back in, for two different problems
Core recovery modeA plugin crashes the siteRecovery linkA sign-in rule blocks youRecoverySign-inWordPress recovery mode vs a recovery link: which gets you back in
WordPress recovery mode handles a crashed plugin; BetterShield’s recovery link handles a sign-in rule that blocks you. What each covers and how to set up both.
· 9 min read -
BetterShield
WooCommerce · Customer sign-inLet customers choose a stronger sign-in
My AccountSign-in securityTwo-factorPasskeysTwo-factor for WooCommerce customers: passkeys and codes
How WooCommerce customers set up two-factor and passkeys on My Account › Sign-in security with BetterShield, what you can ask of staff, and what you can’t.
· 10 min read -
BetterShield
Privacy · What leaves your siteFile checks use version details
Share usage dataOff until you allow itBreached-password checkOff until you turn it onBetterShield HubOff until you connectPrivacySettingsWordPress security plugin privacy: what leaves your site
What a WordPress security plugin sends off your site: what BetterShield contacts out of the box, what each optional service gets, and how to check.
· 10 min read -
BetterShield
Switching · All-In-One SecuritySwitch plugins and keep your lockdown limits
Preview the importNothing changes yetApply what matchesOnly what is switched onDeactivate the old pluginAfter you checkSwitchingLogin protectionSwitch from All-In-One Security to BetterShield: what carries over
Moving from All-In-One Security to BetterShield? See what the import carries over, what it holds back and why, and the order that avoids a lockout.
· 9 min read -
BetterShield
Login protection · Real visitor IPBehind a proxy, who is really knocking?
X-Forwarded-ForRead from the rightTrusted proxiesOnly your own addressesConnectionsVerifiedLogin protectionLockoutsWordPress behind Cloudflare or a proxy: get the visitor's real IP
How BetterShield tells visitors apart behind Cloudflare, a load balancer or a proxy, so sign-in pauses follow one person and never everyone at once.
· 8 min read -
BetterShield
Setup · The right orderSecure your site one step at a time
Way back inRecovery firstSign-inTwo-factor, passkeysAlertsTest oneChecklistHardeningHow to secure a WordPress site: what to turn on, in order
A calm order for securing a WordPress site with BetterShield: your way back in, sign-in, the fixes, alerts, the log and file check, then assistants.
· 9 min read -
BetterShield
Switching · Really Simple SecurityMove over without losing your sign-in limits
Sign-in limitsAttempts, minutesHardeningSix protectionsPreview firstNothing changes yetSwitchingLogin protectionSwitch from Really Simple Security to BetterShield: what carries over
Moving from Really Simple Security to BetterShield? See what the import carries over, what it holds back and why, and the order that avoids a lockout.
· 8 min read -
BetterShield
Multisite · Network AdminOne network, rules set once
Every siteScore in one tableNetwork floorTwo-factor rolesRecovery linkShown onceTwo-factorRecoveryWordPress multisite security: one score table, rules set once
How to see every site’s score in one table and set two-factor and passkey rules once for a WordPress multisite network, with recovery and the undo.
· 10 min read -
BetterShield
Tools · WP-CLIAudit, harden and recover by command
Read-only auditwp bettershield auditChanges need a user--user=<login>Recovery, no userrecoverSecurity auditHardeningWordPress security from the command line: WP-CLI commands
Run a WordPress security audit, preview hardening fixes, read the activity log and release lockouts from the terminal with BetterShield’s WP-CLI commands.
· 12 min read -
BetterShield
WooCommerce · Sign-insProtect the accounts, leave the checkout alone
CustomersOptional two-factorStaffTwo-factor requiredLogin protectionTwo-factorWooCommerce security: protect customer and staff sign-ins
WooCommerce security for the accounts behind your store: what to set for customers and for staff, and why BetterShield leaves the cart and checkout alone.
· 10 min read -
BetterShield
Settings · Email alertsAlerts worth reading, and no others
Weekly summaryMonday by defaultStraight awayHigh and criticalMute all alertsOff by defaultActivity logSecurity auditWordPress security email alerts: a weekly summary and instant mail
Set up WordPress security email alerts that stay useful: a weekly summary, instant mail for high and critical events, recipients, maintenance and mute.
· 13 min read -
BetterShield
Security audit · 71 checksWhat a security audit reads, and what it leaves
AccessIdle Admin accountsServerPHP version supportExtensionsFiles vs official copiesSecurity auditChecklistWordPress security audit: what 71 checks look at, and what they miss
What a WordPress security audit checks, how the score and grade are worked out, what snooze and not applicable do, how often it runs, and what it is not.
· 13 min read -
BetterShield
AI assistants · 6 rulesSix rules before an assistant gets near your site
Read-only credentialChanges nothingHeavier changesWait for your yesAgent activityRefused calls tooMCPAI assistantsMCP security best practices for a WordPress site
Six rules for letting an AI assistant near your WordPress site: read first, narrowest access, your yes on heavy changes, a full log and a way to cut it off.
· 11 min read -
BetterShield
Login protection · Allow and blockTwo lists, and a way back in
Always allowedNever pausedNever allowedSign-in refusedLogin protectionLockoutsWordPress IP allowlist and blocklist without locking yourself out
How to keep your office addresses from ever being paused and refuse sign-in to chosen addresses, usernames or browsers in WordPress, with the undo.
· 9 min read -
BetterShield
Login protection · Public formsThree open forms, each with a limit
CommentsHeld for moderationPassword resetsSlowed, nothing sentSign-upsRefused for a whileLogin protectionHardeningLimit comment spam and password resets in WordPress
How to hold comment bursts, slow repeated password reset requests and cap sign-ups per connection in WordPress, preview new numbers and undo it.
· 9 min read -
BetterShield
User roles · The dashboardCustomers do not need wp-admin
SubscribersSent to the front pageCustomersKeep their profileUser rolesLogin protectionKeep subscribers and customers out of wp-admin in WordPress
How to send subscribers and store customers from wp-admin to the front page, keep their profile, trial it first, and undo it, with BetterShield.
· 9 min read -
BetterShield
Switching · WordfenceMove from Wordfence, keep your sign-in rules
Sign-in limitsFailures, minutesAllowed addressesAlways allowedPreview firstNothing changes yetSwitchingLogin protectionSwitch from Wordfence to BetterShield: what carries over
Moving from Wordfence to BetterShield? See what the import carries over, what it leaves behind and why, and the order that avoids a lockout.
· 8 min read -
BetterShield
Choosing · Security pluginsAsk six questions before you pick a plugin
Security audit 71 checksEvery fix Undo never expiresSecurity auditHardeningWordPress security plugin: six questions to ask before you choose
How to choose a WordPress security plugin: six questions about findings, undo, data, speed, recovery and limits, each answered for BetterShield.
· 12 min read -
BetterShield
Hardening · Sensitive filesBackups and logs are not for visitors
Configuration backup wp-config.php.bakDebug log debug.log404HardeningFilesHide sensitive files in WordPress: backups, logs and wp-config copies
How to stop visitors fetching wp-config backups, debug logs, database dumps and .env files in WordPress: what the fix hides, what it can break, how to check.
· 9 min read -
BetterShield
Sign-in · Keys and saltsNew keys, and every old session ends
Sign-in keysNew keys and saltsOther sessionsSigned outSign-inSessionsHow to rotate WordPress security keys and salts, and when to
What WordPress security keys and salts do, how to strengthen and rotate them without editing wp-config.php, who gets signed out, and when to rotate.
· 7 min read -
BetterShield
Login protection · The hidden bot checkTurn away simple bots without a puzzle
Automated submissionsHidden bot checkHuman visitorsNo puzzle to solveLogin protectionSign-inWordPress login CAPTCHA alternative: a hidden bot check
A WordPress login CAPTCHA alternative that asks visitors for nothing: how BetterShield’s hidden bot check works, what it misses and how to check it.
· 9 min read -
BetterShield
Hardening · The uploads folderUploads are for files, not for code
Uploads folder uploads/test.phpDirectory listing HiddenHardeningUploadsWordPress uploads folder security: stop PHP and folder listings
How to secure the WordPress uploads folder: stop PHP files there from running, stop folders listing their files, what each can break, and how to check.
· 8 min read