WordPress Media Storage
Offloading the WordPress Media Library to a Global CDN
Offload WordPress media to global CDN for faster site performance.
By default WordPress writes every upload into wp-content/uploads on your origin server, then serves it from that same box on every page view. As a media library grows into thousands of images and the occasional video, two problems compound: your hosting disk fills (and backups balloon), and every visitor — including ones on the other side of the planet — pulls full-size images from a single server region.
Offloading the media library to files.link moves the bytes to durable storage and puts a global CDN in front, so images load from an edge location near the visitor and your origin only renders HTML.
The mechanics are straightforward and don't require a heavy plugin. You can offload going forward by uploading new media through the REST API — POST /v1/files/{folderId}, PUT to the presigned URL, POST /v1/files/confirm-upload — and rewriting the attachment URL WordPress stores to the returned CDN URL. For a one-time migration of an existing library, copy wp-content/uploads, re-upload each file, then run a search-replace across wp_posts (and serialized metadata, using a tool like wp search-replace that handles serialization) to swap the old /wp-content/uploads/...
URLs for the new CDN URLs. Test on a staging copy first, because a naive SQL find-and-replace will corrupt serialized arrays.
The payoff is concrete. Your origin's disk usage stops climbing with every post, image-heavy pages stop being bottlenecked by your single web server, and the CDN absorbs traffic spikes when a post is shared. Serve WebP renditions you generate at upload time and they're cached at the edge like any other asset — there's no per-rendition transformation fee, you simply store the variants you want.
For media that should stay private (membership-gated downloads, client deliverables) upload private and generate signed URLs from a small bit of PHP instead of exposing a public path. Across a multisite network, give each site its own folder or project so libraries stay cleanly separated. Billing is prepaid credits with no separate egress charge, so a post going viral drives CDN delivery without a surprise bandwidth invoice. files.link is the storage and delivery layer — WordPress still runs your site, themes, and plugins exactly as before; only the heavy bytes move off the box.
Benefits With No Complexity
Global CDN delivery
Edge-cached worldwide
Signed-URL security
What You Get
Unlimited files
Unlimited storage
Public + Private storage
CDN ready links
Prepaid credits
More coming soon
How files.link Works
1. Upload
2. Copy
3. Use Anywhere
Why Developers Choose files.link
A Better Way to Store & Deliver Files
| WordPress Media Library (origin) | Cloudflare R2 | Amazon S3 + plugin | files.link | |
|---|---|---|---|---|
| Global CDN delivery built in | ||||
| Frees origin server disk | ||||
| No plugin lock-in (plain REST + URLs) | ||||
| Permanent media URLs | ||||
| No separate egress fees | ||||
| Private media via signed URLs |
Calculate Your Needs
Storage
Egress
CDN Bandwidth
Start WordPress Storage
- Global CDN delivery
- Edge-cached worldwide
- Signed-URL security
- Unlimited files
- Unlimited storage
- Public + Private storage
- No subscription — prepaid credits keep spend predictable