Offloft 0.1.0 is here: offload your WordPress media and know it arrived.Read what's new
Features

Everything Offloft does, in the free plugin.

Offloft is a free WordPress plugin that offloads your media library to Cloudflare R2, Amazon S3 or any S3-compatible storage. It offloads and syncs new uploads automatically, moves your existing library in the background, checks every file in your bucket before your site uses it, and brings everything back when you ask.

01

Offloading, new and old.

New uploads go to your bucket on their own. Your existing library moves in the background, in small batches you can pause or cancel.

  • Automatic offload of new uploads
  • Bulk offload of your existing library
  • Large files sent in resumable parts
  • Pause and cancel at any time
SendStep 2 of 4
tour-video.mp48 / 8 parts
1
2
3
4
5
6
7
8
your-bucket
All 8 parts sent
02

Every file, and every size, checked.

Offloft checks each copy in your bucket: is it there, and is it the right size. Where the provider's fingerprint allows it, the content is compared too. "Verify everything" re-checks your whole library whenever you want.

How verification works
VerifyStep 3 of 4
your-bucket/2026/11/photo-300x300.jpg
Locala3f9 1c07 88be 52d0284 KB
Bucketa3f9 1c07 88be 52d0284 KB
Verified
Size and content match · verified
03

A pre-flight scan before anything moves.

Before you move your library, a scan shows what will be offloaded and what needs attention first, like files missing from disk or sizes WordPress never made.

Pre-flight scanExample site
12,408 files3.2 GB in your Media Library, including every size
12,371 ready to offload
14 files missing from diskReview
23 sizes WordPress never madeRegenerate
Nothing has moved yet.Start offload
04

Issues in plain words, with a Fix button.

Each problem is explained in plain words, with a Fix button where one is possible, or a reason you can choose to ignore it. Nothing is only written to a log.

Issues · 3Example site
3 thumbnails are missing in the bucketOffloft can upload them again from your server.Fix
Your server clock is 6 minutes offProviders reject requests from a wrong clock. Ask your host to turn on time sync.Copy message
2 files are larger than your provider allowsThese stay on your server and keep working.Ignore
05

Served from your bucket or your CDN.

Pages load media from your bucket or your CDN address. URLs change as pages are shown, not in your database. Changed files get a new name, so caches never serve an old version.

  • No database rewrite needed
  • Works with your own CDN address
  • New name for changed files
ServeStep 4 of 4
yoursite.com/blog/summer
photo.jpg · visible
<img src="https://media.yoursite.com/2026/11/photo.jpg">
Served from your bucket. The image stayed on the page.
06

A way back, always.

"Bring everything back to my server" downloads every file again. Deactivating keeps your media working from local copies, and Offloft warns you first if any file exists only in the cloud.

OffloftOff · serving your local files
Your pageImage still showing
src="yoursite.com/wp-content/uploads/2026/11/photo.jpg"
Everything is back5 of 5 on your server
BucketYour server
photo.jpgOn your server
hero-wide.webpOn your server
menu-2026.pdfOn your server
team.webpOn your server
tour.mp4On your server
07

Status right in your Media Library.

A status column, item actions and a per-file panel showing each size and where it lives.

hero-wide.webp5 sizes
originalVerified
1024×768Verified
300×300Verified
150×150Missing
08

Setup guides, and a real connection test.

A guide for each provider with copy-and-paste values. Then a real test: credentials, bucket, write, read back, delete. And a public delivery check, so you know visitors can load your files.

See the setup guides
Connection testRun again
Credentials acceptedpassed
Bucket foundpassed
Uploaded a test filepassed
Read it back (contents match)passed
Deleted the test filepassed
There's no bucket called my-site-media. Names are case-sensitive, so check it matches exactly.
Public delivery checkmedia.yoursite.com ✓
09 – 11

Fits WordPress, your tools and your library size.

For WordPress itself

Site Health tests and a dashboard widget. Offloft waits for WordPress to finish making thumbnails before uploading.

Offloft can reach your bucketBackground jobs are running

For developers

A REST API (offloft/v1) and WP-CLI commands (wp offloft).

$ wp offloft verify --all
✓ 12,408 files verified (example)
GET /wp-json/offloft/v1/status
For developers

Built for big libraries

Background batches, resumable parts and no extra database query per image on page loads.

  • Small background batches
  • Resumable large files
  • No extra query per image

Free and Pro, side by side.

Everything above is in the free plugin. Pro adds automatic setup, scheduled audits, repair, alerts and removal of local copies, which frees up hosting storage.

FeatureFreePro
Offloading
Automatic offload of new uploads
Bulk offload of your existing library
Sync of new, changed and deleted media to your bucket
Large files sent in resumable parts
Background work with pause and cancel
File limitNoneNone
Verification
Every file and every image size checked in the bucket
"Verify everything" on demand
Scheduled audits in quiet hours you choose
Fixing
Plain-language issues with Fix buttons
Automatic repair of what it safely can
Serving
Serve from your bucket or CDN address
No database rewrite needed
Changed files get a new name
Bring everything back in one click
Setup
Pre-flight scan
Step-by-step guides for every provider
Connection test and delivery check
Automatic setup for Cloudflare R2 and Amazon S3
WP-CLI and REST API
Monitoring
Dashboard, Site Health tests and dashboard widget
Alerts by email, Slack or webhook
Disk space
Keeps local copies as a safety net
Safe removal of local copies, to free up hosting storage
Support
Help by email
Email support from inside the plugin
Pro starts at $59 a year for one site.Get Offloft freeSee pricing

Your media, in your bucket, checked.

Install Offloft free. Setup takes five steps, and nothing moves until the connection test passes.

Type to search.