A WordPress admin plugin to Customize and secure your WordPress dashboard
Documentation and user guide
Deskmode Pro Suite documentation
A walkthrough of every screen in the plugin, in the order they appear in the menu — what each one does, what to switch on first, and the mistakes worth avoiding.
Deskmode Pro Suite installs like any other WordPress plugin, and nothing changes on your public site. Once activated, the admin picks up the new theme immediately, while every security feature stays switched off until you decide to enable it — so there is no risk of locking yourself out on the first day.
Go to Plugins → Add New → Upload Plugin, select the ZIP and activate it.
Open the new Deskmode Pro Suite menu that appears in the sidebar.
Enter your license key to enable automatic updates.
Start from the General screen: colour, logo and dark mode take two minutes and show the value immediately.
Screenshot: the plugin upload screen with the ZIP selected and ready for installation.
When you update: delete the previous copy and install the ZIP fresh rather than uploading over it, then hard refresh with Ctrl+Shift+R. Your settings live in the database and survive the reinstall.
enjoy your new WordPress dashboard
General
The home of the plugin, and where the visual identity of the admin is decided. Everything here is cosmetic and completely safe to experiment with: nothing can break a site.
Accent colour — twelve one-click palettes; the whole admin, buttons and charts follow the choice.
Logo image — replaces the WordPress mark in the admin bar. It is aligned to the left and scaled automatically, so a large file will not break the bar.
Site name and link — what appears next to the logo, and where it points.
Footer text — accepts HTML, so you can put a credit line, a support link or an image.
Dark mode — enables the floating toggle. The preference is saved per user, not for the whole site.
Screenshot: the General screen with the twelve accent colours.
For client work: pick the accent from the client’s brand colour and put your own logo in the footer instead of the admin bar. The result reads as their site, maintained by you.
one page instead of a dozen screens
Security summary
Security settings are spread across half the plugin, and each one is as easy to forget as it is to set. This screen collects them in one place: every protection with a green or red badge, green when it is on and red when it is off, and one line underneath saying what that means in practice. Every item is a link to the screen that governs it, so reading the page and fixing it are the same gesture.
Protections
Eleven entries covering the login rules, two-factor and captcha, the custom login URL, XML-RPC, user enumeration, REST API rate limiting, application passwords and block notifications. A counter at the top says how many are off and how many checks need attention.
Captcha counts as active only when both API keys are saved — the same condition the 2FA module applies, so a half-configured service never shows green.
Block notifications need an address — the entry stays red until a valid notification email is set, because a notification nobody receives protects nobody.
Site checks
Three things WordPress never looks at, and that stay invisible until someone is already inside. All three are read only: nothing is changed, moved or deleted.
Must-use plugins — mu-plugins load on every request and cannot be deactivated from the Plugins screen. The page lists what is in the folder so you can recognise what belongs there.
PHP .user.ini — whether it exists, whether the web server can write to it, and the values of open_basedir, allow_url_fopen, disable_functions and the rest. Each directive shows the value in effect next to an In the file column, which says whether it comes from your file or from the server php.ini.
Executable files in uploads — a recursive scan for .php, .phar, .phtml and a dozen other extensions the server could run, plus a warning when no .htaccess stops PHP from executing there.
The uploads scan is kept for one hour and stops after 20,000 files, so it never slows the dashboard on a large media library. When it stops early the page says so, rather than presenting a partial result as a complete one.
Screenshot: the security summary, with the protections on the left and the site checks on the right.
A red badge is not always a fault. Must-use plugins are marked red because the page cannot tell a hosting helper from a backdoor: read the names once, and from then on you will notice anything new. And a directive shown in red with “no, from php.ini” is not something your .user.ini got wrong, it is a server setting to add there or to ask your host about.
This is not a malware scanner. It reads settings and looks in three specific places; it never inspects the contents of your files and has no database of known malicious code. A backdoor inside a theme file is invisible to it. Run a signature-based scanner alongside, and treat this page as the checklist of your own defences.
customize and log in with style
Login options
This screen governs how wp-login.php looks. It is the first thing a client sees every morning, and the cheapest way to make a site feel finished.
Layout — the modern two-panel arrangement or the classic centred form.
Logo and background — your own image on the login screen, with colour fallbacks.
Colours and rounding — form fields and button follow the accent colour by default.
Texts — welcome message and footer note, useful for telling users who to contact for access.
Screenshot: the customized login page, in both the dark and light versions.
Check it in dark mode too. The login screen follows the theme, form fields included — it is worth opening it once with the toggle on before handing the site over.
protect yourself against the thousands of attacks WordPress sites face every day
Login security
The rules that decide who is even allowed to reach the login form. Everything here is evaluated before the password is checked, which is what makes it effective against automated attacks: blocked traffic never gets a chance to guess. From this screen you can also look up the visitors and bots attacking your site, simply by clicking the IP address listed in the logs.
Geofencing — allow only the countries you operate in, or block specific ones.
Blocklist — individual IP addresses you never want to see again.
Allowed hours — a time window for logins, useful when nobody works at night.
Rate limit — a ceiling on attempts from the same origin.
Anti-lockout — protects the IP you are working from, so you cannot shut yourself out by mistake.
Screenshot: login security rules with the blocked attempts chart.
Before you enable geofencing, think about where your team actually logs in from. A client on holiday abroad will be blocked, correctly but inconveniently. Allow the countries people travel to, and remember that every block is logged so you can review real evidence.
increase your security
Two-factor authentication
A second step after the password, so a leaked credential is not enough to get in. It works on the standard WordPress login, so nothing changes in the daily routine except one extra confirmation. Google reCAPTCHA v2 and v3 and Cloudflare Turnstile are both supported. To use Turnstile, check if your DNS must be managed by Cloudflare. Generally DNS does not need to be on CF. (We recommend Turnstile, as bots can bypass reCAPTCHA fairly easily).
Enable it per user, or enforce it for entire roles.
Administrators and editors are the accounts worth protecting first.
An administrator can switch it off for a user who has lost their device.
Got a static IP? Trust it — 2FA is skipped for whitelisted addresses.
Screenshot: the two-factor authentication settings.
Never enable 2FA on the only administrator account of a site you cannot otherwise reach. Set up a second admin first, or make sure you have FTP access as a fallback.
all-in-one network tools
Network info
Server and connection details gathered in one page, so you can answer a hosting question without installing a diagnostic plugin or opening a terminal.
Check IP, DNSBL, AS lookup, Whois and DNS in one place.
ISP and location.
The IP address WordPress sees for the current visitor — the quickest way to confirm that a proxy or CDN is passing the real one through.
Screenshot: network tools and information details.
Use it before opening a support ticket. Find out the IP address, country and provider behind the traffic attacking your site and trying to reach your dashboard. The same information is available on the Login security page: just click an IP address in the section “IP addresses blocked during this period. Click an IP for a reverse lookup.”
remove intrusive notifications from the dashboard
Notices & ads
Keep your dashboard clean and get rid of annoying ads. WordPress dashboards fill up with upsell banners, review requests and promotional notices injected by other plugins. This screen silences them, which matters most on sites your clients log into.
Hide promotional banners and upgrade notices from third-party plugins.
Keep the notices that actually matter — updates and genuine errors.
Choose which roles see the remaining messages, so clients are not alarmed by technical warnings meant for you.
Screenshot: the notices and advertising controls.
Do not hide everything. Update notices and error messages are the ones you want to keep visible for yourself, even while hiding them from the client.
has anything changed on my website?
Site Health
The analytical heart of the plugin: a single score, the charts behind it, and a Task-Manager view of what every plugin costs you.
Health score
Derived from checks across performance, database, plugins, security and server environment. Critical issues and warnings lower it, and the value is recorded daily so you can show the trend rather than a single snapshot.
Charts
Average load time with a seven-day moving average, and the score history. Both are inline SVG, so they cost nothing to render.
Plugin resource usage
Database time, SQL queries and registered hooks for each active plugin, with a status dot. It shows the fifteen heaviest.
Query profiling — off by default. Switch it on for a few days to populate the database columns, then off again.
“No data” means a plugin ran no query during the sampled requests — good news, not a fault.
Vulnerability scan — optional, needs an API token (free WPScan account).
Data collection — enables known-vulnerability checks, needs an API token (free WPScan account).
Outbound connection monitor — check the external connections made by each plugin.
Screenshot: health score, charts and the plugin resource table.
CPU time and memory per plugin are not shown, on purpose. They cannot be measured reliably from inside WordPress: every plugin runs in the same PHP process. What you see here — database time, queries and hooks — is measurable and therefore trustworthy.
clean up and migrate your site
Database checks
Maintenance tools for the database, plus the migration tool you need after cloning a site. This is the most powerful screen in the plugin, and the one to approach with a backup already made.
Audit
Expired transients — safe to clean; WordPress recreates them when needed.
Largest tables — read only, to see where the weight is.
Largest autoloaded options — loaded on every request. Leftovers from removed plugins are the usual culprit; core options are protected and cannot be deleted.
Search & replace (migration)
Changes the old URL and path to the new ones everywhere in the database. It is serialization-aware: it unpacks serialized data, replaces the values inside and repacks them with recalculated lengths, which is what prevents the classic disaster of widgets disappearing after a migration. The guid column is deliberately skipped.
Fill in old and new URL, and optionally the old and new path.
Run the preview — it is mandatory and shows how many rows in which tables will change.
Confirm twice to execute.
Screenshot: database audit and the search & replace preview.
A search and replace cannot be undone: rows are rewritten in place. Take a database backup first — this is the one instruction worth following literally.
built-in under-construction mode
Maintenance mode
One of the two features that visitors can actually see. It puts a branded holding page in front of the site while you work, without taking anything offline for you.
Title, message and logo — the page inherits the accent colour.
Who can still browse — by capability, so administrators (and anyone else you choose) keep seeing the real site.
Retry-After — tells search engines the outage is temporary, which protects your rankings during a long maintenance window.
Check it in a private window. Logged in as an administrator you will keep seeing the normal site, which is exactly the point — and exactly why it is easy to forget maintenance mode is still on.
built-in 404 page manager
404 page
The other visitor-facing feature. A default 404 is a dead end; a good one keeps the visit alive and tells you which links are broken.
Title, text and logo for the page.
Search box and home button — the two exits that recover most visits.
404 log — records the URLs that were not found, which is how you discover broken links and stale backlinks.
If the custom 404 never appears, the cause is usually the web server rather than WordPress: on nginx, proxy_intercept_errors can replace the WordPress response with its own error page. It has to be turned off at server level.
organize your dashboard
Customize menu
The admin menu grows with every plugin installed, until a client logs in and finds thirty entries they must not touch. This screen puts it back in order.
Hide entries completely, or restrict them by role.
Do not compact the menu — by default long menus collapse behind a “show more” button; tick this to keep everything visible and simply scroll.
Easy manage menu items — adds a quick remove and a duplicate button next to each entry in Appearance → Menus, for the site’s navigation menus.
Screenshot: menu visibility and role restrictions.
Hiding is not securing. A hidden menu entry is still reachable by typing its URL. To actually prevent access, restrict by role or capability.
log everything
Activity log
Who did what, and when. On a site with more than one editor this is the difference between a mystery and a timestamp.
Logins, both successful and refused, with the originating IP.
Content published, edited or deleted.
Plugins activated, deactivated or updated.
Settings changed, including the plugin’s own.
Block an aggressive IP with a single click.
Screenshot: the activity log with user, action and time.
The log stores IP addresses, which are personal data under the GDPR. Recording them for the security of your own systems is legitimate, but mention it in your privacy policy and clear old entries periodically.
mail sent from your site
Mail log
Every email the site sends, recorded. It answers the question that has no other answer: did the order confirmation actually leave, or is the customer right?
Recipient, subject, time and delivery outcome.
The message body is not stored, for privacy reasons: you can see that a message was sent, but not what it said.
The sender captured from the form, which works across the common contact form plugins without any specific configuration.
A failed delivery here is not always a WordPress problem. If messages leave but never arrive, the cause is usually the sending domain: check SPF and DKIM before blaming the site.
cloud and FTP backups
Backup & restore
Full-site backups, encrypted and sent off the server. The screen estimates the size before you start, so you know whether you are about to create a small archive or a very large one.
Scope — database only, which is fast and covers content and settings, or database plus site files before a major change.
Destination — download locally, any S3-compatible storage, or a remote server over FTP.
Schedule — automatic runs, so the backup exists before you need it.
Screenshot: backup scope, size estimate and remote destinations.
A backup you have never restored is a hope, not a backup. Test one on a staging site at least once, and keep at least one copy off the server you are backing up.
BONUS TRACK!
Enjoy your new welcome screen
Two widgets, “Security summary” and “Site speed”, gather everything you need to understand what is happening on your website. In the upper-left corner you will also find the widget showing how many banners have been hidden and moved to the “ADV” section.
Security summary — requests refused by your rules over the last 24 hours or 7 days: they never reached the password check. Failed logins are the attempts that did reach it and were refused by WordPress: wrong password, or no such user.
Site speed — check the average site load time over the last 24 hours or 7 days. If something changed after an update, it is time to look at the plugins involved.
Hidden banners — shows how many banners or errors Deskmode has intercepted and moved to its dedicated page.
Screenshot: the WordPress welcome screen.
Look at what happens right after you log in. Two widgets (move them to the top) show the site’s security status and loading speed.
Every module can be switched off from outside the dashboard by defining a constant in wp-config.php. That is the way out when something is keeping you from signing in: constants take precedence over any setting stored in the database.
Shopping Basket
Manage Cookie Consent
This site respects your personal data and uses cookies solely to improve the quality and experience of your browsing. By clicking “Accept,” you allow us to process data such as your browsing behavior or unique identifiers on this site. Not giving consent or withdrawing your consent may negatively affect certain features and functions.
Functional
Always active
Technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of transmitting a communication over an electronic communications network.
Preferences
Technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Stats
Technical storage or access used exclusively for statistical purposes.Technical storage or access used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance by your Internet Service Provider, or additional records from third parties, the information stored or retrieved for this purpose cannot, on its own, usually be used for identification.
Marketing
Technical storage or access is necessary to create user profiles for the purpose of delivering advertisements, or to track the user across a website or across multiple websites for similar marketing purposes.