Title: BTFU — Back The Files Up
Author: jkirker
Published: <strong>September 5, 2026</strong>
Last modified: September 5, 2026

---

Search plugins

![](https://ps.w.org/btfu-back-the-files-up/assets/banner-772x250.png?rev=3682602)

![](https://ps.w.org/btfu-back-the-files-up/assets/icon-256x256.png?rev=3682602)

# BTFU — Back The Files Up

 By [jkirker](https://profiles.wordpress.org/jkirker/)

[Download](https://downloads.wordpress.org/plugin/btfu-back-the-files-up.0.10.0.zip)

 * [Details](https://wordpress.org/plugins/btfu-back-the-files-up/#description)
 * [Reviews](https://wordpress.org/plugins/btfu-back-the-files-up/#reviews)
 *  [Installation](https://wordpress.org/plugins/btfu-back-the-files-up/#installation)
 * [Development](https://wordpress.org/plugins/btfu-back-the-files-up/#developers)

 [Support](https://wordpress.org/support/plugin/btfu-back-the-files-up/)

## Description

**BTFU** stands for _Back The Files Up_. Officially. Whatever else you think it 
might stand for says more about you than about us.

BTFU gives you git-style checkpoints for a whole WordPress site — files and database
together — from a single button in the admin bar.

Take a snapshot, attach a note, break something, roll back. Hover the admin bar 
to see every snapshot with its note, timestamp, and size.

**This is a development tool.** It warns loudly if it thinks it is running in production.

**It is also destructive by design.** A restore overwrites your files and database;
anything changed since the snapshot is lost unless you keep the automatic safety
snapshot. BTFU’s snapshots live on the _same server_ as the site — before you rely
on it, have an independent, off-server backup from your normal backup tool.

#### Why another backup plugin?

Backup plugins protect you from disasters. This protects you from _yourself, five
minutes ago_. It is built for the loop developers actually live in: snapshot, experiment,
compare, roll back, repeat.

 * **One click, one note.** “before checkout refactor” — attached to the exact state
   it describes.
 * **Hardlinked snapshots.** The second snapshot costs only what changed. Twenty
   snapshots of a 2 GB site is nowhere near 40 GB.
 * **Honest sizes.** Every snapshot shows its _unique_ size — the bytes you actually
   get back by deleting it — because with shared storage, apparent size is a lie.
 * **Every restore is undoable.** An automatic safety snapshot is taken before any
   restore. Rolling back can itself be rolled back.
 * **A standalone rescue script.** Restores the site from the command line — or,
   password-gated, the browser — even when WordPress is a white screen. It is the
   same code path as normal restores, so it can never quietly rot.
 * **Exclude what you don’t need.** File patterns (rsync-style, plus a `.btfuignore`
   file) and database tables (structure-only, with core tables locked out — see 
   FAQ).
 * **WP-CLI.** `wp btfu snap "note"`, `list`, `restore`, `verify`, `prune`, `doctor`,`
   selftest`.

Restores are resumable: files AND database are imported in time-budgeted
 chunks,
so even large sites restore without hitting a request timeout.

#### What it deliberately does NOT do

 * Multisite (refuses to activate — a half-captured network is worse than none)
 * Move snapshots between sites/domains (serialized-data search-replace is out of
   scope)
 * Scheduled backups, offsite storage — this is a checkpoint tool, not a backup 
   product

### Disclaimer

Copyright © 2026 John Kirker Inc. All rights reserved.

**BTFU is destructive.** It overwrites and deletes files and database tables,
 and
restoring a snapshot can irreversibly lose current data. It is provided “AS IS”,
with NO WARRANTY of any kind. Use with caution — at your own risk and peril. It 
is not intended for production use. By installing or using it you accept all risk
and, to the maximum extent permitted by law, waive all claims against John Kirker
Inc. and the author. Keep independent backups. The full disclaimer and limitation
of liability ship with the plugin as DISCLAIMER.txt.

### Privacy

BTFU makes no external requests of any kind — no telemetry, no
 update pings, no
third-party services. The only HTTP request it ever performs is a one-off fetch 
of this site’s own URL to verify the snapshot store is not web-readable. All snapshots
stay on this server. Uninstalling preserves snapshots unless you explicitly opt 
in to deleting them; generated rescue scripts are always removed on uninstall.

## Screenshots

[⌊Snapshot from the admin bar on any screen — every checkpoint shows its note, age,
unique size, and a free-space pill.⌉⌊Snapshot from the admin bar on any screen —
every checkpoint shows its note, age, unique size, and a free-space pill.⌉[

Snapshot from the admin bar on any screen — every checkpoint shows its note, age,
unique size, and a free-space pill.

[⌊Restores are honest and undoable: type the id to confirm, and get a red warning
the moment you skip the automatic safety snapshot.⌉⌊Restores are honest and undoable:
type the id to confirm, and get a red warning the moment you skip the automatic 
safety snapshot.⌉[

Restores are honest and undoable: type the id to confirm, and get a red warning 
the moment you skip the automatic safety snapshot.

[⌊The Snapshots dashboard — restore, download, pin, note, delete, or act on many
at once.⌉⌊The Snapshots dashboard — restore, download, pin, note, delete, or act
on many at once.⌉[

The Snapshots dashboard — restore, download, pin, note, delete, or act on many at
once.

[⌊Compare two snapshots: files added/modified/deleted and per-table database row
changes, with one-click "restore from A".⌉⌊Compare two snapshots: files added/modified/
deleted and per-table database row changes, with one-click "restore from A".⌉[

Compare two snapshots: files added/modified/deleted and per-table database row changes,
with one-click “restore from A”.

## Installation

 1. **First, make sure you have an independent, off-server backup.** BTFU is destructive
    and its snapshots live on the same disk as the site.
 2. Upload the plugin and activate it.
 3. Click **BTFU** in the admin bar  _Back it up now…_
 4. Optional but recommended: visit **BTFU  Settings**, set a rescue password, and 
    generate a rescue script. Save its URL somewhere _outside_ this site.

## FAQ

### Where do snapshots live?

In a `.btfu-store-<random>` directory — outside the web root when possible, otherwise
inside `wp-content` guarded by `.htaccess`/`web.config` and verified by an actual
HTTP canary check (nginx ignores `.htaccess`, so we prove protection instead of 
assuming it).

### Why can’t I exclude wp_posts from the database?

Core tables cross-reference each other by ID. Restoring posts without postmeta produces
silent corruption, not a smaller backup. Non-core tables (analytics, logs, queues)
can be excluded — they are stored structure-only, restore leaves their live data
untouched, and strict-mode restores will never drop them.

### What happens if a restore goes wrong?

A safety snapshot is taken automatically before every restore, so you can roll back
the rollback. If WordPress itself won’t load, the rescue script restores from the
CLI: `php btfu-rescue-xxxx.php --list` then `--restore <id>`.

### Does deleting a snapshot free its full size?

No — and the UI never claims it does. Snapshots share unchanged files via hardlinks.
Each snapshot’s listed “unique” size is what deleting it actually reclaims.

### Is it safe on a live site?

It’s designed for development. It will run in production, but it warns you persistently,
and you should listen to it.

### Do I still need real backups?

Yes. BTFU snapshots live on the same server as the site — they protect you from 
your own changes, not from disk failure, a compromised server, or a hosting disaster.
Keep your normal off-server backups, and have one before your first restore.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“BTFU — Back The Files Up” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ jkirker ](https://profiles.wordpress.org/jkirker/)

[Translate “BTFU — Back The Files Up” into your language.](https://translate.wordpress.org/projects/wp-plugins/btfu-back-the-files-up)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/btfu-back-the-files-up/),
check out the [SVN repository](https://plugins.svn.wordpress.org/btfu-back-the-files-up/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/btfu-back-the-files-up/)
by [RSS](https://plugins.trac.wordpress.org/log/btfu-back-the-files-up/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.10.0

 * First-run setup wizard: walks you through the risk, an environment check, your
   first baseline snapshot, and optional auto-snapshots. Re-runnable from BTFU  
   Setup.
 * Automatic snapshots before plugin/theme/core updates (opt-in, off by default)—
   the moment you most wish you had a checkpoint. Bounded by their own retention
   rule.
 * Compare page: pick two snapshots and see file adds/modifications/deletions and
   per-table database row changes — with a one-click “restore from A” on any changed
   path. (Also `wp btfu diff`.)
 * Diff: see exactly what changed between two snapshots — files (added/modified/
   deleted) and database (per-table row deltas). `wp btfu diff <a> <b> [--files]`.
 * Selective restore: files only, database only, both, or a single file/folder (
   WP-CLI `--skip-files`/`--skip-db`/`--only=<path>`, the admin-bar dialog for files/
   database, and the rescue script).

#### 0.9.1

 * Now requires PHP 8.2+ (PHP 7.4–8.1 are end-of-life; BTFU will not support EOL
   PHP).
 * Restore dialog: explicit overwrite warning, and a prominent alert when restoring
   without a safety snapshot.
 * Clearer guidance everywhere to keep an independent, off-server backup.
 * New: `wp btfu selftest` — one-command end-to-end health check (snapshot  verify
   delete round-trip), exits non-zero on failure.
 * Hardening: a single store-wide operation lock now prevents a snapshot, restore,
   prune, import, or delete from running while another is in progress (it self-heals
   if a process crashes). `wp btfu doctor` reports any operation in progress.
 * Directory listing icon, banner, and screenshots.

#### 0.9.0

 * Initial release: snapshots (rsync/PHP engines), restores (single shared engine
   with standalone rescue script), hardlinked storage, admin bar UI with notes and
   size pills, file + database excludes, retention/pruning with pinning, WP-CLI 
   commands, production guards.

## Meta

 *  Version **0.10.0**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.2 or higher **
 * Tags
 * [backup](https://wordpress.org/plugins/tags/backup/)[checkpoint](https://wordpress.org/plugins/tags/checkpoint/)
   [development](https://wordpress.org/plugins/tags/development/)[restore](https://wordpress.org/plugins/tags/restore/)
   [snapshot](https://wordpress.org/plugins/tags/snapshot/)
 *  [Advanced View](https://wordpress.org/plugins/btfu-back-the-files-up/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/btfu-back-the-files-up/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/btfu-back-the-files-up/reviews/)

## Contributors

 *   [ jkirker ](https://profiles.wordpress.org/jkirker/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/btfu-back-the-files-up/)