You probably use your web browser more than any other application on your Mac and it’s causing slow Time Machine backups that fill up with non-essential files.
This article focuses on the specifics of macOS’ Time Machine backup system, but the same problems also exists with most other backup system on all computer operating systems.
Web browsers store a lot of data on your hard drive in files and databases that change every minute as you surf the web. Most of the information that’s stored by your web browser is non-essential ephemeral data that you would never miss if it disappeared or didn’t survive a system disaster. All modern web browsers even have a built-in feature to remove this type of data called “clear data”, “remove history”, “clear browsing data”, or something similar.
What you care to back up from your browser is limited to your settings and extensions, saved passwords, bookmarks, and maybe your top sites and the last few months of your browser history.
My browser profile data directories (excluding ~/Library/Caches which isn’t backed up by default) for Firefox, Safari, Brave, Chrome, and Vivaldi are roughly 1 Gigabyte each. Assuming some use of the browser, a majority of the files in that directory are shown to have been modified within the last hour. Time Machine makes a new copy of every file that has been modified since the last backup and backups are created every hour.
The exact amount of data that’s copied into Time Machine with each hourly backup point varies greatly. Following some quick analysis of my own backups (see the bonus section at the end of the article) show that each hourly backup is 620 Megabytes on average. A whooping 594 Megabytes on average out of the backup total size is data from my whichever web browser I’ve been using.
I went through each of my browser profile directories and pick out only the files I want to have backed up and was left with an average of 11,4 Megabytes of valuable data per browser. In other words, 98 % of the data that’s backed up from my web browsers are non-essential junk files that I wouldn’t miss. These files keep track of states and sessions, and keeps things working on the web. But I would not have missed them if I’d needed to restore my MacBook from backup.
Apple only keeps hourly backups for the last 24 hours, and reduces the backup to daily backup for the last week, and weekly backups for as long as storage permits. This storage retention strategy keeps the problem from taking up all your available backup storage space. However, preparing all of those non-essential files for backup, encrypting them, copying them over the network or to an external disk, writing them to that disk, and then cleaning it up again a few hours take time and energy. So much energy that Time Machine is the number one battery draining app on my MacBook according to Activity Monitor!
As a user, you can manually go through and add exclusions to your Time Machine backup through System Preferences. Most users would not know that they needed to or how to do this, what files to exclude, or even how to find any of these files. (There are existing tutorials for this the web but I recommend against following them as I couldn’t find a single one that showed you how to not lose your bookmarks, history, and browser settings.)
This is a problem that should have been solved by the application developers. Browser vendors — including Apple — should fix this in their products rather than leaving it to the end user. Applications can mark non-essential files for exclusion using the Backup Core
CSBackupSetItemExcluded API or by setting an extended file system attribute. I find it telling that not even Apple have bothered with implementing support for their own API, however.
If your Time Machine backups have become slow lately, you may want to try a more practical trick by resetting your browser data using the personal data removal tool in your browser. This shrinks most of the relevant files down to almost nothing which reduces their impact on your Time Machine backups. It’s not a great solution but it’s quick and easy to try.
Bonus Want to analyze your Time Machine backup to see how much data is stored with every backup point? The following Terminal command will show you a list of backup points and how much unique data was copied over and stored for each backup point.
The above example (it’s all in just one line) looks at the backups of Google Chrome. You’ll need to adjust the path in the tmutil command and point it to the browser profile directory for your preferred web browser. Locating your browser profile directory path is out of scope for this article.