This website uses cookies to ensure you get the best experience.

12 June 2020

Craft CMS vs WordPress

WordPress is the most popular content management system (CMS) in the world. However with Craft CMS becoming more prominent in the industry, I've put together some comparisons to see which one is better.

This post is over two years old, so the details may be out of date.

WordPress was developed back in 2003 as a simple blogging platform. Built on PHP and MySQL, it has evolved in the years and now powers 14.7% of the worlds top websites with 500+ sites being built each day. It also powers 34% of all websites on the internet and a 60.8% market share in the CMS Market.

Craft CMS was developed in 2011 by Pixel & Tonic. They created the Craft CMS with the idea of a CMS with improved development and authoring experiences. Since it launched it's become one of the top CMS's for agencies due to it's approach to managing website content, and has been selected the Best Wordpress Alternative in CMS Critic?s 2017 People?s Choice Awards.

I'll be comparing both WordPress and Craft CMS in the following sections:

  1. Themes
  2. Content
  3. Plugins
  4. SEO
  5. Functionality & Development
  6. E-Commerce
  7. Performance
  8. Security
  9. Pricing

Themes

WordPress

Every year WordPress release a new base theme, normally this is named after the year, for example TwentyTwenty. These themes are very basic, and are your standard blog theme. If you want something a bit more fancy you can look at websites such as Theme Forest which has over 11,000 themes available. These range in price from $14 to $1500, however you can search the themes by your business or requirements to find what is right for you.

There are also agencies & freelancers all over the country which use WordPress as their main CMS, so you could inquire to get a bespoke theme created based on your needs.

Craft CMS

So Craft CMS doesn't come with any themes per say. However when you install Craft there are example templates included in the repo. These would be enough for a developer to get started on the site. There is also a Happy Lager Demo which contains templates, front-end resources and a DB for anyone to play around with.

Winner

Tie

From a user perspective, it'd have to be WordPress. However from a developers side, it'd be an even score.

Content

So the C in CMS stands for Content. So the main goal of a CMS is to give you control of the content on your website. The content management for both CMS's is very different, especially since the release of WordPress 5.0.

WordPress

So Gutenberg was released on December 6th, 2018, so a very mixed range of responses. Gutenberg was WordPress's way of trying to break into the Wix / Squarespace model with a more block based editor.

Gutenberg works using Blocks which are separated into different categories. For example you can search within? Common to find things such as?Paragraphs, Images, Quotes, Headings?etc. So it really does give you the freedom to make a page look how you want it to!

However this does have it's drawbacks. The interface of Gutenberg isn't exactly user friendly. It can be very confusing to put elements together in a way that your page will flow nicely for the user. The accessibility of Gutenberg has also been a factor in the negative reviews it's received since it's launch. They have however made a promise to improve upon this, so fingers crossed! Currently** there are over 2000 issues currently related to Gutenberg which are being discussed and worked on to make this a better user experience.

Personally, I am a fan of using Advanced Custom Fields Pro. This is a paid for plugin, however it is 100% worth it. As a Developer, working with ACF gives me a greater chance of matching a design. You can create your own blocks which can be built, formatted and styled however you like. The user can also have full control of the layout without adding anything that will break the page.

The other pro I would have to give to WordPress is it's UI. The interface is clean and very easy to navigate, it also helps if you need to create Custom Post Types and you can add your own dashicons to keep your menu clean and precise.

** As of June 2020

Craft CMS

Craft CMS just makes it so easy to add content. This was the reason Craft was created, so it doesn't surprise me how easy the content management side of it is.

With fields such as Matrix, Assets, Categories, Tables and much more, you can create a very nice content experience. Within Craft CMS you also have the ability to Live Preview which helps the user watch their content change as they update it! This is really handy to keep an eye on how your design changes / develops with your content.

Each field is then added to a Section which you can create to seperate different types of pages. I feel like this is where Craft could improve their UX slightly. They have an area within their dashboard called Entries and this is where you can find all of your content. This is split into 3 sections:

  • Singles
  • Channels
  • Structure

Singles are based on standalone pages. These have their own template & fields assigned to them.

Channels are for entries which are sorted by date. This would be for items such as news articles etc.

Structures are for pages which have different levels. For example About Us and you can add a child to that page called Company Information.

While this is handy, I do feel like it's not ultimately very clear for a user. However this is a small grievance I have on a personal level.

Winner

Craft

So, if I take away ACF from Wordpress. Craft is a clear winner on this. It's the king of content.

Plugins

Wordpress

One of WordPress's selling points is the amount of plugins available to help you develop your website into what you need. As of November 2019 there were 55,000+ plugins available. Many are free, but come with pro versions to help you supercharge your site. The problem here is sometimes you can end up with over 20 plugins to create a bespoke website. This can cause a serious performance / security issue if not maintained, and having lots of plugins can also slow down your website. However if you're smart, you'd only need a few to get your site going!

Craft CMS

So plugins on Craft are a bit more diverse. In 2018 there were 200+ plugins on their store with many more being produced as the years have passed. The variety in free and paid for plugins is also quite large, however like WordPress, the best plugins do come with a price tag. You can also create your own plugin, using a plugin generator as a starting point.

Winner

WordPress

I'd have to give this to WordPress, purely on the fact the variety of plugins available makes it so easy to find what you need.

SEO

Wordpress

WordPress is renowned for having one of the best SEO plugins around with Yoast SEO.? Yoast comes with a free and pro version (?89 a year*) and both help to create a good search engine experience for your users. Within each post / page you can set the meta values to grab your key audiences and also increase your visits.

** As of June 2020

Craft CMS

So back in March 2018 a plugin called SEOmatic was added to the Craft store. This was a serious contender for Yoast, priced at $99. It implements JSON-LD microdata, Twitter Cards tags, Facebook OpenGraph tags, Sitemaps of your content, Robots.txt bot directives, Humans.txt authorship accreditation, and as well as HTML meta tags. Widely praised throughout the Craft CMS supporters as a great tool for SEO.

Winner

Wordpress

So ultimately SEO comes down to how good your strategy is, no plugin can help your online presence without one. I'm also somewhat biased here as personally I have only used Yoast, and manually created Meta Fields in Craft, so from that standpoint, I've gotta give this one to WordPress. However SEOmatic looks pretty awesome.

Functionality & Development

So here I'm going to be comparing both CMS's from a developers point of view.

WordPress

So while you can purchase a WordPress theme, many agencies like to create bespoke themes for their clients needs. The setup for WordPress is fairly simple, just add a base theme into the themes folder and build away! However it does come with a few handy features. The built in RestAPI is one of them.

Using the RestAPI you can either use the build in API or create custom endpoints to grab just the data you're after, this can be very handy if you're trying to make a headless site with WordPress as a standalone content editor.

PHP

/**
 * @title: Register Post 
 * @description: Creates a REST API route for news related media
 * @param: N/A
 * @return void
 */
function registerPostsRoute()
{
    register_rest_route('wp/v2/', 'post/', [
        'methods'  => 'GET, POST',
        'callback' => 'servePostsRoute',
    ], true);
}
add_action('rest_api_init', 'registerPostsRoute');

The above creates a new endpoint route which you can use to collect certain data from a post type. This can be for pages, posts or any custom post type, and creates unlimited options.

The only problem here is overload. You don't want to add too many items to your response as this will slow down your request and you'll end up with quite a delay in requiring the data.

WordPress is also built on PHP and MySQL. I personally like PHP, so this isn't a disadvantage for me. With PHP built in you can create your own functions really easily and include them across your site and in your custom RestAPI.

Craft CMS

When you first install Craft CMS it comes as a shell, so from a development point of view this is beautiful as it means you can create a website from scratch with no interruptions. This also means Craft is very lightweight in comparison to WordPress, with no themes or plugins added initially. The building of content with fields like the Matrix means adding content is quite and effective in getting you to where you need to be.

If you purchase Craft CMS Pro it comes with a GraphQL API. This can generate a JSON response which includes all information related to your entry. Like WordPress you can create a custom endpoint by adding a return command into config/routes.php and calling back the bits of information you need from the site. Obviously this comes with a price, so if you want to use Craft Solo (free) you can also install the Element API plugin which also lets you create custom endpoints.

PHP

<?php
    namespace config\endpoints;

    use Craft;
    use craft\elements\Entry;
    use craft\helpers\UrlHelper;
    
    class News {
        
        public static function index()
        {
            return [
                'elementType' => Entry::class,
                'criteria' => [
                    'section' => Craft::$app->request->getQueryParam('section') ? : 'news',
                    'relatedTo' => apiCategoryParam(),
                ],
                'elementsPerPage' => Craft::$app->request->getQueryParam('items') ? : 10,
                'transformer' => function(Entry $entry) {
                    return [
                        'title' => $entry->title,
                        'url' => $entry->url,
                        'author' => $entry->author->name,
                        'date' => $entry->dateCreated->format("jS M Y"),
                        'time' => apiTimeAgo($entry->dateCreated),
                        'thumbnail' => apiBuildSrcSet($entry->newsFeaturedImage),
                    ];
                },
            ];
        }
    }

So in the code above, using Element API, I create a custom endpoint which includes only the information that I want to collect. This create a much quicker and cleaner response for me to grab the data from.

Craft CMS's main language is Twig which is a template engine for PHP. It's main feature it that it simplifies PHP, for example:

PHP

< ?= htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ? >

{{ var|e }} // Cleaner than the PHP way

Winner

Tie

It's a very close one. The best thing about Craft is the fact it doesn't come with all the bulk, you start from the bottom up with no ties. However I feel the RestAPI is a lot more powerful on WordPress, and you can combine your own functions very easily to create a bespoke response. So I'm gunna have to say this one is a tie.

E-commerce

WordPress

The E-Commerce solution for WordPress is the popular plugin Woocommerce. With Woocommerce you can create a seamless shopping experience for your user with automatically created pages which simply the work needed. There are also many themes available for people wanting a pure shopping experience and a connecting shop to their website.

Woocommerce is a content driven system where you have full control over your imagery, stock, variables etc. This creates a very simple content experience. However if Woocommerce isn't right for you, there are also plugins available for integrate other solutions such as Shopify into your WordPress site, which is also a nice touch as it keeps your shop seperate from the rest of your content.

Craft CMS

The ecommerce solution for Craft is Craft Commerce. This solution gives you a basic shopping experience to which you have the freedom to design & build however you'd like your shop to look / function. As per Woocommerce you have full control over your content and imagery to make sure the users experience is seamless.

However it's not as powerful as Woocommerce. It has certain drawbacks as well in terms of plugins available, as some plugins which could be deemed really useful don't exist. One example would be a delivery booking system, this doesn't seem to be a factor for Craft Commerce, which is a huge shame as it would be really handy for a lot of companies. However the ability to integrate your own functionality is available if you dig REALLY deep into their documentation.

Winner

Wordpress

It's a much easier experience for users and for developers to use, and with so many options to boost your online shopping experience it's just a firm winner.

Performance

WordPress

WordPress is an Open Source Platform. This means the source code is freely available and can be modified. Sounds good right? Well the biggest problem with this is it's a nightmare for Performance and Security.

WordPress comes with a LOT already included. The core itself is pretty hefty, so you need a good hosting provider who can cater for what WordPress brings with it. When adding a theme or developing, you also have to take into consideration your page weight, any plugins you add etc as this also adds onto your load time. So in terms of performance, this could cause some concerns, and some work will probably need to be done to get your website performance ready.

Craft CMS

Due to Craft CMS being installed as a clean slate, this means you have a really lightweight system to work with. Obviously having a good hosting platform is important, but you won't have to cater for an initial load of files like you do with WordPress.

Due to this, Craft CMS delivers very fast websites, if built with performance in mind, which is great for SEO.

Winner

Craft

This is a no brainer.

Security

WordPress

By being the top CMS in the market, it means WordPress is highly targeted by hackers. The WordPress login url is normally your appended to your domain as wp-admin which means a hacker knows how to get to that login page. The best way for this is to use a strong username (not admin) and a strong password from a website or a system like 1Password.

Plugins also get targeted by hackers, and so this is another vulnerability on many WordPress sites, especially if you have lots of plugins you rely on.

It's hugely important that you keep track of updating your website in terms of WordPress Updates and Plugin Updates to avoid any security breaches.

One of the best Security plugins I have found for Wordpress is Wordfence, which sends out emails letting you know about attempted hacks, any updates needed and tips on how to improve your website.

Craft CMS

It's a lot safer. You can choose any login url you'd like which is helpful to defer hacking attempts, however again you should be careful when creating a user account as to not use a weak password. Due to the majority of the best plugins being paid for, it is also a lot harder for people to hack into and exploit.

Winner

Craft CMS

Again, a no brainer.

Pricing

WordPress

It's free! To create a WordPress site is completely free of charge. There is no hidden charges to this, and you can select a few themes for free to add to your site from your dashboard.

However these themes don't give you much, so if you're after something with a bit more punch, you can look at many websites, like Theme Forest to help you find something you like! These would be one off purchases, which you can then install on your site, and create your online presence.

Craft CMS

So Craft CMS comes with three options:

  • Solo - Free
  • Pro - $299 per site (1 year of updates) and $59 for each year after that.
  • Enterprise - Quoted for

The solo package includes the majority of what you'd need to build a site. This includes creating entries, adding fields etc. However if you want the best experience with Craft CMS, you can purchase Pro and this gives you the option of multiple users, the GraphQL and updates for you site.

Winner

WordPress

With a price tag of 0, it speaks for itself.

So which is better?

  1. Themes - Tie
  2. Content - Craft CMS
  3. Plugins - WordPress
  4. SEO - WordPress
  5. Functionality & Development - Tie
  6. Ecommerce - WordPress
  7. Performance & Security - Craft CMS
  8. Security - Craft CMS
  9. Pricing - WordPress

Based on the above WordPress wins overall. However there are many reasons to not write off Craft CMS.

For developers, it is a dream to work with, and this is purely down the bare and lightweight framework that Craft CMS comes with. WordPress has been around for a long time, and while I'm not a fan of it's newest additions (Gutenberg), it has come along way, so it will be interesting to see where Craft CMS goes with version 4.

More articles

Check Craft CMS media usage with our Asset Locations Plugin

Today we launched Asset Locations for Craft CMS 4, which has been in development for the last few weeks.

Read more

Behind the site: STORM+SHELTER

STORM+SHELTER are a film and video production company. We knew their new site had to contain a lot of videos,...

Read more

How to use multiple Tailwind CSS configs with ViteJS

Tailwind is a CSS framework which helps you write CSS using pre-built classes. It comes with a helpful config file,...

Read more