When the Cron Runs

Had an issue where scheduled Cron jobs were not running in WordPress. Reactivating all my plugins really solved it. ????

It’s never that easy, I’m suspicious.

WordPress Site Health “Great Job!”

Current Status
  • Listening to: "Don't Let Me Down (Live)" by "The Aggrolites" on "Unleashed Live Vol.1"

Duplictity & Deja Dup as my WordPress backup workflow

I’ve been using duplicity to backup my personal WordPress website’s wp-content folder for a month and I love this new process.

Duplicity is a Linux terminal backup application that you may know by its Gnome desktop client Deja Dup which I also use to backup my computers.

My backup workflow

I backup my WordPress database daily using MySQL and bash

It quickly creates a snapshot of the database but I needed an efficient way to manage my wp-content folder where WordPress saves all my themes, plugins and media files. This is where duplicity comes in.

While logged into my website via ssh I use a simple command to create and update an archive of my wp-content folder and save it just out of public reach.

# duplicity /home/linuxboo/public_html/wp-content/ file:/var/www/backups/

Note: My website’s setup uses /var/www/html as the public folder and /var/www/ is not shared by my apache web server.

Not much has changed from a my last backup a moment ago

Duplicity quickly updates a snapshot of my wp-content folder.

As you can see above, the archive is 649 MB but nothing new was added since the last backup a few minutes earlier. This is key, only changes are recorded and it doesn’t duplicate files that haven’t changed.

In practice I run a duplicity backup every time I perform a database backup. This allows me to restore static files along the database.

Selecting a backup date in Deja Dup
Selecting a specific date to restore from my backups.
Restoring files in Deja Dup
Restoring this website’s wp-content folder to my desktop
Thunar file manager
My wp-content folder restored to my desktop

Duplicity would have been perfect for restoring that plugin I deleted six months ago ::smh::

Joseph Dickson – a month ago

Why I Love Duplicity

A few months back I had deleted a WordCamp slide presentation that accompanied my session on WP_Query. I didn’t have this workflow in place and it would have saved me a lot of time. I could have simply restored the missing files along with the database to my local testing server.

As duplicity’s archive grows I will probably prune it along with my webhost’s log files to keep my Ubuntu droplet nice an lean.

Over the next few months I may even go as far to run a cron job that updates the duplicity backup and the WordPress database so all I need to do is log in to download them. 😉

Offline and Duplicate Backups

Below is an example of an local archive I earlier today which includes the duplicity backup, MySQL database, wp-config.php and .htaccess that can be used to clone or restore my website at another location. 😀

Most importantly I can store this on my desktop where I run daily backups and copy it to a USB flash drive in the event my webhost, computer crash on the same day I’ll still have a third offline backup.

Why Backup Manually?

I wanted to take a more personal and intentional approach to backing up this website and canceled my Jetpack account a few months ago which provided flawless daily backups and restoration via VaultPress.

Jetpack has a lot of features I really didn’t use or appreciate so taking on the challenge of keeping my own local archive of my website seemed like a good idea. I now backup my website’s backups along with my desktop and laptop 🙂


WordPress Performance Audit

I’m on vacation this week!

So naturally I decided to start a WordPress performance audit of my personal websites to purge any under-performing plugins as well as evaluate my Child Theme for improvements.

I audit plugins no less than every six months. If a plugin hasn’t been updated in that time I’ll consider removing it from my website.


I removed AMP for WordPress and Redis Object Cache.

AMP for WordPress is great if you want that Google love but its overkill for my personal blog. Ironically it hinders site performance a bit so removing it made sense. With AMP removed Redis Object Cache became unnecessary so that was removed as well. I’ll likely need to cleanup some database tables as a result and WPOptomize is perfect for removing old cruft so I’ll do that next.

Plugins That Remained

Progressive Web Apps for WordPress which I recently started using earned a top spot on my site. Not only does it easily set up progressive web app support, it seems to provide a performance boost as well.

Lazy Loader provides lazy loading until WordPress 4.5 is released and becomes a core feature.

The IndieWeb Suite

IndieWeb, Semantic-Linkbacks, Webmention, and Micropub are enhancing my site as a social media hub.

  • IndieWeb – integrates this site with Twitter
  • Semantic-Linkbacks – provides additional commenting features
  • Webmention – Allows users to provide a link to their website as a comment.
  • Mircopub – uses IndieAuth to for third party integration for apps like Quill


I use Wordfence’s two factor security login app to provide an additional layer of protection. Understandably, the full version as it doesn’t play nicely with Micropub as it allows third party access.

Child Theme

I added OpenGraph support so Featured Images show up on social media posts to my blog. Jetpack had provided that previously but I decided to remove it as I wasn’t making full use of all its features.

Chromium website audit
Pretty snappy results

Because PWA caches the browser with service workers a website becomes available offline. Reloading a webpage can result in a page refresh of less than 200ms because its stored locally on your device. Not quite as quick as Gatsby JS or Hugo…But pretty close.

Current Status
  • Listening to: "L.A." by "Mu330" on "Live Oh Yeah!"