Knowledge base

Moving your media to object storage

Serve images and downloads from object storage and a CDN instead of the web server — without typing a key into WordPress.

A busy site spends a lot of its disk and a lot of its bandwidth on files nobody edits: images, PDFs, downloads. Media offload moves them to object storage and serves them from a CDN, so the web server goes back to running your site rather than posting pictures.

Turning it on

Sites → your site → Media offload → Turn on media offload. That provisions the storage; you do not create a bucket first.

WordPress then needs the Zinn® Media Offload plugin, and it is paired rather than configured. Click Get a pairing code, install and activate the plugin on the site, and paste the code in. The card shows Waiting for the plugin until it checks in, and then the version and when it last did.

Why there is no access key to type in

There is nowhere in the plugin to paste a secret key, and that is deliberate. The plugin pairs once and is issued its own short-lived credential; your storage keys stay on our side. A key typed into WordPress lives in the database, in your backups, and in whatever gets exported when a site is migrated — and it is the same key that can delete every file you have.

What the two switches do

Serve media from the CDN rewrites the URLs in your pages so visitors fetch files from the CDN rather than from the web server. Until you turn it on, files are copied to storage but still served locally — the card says so, rather than implying the job is finished.

Remove local copies after upload reclaims the disk. Leave it off while you are still checking that everything renders; turn it on once you are happy. Nothing stops you turning it back off, but files already removed are not re-downloaded automatically.

Using your own bucket instead

You can attach an S3-compatible bucket you already own — your own account at any provider. You supply the bucket name, endpoint and key pair, and it is stored in our secret store rather than in a database column.

⚠️ The difference that matters on your bill: storage we provide counts against your plan's object-storage allowance. A bucket of your own does not, because it costs us nothing.

Checking it is working

The card reports Moved so far as a file count and a size, and Media served from — either the CDN host, or a line telling you copies are being kept but not served yet. Those two together answer "is this actually doing anything", which a green switch on its own does not.

Turning it off

Disconnect the plugin stops the pairing. Files already in storage stay there and keep being served if rewriting is on; if you want the site back to serving locally, turn off Serve media from the CDN first, and make sure local copies still exist before you do.

Latest from the blog

What we have been writing about hosting, SEO and running sites at scale.

SEO and Link Building from the Hosting Layer: A 2026 Operator's View

How hosting shapes indexing and link equity in 2026: keeping pages indexed, vetting aged domains before you build on them, link building without a footprint, and an honest line on what infrastructure can and cannot do for SEO.

Read the post →

Making WordPress Fast and Secure: A Performance and Plugin Checklist

A practical checklist for fast, secure WordPress: server-level caching, a per-site object cache, the handful of plugins worth running, keeping the stack current, and the WooCommerce pages you must never cache.

Read the post →

How to Choose Managed Web Hosting in 2026: A Buyer's Guide

What actually separates good managed hosting from a cheap box with a control panel — migrations, backups, isolation, real caching and honest scaling — and how to judge it before you commit.

Read the post →

Read the blog →

Still stuck?

Support is included on every plan, the desk is open 24 hours a day, and you can write to us in any of our 58 languages — we answer you in yours.

Contact support → All articles →