Move your WordPress media library to Cloudflare R2 — and serve every attachment from R2 (or a custom domain mapped to your bucket) without changing how WordPress works elsewhere.
What it does
srcset, and in-content image URLs to the R2 (or CDN) origin.Credentials
Credentials can be stored in the database via the settings page, or — recommended — defined as constants in wp-config.php:
define( 'WRENIO_R2_ACCOUNT_ID', 'your-account-id' );
define( 'WRENIO_R2_ACCESS_KEY_ID', 'your-access-key' );
define( 'WRENIO_R2_SECRET_ACCESS_KEY', 'your-secret-key' );
define( 'WRENIO_R2_BUCKET_NAME', 'your-bucket-name' );
define( 'WRENIO_R2_PUBLIC_URL', 'https://media.example.com' );
Constants take priority over values stored in the database.
The reconciliation tool
R2 object keys are derived from the stable _wp_attached_file meta. If keys drift away from an attachment’s physical file path — for example, due to external tooling or imported content — the Reconcile page detects the drift and previews the realignment plan.
Run Wrenio Media Offload R2 Reconcile “Start Dry Run” to scan and preview a fix plan. (Live realignment that moves R2 objects to their correct keys is available in the Pro version — see below.)
Cleanup tools
_wp_attached_file differs from the R2 key (typically caused by double-dot or similar normalization mismatches) and repairs the WordPress meta to align with R2.Pro version
A Pro version is available at https://wrenio.studio/ for users who need the destructive operations: live R2 reconciliation (moving drifted objects to their correct keys), orphan deletion (removing unreferenced R2 objects), and retry counter resets.
This plugin connects to the following external services. They are listed here so you know what data leaves your site and when.
Cloudflare R2 — required for the plugin to function.
You configure your own Cloudflare R2 credentials. The plugin uses them to upload, download, list, and delete objects in your bucket — only the bucket(s) you specify. No request is ever made to Cloudflare without your credentials, and the credentials never leave your server.
Freemius — used for plugin updates and Pro licensing.
This plugin uses the Freemius SDK to deliver plugin updates and (if you purchase a Pro license) to validate that license. By default, Freemius collects nothing from your site without your explicit opt-in. If you opt in at activation, anonymous usage statistics are shared to help improve the plugin; you can opt out at any time from the plugin’s Account page.