I enjoy working with and building websites and web-based tools. However, like any piece of software, it has to be regularly worked on in order to stay up to date. Thus I looked into switching over to a static website. Static websites are now starting to make a comeback. As you may know, the early dates of websites were mostly comprised of static websites. Over time, then need for information to be delivered faster, items to be purchased online, and individuals wanting to have their own online space, resulted in more dynamic tools being created. Here are the pros and cons that I discovered when researching to switch to a static website.
A static website does not have a need for a database. When you have less infrastructure to maintain, you are free to do other things.
With Drupal, if your database goes down, becomes corrupt, or gets hacked, your website will have reduced or no functionality. In addition, you have to keep regular backups of your database in case something does happen to it.
I had one of the Drupal websites that I maintain get hacked once. It took a lot of effort to clean up the database after the successful hacking attempt. In addition, the most recent backup, was approximately 6 months or more old. So the changes had taken place since then, which were not tracked, would have been lost and probably not restored.
Drupal Security Updates
Drupal releases security and feature updates regularly. When the updates are released, they are included in the weekly email newsletter that goes out. In one occurrence, the weekly newsletter went out and a Drupal-based website was exploited within hours based on the details that were provided in the newsletter. This means you have to be immediately ready to download, test, and deploy the latest security patches. Otherwise you are putting your website at risk. I'm only one person and not always have time to make an update as soon as it comes out. For me, performing these code updates are not difficult. However, performing those updates does take time. Time away from writing content, sleep, or doing something more useful with your time.
A static website will always be faster than a website that uses a database. The way that Drupal is setup, the database would been called each time a page was accessed. From there, the database would returned a cached version of the page. Load times is one of the factors that Google takes into account when it comes to search ranking. So the faster your page loads, the higher your ranking on search engines.
Harder To Hack
Content Management Systems usually have a way to login to them. This "doorway" for login allows hackers or similar users to gain access to your website and make changes. Static websites do not have login or authentication system. Now I know what you're saying... you can hack the webhost directly. Yes that is true, but you have the know the name of the webhost server. Most of the time, the website does not have the name as the web server, thus making it more difficult to access and hack.
You Have to Rebuild the Entire Website
One downside to using Mkdocs, is that when you make one change, you have to rebuild the entire website. There's no way, that I am aware of, that will allow you to update and deploy a single page. This is one of the common complaints that I have read about Mkdocs and other static site generators. At the time, it is not a big deal for me to use a static site generator as I do not have a lot of content. I did read that one website had over 1,500 posts and that it took two hours to generate the entire website using Jekyll.
I looked for themes to use that were similar to my current website. Let's just say that there was not many. After doing several searches and finding other blogs that used Mkdocs, I found and chose the Material theme for my blog.
It allows you to do some appearance customizations without having to do significant code changes to the theme.
Hopefully this provides you with insight on whether you should consider changing your website over to a static website.
Keywords: drupal, mkdocs
Read Time: 4 minute(s)