In plain words, a content management system (CMS) is an application or software used to create, edit, and organize the content of a website. CMS is a great tool for a marketer or a small business owner that helps run a website without extensive technical knowledge. A good CMS saves time, costs, and, if equipped with the right set of features, makes the life of an SEO marketer easier. But which CMS should you pick for your website? How do they differ? What should you look for as an SEO?
The choice of a CMS can be complicated due to the abundance of existing solutions. W3Techs lists over 600 CMSs at the time of writing. Do not be scared off though! In this post, I will help you narrow down the list to a few candidates that can fit your future project.
The main factor to consider is the type of website that you are going to create. Do you aim to earn from the website? Is it an online store, discussion board, news feed, video or image gallery, a combination of all these? The thing is, that there are plenty of CMSs that are good at just one thing, e.g. a discussion board, and adding some extra features is time-consuming or impossible. The rule of thumb here is simple: narrow down the list of potential solutions to the ones that match your business model. Also, keep in mind that different CMSs can be used to run different areas of your website.
Below is just a small example of specialized CMSs available on the market.
|Personal Blog||E-commerce||Video Sharing||Image Sharing||Forum/ Community|
Multipurpose CMSs exist as well, such as Joomla, Drupal, and WordPress. They allow you to create big complicated feature-rich websites. However, additional technical skills are required in order to create professional-looking user-experience.
Self-Hosted vs SaaS
What is SaaS? Software as a Service (SaaS) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. When using a SaaS CMS, you access your content through a web browser interface. Your content is hosted on the servers of the CMS provider. The software is guaranteed to work off the shelf. Wix and Squarespace are examples of popular SaaS website builders.
On the other hand, if your website is self-hosted, it means that you should take care of the infrastructure (webserver setup) and software dependencies (databases, required software libraries). You install a CMS of your choice on the server and get through the initial set up. Popular open-source self-hosted solutions are WordPress, Drupal, and Joomla.
Here are some important points to consider before choosing between the two:
The level of your technical skills.
You should be at least familiar with such technologies as SSH, FTP, SSL, phpMyAdmin, MySQL to set up a CMS with default settings on your server. And if you want to make some customizations to the website, besides, you must have a good grip on HTML, CSS, PHP or Python.
If none of these sound familiar to you, be ready to crawl up a rather steep learning curve or hire professional developers, or simply go for a SaaS solution.
The required level of customization.
Self-hosted solutions give the user a lot of freedom. You can change and update the looks and functionality of your website. Moreover, you own your data, including both the content and custom software developed for the website.
SaaS-based websites function within certain constraints, such as visual themes, integrations, and plug-ins being tightly controlled. In other words, you have a predefined set of building blocks for your website and you cannot create new blocks on your own.
If your website must handle some untypical use cases, you can’t but choose the self-hosted option.
With SaaS software, you get rid of the necessity to update the software, apply security patches, and bother about hacker attacks. All the security-related tasks are handled by the SaaS provider.
If the SaaS provider goes out of business, you run the risk of losing your data so you may have to rebuild your site from scratch. If you’re self-hosting, however, it’s easy enough to create scheduled backups.
The expenses of creating and running a website vary from 0 USD per month to thousands of dollars. The amount you spend depends on the purpose of your website, its scale, and the business model. Regardless of these factors, you have four basic options to consider:
- A free website on a SaaS platform;
- A paid subscription on a SaaS platform;
- A self-hosted website with no professional support;
- A self-hosted website with professional support.
A free website on a SaaS platform
Some SaaS website builders allow users to create websites for free. However, the functionality of the free option is limited to some core features. Most likely, you will be able to only post content. Customization is normally limited to a few themes and widgets/plugins. As a result, you end up with a cookie-cutter website that does not stand out in the crowd of similar free hosted websites.
Free SaaS websites often suffer the biggest drawback of all — you cannot use your own domain name with it. Your website will be associated with a subdomain of the SaaS provider. In practice, it means that in future, you will not be able to redirect your organic traffic to a new domain, unless you buy a subscription from the same provider that allows attaching a custom domain name.
- Want to test-ride a new platform;
- Want to learn more about web development;
- Run a website as a hobby;
- Need a one-time-use website for some occasion, etc.
A paid subscription on a SaaS platform
With a paid SaaS website builder, you get the benefits of a free version plus the ability to use your own domain name, customization, and business or e-commerce features. You basically get what you pay for. Higher priced tiers or services offer more features, more controls for customization, and more integrations with other services. Typically, the plans offered by SaaS website builders are aimed at private users, businesses, and e-commerce websites.
The table below can give you an idea of potential costs that you may incur.
|Platform||Minimal Price (USD/month)||Maximal Price (USD/month)|
In addition, you should factor in the price of a domain name (starting from 8-9 USD/year) and a custom visual theme for the website. Ready-made “premium” themes normally cost about 200USD.
A self-hosted website with no professional support
WordPress, Joomla, and Drupal are the most popular website platforms out there. They are open-source, which means you can download and use them for free.
Open-source software becomes costly when you factor in the expenses for what is not included in the free download. Note that if you are comfortable with the default behavior and looks, then your extra costs will only include the price of a domain name and hosting.
- Domain name. The price for a .com domain is about 8-9 USD/year.
- Ready-made themes. Paid WordPress themes cost 50-200USD. The creation of a custom theme with a web design studio will cost more.
- Web hosting. There are several types of hosting that start at $50-$60/year with restrictions on visitors, storage, computational resources, and bandwidth.
- Extending the functionality with plugins: Most plugins are free. They are provided by the community, thus they come with no guarantee or customer support. Plugins with advanced functionality for SEO, e-commerce, inventory management are paid. E.g. the premium version of a popular SEO plugin for WordPress, Yoast SEO costs 79EUR (about 87 USD).
A self-hosted website with professional support
As I mentioned before, one needs certain technical skills to set up and customize a self-hosted website. It is always an option to outsource the whole task or its parts to a professional development team. The incurred expenses will depend on the scope:
- Basic installation;
- Improving the appearance;
- E-commerce integration;
- Improving functionality.
Static vs Dynamic
The majority of available CMSs run server-side on a remote computer. In a typical setup, the content is stored in a database and webpages are not physically stored on a server. A CMS dynamically builds pages once a visitor requests them. It assembles all the data from the database and processes the content through a template engine. These are called dynamic websites.
However, there is another approach available, known as static site generators (SSG). Static sites are not new and in fact, were used long before the dynamic CMSs (WordPress, Drupal, etc.) became widespread. Simply put, a static site generator takes your site content (which is stored in a form of plain text files with a specialized markup, e.g. Markdown), applies it to templates, and generates a structure of purely static HTML files ready to be delivered to visitors. The pages are created on a local machine and then can be uploaded to a web server as needed. In the simplest scenario, a website builder is just a command-line application such as Pelican or Mynt. There are also static website generators with more user-friendly functionality with a look and feel of a text processor such as Publii or Lektor.
What are the advantages of SSGs?
Since there are no database queries, no templates to render, and no client-server requests to process, a static site will always load faster than a dynamic one. In the days when search engines value fast websites and streamlined user experience, it is an important advantage.
- Can Handle Heavy Load
Static websites are very scalable. They can handle surges of traffic better than dynamic websites.
Dynamic CMSs are vulnerable to hacker attacks. WordPress is notorious for various vulnerabilities. The number of risks gets even bigger if one uses third-party plugins. SaaS website builders are probably a more secure option, but SSGs are security champions. They are as secure as your webserver.
Hosting a static website costs pennies. In fact, you can host a static website for absolutely free. Check out GitHub Pages or Amazon AWS.
Are there strings attached?
- No user input
Static websites cannot process user input. It means, there is no way to process webforms, leave comments, etc. without using third party services.
- No user login
There is no way to create user areas and customize content for particular users.
- Content is not real-time
The content of a website is frozen between the updates.
- Steep learning curve
Some basic programming skills are necessary to handle larger websites that are updated often.
If your website’s primary purpose is to deliver content without much user interaction, this is a good choice for you. It is probably a perfect solution for a blog.
An SEO-friendly CMS must meet several basic requirements imposed by technical and content optimization best practices.
- Specify a preferred domain
- Unique URLs
- Manage URL structure and taxonomies
- Ability to manage redirects
- Generate an XML sitemap
- Manage robots.txt file
- Fast page load time
- Manage structured data
- Canonical URLs
- Mobile friendly
- Manage page titles
- Manage page descriptions
- Manage <h> tags
- Manage <alt> tags
Most CMSs meet the majority of these requirements out of the box. Any missing functionality can often be added with the existing plugins. I am persuaded that there is no CMS that is especially more SEO-friendly than another. CMSs differ in the amount of work one needs to invest to meet SEO requirements. If you search Google for the “best CMS for SEO”, you will notice that WordPress is on top of almost all charts. Probably, SEOs favor it because this famous WordPress’ motto is actually true:
More to that, it is easy to install new plugins and manage all the SEO-related settings using a graphical user interface. Is WordPress more friendly to search engine marketers than other CMSs? Absolutely! Is it more friendly to search engines than say Drupal? Probably, not.
Choosing the right CMS for your project is time-consuming but it is worth the effort. Three main factors come into play and should influence your choice: the purpose of your website (read feature requirements), your budget, and available technical skills. Picking out a CMS that is just considered to be SEO-friendly might be less than optimal.
As always, your comments, suggestions, and critique are more than welcome.