Zedule.
OPERATIONS · MAY 5, 2026 · 5 MIN READ

Booking page loading speed — why 2 seconds matters


Booking-page abandonment happens earlier than most operators think. Customers don’t bail at the credit card step — they bail at the loading spinner.

The 2-second rule

Pages that take longer than 2 seconds to render the first useful content lose ~25% of visitors. At 5 seconds, ~50%. Booking pages are worse than average because customers arrive on mobile, often over cellular, often distracted.

The single biggest conversion lever isn’t your booking flow — it’s how fast the booking flow appears.

What slows booking pages

In rough order of frequency:

1. Heavy hero images

A 2MB hero photo at full resolution. Customer’s phone downloads it before showing anything else. Fix: WebP at 80% quality, max 1200×800 pixels. 200KB instead of 2MB.

2. Web fonts loading from a third-party CDN

Google Fonts is fast but adds an extra DNS lookup + connection. For booking pages where milliseconds matter, self-host fonts (or use the platform’s defaults).

3. Tracking scripts blocking render

Google Analytics, Facebook Pixel, Hotjar — each adds 100-500ms. They’re worth having; they’re not worth blocking the booking page. Load them after the booking page renders.

4. Render-blocking JavaScript

If the booking page needs JS to render (most do), it has to download + parse + execute before showing content. Minimise this by ensuring critical content is in the initial HTML.

5. Slow API calls

The booking page often fetches services and availability from an API. If the API is slow, the page stays blank. Cache aggressively where possible; show optimistic UI while data loads.

What Zedule does

Zedule serves the booking page from Cloudflare’s edge — typically under 100ms first-byte from anywhere in the world. The booking flow itself is JS-heavy but renders quickly because:

  • Cloudflare CDN caches the static assets globally.
  • Service + availability data comes from a per-tenant Cloudflare D1 database — fast queries, regional reads.
  • Web fonts are self-hosted with font-display: swap so text renders before fonts finish loading.
  • Critical CSS is inlined; non-critical CSS loads async.

The result: ~1 second to render the first booking interaction on typical mobile cellular. Worth verifying on your real customers’ devices.

How to test

  1. Open your booking page in Chrome DevTools.
  2. Throttle to “Slow 3G” in the Network tab.
  3. Reload, watch the timing.
  4. Note the time to first interactive content.

If it’s over 3 seconds on Slow 3G, something is slow. The biggest levers are usually image size and third-party scripts.

What you can control

If you’re on Zedule, the platform handles the speed work for you. What you can still optimise:

  • Logo size. Upload a small logo (under 50KB). Some operators upload 5MB images and the booking page is slow because of that.
  • Cover image. Same: keep it small.
  • Service descriptions. Long descriptions don’t affect load speed but do slow the customer’s reading time. Aim for 1-2 sentences per service.