Skip to content

ZealDen Safe Media Offload

Safe Media Offload copies your media library to object storage and serves it from your own delivery domain or CDN. New uploads are copied as soon as WordPress has made every size, and their URLs, responsive images included, point at the bucket. Existing media moves in the background, and you can watch it, stop it or bring everything back.

  • WordPress 6.6 or later
  • PHP 8.2 or later
  • A bucket and an access key on one of these services: Cloudflare R2, Amazon S3, Backblaze B2, DigitalOcean Spaces, Hetzner, Scaleway, Akamai (Linode), Google Cloud Storage (HMAC keys), or MinIO and any other S3-compatible endpoint
  • Nothing moves until it works. Test connection reaches the bucket, writes a file, reads it back, fetches it through your delivery domain the way a visitor would, and deletes it, reporting each step. Offloading starts once the bucket steps pass; the delivery-domain fetch is reported but doesn’t hold it back, so you can offload with serving off while your domain is still being connected. Changing the provider, account, bucket or keys waits for a new test.
  • Staging copies are safe. A copy of your database can serve production’s media from the bucket, but can never delete or overwrite production’s files.
  • Local copies are kept by default. Deleting them frees disk space, and is only possible while media is served from the bucket.
  • Failures are visible: each file’s offload status and last error, a failed-items count on the settings screen, files the bucket refused to delete with a Try again button, and Site Health checks.

Checked against ZealDen Safe Media Offload 1.0.3 on main, 19 October 2026.