WordPress — the most popular CMS on the planet by a long shot. This ubiquitous born-blogging platform has been wrangled, shape-shifted, hacked and smashed into the shape of roughly half the websites on the internet.
Born of "Code is Poetry," WordPress offered mid-2000s website developers like me an open-source, free-to-develop option for self-publishing in the then-popular blog space, in a way that allowed for developers to learn PHP and CSS while creating what they needed.
Curious bootstrapping first-timers latched on by the hundreds and before too long, WordPress became a household name over such contemporaries as Drupal and Joomla. WordPress's focus on allowing interested persons with little to no code experience to publish easily is still highly-marketable and successful even at its gargantuan size.
While WordPress still tops the market in this way (again, can't argue with how successful this approach really continues to be), the ever-shifting internet has introduced complications to WordPress' stability and the growth potential of websites that depend on it. It turns out that what's easy to get going is not always easy to keep going or optimize for high traffic or security.
Today, WordPress is still used to get websites up and running, but is prone to severe security vulnerabilities and bloating when a site is too heavily trafficked or developed — that is, the code doesn't run so great when there's a lot of it and can overwhelm servers. Additionally, plugins sometimes introduce these problems independently even when they aren't already present in WordPress, and sometimes not until later.
TL:DR; what works well at the beginning can run into scaling and security issues, which is why a good WordPress alternative can do everything WordPress can do and more — while being secure, stable, scaleable and easy to use.
There are WordPress alternatives out there that position themselves as easier to use or similar to WordPress; but there is only one choice to take your website to something bigger when you have outgrown WordPress.
ExpressionEngine is the WordPress alternative
Formerly closed-source and an industry favorite among web agencies, ExpressionEngine can do everything that WordPress can do and absolutely shines when it comes to scaling, simplicity, security, and the ability to port over from WordPress. Like WordPress, it is open-source (as of 2018) and is maintained by a private company while being freely distributed. ExpressionEngine allows for the publishing of content in Channels (which you can assign to your Blog or Pages, as WordPress does) that multiple field types allow to be even more closely configured to the website's needs without the need to use PHP to make modifications.
ExpressionEngine is content-first, which means that the work you do to set up your content for online publishing — HTML, CSS, JS originates entirely with you — nothing comes pre-configured or bundled into a front-end injector; because ExpressionEngine doesn't assume that you are working with a blog, jQuery, Vue or even CSS. This is helpful when moving over a new design because there is nothing to tear down or get lost in before you have the chance to build what you want. Want 6 sections per page? Go for it. Need to avoid some JS library being injected? All the way. Enabling the client to publish parallax features independently within page text? It can do that. What's important to your client is important to ExpressionEngine, and you won't have to "get around" any default opinionated features or hack any functions.php files in order to get ExpressionEngine to publish the way you want to design.
Additionally, ExpressionEngine has had only 4 severe vulnerabilities in its lifetime since its dawn in the 1990s. That's as many as have been discovered in WordPress in a week.
Here are some desirable features in ExpressionEngine as a WordPress alternative:
- Self-published SEO meta data in custom fields means highly-configurable custom fields to manage this basic website feature, without bulky add-ons.
- Custom front-end templates (add your own design, like your WordPress one) in ExpressionEngine mean that add-ons aren't inserting themselves in the header or footer, eliminating unforeseen bloat.
- It takes PHP 5 and anonymous FTP to get into a server with ExpressionEngine, and even then it doesn't get broken into. This is within your control to avoid, but if it's security you're looking for, ExpressionEngine is a tank.
- Avoid additional plug-in needs for differing content types such as: recipes, testimonials, videos, SEO, etc; reducing bloat, avoiding version incompatibilities, and eliminating the need to migrate this content at the end of the plugin's development life. You do this in ExpressionEngine with custom fields, a built-in core feature.
- What does ExpressionEngine use add-ons for? Create robust web features like e-commerce shopping carts, member management, and secured login areas easily, as well as forms and third-party API integrations (Hubspot CRM) without the threat of security breaches. Don't take our word for it - the add-on store looks great and its search features are helpful.
- Integrate new features as they are designed just as you added the baseline ones, without having to work around your web software or find a plugin.
Overview: How would I put a website design into ExpressionEngine?
You don't need to design "pages" or "blog posts" in ExpressionEngine necessarily, unless those are the features you want. The process goes like this:
- Create your templates in your favorite front-end code (this may currently exist as the front-end rendered code of your WordPress site) — anything you want, as though you were going to publish in text files.
- Create an instance of ExpressionEngine and add templates from the control panel per-page.
- Add your non-cms front-end code to your templates.
- Add ExpressionEngine tag code to your templates to enable CMS features.
- Optimize your design with built-in, reusable layout features, caching, image sizing, and fluid fields — a field that allows you to bring in a collection of other fields to display in tandem with each other. "EE" can do so much!
You are free to use your own naming conventions, page conventions, and overall configuration conventions — this being one of ExpressionEngine's security-first design features. It's more difficult to hack a site where sign-in pages are named something different for every website out there. That's just one of the many features of ExpressionEngine that makes it far more secure than WordPress. For ExpressionEngine, security isn't just a feature, it's a design principle.
How do I migrate a website from WordPress to ExpressionEngine?
This topic deserves its own post, but the process goes something like this:
- Install ExpressionEngine and create the channels and fields in ExpressionEngine to store your wp data, in a 1 to 1 relationship.
- First create fields: body, image etc and the create a channel in ExpressionEngine and add the fields to the channel.
- Get a copy of your WordPress database.
- Use MySQL to map your WP content in to your ExpressionEngine or import directly to your channel using the DataGrab plugin (https://expressionengine.com/add-ons/datagrab) (US $59) or use your CSV and MySQL graphic user interface program to transfer the data.
Clearly, this is a very brief overview of the process without a lot of detail provided. Would more content like this be useful to you? Let us know.
How do I know it's time to move?
If your website is doing great in WordPress, don't move.
If you're seeing failures of page loads, blips in information, complaints from customers, or security breaches, it may be time. This isn't your fault or WordPress's fault - it's just that the software may not be ideal to handle the demands of your website.
For content managers and web developers who are graduating from WordPress: if you're tired of the updates, the incompatibilities, the bloat, the security threats, then ExpressionEngine can clear all that up and support the site you loved in WordPress. It's a step that will allow you to scale up.