Why We As WordPress Theme Developers Need to Make Theme Options Pages Less Bloated

Preparing our own custom WordPress framework we have been looking hard at other WordPress themes out  there both free and paid. Apart from noticing a big difference in coding between the free and paid themes where paid themes usually adhere less to WordPress practices it is obvious that theme options pages for paid themes are becoming increasingly bloated.

In this article I want to explain why we as a WordPress theme developers can and should not contribute to making theme options pages even more bloated than they are. In contrary, we need to step away from the current bad practice and start utilizing what comes with WordPress.

Using Bloated Theme Options Panels Makes WordPress Segmented and Unintuitive As A Platform And Community

Let’s start strongly right away. With everyone having different options layouts with different user interfaces (still within the WordPress frame) and the amount of settings varying so broadly across themes it contributes to the end user becoming increasingly confused. Instead of there being one standard way which you get when using WordPress, the entire WordPress experience is different from one theme to another.

Have you tried directing a user to a normal WordPress-workflow, only to realize that the theme they are using overrides it with a custom setting somewhere? The purpose of doing so is hard for me to grasp and it is very frustrating to be put in the situation, both as a designer/developer but also as the end user.

The worst part is that it fragments the community as a whole. Users have a much harder time moving from one theme to another because it changes the dashboard tremendously.

Not Using Native Features Requires More Work After WordPress Core Updates

Whenever you stray from using the functions that WordPress supports natively you will inevitably end up having to rewrite parts of your theme for new versions. Part of the beauty of WordPress is that the core developers have a very good way of thinking when it comes to building WordPress. There is a great chance that the theme you build today won’t have to be updated in many years. By using a bloated options panel though, you force yourself into more work when core updates.

Even though this seems to be only a problem for the developer that chooses this bad practice, it creates a problem for the users. You want theme updates to be as painless as the core update is today. Suddenly having to change a major way that your theme works is not user friendly.

It Blurs The Line Between Plugins and Themes And Makes It Harder To Disable Features

Currently the way I see it, there is a very clear line between what is plugin territory and what is theme territory. While it is as easy for a developer to write a plugin as it is to embed it in a theme, embedding a feature in a theme is a sure way of making it harder for the user to disable the feature if he or she doesn’t want it.

Some of the most bloated options panels lets the user do many things that is best served by plugins such as Caching, Analytics, SEO and more. The goal of a WordPress theme shouldn’t be to replace all possible plugins and save the user from having to install a plugin.

What Can We Do To Prevent Bloated Theme Options Pages?

As a community we can choose to adhere to the Theme Review guidelines that were drawn up for the free themes repository. These guidelines are very clear on what is best handled by themes compared to plugins and are very specific even down to how a theme should be coded.

Giving the users a consistent experience is something we can gain from, especially when there are core features present that can do the work and are already in the core codebase. Why reduce performance and usability by reinventing the wheel in this case?

Let’s take responsibility and make sure the standards don’t drop. If the WordPress community would remain high-quality and use the same practices, users would notice and keep choosing WordPress and ourselves for their websites, growing all of our businesses.