WordPress or Craft CMS for client projects?
As a web developer, I regularly hear WordPress and Craft CMS comparisons, whether when I'm talking to other colleagues or in a client meeting. And I would like to state at the beginning that there is not the best CMS, but only the best CMS for the respective project.
Because only the requirements of a project influence which content management system can best fulfill them. It could be Craft CMS, especially for very individual solutions and with a focus on good usability. Or WordPress - for a simple blog or small store. Of course, Statamic is also possible if a project should get along without a database or an extension should be written with Laravel. And many other content management systems would be a suitable solution depending on the project.
But the discussion is understandable; WordPress has a market share of over 40% based on all websites, and if you look at just the CMS market, it's over 60%.
I've been using WordPress since 2005, which was a revelation to me because, for the first time, I could publish my projects without having to program my own CMS. Alternatives like Joomla never appealed to me. WordPress was installed in a few minutes, and I could choose a theme and start immediately. Later, I could customize themes with some HTML, PHP, and CSS. Furthermore, the possibility of expansion was another benefit: I could often install a plugin if I missed a specific function.
So it was not surprising that I used WordPress during my first freelance client jobs. But with some more experience, I didn't like the mixture of HTML and PHP anymore. The template code was not pretty to look at, and I was not too fond of the guidelines the CMS gave me regarding a particular file structure and hierarchy.
In 2008 I discovered ExpressionEngine, which gave me much more freedom in development and templating. I could keep the files much more manageable thanks to the template language. In addition, the community was a blast. I want to positively mention Brandon Kelly, Ben Croker, Ryan Irelan, and John Henry Donovan. They all work with Craft CMS today, which I've used since 2013. They all work with Craft CMS today, which I've used since 2013.
I used Add-ons from Pixel & Tonic for years in ExpressionEngine. So it was not surprising that I also tested it when they announced their own CMS. Announced at the time as Blocks CMS, it was released as Craft CMS. But WordPress is still my constant companion due to its wide distribution. I have a lot of happy WordPress customers, and even though I don't often develop themes these days, the support effort is enormous. WordPress, therefore, remains an integral part of my professional life. I must admit, however, that due to the very long transition period to Gutenberg or full-site editing, I have somewhat lost a bit of confidence in the platform.
At the end of 2020, I should implement a WordPress project for a client. A custom theme was desired, but which technology to use? Gutenberg was not yet mature, and we did not want to rely on a page builder because I did not want to have an ecosystem in the ecosystem. In the end, it became Gutenberg with Advanced Custom Fields and the functions that the editor already provided. Since then, I've been watching the WordPress market, and I'm partly skeptical. There are still completely overloaded themes at Themeforest, and then there are various page builders and Gutenberg. Deciding on a good tech stack within WordPress feels more complicated than it did ten years ago:
I used to install Advanced Custom Fields Pro, which allowed me to create flexible custom fields in a good UI. Without this feature, I would have turned my back on WordPress early on. It was always important to me to be able to customize the control panel in particular and for it not to look so cluttered. The latter can be a challenge with WordPress.
Of course, I still had to live with PHP and HTML being wildly mixed regarding templating. Craft CMS offers native Twig support and Statamic Antlers, both modern template engines for PHP. Gutenberg, however, again complicated templating in WordPress. Because all of a sudden, React JS had to be used for custom content blocks and in a strange notation. There were also problems regarding accessibility, but these have now been largely resolved. Still, it led to me deactivating Gutenberg on most client projects via a plugin. But the fact remains that PHP, HTML, and React are now needed to create a spotless solution. Unless you want to use some additional plugins, and that's precisely the next topic.
Plugins are WordPress' most significant advantage and disadvantage. For WordPress, there is an incredibly huge third-party market that offers pre-built plugins for practically everything. So it's easy to add new features to your website quickly. The downside is that many plugins are outdated or have been abandoned altogether and can therefore be hackers' targets.
It would be fatal if customers suddenly surf randomly through the plugin directory and install some. Please ask the freelancer or agency for advice, as they will most likely know the excellent quality plugins. And there are many of them. I already mentioned Advanced Custom Fields, but I also think of SEO and, thus, Yoast SEO or Rank Math. WP Rocket for caching, Contact Form 7 for forms, and WooCommerce for online stores. Multilingual sites are often implemented with WPML or Polylang. But there are so many more.
Part of the truth, however, is that WordPress was originally a blog system and therefore carried fewer features. These have been constantly expanded over the years, but you sometimes have to install a plugin, even for mundane functions. For example, a plugin is needed if you want to replace a file in the media library. More plugins increase the risks of security vulnerabilities, poor optimization, and slower loading times.
In Craft, there is also a thriving plugin ecosystem. But a little over 900 plugins are just a difference from over 55,000. Especially since I could build a good Craft website completely without plugins, while that's not relatively so easy with WordPress. Craft offers many more features out of the box and would simplify such a project. Custom fields, different field types, content image creation, better file management, full-blown user management, and multi-language support are all built into Craft Core. But multilingualism and user management are only included starting with the Pro variant for $299. Multilingualism in WordPress with WPML costs $99 compared to those who use User Role Editor Pro Business for WordPress, who also pay $79.
The days when WordPress plugins were mostly free are long gone. Many plugins cost annual fees these days, which is a good thing. The developers should be paid for their work and support because nothing is worse than relying on a plugin, which is suddenly no longer supported after 2-3 years. And thus becomes a security risk or is no longer compatible with a new WordPress version.
Craft makes no assumptions about the content or its presentation. The developer builds these content models based on the specific requirements of a project, and it creates individually what the project needs. Even in the admin, the editor only sees what they need, be it in the menu or the input mask of the content.
On the other hand, the WordPress dashboard quickly looks overloaded if a few plugins are installed. And it gets awful when the project works on a purchased theme. Then there are testimonials or portfolios in the admin, although the project uses neither the one nor the other. And all of a sudden, it's up to the developer to throw everything out again with other plugins or adjustments to functions.php, which are not needed.
Craft CMS starts conceptually with a blank sheet of paper, and the project can then be built via content first. While many WordPress projects already come with some ballast that needs to be decluttered first. Of course, WordPress can customize everything and build from scratch. In practice, however, I have seen too many projects in agencies that specialized in specific themes or page builders. Then it is only a matter of adapting these predefinitions to the related project.
I'll go so far as to say that if a content-first project is desired and starting from scratch, you can get there faster and more flexibly with Craft. WordPress would be the better alternative if budgets are lower, there are more time constraints, or a theme is 80% of the project's wants. The concept of themes does not exist in Craft. In Craft, everything is an individual solution for a unique project.
Control Panel / Dashboard
My main problem with WordPress is the admin panel. This quickly seems overloaded as soon as a few plugins are installed. Also, it is not always clear where to find certain settings. Do I have to look at appearance or settings? Both are possible, depending on the case. Another unpleasant side effect is that the WordPress dashboard may be laggy and simply lame. This can be related to installed themes and plugins.
In Craft, the fields can be built for each content type. It is possible to arrange fields side by side or put them in tabs. Each field can be given instructions, and from Craft 4 onwards, conditional fields are also possible. Craft thus creates a customized user experience with little training required, even in the admin itself. In addition, there are functions such as the live preview, where the editor, while editing an article, can follow how it would look in the browser in real-time. URLs can also be sent from this preview, which the supervisor, for example, can view without being logged into the admin.
But we're not just talking about fields; we're talking about the entire content structure. In WordPress, there are only posts and pages by default, and you can create more custom post types with plugins or functions.php, which can be arranged hierarchically or chronologically. Each Custom Post Type can also have its taxonomy, i.e., categories or tags.
In Craft, there are three section types by default: Channels, Structures, and Singles. Channels are arranged chronologically and are, therefore, suitable for blog posts. Structures are arranged hierarchically, so they are ideal when the date of entry is not so important or when you want to create a nested structure, for example, documentation. But it is also easy to create databases that should be linked to other sections. And this is precisely the point where the Craft solution stands out from the WordPress variant. Complex relations are easier to implement. Both systems can display the latest blog posts that belong to a particular category on the start page. In Craft, however, you could go even further and specify that the blog posts belong to a specific department. Or you could build a FAQ database that different sections access.
And I also have to mention data management. WordPress has only one media library, where all photos, PDFs, and other documents are loaded. In Craft, you can define different folders. A folder for photos, a folder for teasers, a folder for PDFs, and a folder for product images. Whatever is needed. Also, it can be said that only PDFs can be uploaded to the PDF folder. Files can be dragged and dropped, and see a file preview if desired. The user can also create subfolders in the folders, creating a neat file structure like the operating system. It is noticeable that Craft makes an effort to maintain the most diverse content sensibly.
Craft CMS is very secure out of the box, even in the default installation. For example, Craft is excellent at preventing SQL injection hacks, a common vulnerability when using third-party WordPress themes and plugins.
The CVE is a list of public security vulnerabilities in computer systems. It lists 37 vulnerabilities for Craft CMS, compared to nearly 4,600 for WordPress. Of course, you can't compare these two numbers just like that, as WordPress' penetration is also tens of times higher than Craft's. Consequently, WordPress is a much more popular target for hackers. In 2018, 90% of hacked websites worldwide were WordPress-based, and 52% of reported vulnerabilities involved WordPress plugins. But over the years, WordPress has become more secure. Just the fact that plugins are now automatically updated on demand helped. But if security were a hugely important issue for my project, I would recommend Craft CMS or Statamic.
Craft CMS and WordPress offer great e-commerce solutions. In the case of WordPress, it's the WooCommerce plugin, while for Craft, the best solution might be Craft Commerce.
The advantage of WordPress here is the larger plugin ecosystem, which makes it easy to integrate Shopify, for example, seamlessly. Ultimately, this should get you there faster and cheaper, as WooCommerce is a free, open-source plugin. However, it should also be said that the basic version only comes with many essential features, and everything else sometimes costs money.
Craft Commerce is developed by the same team as Craft CMS, offering a perfectly integrated experience. Including fully customizable ordering and fulfillment processes. Since content and shopping are super intertwined, very flexible and scalable solutions can be built. However, Craft Commerce costs $999 and $199 annually after the first year. Craft Commerce Lite is also for $199 and $39 US annually after the first year. Lite, for example, has no multi-level checkout, no shopping cart, and not such a sophisticated discount system. These prices should not matter for a full-blown store solution. However, if you only want to implement smaller, less expensive stores, you might be better off with WooCommerce.
My advice can only be to first define the goals and functions of a project and then choose a CMS based on those. There will be projects where WordPress is the better solution, and somewhere Craft is ahead.
If a project is very data-intensive, has many different content structures, or needs some custom solutions, I would recommend Craft CMS. Also, if author's experience and ease of use in the admin is a critical consideration. WordPress is attractive for small marketing sites and has strengths in blogs and small to medium store solutions.
I do not want to go into great detail about the costs of both CMS. Craft CMS Pro has a one-time price of $299, in addition to the $59 annual fee after the first year. In addition, there are plugin costs as needed. WordPress is open-source and does not cost for the first time. Again, plugin costs are sometimes incurred. Craft is definitely worth the money as there is a substantial added value. If $300-500 in licensing fees is a problem, we're probably talking about low-budget or hobby projects, and then WordPress might be a better solution.