Drupal speed test & optimization

Drupal has strong caching built in, so most slow Drupal sites have it switched off, bypassed by a module, or sitting on slow hosting. Test an article page and your home page, then work down the list.

Try:

Free, no sign-up. Lighthouse on mobile and desktop at once, plus real-user Chrome data, in about 20–40 seconds.

What you can change on Drupal

You control hosting, modules, theme and the caching configuration. Drupal’s core caching layers do much of the work once they’re on. Each fix below lists the metric it usually moves; check that metric in your test result to pick where to start.

  1. TTFB

    Check the core caches are on

    Internal Page Cache serves anonymous visitors from cache, and Dynamic Page Cache helps logged-in users. Both are core modules; confirm they are enabled and that “Browser and proxy cache maximum age” is set in Performance settings.

  2. TTFB

    Put a reverse proxy or CDN in front

    Varnish or a CDN can serve anonymous pages without reaching PHP at all, which also protects the site under traffic spikes.

  3. FCP

    Aggregate CSS and JavaScript

    In Configuration → Development → Performance, turn on CSS and JavaScript aggregation for production so the page needs fewer files before it renders.

  4. LCP

    Use responsive image styles

    The core Responsive Image module serves different image styles per screen size, so phones don’t download desktop-sized images. Add WebP conversion through image styles where your version supports it.

  5. FCP

    Keep BigPipe enabled

    BigPipe (in core) sends the cacheable parts of the page first and streams personalised parts afterwards, so logged-in users see content sooner.

  6. TTFB

    Remove cache-busting modules

    A single block or module that sets max-age 0 can make whole pages uncacheable. Check response headers for X-Drupal-Cache and X-Drupal-Dynamic-Cache to see whether pages are hits or misses.

Common mistakes

  • Leaving development settings (disabled caches, Twig debug) on a live site.
  • Adding contributed modules for small features without checking whether they break caching.

For platform-independent fixes, see the speed optimization checklist, and check page weight with the page size checker.

Questions people ask

Why is my Drupal site slow?

Usually caching is off or being bypassed, CSS/JS aggregation is disabled, or hosting is under-powered. A slow server response on anonymous pages almost always means the page cache isn’t working.

How do I check if Drupal caching is working?

Look at the response headers: X-Drupal-Cache: HIT means the internal page cache served it, and X-Drupal-Dynamic-Cache: HIT means the dynamic cache did. Our TTFB checker shows server response time from outside.