I recently came across a new ambitious WP dashboard plugin by prolific developer Wibowo Sulistio which offers probably the most comprehensive set of data about your WordPress website and hosting environment one can get on a single screen. This plugin is called System Dashboard and you can download it from the WordPress.org Plugin Repository, or you can search for it from within the Add Plugins page of your WordPress dashboard.
But is it worth installing? Heck, yes. Several kinds of users would benefit from having this tool at their disposal. Let me show you what this plugin does and how it can help you know more about a WordPress website than you probably ever knew you could.
What is System Dashboard
The purpose of System Dashboard is to put in one place all conceivable information about a WordPress instance and the server on which it is running. At the time of writing, System Dashboard is still undergoing rapid development. So far, it has received 18 panels with different information sets about your WordPress website and your server settings. However, the project is still in a very early stage and that number will probably change.
That’s No Moon. It’s a Space Station
In the default view, System Dashboard will need a 4K resolution monitor to fit into the window, and that is before some of the drop-down lists tucked under different panels unroll downwards. This might sound overwhelming at first, but after spending quite some time inside this tool, I think this design does a very good job of organizing all the data together.
After you install and activate System Dashboard, it will insert itself in a new submenu called ‘System’ under the ‘Dashboard’ admin bar menu. It is divided into two main parts (WordPress configuration and Server configuration). The WordPress configuration part is itself additionally separated into 3 tab collections.
All panel groups follow the same organization principle from top to bottom. At the top are some labels with fixed information; below them come a few read-only dropdown lists with detailed configuration settings. At the bottom, there is a
Tools section with links to popular WordPress utility plugins that are equipped to change the settings in those sections, and a
References section with useful links about the related WordPress component.
Even if you find no immediate use of the information provided by System Dashboard, you can learn everything worth knowing about WordPress just by following the links included in these two sections at the bottom end of each tab.
Before We Go Any Further
I think this is the last possible moment for me to issue a fair warning.
This article might not be worth your time.
I believe that those of you who develop and maintain WP-based websites will find System Dashboard informative and useful, even if not quite interesting and rather overwhelming. But I understand that at least some WPX customers — and readers of the WPX blog — are not actively involved with the maintenance of their own website, or in the development of such websites in general. If this describes you, please consider forwarding this article to the person who is taking care of your WordPress website or e-shop. He or she might find this information very helpful.
WordPress Settings Panel 1: CMS Structures
The first set of panels gives us information about how the WordPress instance is organized and allows us to know how big the website itself is. The
Database panel provides information about the overall database size, index size, and — via the
Tables dropdown — lists all tables along with their individual sizes.
Key Info dropdown lists the most important information about the database: the DB engine type, DB driver version, and various parameters that determine the performance such as memory allocation for various buffers, or the max number of connections.
An experienced DB engineer will appreciate the next dropdown list
Detailed Specifications which includes absolutely every configuration parameter about the database.
From my personal experience, many capable WordPress administrators and even developers know very little about how the database is configured. Such details are hidden within large configuration files that are usually located outside the user folder and thus outside easy reach, especially on shared hosting systems. System Dashboard fetches all of these settings and lists them conveniently for us in one place to view and interpret. No more time wasted digging into config files placed in obscure locations!
Post Types & Taxonomies provides information about the different kinds of data containing units that make up WordPress: posts, pages, attachments, products (if WooCommerce is installed), and so on. For each list, there is also a count of the resources. So if you have 30 blog posts and 1300 revisions, you can do some database cleanup.
Media tab does the same for attachment files, broken down per format type. It shows us what media types can be handled by the CMS (
Allowed MIME Types) and how media files are handled.
Directories tab makes it very easy to control the size of your WordPress site and to monitor its growth over time. Because the Directory Sizes list is read-only, you can’t open folders and delete unnecessary files from here, but the System Dashboard author has conveniently provided links for two tools that could help you do that.
Custom Fields is a very powerful yet vastly under-used functionality that allows users to repurpose WordPress to manage specific types of data (for a simple example, imagine a library-type website, where every post is about a book and requires some obligatory data such as front and back cover images, the title, ISBN number, and a brief description). Many specialized WordPress themes use this functionality; from this panel, you can check what custom fields have already been created.
And, finally, there’s the
Users panel. You can use it to see all registered users and their assigned roles. Also, it shows which user roles have certain capabilities within the local environment. It is advisable to periodically check the contents of this panel to make sure there aren’t unknown accounts with elevated privileges. This is less of a concern for normal WordPress installations, but WooCommerce websites by necessity have many users registered and, sadly, there have been many reports about plugins that allow user privilege escalation.
WordPress Settings, Panel 2: Options & Settings Viewing
Microsoft Windows has the Windows Registry. Linux has its /etc folder. WordPress has the wp_options database table. The WordPress core, plugins, and themes all use it to store their user settings configured.
The number of options and settings influences the speed with which WordPress loads every page, both at the front and in the back-end. The
Options tab allows you to see the value for every option and to check how many of these are auto-loaded with every page refresh (the lower the number, the better).
A large number of autoloaded options (there is no hard and fast limit, but let’s say numbers that into the several thousands, or over 1.5 MB in total data size) will slow down the website and might be an indicator of leftovers from old, unused and uninstalled plugins that did not clean up after themselves.
Transients are a bit like browser cookies — they are used to store specific bits of information oftentimes related to a specific user session, and can be set to expire after a certain amount of time. The
Transients panel allows you to inspect all transient objects.
Cron panel lists all periodic tasks that are configured to be executed at specific intervals, or in response to certain events.
Rewrite Rules lists all types of automatic internal redirections between different URLs that WordPress performs ‘under the hood’. By investigating the contents of this list, a developer or a sysadmin can track down weird behavior (automatic redirects, or empty pages) and pinpoint the culprit — very often a plugin or a buggy piece of code added to the
functions.php file for a current theme.
Shortcodes are a very powerful tool to insert dynamic content into an otherwise static page. There are several shortcodes that are built into WordPress, and there are many plugins that are created specifically to add dynamic functionality via shortcodes. The Shortcodes panel lists all shortcodes available either via the WordPress core or 3rd party plugins, and pinpoints the code fragment where the shortcode is programmed so that its behavior can be studied and/or altered.
Viewer panel allows you to view the contents of several of the most important files for every website:
robots.txt and the sitemap index. In my opinion, the Viewer tab should have been the first one in the series, that’s how convenient it is.
WordPress Settings, Panel 3: Developer Helper Tools
This panel will be extremely helpful for WordPress developers. From
Hooks you can access all available actions and filter hooks, and follow the Code Reference on the WordPress.org website for every hook.
I have a separate blog article in the pipeline in which I tackle specifically how actions and filters work to change the way WordPress works and looks, and these lists will be very helpful as I write the example code. Watch this space!
Classes, Functions, Globals, and Constants are the remaining building blocks of the WordPress system. Using the
Classes panel as an almanac, a developer can easily identify the classes that are used to construct different WordPress objects and use their methods to control them.
Functions contains a list of all WordPress functions along with individual links to the Code Reference.
Constants show various WordPress configuration settings. The ability to control WP constants especially is very powerful; I will talk about it and give some examples in a separate article, really soon.
Server Settings Panel
There is a valid reason why the
Server Settings panel is separate from all the rest. Unlike the other panels, which use standard functions built into WordPress itself to fetch the necessary data, the output of this panel will likely be different depending on your server environment. As is customary in such situations, I must state that YMMV (Your mileage may vary).
The developer uses two PHP functions called exec() and shell_exec() to send commands to the operating system to gather information such as system uptime, CPU load, RAM and disk usage. Depending on how your server or hosting account has been configured, either or both of these PHP functions might not be enabled out of the box, and it might not be possible to activate them because of some security policy or another.
The risk is much bigger if you are running WordPress on a shared host, but I would not be too surprised even if some managed VPS services restrict these PHP functions. WPX users in particular are about… 1/4 in luck. The WPX hosting stack supports shell_exec() but it is not enabled by default. To activate it, you must go to the WPX client area, select your hosting package and go to Manage Websites, then click on ‘Settings’ for the site you need to reconfigure.
However, System Dashboard relies on the sister function shell_exec() to collect data about system uptime, CPU type and 1/5/15-minute average load, RAM and disk size. But even if the plugin could get them, they would be largely useless in a shared hosting environment. This information reflects the status of the hosting server itself, whereas each individual user can access a small portion of those resources anyway.
It appears that everything System Dashboard does using shell_exec(), it could do with shell() as well. I discussed this with the developer and he might address the issue in the future.
Present and Future State
I am writing this while the System Dashboard is less than a month old. It is still rough around the edges, especially in some corner cases that involve PHP 8.0 and 8.1. However the tool is completely passive: while it fetches a lot of information, it is not capable of making any changes to it.
Even if you experience a crash during use, that crash will be limited to attempts at loading the URL of the System Dashboard plugin itself (wp-admin/index.php?page=system-dashboard). This makes it safe to install and use even on production websites without fear of breaking anything, even if it is still far from mature.
The System Dashboard offers a lot of information. Chances are that even a power WordPress user will not know how to interpret every single datum this plugin offers. But one can’t hold this as an argument against the tool itself; it simply fetches and puts in one place all information about the website that could be important at any given time, and it does that job wonderfully.
If anything, it encourages users to know more about their WordPress websites and to peak their curiosity about the way WordPress works.
If you are the kind of person who wants to know how things work on the inside and enjoys learning more about WordPress, chances are you will like System Dashboard like a bucket of ice cream on a hot summer day. It is a read-only tool; nothing you can do with it can damage your website. Explore away!
If you are a developer or tinkerer, System Dashboard will show you in a convenient way where and how to hook into the various functions, filters, custom post types and fields, or simply see what hooks & filters a new theme or plugin offers.
Even if you can’t afford the luxury of time to study the output of this tool at length, I still urge you to at least bookmark it and file the info about it somewhere at the back of your mind. It might come in handy someday.
System Dashboard is available free of charge via the WordPress Plugin Repository. I strongly encourage you to check it out.