How to use WordPress with Amazon S3?

Speed is everything. So people will try anything.

If you're anything like me, you've run at least one test on your own website to see how fast it loads. Whether it was Google's Page Speed Insights or GTMetrix, the point is, you don't want to own a slow site. It's today's version of being the stinky kid in class.

But measuring site speed is just the start. That's just the beginning, right? Because once you see your site speed, you're likely going to start wondering about what you could do to speed it up.

That's when you'll likely find a suggestion, somewhere online, to use Amazon S3 with your WordPress site.

Using Amazon AWS Solutions isn't new.

People have been using Amazon AWS forever. Or at least that's how it feels, right?

When they introduced their own super-cheap hosting (Lightsail), people figured they could run a really fast WordPress site on AWS infrastructure for under $4/month.

If you're like most of the folks I have talked to that tried it, it wasn't the speed or the cost that killed the idea for them. It was the complexity of something that was supposed to be simple. You start reading a post like this one, and suddenly realize it's going to be a 42-step process.

So AWS and S3 aren't new – on their own or using them with WordPress.

The goal isn't just speed. It's easy of use.

What you and I both know is this – we don't have time for 42-step configurations. We don't want to write code (especially if there's a chance we make a mistake in copying the code from a website). We want simple. We want easy. And we want fast.

So let's say you're back at the start where you want to store your media files on S3 without complexity, have it integrated with your WordPress site, and don't have to be a software engineer to pull it off. How would you do it?

The good news is that you have three options that fit the bill.

Using WordPress with Amazon S3 – Three Options

Before we talk about the three options, let's make sure we understand why someone would want to use WordPress with Amazon S3. When your site is slow, want you want to do is speed it up. One of the biggest drivers of that slowness is the images (and maybe video) that you've uploaded to your site.

If you're on inexpensive hosting, those may load slowly because of the natural congestion on those servers. But even on great servers, you may discover that they're slow because they're not cached at servers close to your customers on a CDN.

But you can solve this rather easily. You can upload your assets to AWS S3 for storage, and leverage AWS CloudFront as the CDN.

Sounds good, right? But you don't have to be an AWS and CloudFront expert to pull this off. At least not if you use any of these three solutions.

Option One: S3MediaVault

The S3MediaVault (S3MV) plugin is maybe the plugin that's been doing this the longest. I'm not sure I can recall a plugin that has been in the game longer than this one. I wrote about it once before.

This works for all your normal image files as well as your video. But it also is fantastic at delivering other files (digital downloads, PDF files, etc).

For people who don't just want to use S3 to speed up their site, but also to protect their files, S3MV does a fantastic job at it by encrypting video, for example. If you've ever been worried that someone would pay to access your protected files and then turn around and sell them on their own site, you don't have to worry anymore.

Other than when you're setting things up, you'll never have to log into AWS. Everything is managed from the WordPress plugin.

For a single site, the fee is $69. Forever. No yearly fees.

Option Two: WP Offload Media

While WP Offload Media may not be the OG of the AWS S3 game, it's certainly the most well known. The team behind it (Delicious Brains) are some of the smartest folks building products for WordPress websites.

Similarly, WP Offload Media doesn't require that you spend a lot of time in the AWS interface – which is a good thing. You do the work directly in your WordPress Admin area (the Media Library) – which makes it feel like it's always been a part of your WP site.

Similar to S3MV, WP Offload Media supports more than just serving images from AWS S3 and CloudFront – it also protects your files that you don't want public. It does this by allowing you to define private media – which CloudFront won't make available to the general public.

Want to speed things up even more? Their $149 Gold Plan helps you speed up your site by pushing other files (Fonts, CSS, JavaScript, etc) to CloudFront via their Assets Pull Addon. It's a bit more expensive, and requires a yearly renewal. But let's be clear – you're getting a ton of value for that fee. It wouldn't shock me if the enhancements delivered by this plugin allow you to lower your monthly hosting fees.

Option Three: Prevent Direct Access

Now the third option, Prevent Direct Access (Gold) starts in a different place. It exists to “prevent direct access” to your files. See what they did there? But there's an extension – for an additional fee – that integrates their core solution with AWS S3 that is worth looking into. It's their AWS S3 integration plugin for $89.99/year.

The price of this solution sits higher than the rest – at $15/month for the Gold (premium) plugin, and then another $90 for the S3 extension. All in, that's $270/ year. At those prices you may wonder why I even put it on the list. And the point is, if you're more into content protection than just S3 for speed, this may be the plugin you've been looking for.

Membership site owners often ask about content (and particularly file) protection. Prevent Direct Access was designed for that world. It's worth checking out if protected downloads is a big part of your site.


By now you know me, I'm not going to tell you that there is one perfect solution. The best solution to connect WordPress with Amazon S3 is based on you, your site, and your budget. But the good news is that every one of these solutions is easy to use and won't take you hours to integrate into your site.