The coach helps you find performance problems on your web page using web performance best practice rules. And gives you advice on privacy and best practices. Tested using Coach-core version 8.1.1.
The page has 1 CPU long task with the total of 132 ms. The total blocking time is 0 ms and 1 long task before first contentful paint with total time of 132 ms. However the CPU Long Task is depending on the computer/phones actual CPU speed, so you should measure this on the same type of the device that your user is using. Use Geckoprofiler for Firefox or Chromes tracelog to debug your long tasks.
80
Description: Long CPU tasks locks the thread. To the user this is commonly visible as a "locked up" page where the browser is unable to respond to user input; this is a major source of bad user experience on the web today. However the CPU Long Task is depending on the computer/phones actual CPU speed, so you should measure this on the same type of the device that your user is using. To debug you should use the Chrome timeline log and drag/drop it into devtools or use Firefox Geckoprofiler.
Offenders:
unknown
Long cache headers is good (cacheHeadersLong)
The page has 8 requests that have a shorter cache time than 30 days (but still a cache time).
92
Description: Setting a cache header is good. Setting a long cache header (at least 30 days) is even better beacause then it will stay long in the browser cache. But what do you do if that asset change? Rename it and the browser will pick up the new version.
Total JavaScript size shouldn't be too big (javascriptSize)
The total JavaScript transfer size is 164.5 kB and the uncompressed size is 507.4 kB. This is quite large.
0
Description: A lot of JavaScript often means you are downloading more than you need. How complex is the page and what can the user do on the page? Do you use multiple JavaScript frameworks?
https://query.wikidata.org/querybuilder/assets/index.81b2e6d1.css size is 20.1 kB (20068) and that is bigger than the limit of 14.5 kB. Try to make the CSS files fit into 14.5 KB.
90
Description: Make CSS responses small to fit into the magic number TCP window size of 14.5 KB. The browser can then download the CSS faster and that will make the page start rendering earlier.
Description: Use a page description to make the page more relevant to search engines.
Avoid unnecessary headers (unnecessaryHeaders)
There are 10 responses that sets a server header.
90
Description: Do not send headers that you don't need. We look for p3p, cache-control and max-age, pragma, server and x-frame-options headers. Have a look at Andrew Betts - Headers for Hackers talk as a guide https://www.youtube.com/watch?v=k92ZbrY815c or read https://www.fastly.com/blog/headers-we-dont-want.
Use a good Content-Security-Policy header to make sure you you avoid Cross Site Scripting (XSS) attacks. (contentSecurityPolicyHeader)
Set a Content-Security-Policy header to make sure you are not open for Cross Site Scripting (XSS) attacks. You can start with setting a Content-Security-Policy-Report-Only header, that will only report the violation, not stop the download.
0
Description: Content Security Policy is delivered via a HTTP response header, and defines approved sources of content that the browser may load. It can be an effective countermeasure to Cross Site Scripting (XSS) attacks and is also widely supported and usually easily deployed. https://scotthelme.co.uk/content-security-policy-an-introduction/.
Set a referrer-policy header to make sure you do not leak user information. (referrerPolicyHeader)
Set a referrer-policy header to make sure you do not leak user information.
0
Description: Referrer Policy is a new header that allows a site to control how much information the browser includes with navigations away from a document and should be set by all sites. https://scotthelme.co.uk/a-new-security-header-referrer-policy/.
Data collected using Wappalyzer version 6.10.66. With updated code from Webappanalyzer 2024-12-27. Use --browsertime.firefox.includeResponseBodies htmlor --browsertime.chrome.includeResponseBodies htmlto help Wappalyzer find more information about technologies used.
When in time the page main content is rendered (collected using the Largest Contentful Paint API). Read more about Largest Contentful Paint.
Element type
P
Element/tag
<p class="querybuilder__description"></p>
Render time
1.252 s
Element render delay
747 ms
TTFB
505 ms
Resource delay
0 ms
Resource load duration
0 ms
Elements that needed recalculate style before LCP
421
Time spent in recalculate style before LCP
23.331 ms
Load time
0 ms
Size (width*height)
80444
DOM path
div#app > div#app > div > main > p> div#app > div#app > div > main > p>
The largest contentful paint is highlighted in the image. If no element is highlighted the element was removed before the screenshot or the LCP API couldn't find the element.
Detected Cumulative Layout Shift
No layout shift detected.
Interaction to Next Paint
Interaction to Next Paint (INP) is a metric that try to measure responsiveness. It's useful if you are testing user journeys. Read more about Interaction to Next Paint.
The measured latency was 592 ms.
Event type
pointerenter
Element type
Element class name
Event target
Load state when the event happened
dom-interactive
Long Animation Frames
Read more about the Long Animation Frames API here here.