Measured Build
The booking widget is the slowest thing on your portfolio
Your gallery paints beautifully, then a third-party scheduler lands a second payload on top of it and the person who was ready to book is watching a spinner.
The short answer
Measure before you choose: a booking-capable portfolio is judged on the Interaction to Next Paint of its booking step, not on how sharp the gallery looks, so run both pages through Lighthouse, read the third-party audit, and only then decide between an embedded scheduler and a plugin that runs on your own PHP.
The rest of this page is the method — which metric maps to which part of the journey, how to load a scheduler without handing it your main thread, and how to prove the change worked rather than assuming it did.
By the HostingFast team · Reviewed 15 August 2026
Free
Engineer-run migration
24/7
Support, any hour
Daily
Backup interval
$0
Setup charge
Everything on a portfolio that takes bookings is one of two things: pixels that persuade, or scripts that stand between the visitor and the button. Both are drawn from the same performance budget, and a scheduler embed spends a large slice of it on your behalf without asking first.
Hosting settles the first half of that equation. Time to First Byte, the cache sitting in front of PHP and the disk under the database decide how quickly the gallery starts painting, and every plan here runs NVMe storage behind a LiteSpeed cache. What remains is the part you control inside the page itself — and that part is usually the larger one.
Instrument the journey before you touch it
Open the gallery page in Lighthouse and write down three numbers: Largest Contentful Paint, Interaction to Next Paint and Total Blocking Time. Then open the page carrying the scheduler and record the same three again. The delta between those runs is your embed, expressed in milliseconds instead of opinion.
Lighthouse lab data is repeatable but synthetic. Pair it with the field data PageSpeed Insights pulls from the Chrome User Experience Report, because that is the distribution real visitors experienced on real handsets. Lab data tells you what changed; field data tells you whether anybody felt it.
The targets worth aiming at are the published Core Web Vitals thresholds — LCP under 2.5 seconds, INP under 200 milliseconds, CLS under 0.1, all read at the 75th percentile. A portfolio that clears those and still loses bookings has a copy problem rather than a speed problem, and that is worth knowing before you spend a weekend on optimisation.
What a third-party scheduler does to your main thread
Calendly, Acuity and SimplyBook all arrive the same way: a loader script plus an iframe. The loader executes on your main thread, the iframe fetches a second document with its own CSS and JavaScript, and none of it passes through your cache. Lighthouse names the cost directly in the 'Reduce the impact of third-party code' audit — read the blocking-time column rather than the transfer size.
The fix is a facade. Render a lightweight button styled to look like the widget, and inject the real embed only on click or when the section scrolls into view. A visitor who never books never pays for the scheduler, and the visitor who does book waits a few hundred milliseconds at the one moment in the journey where waiting is expected.
If the iframe genuinely must be present at load, give it a lazy loading attribute plus explicit width and height so it cannot shift the layout beneath it. An unsized embed is the most reliable way we know of turning a clean Cumulative Layout Shift score into an embarrassing one.
The gallery is the payload
On most portfolios the LCP element is a hero photograph, which makes the LCP number a question about image delivery. Serve WebP — the conversion is built into the platform at no extra cost — set width and height attributes so the browser reserves the space, and give the hero a high fetch priority so it stops queuing behind stylesheets.
Everything below the fold should be lazy-loaded and everything above it should not. Marking the hero lazy is the single most common self-inflicted LCP regression on creative sites, and it stays invisible until somebody actually measures.
A native WordPress booking plugin such as Amelia moves the scheduling work back onto your own PHP and your own database. That trades third-party main-thread time for origin work, which is the trade you want: origin work is the part LiteSpeed and NVMe can accelerate, and a foreign iframe is not.
Prove it moved, then leave it alone
Re-run the identical test from the same location under the same throttling profile. Changing the region, the connection profile or the time of day between runs produces a number you cannot defend to anybody, including yourself. Keep the before and after side by side and write down exactly what changed between them.
Then watch the thing that pays: completed bookings. Optimisation that lifts a lab score without moving the diary is cargo cult, and avoiding it is most of the value on this page.
For one portfolio with a scheduler attached, the Sprint plan is the right shape — a single site on NVMe behind LiteSpeed, free SSL, mailboxes on your own domain and a daily backup, with an in-place upgrade waiting if the diary fills faster than planned.

Why we hand you the measuring tools
We sell hosting, which is precisely why this page tells you to check us rather than believe us. A number you generated yourself in Lighthouse or WebPageTest carries more weight than any claim we could write about our own platform.
Mailboxes on your own domain come with every plan, so the confirmation email that closes a booking does not need a separate subscription behind it.
- Lab and field numbers, both named
- A facade beats a blocked main thread
- WebP conversion included, not an add-on
- Always re-test from the same location
Why HostingFast
Standard on every plan
NVMe under LiteSpeed on every tier
The disk and the cache that decide Time to First Byte are the baseline build here, not a premium upgrade.
A hero image that arrives first
Built-in WebP conversion plus a server cache that serves the gallery without waking PHP for every visitor.
Mail that leaves the building
MailChannels handles outbound delivery, so the confirmation that closes a booking actually reaches an inbox.
A restore point every day
Daily backups restore from the panel in minutes — valuable the first time a scheduler plugin update misbehaves.
Headroom without a migration
Sprint upgrades in place to Turbo or Nitro from the client area; nothing moves and nothing goes dark.
A company on the public record
Vitalcare at Home Ltd, registered in England and Wales — checkable before you spend anything at all.
Prices Side by Side
Our numbers next to the big names
Typical intro and renewal pricing across the market, lined up against ours — including the renewal figure most comparison charts skip.
| Feature | HostingFastMost popular | Typical household-name host | Typical bargain host | Typical loss-leader deal |
|---|---|---|---|---|
| Starting price / mo* | $2.42/mo | $4–$6 | $2–$4 | $1–$3 |
| Renewal price / mo | $2.42/mo | $10–$15 | $8–$12 | $4–$6 |
| Cheapest plan renews at its sign-up price | ||||
| SSL as standard | ||||
| Migration done for you | ||||
| NVMe drives on the cheapest tier | ||||
| Daily backups from the first tier | ||||
| Real humans on support, 24/7 |
*Our number is the lowest-priced plan we sell on an annual term, pulled live from the same catalogue that powers our pricing page — it physically cannot fall out of date. The other three columns show the ranges shared hosts in each bracket typically advertise: introductory offers that mostly demand a one-to-four-year commitment, then jump once it expires. We no longer name rivals or print their prices, because a figure we cannot verify on the day you read it has no business on this page. Line us up against whichever host you are really weighing — and give the renewal row the hardest look.
Quick Start
From order to online
- 1
Baseline the two pages separately
Run Lighthouse on the gallery and again on the booking page, save both reports, and note LCP, INP and Total Blocking Time for each. You cannot claim an improvement you never recorded a starting point for.
- 2
Put the scheduler behind a facade
Swap the always-on embed for a click-to-load button, then re-run the booking page. The drop in Total Blocking Time is usually the largest single win available on a site of this shape.
- 3
Confirm it in the field, not the lab
Wait for the Chrome User Experience Report to refresh, then check the 75th-percentile figures moved in the same direction as your lab run. If they did not, you improved a benchmark rather than a visitor.
Built In
Loaded onto every plan
- NVMe SSD storage on every tier, with LiteSpeed caching in front of it
- Built-in WebP conversion, so the gallery ships modern formats without a plugin
- Free SSL, issued and renewed automatically before it can lapse
- Daily backups with self-service restores you run from the panel
- Staging copies for trying a scheduler plugin before a visitor meets it
- Per-site PHP version switching from the control panel
- Mailboxes on your own domain, with MailChannels handling outbound delivery
- SSH, Git and Composer available at the command line
- Softaculous installs WordPress and 240+ other applications in one click
- Renewal billed at the rate you ordered at, with no setup fee at any stage
Frequently Asked
What people ask us most often
Which is faster, an embedded scheduler or a WordPress booking plugin?
A native plugin almost always wins on main-thread time, because the work happens on your own server instead of inside a foreign iframe carrying its own framework. The embed wins on setup effort. Measure both on the same page with Lighthouse and let the Total Blocking Time figure settle it rather than the marketing copy.
How do I stop the booking iframe hurting Largest Contentful Paint?
Keep it out of the initial render. Give it a lazy loading attribute, set explicit dimensions so it cannot shift the layout, and where possible replace it with a click-to-load facade. An embed sitting above the fold competes with your hero image for bandwidth, and the hero is the element being measured.
What Time to First Byte should a UK audience see?
For visitors in the UK and Ireland the indicative round trip to our London origin is roughly 5 to 15 milliseconds, so a cached page begins arriving almost immediately. Uncached PHP that queries the database is where the number grows, which is exactly what the LiteSpeed cache in front of every plan exists to avoid.
Will a CDN fix a slow booking page?
Only partly. A CDN handles images, CSS, JavaScript, fonts and cached HTML from a nearby edge node. It does nothing for the scheduler's own iframe, nothing for logged-in screens, and nothing for a database query that has to execute at the origin. Fix the payload and the origin first, then add the CDN.
Keep reading
Reseller Hosting for Agencies
How client accounts behave once you are the person being asked why a site feels slow.
Dedicated Server Value
Where single-tenant hardware starts winning on sustained throughput rather than on the specification sheet.
Best Hosting for Portfolio Sites
The same measurement method applied to a portfolio with no scheduler bolted onto it.
Web Hosting
cPanel hosting on NVMe behind LiteSpeed, with SSL, migration and a year-one domain in the price.
Secure Hosting
Imunify360, account isolation and hardened defaults for builds that cannot absorb a compromise.
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.
Measure it here instead.
NVMe behind LiteSpeed, free migration and a daily backup — then run your own Lighthouse report and see what the origin was costing you.
View Web Hosting plans