Image pipeline · Optician Sites
Web hosting for opticians — Frame pages are an image pipeline problem, not a hosting problem
A brand page with eight frame shots on it will fail its LCP target long before your server runs out of anything, and no plan upgrade will change that.
The short answer
On an optical practice site the constraint is bytes, not cores. Frame-brand pages are one template repeated across every range you stock, and each instance carries product photography that is usually served two or three times larger than the box it renders in. That makes the largest frame shot the LCP element, and it is why a page can score badly while the server returns its first byte in under 200 milliseconds.
So the work divides cleanly: hosting owns the first byte, and the image pipeline owns everything after it. WebP conversion happens on the platform without configuration, which leaves you the two decisions no host can make for you — what dimensions you upload at, and which single image is allowed to load eagerly.
By the HostingFast team · Reviewed 24 August 2026
Free
Migration, done for you
24/7
Answers, any hour
Daily
Backup frequency
$0
Joining charge
Optical sites have an unusual shape. A handful of hand-built pages — eye tests, contact lenses, NHS entitlement — and then a long tail of near-identical brand pages generated from one template. Whatever that template does badly, it does forty times.
The second unusual thing is the traffic pattern on the reorder route. Contact lens patients come back on a schedule, often late in the evening, and if they log in to reorder, that request skips the page cache entirely. Two very different performance problems on one site: a payload problem on the public pages and a PHP problem on the account pages.
Measuring them separately is the whole trick. Averaging them together produces a number that describes neither, and a plan choice made on that average is a guess with a receipt attached.
One template, forty instances, one audit
Pick the brand page with the most traffic and treat it as the reference for the whole set. Run a Lighthouse audit in Chrome DevTools with the network throttled to a slow mobile profile, then read two things off it: which element is the LCP element, and what the total transfer was on a cold load. On an optical page the answer to the first is almost always the hero frame shot.
Now check the arithmetic that matters. Open the network panel, find that image, and compare its intrinsic dimensions against the CSS size it renders at. A 2400-pixel-wide photograph displayed in a 600-pixel column is paying four times the bytes for no visible gain, and it is doing so on every brand page you have.
What the platform does to your images, and what it does not
WebP conversion is built in, so format is handled: the visitor gets a modern format without you installing a plugin to produce one. Responsive sizes are generated too, which means the browser can choose a smaller file on a narrow screen if your markup lets it.
What remains yours is upload discipline and load priority. Upload at a sensible maximum dimension rather than straight off the camera roll, and keep exactly one image eager — the one above the fold. Lazy-loading the hero is the most common self-inflicted LCP failure on gallery-shaped sites, and it usually arrives as a well-meant "lazy load everything" toggle in a theme options panel.
The nine-o'clock reorder never touches the cache
If patients log in to reorder lenses, those requests are logged-in traffic and the page cache does not apply to them by design. Each one boots PHP, runs your queries and occupies a worker until it finishes. That is the route where a heavy plugin stack shows up as a slow site, and it is invisible in any test you run logged out.
Measure it as itself: log in, open DevTools, and time the account and reorder pages the way a patient experiences them. If they are slow, the answer is an object cache holding repeated query results rather than a page cache that can never apply — Redis object caching and AccelerateWP ship on the managed WordPress tiers, which is exactly the workload they exist for.
A cadence, not a one-off
Image weight creeps. Somebody adds a range, uploads at full resolution, and the template gets slightly heavier without anyone deciding it should. Put a date in the diary each quarter, re-run the same audit on the same reference page, and compare against the number you wrote down last time.
Between those checks, let the field data do the watching. Search Console reads a rolling 28-day window of real visits and grades LCP at or under 2.5 seconds and INP at or under 200 ms for the 75th percentile of your visitors — so a slow drift shows up there before a patient ever mentions it.

Where the platform carries the weight
Automatic WebP conversion, NVMe storage on every tier and LiteSpeed caching inside the web server rather than bolted on as a plugin — the parts of an image-heavy site that are genuinely ours.
Staging copies and SSH with Git and Composer are there for the parts that are yours: re-processing a library, testing a theme change, and confirming the number moved before a patient meets it.
- WebP conversion applied without a settings page
- Responsive image sizes generated automatically
- NVMe storage under the entry tier as well
- LiteSpeed cache running at server level on every tier
Why HostingFast
Standard on every plan
Format handled, weight measured
WebP conversion is automatic, so the remaining variable is dimensions — and that is a number you can read straight off the network panel.
One fix across every brand page
Because the pages share a template, correcting hero handling once improves the whole long tail at the same moment.
Object caching where it earns its keep
The managed WordPress tiers ship Redis object caching and AccelerateWP, which is the layer that helps logged-in reorder pages the page cache cannot touch.
A clone for the risky change
Staging lets you re-process an image library and compare two measurements before anything reaches the live site.
Restores in minutes, not tickets
Daily backups recover files, a database or both from the panel — which is what makes a bulk image job a reasonable thing to attempt.
Free migration, then a re-baseline
Our engineers move the account at no cost and you approve before DNS switches, so the move itself gets a before and after number.
Quick Start
From order to online
- 1
Choose the reference brand page
Your busiest one, then never change which page you measure. Comparability is worth more than coverage when you are tracking a template over time.
- 2
Name the LCP element and its real size
Throttled Lighthouse run for the element, network panel for intrinsic versus displayed dimensions. Those two facts explain most gallery-page failures on their own.
- 3
Measure the logged-in route separately
Log in and time the reorder and account pages. That traffic never sees the page cache, so it needs its own reading and its own fix.
Built In
Loaded onto every plan
- A single reference brand page chosen and used for every future audit
- LCP element identified on a throttled mobile Lighthouse run
- Hero image intrinsic dimensions compared against displayed size
- Exactly one eager image per page; everything below the fold lazy
- Automatic WebP conversion left switched on to do the format work
- Logged-in reorder and account pages timed as their own measurement
- Object caching considered only after the uncached routes are measured
- NVMe storage and server-level LiteSpeed confirmed on the tier you actually bought
- Daily backups proven by an actual restore before a bulk image job
- A quarterly re-audit diarised, comparing against the dated baseline
Frequently Asked
What people ask us most often
How large should I upload frame photography?
At the largest size you will ever display it, not the largest your camera produced. If the widest rendering is a 900-pixel column, uploading at 1800 covers high-density screens with no waste; uploading at 4000 pays for three quarters of the bytes twice over. The platform converts to WebP and generates responsive sizes from whatever you give it, so your upload dimension sets the ceiling on everything downstream.
Why does my brand page score badly when the server is fast?
Because LCP is a visitor number and TTFB is a server number, and they fail for different reasons. A cached page can return its first byte in well under 200 milliseconds and still take four seconds to paint because the largest image above the fold is a megabyte. Split the two measurements and the work becomes obvious: the first is ours, the second is the image pipeline's.
Do lens reorder pages benefit from the page cache?
No — anything behind a login is uncacheable by design, because serving one patient's account page to another would be far worse than serving it slowly. The layer that helps there is an object cache holding repeated query results, plus a shorter plugin list running on those routes. Measure the logged-in path on its own before you buy anything for it.
Is a CDN worth it for an optical practice site?
For images, CSS, fonts and cached HTML, yes: an edge node near the visitor genuinely removes distance from those. It does nothing for the reorder pages, the account screens or any database query that misses the cache, all of which travel the full distance to the origin every time. Buy it for the asset weight, not for the parts of the site that are actually slow.
Keep reading
Insurance Brokers — Hosting Guide
Multi-step quote forms, attachments and the interaction figure they move.
Builders — Hosting Guide
Heavy project photography on a trade site, measured rather than assumed.
Best Hosting With Free SSL
Where the certificate sits in the handshake and what it costs your first byte.
WHMCS License — Built for Opticians
A billing platform on the same NVMe and LiteSpeed stack, licensed separately.
Domain Names
Register or transfer a name, then measure the DNS stage of the request yourself.
Changing hosts? Run through our checklist first.
A straightforward sequence for a switch your visitors never feel: which files move first, how to shift email across without losing a single message, the right moment to repoint DNS, and the two mistakes behind almost all the downtime we get asked to rescue.
Fix the template, not the plan.
Automatic WebP conversion, NVMe on every tier and LiteSpeed in the server — with staging so an image change can be proven before it ships.
View WHMCS License — Built for Opticians plans