What is WP Offload Media plugin?
WP Offload Media by Delicious Brains is the leading WordPress plugin for offloading your media library to cloud storage — Amazon S3, Google Cloud Storage, or DigitalOcean Spaces — and serving files through a CDN. As WordPress sites grow, the media library accumulates thousands of images, videos, and documents that inflate hosting costs, slow down server backups, and add unnecessary load to web server disk I/O. WP Offload Media automates the transfer of uploaded files to cloud storage and rewrites all media URLs in WordPress to point to the cloud bucket or CDN endpoint.
The free Lite version (available on WordPress.org) handles automatic offloading of new uploads to S3, DigitalOcean Spaces, or Google Cloud Storage and URL rewriting. The premium version (Delicious Brains license, starting at $99/year) adds bulk migration of the existing media library, CDN integration (CloudFront, Cloudflare, BunnyCDN, custom CDN), management of offloaded files from within WordPress, WooCommerce and Easy Digital Downloads private file support, and the ability to serve CSS, JavaScript, and font files from a CDN in addition to media files.
For high-traffic WordPress sites and WooCommerce stores with large product image libraries, offloading media to S3 and serving via CloudFront reduces hosting storage costs, improves page load times via global CDN delivery, and decouples media scaling from WordPress server scaling. WP Offload Media is the most mature and widely used plugin for this workflow, with a development team that maintains compatibility with major page builders, image optimization plugins, and WooCommerce.
Need Help With WP Offload Media Setup, Troubleshooting, or Customization?
Need help with WP Offload Media? Whether you are dealing with errors, broken functionality, styling problems, plugin conflicts, or advanced customization, we can help you fix the issue and get the plugin working properly on your WordPress site.
Get WP Offload Media Expert HelpKey Features
- Automatic offloading of new media uploads to Amazon S3, Google Cloud Storage, or DigitalOcean Spaces
- Automatic URL rewriting for all media references in posts, pages, and metadata
- Bulk migration of existing media library to cloud (Pro)
- CDN integration: CloudFront, Cloudflare, BunnyCDN, custom domain (Pro)
- Private file support for WooCommerce and Easy Digital Downloads (Pro)
Pros & Cons
Pros
- Most mature and reliable S3 offloading plugin with the longest development track record
- Automatic URL rewriting handles all media references including post content, meta fields, and thumbnails
- Private file support for secure WooCommerce downloads is rare in competing plugins
Cons
- Premium license required for bulk migration and CDN integration — the most critical features for sites with existing large media libraries
- AWS S3 setup requires AWS account configuration (IAM user, bucket creation, permissions) — more technical than plug-and-play alternatives
Free vs Premium
Free (Lite): offloads new uploads automatically, URL rewriting, no bulk migration. Pro ($99/year, 1 site): bulk migration, CDN integration, private files, CSS/JS/font offloading, media library management of offloaded files.
Common Problems & Fixes
After installing WP Offload Media, existing images on my site are broken — their URLs still point to the local server. How do I fix this?
Existing media is not migrated automatically by the Lite version. In the Pro version, use the Assets > Bulk Actions > Offload to offload the existing media library to S3 and update all database references. For the Lite version, you need to manually upload existing files to S3 and update image attachment metadata. After the bulk offload completes, verify a sample of images load from the S3 or CDN URL in the browser. If some images still show local URLs, the URL rewriting may not have reached all custom field or plugin-specific storage locations — check with Delicious Brains support for those edge cases.
WP Offload Media is throwing a "403 Forbidden" error when trying to access offloaded files — what are the permission settings I need?
A 403 error on S3 files indicates bucket or IAM permission misconfiguration. Check: (1) the S3 bucket’s Block Public Access settings — if you want files publicly accessible, disable Block All Public Access and add a bucket policy allowing s3:GetObject for all principals (unless using CloudFront with Origin Access Identity); (2) the IAM user credentials used by WP Offload Media have the correct permissions: s3:GetObject, s3:PutObject, s3:DeleteObject, s3:ListBucket on the specific bucket ARN; (3) if using CloudFront, ensure the Origin Access Identity has permission to read from the S3 bucket.
WooCommerce product images are not displaying after offloading with WP Offload Media — what should I check?
WooCommerce stores additional image references in custom meta fields beyond the standard WordPress attachment metadata. After bulk offloading, run WooCommerce → Products → Re-generate Thumbnails (or use the Regenerate Thumbnails plugin) to ensure WooCommerce thumbnail sizes are uploaded to S3. Also verify that WP Offload Media’s URL rewriting covers woocommerce_thumbnail and product gallery meta fields. If the Pro version is active, use the Media Library view to confirm all WooCommerce-associated attachments show as offloaded.
Customization & Developer Notes
How do I configure WP Offload Media to use CloudFront CDN for faster global delivery?
In WP Offload Media Pro → Settings → Delivery Provider, select Amazon CloudFront as the delivery provider. Enter your CloudFront Distribution Domain (e.g., d1234abcd.cloudfront.net). Create a CloudFront distribution in AWS console with your S3 bucket as the origin. If the S3 bucket has public access blocked, create an Origin Access Control (OAC) in CloudFront and attach it to the distribution, then update the S3 bucket policy to allow CloudFront read access. Once configured, all media URLs will use the CloudFront domain, serving files from the nearest edge location to each visitor.
Can WP Offload Media keep local copies of files on the server after offloading to S3?
Yes — WP Offload Media has a “Remove Local File” option that controls whether the local copy is deleted after successful offloading. In Settings → General, enable or disable “Remove Local File” based on your preference. Keeping local copies increases disk usage but provides a fallback if S3 access is unavailable. Removing local copies reduces server disk usage (the primary reason for offloading) but means media is only accessible via S3 if the cloud connection is unavailable.
Frequently Asked Questions
How much does Amazon S3 storage cost for a WordPress media library?
Amazon S3 charges approximately $0.023 per GB per month for standard storage in US regions. A typical WordPress media library of 10GB costs roughly $0.23/month in storage. Bandwidth costs apply when files are served directly from S3 ($0.09 per GB after the first 100GB free tier) — using CloudFront CDN reduces bandwidth costs and improves global delivery. For most WordPress sites, combined S3 storage and CloudFront costs are well under $5/month.
Does WP Offload Media work with Cloudflare instead of Amazon CloudFront?
Yes — WP Offload Media Pro supports custom CDN domain configuration, which works with Cloudflare. Set up Cloudflare as a CDN proxy in front of your S3 bucket (by pointing a subdomain to S3 through Cloudflare’s DNS), then enter the custom Cloudflare subdomain in WP Offload Media’s delivery provider settings. Alternatively, use Cloudflare R2 (S3-compatible storage) as your offload destination, which eliminates S3 egress fees.
Can WP Offload Media break after updates?
Yes, that can happen, especially on older sites with many plugins. This usually happens when the plugin, theme, and add-ons are updated out of sequence. In most cases, testing on staging catches the issue before it reaches the live site. From experience, backups and changelog reviews save a lot of cleanup time.
What should I check before installing WP Offload Media?
Start by checking whether another plugin already does the same job. In most cases, overlap is what creates avoidable conflicts and performance issues. A common issue is installing a plugin because it looks convenient without checking the stack first. From experience, a short compatibility review avoids most of the pain later.