Skip to report
Scan another site

Performance report

restaurant.dk

Scanned restaurant.dk

  • LiteSpeed
  • WordPress
  • PHP
  • Cloudflare

91 out of 100

Warp Score

A Excellent

TTFB — Needs improvementserver response
405 ms
LCP — Needs improvementlab
2.6 s
LCP — Goodlab
0.6 s
INP — Goodreal users
88 ms
CLS — Goodlab
0
CLS — Poorlab
0.819
Desktop — Needs improvementLighthouse
75
Mobile — GoodLighthouse
95
Transfer
470 KB
Transfer
470 KB
Requests
14
Requests
16
Share on X Share on LinkedIn

Overview

Score breakdown

Performance

B

87 / 100

Lighthouse scored this page 95 on mobile and 75 on desktop.

Core Web Vitals

A+

96 / 100

Real visitors pass Core Web Vitals across the whole site, with a 75th-percentile LCP of 1.2 s.

Server & Cache

A

91 / 100

HTML is served from cache by LiteSpeed Cache with a warm TTFB of 405 ms.

Assets

A

91 / 100

470 KB transferred in 14 requests, including 101 KB of JavaScript.

Delivery

A

90 / 100

Delivered with HTTP/2, Zstandard compression, Cloudflare.

Top improvements

  1. Eliminate render-blocking resourcesHigh impactPotential savings: 657 ms

    1 stylesheet or script blocks the first paint.

    Evidence

    • restaurant.dk/wp-includes/css/dist/block-library/style.min.css (657 ms)

    Why it matters

    The browser cannot draw anything until these files are downloaded and processed, which delays FCP and LCP.

    How to fix

    Inline the CSS needed for the first screen and load the rest asynchronously; defer scripts that are not needed to render the page.

    Related metric: LCP

    In Warp PerformanceWarp Performance → CSS → Remove Unused CSSWarp Performance → JavaScript → Defer JavaScript
  2. Cache HTML at the CDN edgeMedium impact

    Cloudflare is in front of the site but passes HTML requests through to the origin instead of caching them.

    Evidence

    • cf-cache-status: DYNAMIC

    Why it matters

    Static assets come from the edge, but each page view still makes a round trip to the origin server. Edge-cached HTML responds from the nearest location.

    How to fix

    Add a cache rule for HTML on the CDN (with a bypass for logged-in and cart/checkout traffic) and purge it when content is updated.

    Related metric: TTFB

    In Warp PerformanceWarp Performance → CDN → Cloudflare Page Caching
  3. Reduce unused JavaScriptLow impactPotential savings: 49 KB

    49 KB of downloaded JavaScript was never executed during page load.

    Evidence

    • restaurant.dk/wp-content/themes/voxel/assets/vendor/vue/vue.prod.js (49 KB could be saved)

    Why it matters

    Unused code still has to be downloaded, parsed and compiled, which competes with rendering and slows interaction.

    How to fix

    Load scripts only on the pages that use them, split large bundles, and delay scripts that are not needed until the visitor interacts.

    Related metric: LCP

    In Warp PerformanceWarp Performance → JavaScript → Delay JavaScript
  4. Remove unused CSSLow impactPotential savings: 17 KB

    17 KB of CSS rules are not used by this page.

    Evidence

    • restaurant.dk/wp-includes/css/dist/block-library/style.min.css (17 KB could be saved)

    Why it matters

    Stylesheets block rendering, so every unused rule delays the first paint.

    How to fix

    Generate per-page CSS that contains only the rules in use, and load the remainder without blocking rendering.

    Related metric: FCP

    In Warp PerformanceWarp Performance → CSS → Remove Unused CSS
  5. Stop sending legacy JavaScript to modern browsersLow impactPotential savings: 11 KB

    About 11 KB of polyfills and transpiled code targets browsers that no longer need it.

    Evidence

    • static.cloudflareinsights.com/beacon.mi…df95cf4e85bb4c19e7a9bdbcba1788362987495 (11 KB could be saved)

    Why it matters

    Modern browsers download and run compatibility code they never use.

    How to fix

    Update the build target (browserslist) to current browsers and remove unnecessary polyfills.

2 more findings are listed in the other tabs.

Page weight

470 KB transferred · 14 requests · Mobile

  • HTML 214 KB 1 request
  • JavaScript 101 KB 4 requests
  • Fonts 95 KB 1 request
  • CSS 38 KB 4 requests
  • Images 20 KB 2 requests
  • Other 1 KB 2 requests

470 KB transferred · 16 requests · Desktop

  • HTML 214 KB 1 request
  • JavaScript 101 KB 4 requests
  • Fonts 95 KB 1 request
  • CSS 38 KB 4 requests
  • Images 20 KB 4 requests
  • Other 1 KB 2 requests

Shareable summary

Core Web Vitals

Real-user data shows what visitors actually experienced over the last 28 days. The lab test is a single controlled page load, useful for finding causes. The two often differ, and Google uses the real-user data.

Real users Chrome UX Report · 75th percentile

Passes Core Web Vitals

Mobile visitors · data for the whole site (not enough for this page alone)

LCP p75 — Good
1.2 s
INP p75 — Good
88 ms
CLS p75 — Good
0
TTFB p75 — Good
612 ms
FCP p75 — Good
1.0 s

Desktop visitors · data for the whole site (not enough for this page alone)

LCP p75 — Good
0.9 s
INP p75 — Good
61 ms
CLS p75 — Good
0.01
TTFB p75 — Good
509 ms
FCP p75 — Good
0.8 s

Lab test Google Lighthouse · simulated load

Mobile

Lighthouse — Good
95
LCP — Needs improvement
2.6 s
FCP — Needs improvement
2.1 s
TBT — Good
0 ms
Speed Index — Good
2.1 s
CLS — Good
0

Desktop

Lighthouse — Needs improvement
75
LCP — Good
0.6 s
FCP — Good
0.6 s
TBT — Good
0 ms
Speed Index — Good
1.0 s
CLS — Poor
0.819

Server & Cache

TTFB (server response)
405 ms
HTML cache
LiteSpeed Cache Confirmed
CDN
Cloudflare HTML caching: Not detected
Compression
Zstandard
HTTP version
HTTP/2 (HTTP/3 advertised)
Server
cloudflare
Redirects
None
Browser caching
HTML is fetched fresh on each visit
Static asset caching
6 of 6 sampled assets cached for 30 days or more

Connection timing from the scanner

DNS
41 ms
TCP
2 ms
TLS
14 ms
First-byte wait
439 ms
Total
769 ms
HTML size
220 KB

Measured from the Warp Scan server, so network times reflect its location rather than your visitors'. The TTFB figure above is the first-byte wait on an open connection (the faster of two requests), so it includes one network round trip from the scanner.

Developer details

Cache evidence

  • x-litespeed-cache: hit (first request)
  • x-litespeed-cache: hit (repeat request)
  • cf-cache-status: DYNAMIC (first request)
  • cf-cache-status: DYNAMIC (repeat request)

Response headers (first request)

vary: Accept-Encoding
server: cloudflare
content-type: text/html; charset=UTF-8
content-encoding: zstd
link: <https://restaurant.dk/wp-json/>; rel="https://api.w.org/", <https://restaurant.dk/wp-json/wp/v2/pages/62>; rel="alternate"; title="JSON"; type="application/json", <https://restaurant.dk/>; rel=shortlink
alt-svc: h3=":443"; ma=86400
strict-transport-security: max-age=31536000; includeSubDomains
server-timing: cfCacheStatus;desc="DYNAMIC", cfEdge;dur=13,cfOrigin;dur=317
cf-cache-status: DYNAMIC
cf-ray: a45b3253fc397039-EWR
x-litespeed-cache: hit
x-turbo-charged-by: LiteSpeed

Response headers (repeat request, 405 ms)

vary: Accept-Encoding
server: cloudflare
content-type: text/html; charset=UTF-8
content-encoding: zstd
link: <https://restaurant.dk/wp-json/>; rel="https://api.w.org/", <https://restaurant.dk/wp-json/wp/v2/pages/62>; rel="alternate"; title="JSON"; type="application/json", <https://restaurant.dk/>; rel=shortlink
alt-svc: h3=":443"; ma=86400
strict-transport-security: max-age=31536000; includeSubDomains
server-timing: cfCacheStatus;desc="DYNAMIC", cfEdge;dur=7,cfOrigin;dur=296
cf-cache-status: DYNAMIC
cf-ray: a45b330c88a258d7-EWR
x-litespeed-cache: hit
x-turbo-charged-by: LiteSpeed

Sampled static assets

Asset Cache lifetime Cache-Control
restaurant.dk/wp-content/lite…81d8448aee812f0.css?ver=a199d 1 year public, max-age=31536000
restaurant.dk/wp-content/plug…he/assets/js/css_async.min.js 1 year public, max-age=31536000
restaurant.dk/wp-content/uplo…24/05/Restaurant-Nyt-logo.png 1 year public, max-age=31536000
restaurant.dk/wp-includes/css…t/block-library/style.min.css 1 year public, max-age=31536000
restaurant.dk/wp-includes/js/jquery/jquery.min.js 1 year public, max-age=31536000
restaurant.dk/wp-content/uplo…-ekspressen-aps-1-300x56.webp 1 year public, max-age=31536000
  • Cache HTML at the CDN edgeMedium impact

    Cloudflare is in front of the site but passes HTML requests through to the origin instead of caching them.

    Evidence

    • cf-cache-status: DYNAMIC

    Why it matters

    Static assets come from the edge, but each page view still makes a round trip to the origin server. Edge-cached HTML responds from the nearest location.

    How to fix

    Add a cache rule for HTML on the CDN (with a bypass for logged-in and cart/checkout traffic) and purge it when content is updated.

    Related metric: TTFB

    In Warp PerformanceWarp Performance → CDN → Cloudflare Page Caching

JavaScript

101 KB in 4 requests · 21% of page weight · Mobile

101 KB in 4 requests · 21% of page weight · Desktop

  • Eliminate render-blocking resourcesHigh impactPotential savings: 657 ms

    1 stylesheet or script blocks the first paint.

    Evidence

    • restaurant.dk/wp-includes/css/dist/block-library/style.min.css (657 ms)

    Why it matters

    The browser cannot draw anything until these files are downloaded and processed, which delays FCP and LCP.

    How to fix

    Inline the CSS needed for the first screen and load the rest asynchronously; defer scripts that are not needed to render the page.

    Related metric: LCP

    In Warp PerformanceWarp Performance → CSS → Remove Unused CSSWarp Performance → JavaScript → Defer JavaScript
  • Reduce unused JavaScriptLow impactPotential savings: 49 KB

    49 KB of downloaded JavaScript was never executed during page load.

    Evidence

    • restaurant.dk/wp-content/themes/voxel/assets/vendor/vue/vue.prod.js (49 KB could be saved)

    Why it matters

    Unused code still has to be downloaded, parsed and compiled, which competes with rendering and slows interaction.

    How to fix

    Load scripts only on the pages that use them, split large bundles, and delay scripts that are not needed until the visitor interacts.

    Related metric: LCP

    In Warp PerformanceWarp Performance → JavaScript → Delay JavaScript
  • Stop sending legacy JavaScript to modern browsersLow impactPotential savings: 11 KB

    About 11 KB of polyfills and transpiled code targets browsers that no longer need it.

    Evidence

    • static.cloudflareinsights.com/beacon.mi…df95cf4e85bb4c19e7a9bdbcba1788362987495 (11 KB could be saved)

    Why it matters

    Modern browsers download and run compatibility code they never use.

    How to fix

    Update the build target (browserslist) to current browsers and remove unnecessary polyfills.

CSS

38 KB in 4 requests · 8% of page weight · Mobile

38 KB in 4 requests · 8% of page weight · Desktop

  • Remove unused CSSLow impactPotential savings: 17 KB

    17 KB of CSS rules are not used by this page.

    Evidence

    • restaurant.dk/wp-includes/css/dist/block-library/style.min.css (17 KB could be saved)

    Why it matters

    Stylesheets block rendering, so every unused rule delays the first paint.

    How to fix

    Generate per-page CSS that contains only the rules in use, and load the remainder without blocking rendering.

    Related metric: FCP

    In Warp PerformanceWarp Performance → CSS → Remove Unused CSS

Images

20 KB in 2 requests · 4% of page weight · Mobile

20 KB in 4 requests · 4% of page weight · Desktop

  • Optimize image deliveryLow impactPotential savings: 10 KB

    Images are larger than they need to be: resizing, recompressing or converting them would save about 10 KB.

    Evidence

    • restaurant.dk/wp-content/uploads/2025/1…t-scandia-ekspressen-aps-1-768x145.webp (10 KB could be saved)

    Why it matters

    Images are usually the largest part of a page and often the LCP element.

    How to fix

    Serve images at the size they are displayed, in WebP or AVIF, with sensible compression.

    Related metric: LCP

    In Warp PerformanceWarp Performance → Media → Local Image OptimizationWarp Performance → Media → Responsive Images

Fonts

95 KB in 1 requests · 20% of page weight · Mobile

95 KB in 1 requests · 20% of page weight · Desktop

No Fonts issues found.

Third Parties

10 KB from other domains in 1 requests · 2% of page weight

No common third-party services were detected.

Headers & Delivery

HTTPS
Yes
HSTS
Enabled
Cache-Control
Not set
Validators
None
Content-Type
text/html; charset=UTF-8
Vary
Accept-Encoding
  • Reduce the size of the DOMLow impact

    The page contains 4,248 HTML elements.

    Evidence

    • DOM elements: 4,248

    Why it matters

    Large documents make style calculation, layout and every interaction slower.

    How to fix

    Simplify page-builder nesting, paginate long lists, and render off-screen sections only when they are needed.

    Related metric: INP

Technology

  • LiteSpeed Detected
    • x-litespeed-cache: hit
    • x-turbo-charged-by: LiteSpeed
  • WordPress Detected
    • Asset paths under /wp-content/
    • Asset paths under /wp-includes/
    • REST API discovery link (api.w.org)
    • Generator meta tag: WordPress
    • link: <https://restaurant.dk/wp-json/>; rel="https://api.w.org/", <https://restaurant.dk/wp-json/wp/v2/pages/62>; rel="alte…
  • PHP Detected
    • Implied by WordPress
  • Vue Likely detected
    • Vue runtime script
  • Cloudflare Detected
    • cf-ray: a45b3253fc397039-EWR
    • cf-cache-status: DYNAMIC
    • server: cloudflare

WordPress

Theme
restaurants
REST API
Advertised
Plugins visible in the page
3 plugins

Optimization tools

  • LiteSpeed Cache Detected LiteSpeed Cache HTML comment · Assets under /wp-content/litespeed/ · Assets under /plugins/litespeed-cache/
Plugins referenced by asset paths

litespeed-cache elementor seo-by-rank-math-pro