39.5% smaller than the leading optimiser

How slow is your site,
and what would we fix?

Put your address in. We fetch the page, measure every image a visitor actually downloads, and show exactly what changes — on wifi, a good mobile signal, and a bad one.

Two people are timing it. The visitor deciding whether to buy, and Google — which scores every page on how fast its largest image appears, and ranks on that score.

Free, about five seconds, no sign-up. You get a full report — every heavy image named, and the seconds back on three connection speeds.

39.5%smaller than the leading
optimiser, quality matched
90%off a real client library,
80,492 images measured
3.2×faster to first byte on a
live WooCommerce store
drag the handle — left is the original, right is ours
Original photograph, straight from the camera
The same photograph, optimised by Peregrine
Original · 523 KB
Peregrine · 72 KB
Portrait · fur, whiskers, shallow depth of field Samuel Scrimshaw / Unsplash
Original photograph, straight from the camera
The same photograph, optimised by Peregrine
Original · 1008 KB
Peregrine · 196 KB
Landscape · sunset gradients, rock texture Philippe Wuyts / Unsplash
Original photograph, straight from the camera
The same photograph, optimised by Peregrine
Original · 701 KB
Peregrine · 96 KB
Wildlife · high-frequency detail, dusty light Martyn Seddon / Unsplash

Sites we look after

Marked sites are live on Peregrine today. The rest are client sites we have measured with the tool above and not yet moved — we would rather name them accurately than imply a customer we do not have.

Running total

What has actually gone through it

Read from the conversion log, not from a deck. Every figure below is a SELECT against the table that a customer invoice reads from. Counted on the AVIF files, because that is what a visitor downloads — adding the WebP fallbacks in would count every original twice and roughly double the figure.

80,492images converted at shipping settings
16428MBof originals in
1645MBout — 90% removed
284msaverage per conversion

What it is

Your images, converted once and served from your own hostname

A WordPress plugin and an edge network. It converts the library you already have to AVIF, serves it from a name on your domain, and leaves the originals where they sit. New uploads convert as they arrive, so it is not a one-off pass that decays.

Everything below this line is measured on sites running exactly that.

Converts to
AVIF, with a WebP fallback for older browsers
Serves from
images.yourdomain.co.uk — your name, not ours
DNS change
One CNAME. On Dive, the nameservers, and the HTML caches too
Your originals
Untouched in the media library. Converted files sit alongside them
Works with
Any theme or builder, and WooCommerce cart and checkout bypass the cache
To remove
Delete the plugin. The site serves what it served before

Why it pays for itself

Two different people are timing your site

One of them decides whether to buy. The other decides whether anyone finds you. Image weight is the rare thing that both of them are measuring, and it is the part of a page that can be fixed without touching the site.

The visitor

Nobody waits for a page they have not decided they want yet

On the libraries measured on this page, the images are the overwhelming majority of what a homepage actually weighs. Jermyn & Co’s comes to 1.33 MB of images; through us it is 549 KB. On a weak signal that is 2.2 seconds of a visitor looking at an empty rectangle, removed.

You cannot make somebody more patient. You can stop asking them to be.

Google

The metric it scores you on is usually a photograph

Core Web Vitals are a ranking signal, and the headline one is Largest Contentful Paint — how long until the biggest thing on screen has finished loading. On a site with a hero image, the biggest thing on screen is the hero image.

Citizens Advice’s homepage carries a single photograph of 2.53 MB. That one file is almost certainly what Google is timing. It becomes 200 KB. Shrinking it is not a proxy for the metric — it is the metric.

Same change, two returns, and no redesign in between. Most speed work helps one of these two and is invisible to the other.

Measured on real sites

What it does to libraries that were
already meant to be optimised

Not averages, not a demo library. Each of these is a page we fetched and weighed, or a library we have actually converted — in one case a library a competitor had already finished with. Where a number is a projection, the card says so.

Live on Peregrine

Breckland Plant Hire

648 machinery photographs that had already been through Imagify at its most aggressive setting and resized to 2,560 pixels. This is not a library we found untouched — it is one a competitor had finished with.

12,514files converted, from 8,170 photographs
1050MBafter Imagify had finished
284MBafter, in AVIF
73%smaller again, on top of that
Delivery hostnameimages.brecklandplanthire.co.uk
Originals modified by usnone
Optimisers now runningone

23,773 conversions — AVIF and a WebP fallback for every file — at an average of 220 ms each, with the site up throughout. Read straight from the conversion log, and it grows as they upload. We are quoting the saving against what Imagify left behind, not against the camera originals, because that is the harder number and it is the one that was actually on the server.

Live on our edge

Mark Williams Snooker

A WooCommerce store. Cart and checkout bypass the cache; everything else is served from the edge.

Origin direct275 ms
Through Peregrine87 ms

3.2× faster to first byte — five requests from a separate machine, median taken, origin reached directly by IP so the edge is genuinely out of the path. Time to first byte depends on where you measure from, so we say where.

Converted and measured, not yet moved

Citizens Advice, Diss & Thetford

cadat.org.uk

Photographs saved as PNG at 2048 pixels. The heaviest single image on the homepage is 372 KB on its own — run through our encoder it comes out at 10 KB.

2.13 MBof images, one page
5.2ssaved on a poor signal
Show the four smaller sites we converted Jermyn, Hoveton, Surgicentre, Inspire
Jermyn & CoChartered accountants, Norwichjermyn.co.uk
Images on the homepage1.33 MB
becomes 549 KB · 2.2s back on a poor signal
Hoveton Dental ClinicDental practice, Norfolkhovetondentalclinic.co.uk
Images on the homepage1.32 MB
becomes 312 KB · 2.9s back on a poor signal
SurgicentrePrivate surgical clinicsurgicentre.co.uk
Images on the homepage1.18 MB
becomes 577 KB · 1.7s back on a poor signal
Inspire GroundworksGroundworks contractorinspiregroundworks.co.uk
Images on the homepage2.19 MB
becomes 1.34 MB · 2.4s back on a poor signal

Point the analyser at this page and it will report about 2.3 MB of images. That is correct, and we are not going to hide it: the left half of the comparison above is a deliberately unoptimised original, because that is the entire exhibit. Everything else here is served from our own edge, on our own product.

Every site here is one we look after, and every after-figure on this page is a real conversion — the images were downloaded and encoded at shipping settings, not multiplied by a ratio. Point the tool at the top of this page at any of these domains and you will get the same numbers. The ones marked live are running on Peregrine today; the rest we have converted and measured but not yet moved.

These used to be projections at a flat 92.3% and we have replaced them, because measuring found the flat ratio overstated three of the four smaller sites — Surgicentre by five times and Inspire Groundworks by six. Both are photograph-light pages of logos and screenshots, which is exactly where a ratio taken from photographs falls apart. A projection sold as a result is what we criticise other people for, so it could not keep sitting here.

Measure your own site

Measured, not claimed

We publish our working

108 images from six unrelated client libraries, none previously optimised. Our quality was tuned down per image until it matched or beat the competitor’s fidelity — only then did we compare bytes.

39.5%
smaller than the leading optimiser, at higher fidelity
92%
off original file size with AVIF defaults
3.2×
faster to first byte on a live WooCommerce store
108/108
images smaller — not one exception
Original uploads113.2 MB
Leading optimiser — WebP29.3 MB
Peregrine — WebP, quality-matched17.7 MB
Peregrine — AVIF, our default8.7 MB

Quality scored with SSIM against the original, using a harness that refuses to compare mismatched dimensions and self-tests to 1.0 before every run. Mean fidelity 0.892 against 0.862 — ours is the higher of the two.

How

Why we’re smaller

Not a magic codec. Two decisions most optimisers don’t make, one check nobody else does, and nothing that touches your originals. Each of these is drawn to the measurements above.

One photograph, every step

A real file from a real client library — an aerial shot of a plant yard. It came off the camera at 5000×3331 and 15.9 MB, and WordPress keeps that file forever but never sends it to anybody. What it actually serves is its own 2560px copy, so that is where an honest comparison starts.

  1. What WordPress serves todayits own -scaled.jpg, 2560px
    1.54MB

    WordPress already shrinks anything over 2560px and serves that instead. This is the file a visitor on a wide screen downloads, and it is the number every claim below is measured against.

  2. After the leading optimiserWebP, same 2560px
    676KB−57% on WordPress

    This library had already been through Imagify at its most aggressive setting. That is a real improvement, and it is where most sites stop.

  3. Ours, like for likeAVIF, same 2560px
    516KB−24% on the optimiser

    Same picture, same dimensions, different format. A quarter smaller again than the tool that had already finished with it — this is the part that is only about the codec.

  4. Ours, right-sized first1600px, then AVIF — what we serve
    263KB−83% on WordPress

    Half as much again, and none of it from the codec. Nothing on the page displays this photograph above about 1600px, so 2560 is detail that is downloaded and thrown away. Re-sizing before encoding is the step most optimisers skip.

1.54 MB down to 263 KB — 83% off what a visitor downloads today, on a library a competitor had already optimised. The camera original stays exactly where it is. We quote against WordPress’s own scaled copy rather than the 15.9 MB file, because that is the one people actually wait for, and a comparison against a file nobody downloads is how the rest of this industry gets to print bigger numbers than ours.

AVIF, not WebP

Original JPEG 1.0 MB WebP, quality matched 197 KB AVIF, what we serve 77 KB

AVIF is roughly half the size of WebP at the same quality. We ship it by default, with WebP as automatic fallback for older browsers. Nobody sees a broken image.

We right-size the original

4000 px what is uploaded 800 shown the other 3,200 pixels are downloaded and thrown away

Libraries are full of 5,000-pixel camera originals displayed at 1,200. Re-encoding those is pointless — we resize first. One 16 MB photo came out at 368 KB.

We check it actually arrives

converted fetched back from the edge served not retrievable? original stays

We found a competitor on a client’s site with 4,283 converted files and five being served. Peregrine only serves a format it has confirmed is retrievable from the edge.

Your originals are never touched

your media library photo.jpg untouched photo.avif photo.webp remove the plugin and photo.jpg serves

Converted files sit alongside the originals. Turn Peregrine off and your site serves exactly what it did before. There is no destructive path.

Perch · free

We watch every site you give us. That part costs nothing.

Uptime monitoring, checked from two separate networks, with a status page you can send to the client. Free for ten sites whether or not you ever buy anything else — because a monitor costs us a cron job, and we would rather be the tab you already have open.

All systems operationalyourclient.co.uk · status page
Homepage
100.00%
Checkout
99.87%
Booking form
100.00%

Checked every minute from two networks · times in UTC

Confirmed before you are woken

A failure is checked again from a second server on a different network before anyone is emailed. A monitor that cries wolf gets muted, and a muted monitor is the same blindness with a subscription attached.

Watches for the failure a status code misses

The page returns 200, the theme loads, and the product grid is empty. Give us a word that must appear — “Add to basket” — and we will tell you when it stops appearing.

Certificates before they bite

We record the expiry on every check and warn you two weeks out. An expired certificate is the outage nobody schedules and everybody could have.

Start watching, free  See a live status page

Where we sit

Two tools you already know, and the gap between them

An optimiser plugin shrinks files and stops there. A full-stack accelerator takes over your whole front end and charges like it. We do the delivery part properly without taking the site off you.

Peregrine Optimiser plugin Full-stack accelerator
AVIF served by defaultoptional
Assets served from your own domainsometimes
Edge CDN included in the price
Whole page cached at the edgeDive
Every file checked retrievable before it is served
Originals untouched, reversible in one stepvaries
Firewall, bots and DDoS absorptionShieldvaries
Whitelabelled for your clients
Volume pricing across a portfolioto 50% offsome

Categories, not a scoreboard against any one product — feature lists change and we would rather not be caught quoting an old one. The 39.5% figure above is a direct, quality-matched measurement against the market-leading optimiser, and the raw data behind it is published. If you think a column here is unfair to a tool you use, tell us and we will change it.

Getting started

Live in five minutes. Undone in one.

Three steps, in this order. Nothing in it is hard to reverse, which is rather the point — you should not need courage to try a CDN.

1

Point one record

A single CNAME for images.yourdomain.com on Glide. On Dive you delegate the domain to our nameservers instead, which is what lets us cache the whole page rather than just the assets.

2

Install the plugin, paste the key

It works through the library in the background while the site stays up. Breckland’s library is 12,514 files and counting. Nothing is replaced — converted files sit alongside the originals.

3

We check before we switch

A format is only served once we have confirmed that exact file comes back from the edge. We found a competitor on a client’s site with 4,283 converted files and five of them actually being served.

Reversing it is deleting the plugin. Your site goes straight back to serving what it served before, because that is still what is sitting in the library.

What comes with it

The part you use every week

Compression is the easy half. The rest of this is what an agency looking after forty sites actually needs: proof to hand the client, a list of what still needs doing, and something that tells you before they do.

A report you send to the client

One page, at a link only you have, under your name — images optimised, how much smaller, the seconds a visitor no longer waits, and the uptime record. It goes out on the 1st covering the month just ended, and replies come back to you rather than to us. A month with almost nothing in it is skipped rather than sent as an empty report.

What is still heavy

After conversion, the files a visitor still downloads, largest first — because the biggest one left is usually what Google is timing. Alongside it, the ones conversion barely helped and the likely reason: a PNG carrying transparency, or a JPEG already squeezed hard before upload. The point is knowing which images to re-export instead of guessing.

Watching, and a page to point at

Every site checked every few minutes from two separate networks, and confirmed from the second before anything is called down — so a wobble on one route does not wake you at 3am. Certificate expiry and keyword checks included, and a public status page to send a client — on your own domain from Perch Pro. Ten sites watched free, on any plan or none at all.

Told where you already are

Email, Slack, or a webhook into whatever you run. Every destination stays marked untested until you have sent one through and seen it arrive — an alert route nobody has proved is worse than none, because it is the one you are trusting on the night it matters. Invite your team; nobody shares a login.

Pricing

Per site. Cheaper in bulk.

First 30 days free on every plan — no card is charged until day 31. No metered bandwidth and no surprise overages. Annual saves 20% and includes setup and migration.

Delivery

Pick one. Both include the plugin, the edge and your own hostname.

Glide
One CNAME · no migration
£7/site/month

billed annually at £84

  • Images and static assets on the edge
  • AVIF and WebP, generated automatically
  • Served from your domain
  • Works with any DNS host
  • Live in five minutes, reversible in one
Start Glide free
For a single site you look after yourself.
Most agencies
Dive
Nameservers · whole site
£19/site/month

billed annually at £228

  • Everything in Glide
  • HTML cached at the edge — 3.2× faster to first byte
  • Caching rules that are safe for WooCommerce
  • DDoS absorption and login rate limiting
  • Free migration, done for you
Start Dive free
Annual only — delegating DNS is a real migration.

Watching and defending

Add to either plan, or take Perch on its own and pay nothing.

Perch
Uptime · free forever
Free

no card, no expiry

  • Ten sites watched, checked every 5 minutes
  • Confirmed from a second network before alerting
  • Keyword and certificate checks
  • One public status page
Start watching free
Genuinely free. It costs us a cron job.
Perch Pro
Uptime · per account
£7.50/month

billed annually at £90

  • Unlimited sites, checked every minute
  • Unlimited status pages, on your own domain
  • Twelve months of history
  • Included free with every Dive site
Start Perch Pro free
One price for the whole portfolio, not per site.
Shield
Add-on · managed security
+£12/site/month

billed annually at £144

  • Managed firewall rules, kept current
  • Bot management
  • Block pages branded as yours
  • Login rate limiting
Talk to us about Shield
Stops the traffic nobody wants before it reaches PHP.
Shield Pro
Add-on · for sites that get attacked
+£29/site/month

billed annually at £348

  • Everything in Shield
  • Per-endpoint rate limiting, written for your app
  • Custom rules on request, same day
  • A named contact for escalation, not a queue
  • Monthly security report you can forward to the client
Talk to us about Shield Pro
For the store that has already been hit once.

What would your portfolio cost?

The discount applies across every site on the account — one invoice, one renewal date. Move the slider.

152050100

Per site, per month £15.20 20% volume discount
Sites12
Every month£182.40
Every year£2,188.80

You save against list£547.20
Start free for 30 days

No card charged for 30 days. Cancel inside the trial and nothing is taken.

For agencies

Your client never sees us

Assets serve from their domain, and on Dive your nameservers sit in front of the whole thing.

Whitelabelled end to end

Images at images.theirdomain.co.uk. Nameservers under your brand. Block pages with your name on them. Nothing in the page source points back at us.

ns1.youragency.com
ns2.youragency.com

One account, every client

Per-site keys, portfolio-wide reporting, and a single annual commitment covering the lot. Adding a site provisions its storage, CDN hostname, certificate and caching rules in one step — not an afternoon of configuration.

Everyone compresses images. We make sure they actually reach the browser.

Which is why every file is fetched back from the edge before it is served, and why one competitor was found serving five images that did not exist.

Before you ask

The questions agencies actually ask

Mostly variations on one thing: what happens when it goes wrong. Fair question to ask of anything sitting in front of a client’s site.

What happens to my site if Peregrine goes down?

Your originals never left. They are in your media library exactly where WordPress put them, untouched, and the plugin falls back to serving them. The worst case is the site you had before us, which is a very different worst case from a service that has taken over your front end and holds the only copy of anything.

Will it break WooCommerce?

No, and we are careful about the specific way that usually happens. Cart, checkout and account pages bypass the cache entirely, and we never match on the mere presence of a cookie — that is the mistake that serves one logged-in customer’s basket to everybody. Personalised responses are never cached.

I use Elementor / Divi / Bricks. Does it still work?

Yes. Page builders render outside the normal content filters, which is why plugins that hook the_content quietly miss most of a builder-made page — they report success and change nothing. We rewrite the finished output instead, so a builder page is handled the same as any other.

Do you modify or delete my originals?

Never. There is no destructive path in the product. Converted files sit alongside the originals and the plugin chooses between them at render time.

What if an image is already well optimised?

Then we keep yours. If our output is not actually smaller we say so and serve the original. An optimiser that ships a bigger file and calls it a saving is worse than doing nothing.

Do I have to move my DNS to you?

Only on Dive, and that is what buys you edge-cached HTML. Glide is one CNAME on a subdomain and leaves your DNS exactly where it is — you can stay with Cloudflare, your registrar or your host.

I already have a CDN. Is this redundant?

Usually not. Most site CDNs pass images through unchanged — they move the same bytes faster. The saving here comes from sending far fewer bytes in the first place. Glide sits beside an existing CDN happily; Dive replaces it.

What counts as one site?

One domain, whatever its size. A 40-page brochure site and a 12,000-product store are the same price, because our cost is compute at conversion time, not bandwidth.

Am I tied in?

Annual saves 20% and includes the migration done for you. Glide and Shield are also available monthly if you would rather not commit. Dive is annual only — delegating nameservers is a real migration and a one-month experiment does nobody any good.

Where is my data stored?

Converted images sit in EU edge storage, in Germany, and are delivered from the nearest point of presence to each visitor. Original images stay on your own server throughout.

Start here

Put one site on it and see

Tell us what you look after and we will come back with what it would cost and what it would save — measured on your actual pages, not an average.

  • Migration done for you on annual plans
  • We measure your library before you commit to anything
  • Whitelabelled from the first site if you want it
  • Reversible in one step, always

Prefer email? tgf@xpose.online.

We reply the same day. No sequence, no drip, no phone call you did not ask for.