Engineering

Paying per gigabyte for images you already own

A photo-heavy site on Webflow Premium starts with 50 GB of bandwidth and a $25 monthly bill on annual billing. Add 150 GB and the add-on costs $60 a month annually, $90 if you pay monthly. That works out to $0.40 per gigabyte, for your own photographs, delivered from a CDN you do not configure. The same 150 GB sitting in Cloudflare R2 costs $2.25 a month to store, and R2 charges nothing for egress.

What the bandwidth line is really charging for

Webflow publishes the add-on table on its pricing page. Fifty extra gigabytes is $20 a month billed annually or $30 billed monthly. A hundred is $40 or $60. A hundred and fifty is $60 or $90. The rate holds steady at $0.40 per gigabyte annually and $0.60 monthly all the way up the ladder, and the biggest tier, 2.45 TB, lands at $974 a month annually or $1,460 monthly. Nothing hidden there. It is a clearly posted price.

Compare it to what the bytes cost at the infrastructure layer. R2 lists standard storage at $0.015 per GB-month and free egress on every storage class, with 10 GB of storage and 10 million read operations included each month. Cloudflare Images charges $0.50 per thousand unique transformations after the first 5,000, which are free, plus $1 per hundred thousand images delivered if you keep the originals in their bucket. Serving 150 GB of product shots a month is single-digit dollars.

The gap is not a scandal. Webflow is selling a hosted CDN, an editor, and a support contract in one line item, and for a brochure site that bundle is worth more than the margin on the bytes. The problem starts when images become the product. A furniture catalogue, a property portal, a photographer's archive: those sites grow their bandwidth faster than their revenue, and the meter is attached to the thing that grows.

The optimisation you cannot cash in

Here is what bothers me about the model. On a platform that meters egress, every byte you shave off an image is a byte you stop paying for, which sounds like good news until you notice you do not control the knobs. The format negotiation, the variant sizes, the cache lifetimes, the decision to serve AVIF to Chrome and WebP to everything else: all of it belongs to the vendor. You can compress your source files before upload and that is roughly the end of your leverage.

Owning the pipeline flips which number you are optimising. With R2 behind Cloudflare Images, egress is free, so bandwidth stops being a cost line at all. What you pay for is storage and unique transformations, and a transformation is billed once per calendar month no matter how many people request it. Cloudflare's own documentation spells this out: serving width=100,format=auto to users who get AVIF and users who get WebP counts as one billable transformation, not two. Decide on five variants per image and you know your ceiling in advance.

That predictability is what we were after on the Stay World Class migration. Webflow and Xano came out, Next.js, NestJS and Supabase went in, a four-stage ETL carried the legacy IDs across as PostgreSQL UUIDs, and the Lighthouse score moved from 55.91 to 91 out of 100 with largest contentful paint 77% faster. A lot of that LCP win was image handling, and it was only available to us because the image handling was ours to change.

When the bandwidth bill is the cheap option

Plenty of sites should stay exactly where they are. If you are under the 50 GB that Webflow Premium already includes, the add-on table never touches you and migrating to save nothing is a waste of a quarter. If your team has no engineer and no plan to hire one, a managed pipeline that cannot be misconfigured is worth more than a cheaper one that can.

The arithmetic only turns when images stop being decoration. Run the number yourself: pull last month's bandwidth, multiply by $0.40, and compare it to the storage and transformation lines above plus whatever an engineer costs you to keep it running. For a lot of sites that comparison says stay. For a catalogue pushing half a terabyte of photography a month, it stops being close, and at that point you are renting delivery for files that were always yours.

Sources

Is your platform outgrowing its stack?

Book a call and we'll walk through how we'd approach your platform, with an estimate grounded in a working prototype.