What Are Egress Fees, and How Do They Affect WordPress Sites?
Egress fees are what a storage provider charges when data leaves its network. On a WordPress site, that's mostly visitors loading your images and files, so the cost grows with your traffic rather than with the size of your library. For a busy site on a provider that charges per GB, egress can be the largest part of the bill.
How is egress different from storage?
Storage is what you keep. Egress is what you send. A 20 GB library that gets a lot of visits can send hundreds of GB in a month, so its data bill could be much bigger than its storage bill.
How do you estimate yours?
- Find your site's monthly bandwidth in your host's dashboard, or your CDN's.
- Work out how much of it is media. Images are often most of a page's weight, and browser developer tools show you this for a typical page.
- Multiply by your provider's per-GB price, after any allowance.
For example, take 300 GB a month at $0.09 per GB, after a 100 GB free allowance: (300 − 100) × $0.09 = $18 a month. These are example figures. Check your own.
How do providers differ?
Terms vary, which is why the storage comparison has a column for it:
- Some charge no download fee, but charge for operations.
- Some have a reasonable-use policy that compares downloads with the amount you store.
- Some include downloads up to a multiple of what you store, then charge per GB.
- Some include a monthly allowance in a flat price.
Read the conditions as well as the headline.
How can you reduce them?
- Put a CDN in front. Repeat requests come from its cache instead of your bucket, though the CDN may have its own costs.
- Serve smaller images. Compress them and use modern formats where you can.
- Set a long cache lifetime, so browsers don't download the same file again. Change a file's address when it changes.
- Pick a provider suited to your traffic.
Does the plugin add to it?
An offload plugin adds some operations to upload and check files. Offloft's check doesn't download your files to verify them later, so "Verify everything" doesn't send your whole library out of the bucket.