Uncluttering the Admin Experience

There’s rarely a day goes by that I don’t log into a WordPress site. If you’re like me, you’ve grown immune to all the various options and learned to ignore the things you don’t need.

If you’re building custom WordPress sites for your clients, chances are they’re not so blissfully unaware. At best, all the options are overwhelming and confusing. At worst, a client might make an unintended change that blows the site up.

The goal? Simplify the WordPress admin experience for your clients. Below are a handful of easy-to-implement tricks for reducing clutter in the WordPress admin.

Shipping a customized theme? Get rid of the fluff.

Get rid of the code editor

With one line of code added to the wp-config.php file, you can drop the possibility or even temptation of using the WordPress code editor.

Drop this in wp-config.php:

define('DISALLOW_FILE_EDIT', true);

Get rid of unused layouts

I use the Genesis Framework for all of my custom projects. By default, it includes six layout options (i.e. full-width-content, content-sidebar, content-sidebar-sidebar, etc.).

If you’re building a custom theme, chances are you don’t need all six layouts, so get rid of the ones you don’t need. By doing so, you’ll clear out some clutter and take away the opportunity for someone to use a layout you didn’t plan for.

Decide which layouts you don’t want and unregister them in your child theme’s functions.php file:

Get rid of unused widget areas

Again, I’m using Genesis as a reference point here, but let’s say you ditched the double sidebar layouts by unregistering them in functions.php. That’s all well and good, but guess what? If you took a peek at Appearance > Widgets from the WordPress admin, you’d still see an available widget area for the Secondary Sidebar.

That widget area doesn’t display anywhere on the site, so get rid of it!

You can do that by dropping this in your child theme’s functions.php file:

// Unregister secondary sidebar. unregister_sidebar( 'sidebar-alt' );

Maybe you don’t need footer widgets or existing widgets that came with a pre-made child theme. Go through and remove any that you don’t need.

Get rid of unused CSS

If you’re building a theme from scratch, this isn’t a concern, since you’re only adding the styles you need. However, if you’re customizing a pre-made theme, odds are there’s some lingering CSS you don’t need for your finished product.

Specifically look for CSS related to:

unused layouts

unused widget areas or widgets

unused color schemes

unused plugins (Some themes include styles for plugins, such as WooCommerce or Genesis Enews Extended. If you don’t plan to use those plugins, ditch the related styles).

While your client may never know what CSS is there or not, they can certainly appreciate a speedier site load time that results from leaner code.

Before you go, add in some nice stuff!

Creating a better WordPress user experience isn’t just about getting rid of the things. You can also add in some nice touches.

Add editor styles

You spend a lot of time selecting fonts, colors, sizing, spacing, etc. for the front end of your site. Why not bring that joy into the WordPress editor?

Adding the front-facing styles to the editor allows users to better see how their content will look when published. Here’s a quick tutorial to lead you through the process of adding custom styles to the editor.

Spruce up comments & Gravatars

We want people to leave comments on our content and our clients do to. Here’s a handful of tweaks that make for a better commenting experience, hopefully encouraging readers to engage.

Speaking of comments…

What sort of global things do you do for a site before shipping it? I know there are a lot more things you can do than what I’ve mentioned and I’m curious what you recommend. Leave a comment and share!

Phew! Makes me feel better I’m not the only one who wants to clean up the un-used portions of CSS. Never even considered disabling editors, but then again, I haven’t had a client TRY that yet . . .LOL. Will disable the editors from now on!

Hey Steve! Your wp-config.php file is never overwritten in a WordPress update (WordPress has a file called wp-config-sample.php that gets manually changed to wp-config.php when setting up your site).

The other places you’d make these changes (i.e. your child theme) would definitely get overwritten on an update. That’s why I like Genesis – you can update it all you want, but it doesn’t mess with your child theme code. Once you customize any theme, you shouldn’t ever update it automatically.

Often you hear people complain about themes and plugins including functionality that you don’t need. But that’s the beauty of WordPress, as long as the theme is coded correctly you should be able to remove anything you don’t need and fully customize it via a child theme or plugin 😉

Kill the editors. Kill most of the stuff on the dashboard. Most of my clients don’t need anything but the stuff that’s actually relevant to their sites, so all the news feeds go away. Disable the rich editor for the user that does the content managing if the user is blind. The rich editor is accessible, but people seem to have a lot of trouble with it, so I kill it for them and they can turn it back on if they want to use it. Unhook the customizer, especially if there’s a custom theme involved. There’s been a lot of time spent on creating an accessible child theme, or customizing one that’s pre-made so that it’s accessible, so I don’t want the client going in to the customizer, finding the shinies, and then playing with colors, only to break color contrast. In some cases, hiding the permalinks settings with a custom functionality plugin. This is usually for multisites that are using subfolders instead of subdomains. in some cases, I don’t get to make the subfolders VS. subdomains/domain mapping decision, so once things are configured, I hide the permalinks from all but the support user, (me) so that they can’t be easily tampered with.

Do you do this by simply altering the user-roles of your client? Seems like that would be the quickest way instead of un-hooking things just give your client a custom user-role with what they can and can’t do 😉

For someone learning and continuing to advance their understanding of PHP, CSS, Genesis and WordPress etc. This is invaluable stuff! It’s always great to hear your tips and advice Carrie. Thanks for continuing to share your experience and knowledge with us wannabe developers!

Carrie, do you make all your adjustments in a ServerPress blueprint and then use the same thing for each new build? I would imagine that would be the thing to do. I know with the iThemes Security Theme we can turn of the editor

Usually I remove all the unused widgets, makes that screen much more understandable for the editors. Apart from that on all sites I manage I give users a sightly modified ‘editor’ role (using the members plugin) and install ‘Simple History’ so no more “I did not do anything”. So far nobody complains about not being able to ‘play’ with plugins etc.

We always install a custom plugin that removes the clutter on the dashboard home page. We also have a custom editor role that removes access to the dashboard menus for Genesis, Profile, Plugins, Users, Tools, and Settings but allows access to Menus, Widgets, and Gravity Forms.

Our small business clients seem to be able to do do what they need to and have never asked for more access.

Hey Carrie, thought I would come in and play the devils advocate here. In fact I am just tweaking a presentation for WC Seattle which is focused on beginners and mine is about the dashboard. In fact in one slide I address this.

I would say in most cases this is totally understandable and best practice for devs. But I will also say I have had a lot of people come to me having been dumped by their dev, and frustrated because options that they have researched and found that should be there aren’t. Now I understand, again, why it’s done. And often it’s scary to think of them having access but at the same time it can be very frustrating to the user when they need to hire someone to either explain what has happened, or even fix it for them.

So my question would be. If at a point, a person is no longer managing the site for that client, should they tell them what has been done, why it’s been done, or is that opening a can of worms. Again, I am coming in from the other perspective here 🙂

And if I don’t come back in tonight, I do really have to finish my presentation 🙂

This goes back to client education. Let your client know that you’ve (activated a plugin, or done stuff in the theme) to make the admin experience better for them. But then provide them an exit strategy if they need it. I typically do this by providing a separate admin login from their main account that has full admin access. Of course, on a site with a lot of users, you might need a different strategy.

Bottom line: I can completely understand the confusion/frustration that could cause users.

In the text editor, screen readers will read the literal input. The only thing they may not read is punctuation symbols, so I usually keep mine set to “some” as opposed to “all” or “no” punctuation. When I’m coding, I need the punction to all be read, because syntax errors happen if it’s not. You can set voice profiles for different applications, but not different webpages. So for Internet Explorer, I use my normal “some” profile. Typing markup is second nature for me, so I can usually type it without thinking. I’ll go back through and check everything just in case though.Enter your comment here…

I probably should have been more clear about that. Yeah, they get a specific user role. This is probably the only time I’d say WordPress needs to borrow something directly from Drupal. User roles and management. I’d love to have complete granular control over assigning capabilities to users.