Since inception, the Write Handed website has been powered by Wordpress for simple familiarity reasons. It came time for that to change. As part of my quest to rank higher on Google, I came to a stage of facing an important aspect of SEO: page loading speed.

After picking a Wordpress theme I liked and populated the entire site, I found that its loading speed was not perfect. By Google's PageSpeed Insight's standards, it only scored a little more than 40 (for mobile). Even after making a myriad of tweaks, addressing as many issues as I can, I could only manage a score of 60.

It appears that the theme files and plugins add up to a bloated stack of css and js files, contributing to the high load times. (There may be other factors as well, but this seems to be a major one)

Eventually, I had to make a tough decision: should I migrate to a different CMS altogether?

It would certainly be big leap. I would have to face a learning curve and manually re-populate the entire website. But having reached a certain ceiling on Wordpress, it's worth looking into.

Why we chose Grav CMS

A quick Google search for an alternative CMS yielded Grav CMS, the winner of the Best Open Soure CMS 2016, and the Best Flat File CMS 2017 and 2019. Preferring open source solutions, this sounded promising already.

Honestly, Grav is the first and only CMS I test drove for research. Having eyed October CMS to test next, I was loving Grav already. So I just went for it.

The features I liked best

The loading speed

Off the bat, with the default Quark theme, the PageSpeed score already reached 90. I got instantly impressed. Even after I populated the site, added all the plugins, and customized the layout to the way I like it, the score is still a solid 90+.

In fact, Grav has an in-built function of combining and minifying CSS and JS files, which brought my score even higher.

A database isn't required

Being a flat-file CMS, Grav does not need to run on databases like MySQL. Instead, it stores all information on files. This is great for two reasons:

Firstly, shifting my website from a staging environment (in my case, on my workstation) to a live one is a lot easier. All I need to do is copy files and folders from one place to another. I don't need to worry about databases. In fact, I didn't even have to change the site URL in the settings. (e.g.: from localhost to example.com) Backing up is as simple as zipping up the home directory.

The plugins I want work perfectly

The in-built features that Grav has are pretty decent already. I only needed to install two plugins:

SEO

This allows me to input opengraph meta data and structured data (rich snippets) for each and every page and blogpost.

Google Analytics and Sitemap

These are for integrations with Google.

The best part about these plugins is that, any additional CSS and JS files are automatically packed into a single file each. Thanks to Grav's pipeline function in the configuration page. And they just work.

My only complaints

The default theme, Quark, has a limited number of included modular items. To achieve the layout I want on my homepage, I had to manually create new ones. Which thankfully was not a complex process.

I'm quite sure this will be a non-issue once users have installed the right theme that contains all desired modules.

My final PageSpeed Score

A solid 97 for mobile, and 99 for desktop.

Just seeing that result was worth my effort. Now with that out of the way, I can focus on other aspects of SEO.

Thank you, developers of Grav CMS. I do hope you continue to develop plugins for people with more complex needs, while keeping the bloat to a minimum. As for myself, I'm a happy camper.