Closed rdpanek closed 3 years ago
gzip
or br
Verifiable by Listener | :heavy_check_mark: |
---|
br
(or at least gzip
) is used for plain text compressionbr
) only if the user is visiting a website over HTTPSVerifiable by Listener | :heavy_check_mark: |
---|
Verifiable by Listener | :question: |
---|
Verifiable by Listener | :question: |
---|
Verifiable by Listener | :heavy_check_mark: |
---|
Not found
resources on your siteVerifiable by Listener | :heavy_check_mark: |
---|
Verifiable by Listener | :heavy_check_mark: |
---|
examine the caching strategy for 404 pages. (the goal is to serve HTML to the browser only when it expects an HTML response, and return a small error payload for all other responses)
the best way might be the cached version served by a CDN --- see https://nooshu.github.io/blog/2020/08/25/you-should-be-testing-your-404-pages-web-performance/
a note: nclude a 404 error page in your test suite, and track its score over time
Verifiable by Listener | :heavy_check_mark: |
---|
-- see https://web.dev/vitals/#core-web-vitals
Verifiable by Listener | :heavy_check_mark: |
---|
-- see https://web.dev/vitals/#core-web-vitals
Verifiable by Listener | :heavy_check_mark: |
---|
-- see https://web.dev/vitals/#core-web-vitals
Verifiable by Listener | :heavy_check_mark: |
---|
import()
.Verifiable by Listener | :question: |
---|
Verifiable by Listener | :x: |
---|
Cache-Control
) setting, browsers will set them automaticallyVerifiable by Listener | :heavy_check_mark: |
---|
server
, expires
, x-powered-by
, pragma
, x-frame-options
, X-XSS-Protection
, x-cache
, via
, p3p
, x-aspnet-version
, x-ua-compatible
and others)
-- see https://www.fastly.com/blog/headers-we-dont-wantdefer
instead of async
to load critical JavaScript asynchronouslydefer
see https://calendar.perfplanet.com/2016/prefer-defer-over-async/#attributesVerifiable by Listener | :x: |
---|
async
and defer
async
will always win.
see https://twitter.com/csswizardry/status/1331721659498319873Verifiable by Listener | :x: |
---|
dns-lookup
, preconnect
, prefetch
, preload
and prerender
see https://medium.com/reloading/preload-prefetch-and-priorities-in-chrome-776165961bbf, Verifiable by Listener | :x: |
---|
Verifiable by Listener | :question: |
---|
Verifiable by Listener | :heavy_check_mark: |
---|
<script type="module">
and module/nomodule
pattern
see https://www.smashingmagazine.com/2021/01/front-end-performance-2021-free-pdf-checklist/ look up script type="module"
Verifiable by Listener | :x: |
---|
# | title | Index | Condition | Min count /hour | Score |
---|---|---|---|---|---|
1 | Failed check your page! | c.report | test step failed | 2 | 10 |
2 | Encoding of response with Javascript files must contains gzip or brotli compression. | c.response | gzip or br missing in headers.content-encoding | 10 | 40 |
3 | Encoding of response with CSS files must contains gzip or brotli compression. | c.response | gzip or br missing in headers.content-encoding | 10 | 40 |
4 | Higher response time. | c.performance-entries | > 3000ms | 10 | 40 |
5 | WebVitals LCP exceeded. | c.audit | > 2500ms | 5 | 40 |
6 | WebVitals TTI exceeded. | c.audit | > 5000ms | 5 | 40 |
7 | WebVitals CLS exceeded. | c.audit | > 0.1 | 5 | 40 |
8 | LoadEventEnd exceeded. | c.performance-entries | > 4000ms | 5 | 40 |
IDEA
Canarytrace Listener will be automatically check the rules of quality a web application.
Sources: