Skip to content
Stowaway

Media offload for WordPress

Your Media Library, stowed in your own S3 bucket.

Stowaway copies your uploads to Amazon S3 and serves them through CloudFront. Your server stops serving images, pages load media from close to each visitor, and nothing about how you use the Media Library changes.

Free, with no Pro version Version 1.0.0 Coming to WordPress.org

What it does

One job, for one cloud, done properly.

Stowaway is for Amazon S3 and CloudFront and nothing else. That focus is why it can be small, fast, and free in full.

  • Offloads every upload

    The original and every size WordPress makes of it go to your bucket as soon as they are uploaded. Edited and regenerated images go up too.

  • Serves media from CloudFront

    Attachment URLs, responsive srcset images, images in post content and shortcodes, and Yoast SEO’s share images and schema.

  • Whole-page mode

    For themes and page builders that print images outside the post content, such as Divi’s background images.

  • Offloads your existing library

    In the background of one admin page, with a progress bar. Or from the command line with wp stowaway offload --all.

  • Status in the Media Library

    Each file shows whether it is in the bucket, with an “Offload now” link and an “Offload to S3” bulk action.

  • Cleans up after itself

    Deleting a file from the Media Library deletes it from the bucket too.

  • Keeps your database clean

    Posts keep their local media URLs. Turn delivery off, or remove the plugin, and no page breaks.

  • Keeps local copies

    Your files stay on your server as well as in the bucket: a safety net, not a migration you can’t undo.

How it works

Upload as usual. Stowaway handles the rest.

Nothing changes for the people who write your posts. Stowaway works on both ends: it puts each file in the bucket, then makes sure the page points at the copy there.

  1. You

    Upload to the Media Library

    WordPress saves the file and makes its thumbnail and responsive sizes, the way it always has.

  2. Stowaway

    Copies it to S3

    The original and every size go to your bucket, signed with your keys. Nothing passes through anyone else.

  3. Amazon CloudFront

    Delivers it worldwide

    Your distribution serves the files from edge locations, and the bucket can stay private.

  4. Your visitors

    Load it from nearby

    As each page is served, its media URLs point at CloudFront. Your server serves only the page itself.

In your database https://example.com/wp-content/uploads/2026/10/harbour.jpg
What visitors load https://d1a2b3c4d5e6f7.cloudfront.net/wp-content/uploads/2026/10/23091512/harbour.jpg

URLs are rewritten as each page is served, never saved into your posts. That timestamped folder makes every upload’s URL unique, so files can be cached for a year and a replaced image never shows its old self.

Setup

A wizard, three steps, and a test that proves it.

  1. Access keys

    Step-by-step instructions for an AWS user just for your site, with the exact permissions to paste in. Keys are checked with AWS before they are saved, and can live in wp-config.php instead of the database.

  2. Bucket

    Pick the region and bucket from dropdowns filled in from your AWS account. Stowaway confirms the bucket’s real region for you.

  3. CloudFront

    Paste your distribution’s domain, or skip it and serve straight from S3. Then a connection test uploads a file, loads it as a visitor would, and deletes it.

The setup wizard listing the buckets in an AWS account, grouped by region.
The wizard lists the buckets in your AWS account, by region.
Stowaway's settings screen after a passing connection test.
Settings, after a passing connection test.
The Media Library list with Stowaway's Offload status column.
Each file’s offload status, in the Media Library.

Coming from WP Offload Media?

Switch without uploading anything again.

Stowaway reads the settings and offload records WP Offload Media (Lite or Pro) left in your database. Media you offloaded with it keeps its exact URLs, so caches, page builders and old links see no change. It even uses the access keys already in your wp-config.php until you replace them.

Read the migration guide

Pricing

Free. All of it.

  • No Pro version and no feature held back for one.
  • No license key to renew, and nothing that stops working when one lapses.
  • No middleman. Your media goes to your bucket, on your AWS bill.
  • No tracking. Stowaway sends nothing to us.

Questions

The ones people ask first.

Do I need CloudFront?

No. Without it, media is served straight from S3, which only works if the bucket allows public reads. With CloudFront the bucket can stay private, and visitors get media from a server near them. The wizard lets you skip it and add it later.

What does it cost?

Stowaway costs nothing. There is no Pro version, no license key, and no paid tier. You pay Amazon for the storage and bandwidth you use, at AWS’s usual rates, on your own AWS account.

What happens if I deactivate or delete it?

Your site goes back to serving media from your own server. Posts store local media URLs the whole time, so nothing needs fixing. Files in the bucket are left alone.

Does it work with other storage providers?

No, on purpose. Stowaway is for Amazon S3 and CloudFront only, and does that one thing well instead of supporting every provider a little.

Does it send anything to you?

No. Stowaway talks to AWS, with your keys, and nothing else. It has no tracking, no analytics and no “phone home”.

More in the documentation.

Stuck, or found a bug?

Ask the people who make Stowaway. You will get an answer from a person.

Get support