Skip to main content
.com domains from $2.99 — free WHOIS privacy on every name

Session profile · Driving Schools

Driving schools: a pupil portal is never cached

Your public pages are cached and quick; your pupil login area runs PHP on every single request, and nobody has ever measured it.

The short answer

Anything behind a login skips the cache entirely, which makes a pupil portal a completely different performance problem from the public site. A cached lesson-prices page is a file read; a pupil dashboard is PHP, session handling and a database query on every request, every time.

So measure the two halves separately. Public pages should return in a couple of hundred milliseconds from cache. A logged-in dashboard should still clear 800 milliseconds to first byte, and if it does not, the cause is queries per request rather than anything a cache can help with.

NVMe storage is doing the heavy lifting on the logged-in half, and every plan includes it alongside free SSL, engineer-run migration, domain mailboxes and 24/7 support from $2.42/mo.

By the HostingFast team · Reviewed 15 August 2026

Free

Migration in, free

24/7

Answers, any hour

Daily

Backup, daily on all plans

$0

Setup fee

A driving school site has two personalities. The public half sells: pass rates, prices, instructor profiles, an enquiry form. The private half serves: pupils logging in to book lessons, check progress, pay, or work through theory questions.

Almost all hosting advice is written for the first half. The second half is where the experience actually lives, and it behaves in the opposite way, because caching, the main tool used to make websites fast, is unavailable by design once somebody has logged in.

This page is about that second half: why it cannot be cached, what to measure instead, and how to keep it quick without pretending the public numbers describe it.

Why login means no cache

A cache stores one copy of a page and gives it to everybody. That works because a logged-out visitor sees exactly what the next logged-out visitor sees. A pupil dashboard is different for every pupil, so there is nothing shareable to store, and every request runs the full path: PHP starts, the session is resolved, the database is queried, the page is built.

This is not a flaw in the caching layer, it is the definition of it. What it means practically is that the number you measured on your prices page tells you nothing about the portal, and the portal is what pupils use twice a week for a year.

Measure the logged-in half properly

Log in as a test pupil, open DevTools, and reload the dashboard with the Network panel recording. Read the Waiting for server response figure on the document request. Do it three times and take the median. Under 800 milliseconds is the standard to hold; over 1.5 seconds and pupils will describe the portal as clunky.

Then find out why. On a staging clone, Query Monitor will show the query count for the dashboard. A page pulling every past lesson to display the last five is the classic cause, and it gets worse for your longest-standing pupils, which is exactly the wrong way round.

The theory quiz writes on every answer

Practice quizzes are the heaviest thing a driving school portal does, because a naive implementation saves progress to the database after each question. Forty questions is forty writes, and if the page also reloads between them it is forty full renders as well.

Keep the session in the browser and save once at the end, or save asynchronously without blocking the next question. Time it in the Network panel: if pressing an answer fires a request that takes 400 milliseconds before the next question appears, that is the delay pupils feel and describe as the site being slow.

Size the plan for the private half

Public traffic is cheap because it is cached. Concurrent logged-in pupils are not, because each one occupies PHP for the duration of their request. That is the workload to plan around, and it peaks predictably in the evenings when people book and revise.

Sprint at $2.42/mo covers one site with 25 MySQL databases; Turbo covers twenty-five sites and 50 databases if you run separate sites per branch. NVMe storage under the queries is what keeps the uncached path short, and upgrades are applied in place rather than as a migration.

A customer pleased with how quickly their site now loads

Built for the half that cannot be cached

NVMe storage under the database is what makes a logged-in pupil dashboard quick, because caching is unavailable the moment somebody signs in.

Free SSL, engineer-run migration, daily backups and 24/7 human support come on every plan, and there is no setup fee to start.

  • NVMe under every logged-in pupil request
  • LiteSpeed over the public pages only
  • Staging clones for pupil-portal work
  • PHP version switchable per domain

Why HostingFast

Standard on every plan

Quick without a cache

NVMe storage under the database keeps the logged-in path short, which is the only path a pupil portal has.

Cache for the shop window

LiteSpeed serves prices and instructor pages without starting PHP, leaving resources for the pupils who are signed in.

Databases with room

25 MySQL databases on Sprint and 50 on Turbo, which covers a portal, a public site and a staging copy comfortably.

Staging for portal work

Test a quiz or booking change on a clone and time it there before pupils meet it.

Mail that reaches pupils

MailChannels handles outbound delivery, so lesson confirmations and reminders do not land in junk.

Support in the evening

Humans on the desk at any hour, which matches when a pupil portal is actually busy.

Quick Start

From order to online

  1. 1

    Measure the dashboard, logged in

    Sign in as a test pupil, reload with the Network panel recording, and take a median server response time across three runs.

  2. 2

    Count the queries behind it

    On a staging clone, use Query Monitor on the dashboard. A page fetching every historical lesson to show the last five is the usual culprit.

  3. 3

    Stop the quiz writing per answer

    Hold progress in the browser and save once, or save without blocking. Then time the gap between answering and the next question appearing.

Built In

Loaded onto every plan

  • NVMe SSD under every logged-in pupil request
  • LiteSpeed caching across the public, logged-out pages
  • 25 MySQL databases on Sprint, 50 on Turbo, 100 on Nitro
  • Staging clones for testing portal and quiz changes
  • PHP chosen per domain, so the portal can differ
  • MailChannels delivering lesson confirmations and reminders
  • Free SSL on the portal and the public site alike
  • A backup a day, restorable from the panel yourself
  • Nothing to pay to open the account
  • 24/7 support, because pupils book after work

Frequently Asked

What people ask us most often

Why is my pupil portal slower than my public pages?

Because it cannot be cached. A cache stores one copy of a page for everybody, and a dashboard is different for every pupil, so every request runs PHP, resolves the session and queries the database. The public pages are being served as files; the portal is being built from scratch each time.

What server response time should a pupil dashboard have?

Under 800 milliseconds, measured logged in and taken as a median of three reloads. Above about 1.5 seconds pupils start describing the portal as clunky. If you are over, count the queries on a staging clone before considering anything else.

Why does the portal feel slower for long-standing pupils?

Almost always because a query fetches every historical record to display a handful. A pupil with two lessons loads two rows; a pupil with sixty loads sixty. Limit the query to what the page shows and the difference disappears.

How should a theory quiz save progress?

Not synchronously after every question. Forty questions saved one at a time is forty round trips a pupil waits through. Hold answers in the browser and save once at the end, or save in the background so the next question appears immediately.

Keep reading

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.

You'll get the checklist email, then occasional pointers on keeping a site running fast. Unsubscribe the moment you want out — the privacy policy covers the rest.

Measure the half pupils use.

NVMe under every logged-in request, LiteSpeed over the public pages, no setup fee to start.

View WHMCS License — Built for Driving Schools plans