Empty State

By Forty Eight Point One (United Kingdom)
Find out more about the Evaluation

Mobile Friendliness 100/100

Content is not blocked for zoom/scale

The `[user-scalable="no"]` parameter is not present in the `<meta name="viewport">` element and the `[maximum-scale]` parameter is not less than 2.Source: Lighthouse - Learn more

Content is sized correctly for the viewport

If the width of your app's content doesn't match the width of the viewport, your app might not be optimized for mobile screens. Source: Lighthouse - Learn more

Uses legible font sizes

Font sizes less than 12px are too small to be legible and require mobile visitors to “pinch to zoom” in order to read. Strive to have >60% of page text ≥12px. Source: Lighthouse - Learn more

Color Contrast is satisfactory

Low-contrast text is difficult or impossible for many users to read. Background and foreground colors should have enough contrast ratio to guarantee readability. Source: Lighthouse - Learn more

Performance 77/100

Speed Index

  • Speed Index
    9522.80
    target < 4500 ms

Speed Index is a page load performance metric that shows you how quickly the contents of a page are visibly populated. The lower the score, the better. Source: Lighthouse - Learn more

Document complete

  • Time
    8.6
    seconds
  • Resources
    34
    requests
  • Bytes in
    2.3
    MB

These metrics are collected from the initial request until the browser considers the page loaded (JavaScript onLoad event). This usually happens after all of the image content has loaded but may not include content that is triggered by javascript execution.

Fully load

  • Time
    24.4
    seconds
  • Resources
    41
    requests
  • Bytes in
    3.4
    MB

These metrics are collected from the initial request until 2 seconds of no network activity after Document Complete (JavaScript onLoad event). This will usually include any activity that is triggered by javascript after the main page loads.

Assets by Domain

Requests

  • emptystate.com

  • unpkg.com

  • cdnjs.cloudflare.com

  • a.nel.cloudflare.com

  • www.google-analytics.com

  • www.googletagmanager.com

  • ajax.googleapis.com

Bytes downloaded

  • emptystate.com

  • cdnjs.cloudflare.com

  • www.googletagmanager.com

  • unpkg.com

  • ajax.googleapis.com

Assets by Mime-Type

Requests

  • html

  • js

  • css

  • image

  • font

  • video

  • other

Bytes downloaded

  • html

  • js

  • css

  • image

  • font

  • video

  • other

Speed

Load time8586 ms

Also known as the document complete time, it’s the time from the initial request until the browser load event. It can vary based on server location, device, browser, and third-party apps. Source: WebPagetest - Learn more

Page load is fast enough on 3G

A fast page load over a 3G network ensures a good mobile user experience. Source: Lighthouse - Learn more

First byte2300 ms

The time from the initial request to the first byte of the response. Source: WebPagetest - Learn more

First Contentful Paint2888.49 ms

First contentful paint marks the time at which the first text/image is painted. Source: Lighthouse - Learn more

First meaningful paint2888.49 ms

First meaningful paint measures when the primary content of a page is visible. It's essentially the paint after which the biggest above-the-fold layout change has happened, and web fonts have loaded. Source: Lighthouse - Learn more

Estimated Input Latency12 ms (target < 50 ms)

The score above is an estimate of how long your app takes to respond to user input, in milliseconds. There is a 90% probability that a user encounters this amount of latency, or less. 10% of the time a user can expect additional latency. If your score is higher than Lighthouse's target score (< 50ms), users may perceive your app as laggy. Source: Lighthouse - Learn more

Uses persistent connections (keep alive)Score: 100%

Closing connections are a missed opportunity for performance enhancement: additional round-trips between the user and the server to initiate a connection is redundant and time-consuming. Keep-Alive measures the effectiveness of connection reuse. The purpose of this grade is to evaluate the extent to which requests are inefficiently reopening connections. Source: WebPagetest - Learn more

First CPU Idle2888.49 ms

First CPU Idle marks the first time at which the page's main thread is quiet enough to handle input. Source: Lighthouse - Learn more

Time to Interactive2888.49 ms

Interactive marks the time at which the page is fully interactive. Source: Lighthouse - Learn more

Page weight

Uses compression (gzip, zopfli, deflate, brotli)Score: 100%

This rule triggers when detecting that compressible resources were served without gzip compression. Source: WebPagetest - Learn more

Uses a CDN for all static assetsScore: 97%

Each request for a piece of content to the web server has to travel from the user's browser all the way to the server and back. A content delivery network (CDN) is a system for distributing resources to servers geographically closer to users. The main benefit of this is that the round-trip time is faster. The passing grade for using a CDN effectively is to have at least 80% of static resources served from a CDN. Source: WebPagetest - Learn more

Leverage browser caching

Setting an expiry date or a maximum age in the HTTP headers for static resources instructs the browser to load previously downloaded resources from local disk rather than over the network. Source: PageSpeed Insights - Learn more

Minify CSS

Minification refers to the process of removing unnecessary or redundant data in order to reduce file size without affecting how the resource is processed by the browser - e.g. code comments and formatting, removing unused code, using shorter variable and function names, and so on. Source: PageSpeed Insights - Learn more

Minify JavaScript

Minification refers to the process of removing unnecessary or redundant data in order to reduce file size without affecting how the resource is processed by the browser - e.g. code comments and formatting, removing unused code, using shorter variable and function names, and so on. Source: PageSpeed Insights - Learn more

Potential savings of 4 KiB

URL
https://emptystate.com/wp-content/themes/emptystate-theme/dist/js/libs.min.js?ver=5.7.2<\/span> ( 51.17% )
...

Avoids an excessive DOM size367 nodes

Number of elements in the document. Browser engineers recommend pages contain fewer than ~1,500 DOM nodes. The sweet spot is a tree depth < 32 elements and fewer than 60 children/parent element. A large DOM can increase memory usage, cause longer style calculations, and produce costly layout reflows. Source: Lighthouse - Learn more
  • Total DOM Nodes
    367
    target < 1,500 nodes
  • DOM Depth
    13
    target < 32
  • Maximum Children
    19
    target < 60 nodes

Compressed ImagesPotential savings of 328 KB

The image compression check just looks at photo images and makes sure the quality isn't set too high. Images can usually be compressed pretty substantially without any noticeable reduction in visual quality. Source: Lighthouse - Learn more

ThumbnailsURLOriginalPotential Savings
https://emptystate.com/wp-content/uploads/2021/05/Branch-ES78-Large-13-1280x854.jpg278 KB189 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/Ball-Hoop-ES19-S010-Large-4-1280x854.jpg215 KB138 KB (63%)
...

Uses Progressive JPEGsScore: 0 %

A progressive JPEG is image created using the JPEG suite of compression algorithms that will 'fade in' in successive waves of lines until the entire image has completely arrived. They show the entire image right away, looking slightly pixelated until the image data is fully loaded. Source: WebPagetest - Learn more

Properly Sized ImagesPotential savings of 57 KB

Serve images that are appropriately-sized to save cellular data and improve load time. Source: Lighthouse - Learn more

Offscreen images

Consider lazy-loading offscreen images to improve page load speed and time to interactive. Source: Lighthouse - Learn more

First impression

Eliminates render-blocking JavaScript and CSS in above-the-fold content

This rule triggers when detecting that your HTML references a blocking external resource / file in the above-the-fold portion of your page. Source: PageSpeed Insights - Learn more about JS - Learn more about CSS

Potential savings of 0 ms

URL
https://emptystate.com/wp-content/themes/emptystate-theme/dist/css/style.min.css<\/span>
...

Improves server response time

This rule triggers when detecting that your server response time is above 200 ms. Server response time measures how long it takes to load the necessary HTML to begin rendering the page from your server, subtracting out the network latency between Google and your server. Source: PageSpeed Insights - Learn more

Avoids landing page redirects

Redirects trigger an additional HTTP request-response cycle and delay page rendering. In the best case, each redirect will add a single round trip (HTTP request-response), and in the worst it may result in multiple additional roundtrips to perform the DNS lookup, TCP handshake, and TLS negotiation in addition to the additional HTTP request-response cycle. As a result, you should minimize use of redirects to improve site performance. Source: PageSpeed Insights - Learn more

Usability 67/100 Industry: Promotional

Brand logo linked to homepageNot applicable

Fails if doesn't have a logo or clicking it doesn't lead you to homepage.

No ending trailing paths

Fails if doesn't provide at least one of the following: main navigation options on footers, fixed or 'smart' headers/burger-icon, Back to top or close buttons.

Active section is highlighted in navigation menus

Fails if current section or page is not visually highlighted in navigation menus, except for internal section pages where it's accepted not to highlight the parent section.

Listing/overview pages with many items implements deferred loading techniques

Fails if the website doesn't provide at least one of the following: lazy-loading, load more buttons, paginator. Doesn't provide a clear reference about the total amount of items in a portfolio or blog page.

Prevent layout shiftings when loading media. Set width and height attributes on both <img> and <video> tags

Fails if transitioning from placeholders to final images changes the rendered size of the element as media loads. Not using a solid color placeholder occupying the same dimensions as the target image, or techniques such as LQIP or SQIP that hint at the content of a media item before it loads. These changes can be disorienting for users and trigger expensive DOM layout operations that consume system resources and contribute to jank.

Carousels are generally avoided (but they are acceptable if they are well implemented)

Fails if any of the following are seen: carousels auto-rotate, text is not legible, swipe is not supported, next images do not load within 1 second of swipe.

Make it easy to contact you

Fails if the website does not provide all of the following: easy to find contact options, tap to call, mailto on emails, addresses do not link to gMaps, except being embedded.

The most appropriate keyboard for the input type is provided firstNot applicable

Fails if most helpful keyboard not provided, i.e. input types text, tel, email, password, capitalization when appropiate, etc.

The website supports autofill for all form fields and the fields are tagged for the appropriate information from autofillNot applicable

Fails if fields are not tagged for efficient browser-based autofill, making users enter data that is already known either by the website or the OS. Not filling a standard field or filling fields with the wrong content, i.e. puts house number and street name into the same field when there are separate fields for each.

All mistakes made in forms are clearly highlighted in real time, and instructions for correct completion are provided in real timeNot applicable

Fails if mistakes and guidance for correct completion are not highlighted in real time and/or error messages are ambiguous or unfriendly.

PWA / Best Practices 73/100

Avoids Application Cache

Application Cache is deprecated. Source: Lighthouse - Learn more

Avoids WebSQL DB

Web SQL is deprecated. Consider using IndexedDB instead. Source: Lighthouse - Learn more

Avoids requesting the geolocation permission on page load

Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to user gestures instead. Source: Lighthouse - Learn more

robots.txt is valid

If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. Source: Lighthouse

Avoids requesting the notification permission on page load

Users are mistrustful of or confused by sites that request to send notifications without context. Consider tying the request to user gestures instead. Source: Lighthouse - Learn more

Avoids deprecated APIs

Deprecated APIs will eventually be removed from the browser. Source: Lighthouse - Learn more

Allows to paste into password input fields

The main reason why password pasting improves security is because it helps to reduce password overload. Source: Lighthouse - Learn more

Registers a Service Worker

The service worker is the technology that enables your app to use many Progressive Web App features, such as offline, add to homescreen, and push notifications. Source: Lighthouse - Learn more

Responds with a 200 when offline

If you're building a Progressive Web App, consider using a service worker so that your app can work offline. Source: Lighthouse - Learn more

Uses HTTPS

All sites should be protected with HTTPS, even ones that don't handle sensitive data. HTTPS prevents intruders from tampering with or passively listening in on the communications between your app and your users, and is a prerequisite for HTTP/2 and many new web platform APIs. Source: Lighthouse - Learn more

URL
http://emptystate.com/
...

Redirects HTTP traffic to HTTPS

If you've already set up HTTPS, make sure that you redirect all HTTP traffic to HTTPS. Source: Lighthouse - Learn more

Uses HTTP/2 for its own resources1 request not served via HTTP/2

HTTP/2 offers many benefits over HTTP/1.1, including binary headers, multiplexing, and server push. Source: Lighthouse - Learn more

Uses passive listeners to improve scrolling performance

Mark your touch and wheel event listeners as `passive` to improve your page's scroll performance. Source: Lighthouse - Learn more

Avoid using document.write()

For users on slow connections, external scripts dynamically injected via document.write() can delay page load by tens of seconds. Source: Lighthouse - Learn more

Manifest's short_name won't be truncated when displayed on homescreen

Make your app's short_name fewer than 12 characters to ensure that it's not truncated on homescreens. Source: Lighthouse - Learn more

Configured for a custom splash screen

A default splash screen will be constructed for your app, but satisfying these requirements guarantee a high-quality splash screen that transitions the user from tapping the home screen icon to your app's first paint. Source: Lighthouse - Learn more

User can be prompted to Install the Web App

Browsers can proactively prompt users to add your app to their homescreen, which can lead to higher engagement. Source: Lighthouse - Learn more

Mobile Friendliness 100/100

Content is not blocked for zoom/scale

The `[user-scalable="no"]` parameter is not present in the `<meta name="viewport">` element and the `[maximum-scale]` parameter is not less than 2.Source: Lighthouse - Learn more

Content is sized correctly for the viewport

If the width of your app's content doesn't match the width of the viewport, your app might not be optimized for mobile screens. Source: Lighthouse - Learn more

Uses legible font sizes

Font sizes less than 12px are too small to be legible and require mobile visitors to “pinch to zoom” in order to read. Strive to have >60% of page text ≥12px. Source: Lighthouse - Learn more

Color Contrast is satisfactory

Low-contrast text is difficult or impossible for many users to read. Background and foreground colors should have enough contrast ratio to guarantee readability. Source: Lighthouse - Learn more

Performance 73/100

Speed Index

  • Speed Index
    5133.71
    target < 4500 ms

Speed Index is a page load performance metric that shows you how quickly the contents of a page are visibly populated. The lower the score, the better. Source: Lighthouse - Learn more

Document complete

  • Time
    96.6
    seconds
  • Resources
    113
    requests
  • Bytes in
    7
    MB

These metrics are collected from the initial request until the browser considers the page loaded (JavaScript onLoad event). This usually happens after all of the image content has loaded but may not include content that is triggered by javascript execution.

Fully load

  • Time
    104
    seconds
  • Resources
    114
    requests
  • Bytes in
    7
    MB

These metrics are collected from the initial request until 2 seconds of no network activity after Document Complete (JavaScript onLoad event). This will usually include any activity that is triggered by javascript after the main page loads.

Assets by Domain

Requests

  • emptystate.com

  • unpkg.com

  • cdnjs.cloudflare.com

  • ajax.googleapis.com

Bytes downloaded

  • emptystate.com

  • cdnjs.cloudflare.com

  • unpkg.com

  • ajax.googleapis.com

Assets by Mime-Type

Requests

  • html

  • js

  • css

  • image

  • font

  • video

  • other

Bytes downloaded

  • html

  • js

  • css

  • image

  • font

  • video

  • other

Speed

Load time96601 ms

Also known as the document complete time, it’s the time from the initial request until the browser load event. It can vary based on server location, device, browser, and third-party apps. Source: WebPagetest - Learn more

Page load is fast enough on 3G

A fast page load over a 3G network ensures a good mobile user experience. Source: Lighthouse - Learn more

First byte1449 ms

The time from the initial request to the first byte of the response. Source: WebPagetest - Learn more

First Contentful Paint3397.468 ms

First contentful paint marks the time at which the first text/image is painted. Source: Lighthouse - Learn more

First meaningful paint3397.468 ms

First meaningful paint measures when the primary content of a page is visible. It's essentially the paint after which the biggest above-the-fold layout change has happened, and web fonts have loaded. Source: Lighthouse - Learn more

Estimated Input Latency12 ms (target < 50 ms)

The score above is an estimate of how long your app takes to respond to user input, in milliseconds. There is a 90% probability that a user encounters this amount of latency, or less. 10% of the time a user can expect additional latency. If your score is higher than Lighthouse's target score (< 50ms), users may perceive your app as laggy. Source: Lighthouse - Learn more

Uses persistent connections (keep alive)Score: 100%

Closing connections are a missed opportunity for performance enhancement: additional round-trips between the user and the server to initiate a connection is redundant and time-consuming. Keep-Alive measures the effectiveness of connection reuse. The purpose of this grade is to evaluate the extent to which requests are inefficiently reopening connections. Source: WebPagetest - Learn more

First CPU Idle3397.47 ms

First CPU Idle marks the first time at which the page's main thread is quiet enough to handle input. Source: Lighthouse - Learn more

Time to Interactive3397.47 ms

Interactive marks the time at which the page is fully interactive. Source: Lighthouse - Learn more

Page weight

Uses compression (gzip, zopfli, deflate, brotli)Score: 100%

This rule triggers when detecting that compressible resources were served without gzip compression. Source: WebPagetest - Learn more

Uses a CDN for all static assetsScore: 100%

Each request for a piece of content to the web server has to travel from the user's browser all the way to the server and back. A content delivery network (CDN) is a system for distributing resources to servers geographically closer to users. The main benefit of this is that the round-trip time is faster. The passing grade for using a CDN effectively is to have at least 80% of static resources served from a CDN. Source: WebPagetest - Learn more

Leverage browser caching

Setting an expiry date or a maximum age in the HTTP headers for static resources instructs the browser to load previously downloaded resources from local disk rather than over the network. Source: PageSpeed Insights - Learn more

Minify CSS

Minification refers to the process of removing unnecessary or redundant data in order to reduce file size without affecting how the resource is processed by the browser - e.g. code comments and formatting, removing unused code, using shorter variable and function names, and so on. Source: PageSpeed Insights - Learn more

Minify JavaScript

Minification refers to the process of removing unnecessary or redundant data in order to reduce file size without affecting how the resource is processed by the browser - e.g. code comments and formatting, removing unused code, using shorter variable and function names, and so on. Source: PageSpeed Insights - Learn more

Potential savings of 4 KiB

URL
https://emptystate.com/wp-content/themes/emptystate-theme/dist/js/libs.min.js?ver=5.7.2<\/span> ( 51.17% )
...

Avoids an excessive DOM size313 nodes

Number of elements in the document. Browser engineers recommend pages contain fewer than ~1,500 DOM nodes. The sweet spot is a tree depth < 32 elements and fewer than 60 children/parent element. A large DOM can increase memory usage, cause longer style calculations, and produce costly layout reflows. Source: Lighthouse - Learn more
  • Total DOM Nodes
    313
    target < 1,500 nodes
  • DOM Depth
    10
    target < 32
  • Maximum Children
    19
    target < 60 nodes

Compressed ImagesPotential savings of 4130 KB

The image compression check just looks at photo images and makes sure the quality isn't set too high. Images can usually be compressed pretty substantially without any noticeable reduction in visual quality. Source: Lighthouse - Learn more

ThumbnailsURLOriginalPotential Savings
https://emptystate.com/wp-content/uploads/2020/12/IMG_0495-1-768x1152.jpg304 KB236 KB (77%)
https://emptystate.com/wp-content/uploads/2021/05/Motion-S23-05-Large-4-768x877.jpg305 KB221 KB (72%)
https://emptystate.com/wp-content/uploads/2021/05/Branch-ES78-Large-1-768x835.jpg273 KB200 KB (73%)
https://emptystate.com/wp-content/uploads/2020/12/Ball-Hoop-ES19-S010-Large-10-crop-768x875.jpg251 KB183 KB (73%)
https://emptystate.com/wp-content/uploads/2021/05/Pill-ES36-Large-6-768x1152.jpg265 KB171 KB (64%)
https://emptystate.com/wp-content/uploads/2021/05/Light-Pipe-ES58-Large8-1280x854.jpg209 KB132 KB (63%)
https://emptystate.com/wp-content/uploads/2021/05/Sabre-S06-Large-6-1-768x878.jpg178 KB122 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S012-M3-768x877.jpg138 KB95 KB (69%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S012-M1-G1-768x877.jpg128 KB91 KB (71%)
https://emptystate.com/wp-content/uploads/2021/05/ES36-S005-M2-G7-768x877.jpg105 KB74 KB (70%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S009-M3-768x877.jpg92 KB64 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES36-S004-M1-G8-768x877.jpg85 KB59 KB (70%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S011-M3-G3-768x877.jpg90 KB59 KB (65%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S010-M5-1-768x877.jpg84 KB55 KB (65%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S010-M5-768x877.jpg84 KB55 KB (65%)
https://emptystate.com/wp-content/uploads/2021/05/ES36-S003-M1-G7-768x877.jpg73 KB53 KB (71%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S010-M5-G2-768x877.jpg81 KB52 KB (64%)
https://emptystate.com/wp-content/uploads/2021/05/ES06-S007-M3-768x877.jpg78 KB51 KB (64%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S004-M3-G1-768x877.jpg72 KB50 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES36-S008-M4-G5-768x877.jpg73 KB50 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S015-M1-S1-768x877.jpg76 KB49 KB (64%)
https://emptystate.com/wp-content/uploads/2021/05/ES06-S006-M1-768x877.jpg71 KB48 KB (67%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S017-M1-S3-768x877.jpg67 KB48 KB (71%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S009-M3-G3-768x877.jpg73 KB48 KB (65%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S005-M3-768x877.jpg68 KB47 KB (69%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S006-M3-G3-768x877.jpg72 KB47 KB (65%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S008-M4-G1-768x877.jpg69 KB46 KB (66%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S005-M2-G3-768x877.jpg66 KB45 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S018-M3-S2-768x877.jpg64 KB44 KB (68%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S007-M4-G2-768x877.jpg68 KB44 KB (64%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S013-M3-S2-768x877.jpg61 KB42 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S012-M4-S1-768x877.jpg64 KB42 KB (65%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S002-M1-G2-768x877.jpg60 KB41 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES36-S009-M3-G6-768x877.jpg58 KB41 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S012-M3-768x878.jpg57 KB40 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES36-S007-M1-G4-768x877.jpg57 KB39 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S006-M5-S3-768x877.jpg56 KB39 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S017-M3-768x877.jpg58 KB38 KB (66%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S003-M2-G3-768x877.jpg56 KB38 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S007-M4-768x877.jpg58 KB38 KB (65%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S014-M4-S3-768x877.jpg56 KB38 KB (67%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S001-M1-G1-1-768x877.jpg53 KB38 KB (70%)
https://emptystate.com/wp-content/uploads/2021/05/ES36-S001-M1-G4-768x877.jpg54 KB37 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S006-M6-768x877.jpg56 KB37 KB (66%)
https://emptystate.com/wp-content/uploads/2020/12/ES19-S013-M2-G1-768x877.jpg51 KB36 KB (71%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S006-M5-768x877.jpg56 KB36 KB (65%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S016-M3-S132-768x877.jpg53 KB36 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S010-M4-S3-768x877.jpg52 KB36 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES36-S006-M2-G8-768x877.jpg50 KB35 KB (70%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S007-M5-S2-768x877.jpg51 KB35 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/ES06-S008-M5-768x877.jpg64 KB35 KB (55%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S009-M1-S2-768x877.jpg50 KB35 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S004-M5-768x877.jpg52 KB34 KB (66%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S005-M5-S2-768x877.jpg49 KB34 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S011-M2-S2-768x877.jpg48 KB34 KB (70%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S008-M2-768x878.jpg44 KB32 KB (72%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S015-M1-768x877.jpg46 KB32 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S003-M1-768x877.jpg45 KB31 KB (70%)
https://emptystate.com/wp-content/uploads/2021/05/ES06-S005-M3-768x877.jpg47 KB31 KB (66%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S016-M4-768x877.jpg47 KB30 KB (64%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S008-M5-S1-768x877.jpg45 KB30 KB (66%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S001-M3-768x877.jpg42 KB29 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S009-M6-768x878.jpg40 KB27 KB (67%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S014-M5-768x877.jpg39 KB26 KB (66%)
https://emptystate.com/wp-content/uploads/2021/05/ES06-S004-M3-768x877.jpg39 KB25 KB (63%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S004-M3-768x878.jpg35 KB25 KB (70%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S003-M3-S3-768x877.jpg34 KB24 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S002-M4-768x877.jpg35 KB24 KB (67%)
https://emptystate.com/wp-content/uploads/2021/05/ES78-S013-M4-768x877.jpg35 KB23 KB (65%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S002-M1-S2-768x877.jpg33 KB23 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S011-M4-768x878.jpg36 KB22 KB (61%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S004-M5-S3-768x877.jpg32 KB22 KB (69%)
https://emptystate.com/wp-content/uploads/2021/05/ES58-S001-M5-S1-768x877.jpg31 KB20 KB (66%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S010-M5-768x878.jpg30 KB19 KB (63%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S001-M3-768x878.jpg27 KB19 KB (70%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S007-M4-768x878.jpg31 KB19 KB (62%)
https://emptystate.com/wp-content/uploads/2021/05/ES06-S001-M2-768x877.jpg26 KB18 KB (70%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S006-M5-768x878.jpg26 KB17 KB (65%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S003-M5-768x878.jpg21 KB14 KB (68%)
https://emptystate.com/wp-content/uploads/2021/05/ES23-S002-M4-768x878.jpg21 KB14 KB (67%)
https://emptystate.com/wp-content/uploads/2021/05/ES06-S003-M5-768x877.jpg20 KB11 KB (57%)
https://emptystate.com/wp-content/uploads/2021/05/ES06-S002-M4-768x877.jpg19 KB11 KB (56%)
...

Uses Progressive JPEGsScore: 0 %

A progressive JPEG is image created using the JPEG suite of compression algorithms that will 'fade in' in successive waves of lines until the entire image has completely arrived. They show the entire image right away, looking slightly pixelated until the image data is fully loaded. Source: WebPagetest - Learn more

Properly Sized ImagesPotential savings of 57 KB

Serve images that are appropriately-sized to save cellular data and improve load time. Source: Lighthouse - Learn more

Offscreen images

Consider lazy-loading offscreen images to improve page load speed and time to interactive. Source: Lighthouse - Learn more

First impression

Eliminates render-blocking JavaScript and CSS in above-the-fold content

This rule triggers when detecting that your HTML references a blocking external resource / file in the above-the-fold portion of your page. Source: PageSpeed Insights - Learn more about JS - Learn more about CSS

Potential savings of 0 ms

URL
https://emptystate.com/wp-content/themes/emptystate-theme/dist/css/style.min.css<\/span>
...

Improves server response time

This rule triggers when detecting that your server response time is above 200 ms. Server response time measures how long it takes to load the necessary HTML to begin rendering the page from your server, subtracting out the network latency between Google and your server. Source: PageSpeed Insights - Learn more

Avoids landing page redirects

Redirects trigger an additional HTTP request-response cycle and delay page rendering. In the best case, each redirect will add a single round trip (HTTP request-response), and in the worst it may result in multiple additional roundtrips to perform the DNS lookup, TCP handshake, and TLS negotiation in addition to the additional HTTP request-response cycle. As a result, you should minimize use of redirects to improve site performance. Source: PageSpeed Insights - Learn more

Usability 67/100 Industry: Promotional

Brand logo linked to homepageNot applicable

Fails if doesn't have a logo or clicking it doesn't lead you to homepage.

No ending trailing paths

Fails if doesn't provide at least one of the following: main navigation options on footers, fixed or 'smart' headers/burger-icon, Back to top or close buttons.

Active section is highlighted in navigation menus

Fails if current section or page is not visually highlighted in navigation menus, except for internal section pages where it's accepted not to highlight the parent section.

Listing/overview pages with many items implements deferred loading techniques

Fails if the website doesn't provide at least one of the following: lazy-loading, load more buttons, paginator. Doesn't provide a clear reference about the total amount of items in a portfolio or blog page.

Prevent layout shiftings when loading media. Set width and height attributes on both <img> and <video> tags

Fails if transitioning from placeholders to final images changes the rendered size of the element as media loads. Not using a solid color placeholder occupying the same dimensions as the target image, or techniques such as LQIP or SQIP that hint at the content of a media item before it loads. These changes can be disorienting for users and trigger expensive DOM layout operations that consume system resources and contribute to jank.

Carousels are generally avoided (but they are acceptable if they are well implemented)

Fails if any of the following are seen: carousels auto-rotate, text is not legible, swipe is not supported, next images do not load within 1 second of swipe.

Make it easy to contact you

Fails if the website does not provide all of the following: easy to find contact options, tap to call, mailto on emails, addresses do not link to gMaps, except being embedded.

The most appropriate keyboard for the input type is provided firstNot applicable

Fails if most helpful keyboard not provided, i.e. input types text, tel, email, password, capitalization when appropiate, etc.

The website supports autofill for all form fields and the fields are tagged for the appropriate information from autofillNot applicable

Fails if fields are not tagged for efficient browser-based autofill, making users enter data that is already known either by the website or the OS. Not filling a standard field or filling fields with the wrong content, i.e. puts house number and street name into the same field when there are separate fields for each.

All mistakes made in forms are clearly highlighted in real time, and instructions for correct completion are provided in real timeNot applicable

Fails if mistakes and guidance for correct completion are not highlighted in real time and/or error messages are ambiguous or unfriendly.

PWA / Best Practices 73/100

Avoids Application Cache

Application Cache is deprecated. Source: Lighthouse - Learn more

Avoids WebSQL DB

Web SQL is deprecated. Consider using IndexedDB instead. Source: Lighthouse - Learn more

Avoids requesting the geolocation permission on page load

Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to user gestures instead. Source: Lighthouse - Learn more

robots.txt is valid

If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. Source: Lighthouse

Avoids requesting the notification permission on page load

Users are mistrustful of or confused by sites that request to send notifications without context. Consider tying the request to user gestures instead. Source: Lighthouse - Learn more

Avoids deprecated APIs

Deprecated APIs will eventually be removed from the browser. Source: Lighthouse - Learn more

Allows to paste into password input fields

The main reason why password pasting improves security is because it helps to reduce password overload. Source: Lighthouse - Learn more

Registers a Service Worker

The service worker is the technology that enables your app to use many Progressive Web App features, such as offline, add to homescreen, and push notifications. Source: Lighthouse - Learn more

Responds with a 200 when offline

If you're building a Progressive Web App, consider using a service worker so that your app can work offline. Source: Lighthouse - Learn more

Uses HTTPS

All sites should be protected with HTTPS, even ones that don't handle sensitive data. HTTPS prevents intruders from tampering with or passively listening in on the communications between your app and your users, and is a prerequisite for HTTP/2 and many new web platform APIs. Source: Lighthouse - Learn more

Redirects HTTP traffic to HTTPS

If you've already set up HTTPS, make sure that you redirect all HTTP traffic to HTTPS. Source: Lighthouse - Learn more

Uses HTTP/2 for its own resources

HTTP/2 offers many benefits over HTTP/1.1, including binary headers, multiplexing, and server push. Source: Lighthouse - Learn more

Uses passive listeners to improve scrolling performance

Mark your touch and wheel event listeners as `passive` to improve your page's scroll performance. Source: Lighthouse - Learn more

Avoid using document.write()

For users on slow connections, external scripts dynamically injected via document.write() can delay page load by tens of seconds. Source: Lighthouse - Learn more

Manifest's short_name won't be truncated when displayed on homescreen

Make your app's short_name fewer than 12 characters to ensure that it's not truncated on homescreens. Source: Lighthouse - Learn more

Configured for a custom splash screen

A default splash screen will be constructed for your app, but satisfying these requirements guarantee a high-quality splash screen that transitions the user from tapping the home screen icon to your app's first paint. Source: Lighthouse - Learn more

User can be prompted to Install the Web App

Browsers can proactively prompt users to add your app to their homescreen, which can lead to higher engagement. Source: Lighthouse - Learn more

Mobile Friendliness 67/100

Content is not blocked for zoom/scale

The `[user-scalable="no"]` parameter is not present in the `<meta name="viewport">` element and the `[maximum-scale]` parameter is not less than 2.Source: Lighthouse - Learn more

Content is sized correctly for the viewport

If the width of your app's content doesn't match the width of the viewport, your app might not be optimized for mobile screens. Source: Lighthouse - Learn more

Uses legible font sizes

Font sizes less than 12px are too small to be legible and require mobile visitors to “pinch to zoom” in order to read. Strive to have >60% of page text ≥12px. Source: Lighthouse - Learn more

Color Contrast is satisfactory

Low-contrast text is difficult or impossible for many users to read. Background and foreground colors should have enough contrast ratio to guarantee readability. Source: Lighthouse - Learn more

Failing Elements

ImpactSnippetTargetFailure Summary
serious<span class="state-code__description"> Singular pendant </span>.states-grid__item:nth-child(1) > a[target="_blank"] > .state-code--caption > .state-code__descriptionFix any of the following: Element has insufficient color contrast of 3.2 (foreground color: #898988, background color: #f4f4f4, font size: 7.5pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<span class="state-code__description"> Cluster of three </span>.states-grid__item:nth-child(2) > a[target="_blank"] > .state-code--caption > .state-code__descriptionFix any of the following: Element has insufficient color contrast of 3.2 (foreground color: #898988, background color: #f4f4f4, font size: 7.5pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<span class="state-code__description"> Cluster of five </span>.states-grid__item:nth-child(3) > a[target="_blank"] > .state-code--caption > .state-code__descriptionFix any of the following: Element has insufficient color contrast of 3.2 (foreground color: #898988, background color: #f4f4f4, font size: 7.5pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<span class="state-code__description"> Cluster of seven </span>.states-grid__item:nth-child(4) > a[target="_blank"] > .state-code--caption > .state-code__descriptionFix any of the following: Element has insufficient color contrast of 3.2 (foreground color: #898988, background color: #f4f4f4, font size: 7.5pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<span class="state-code__description"> Row of two </span>.states-grid__item:nth-child(6) > a[target="_blank"] > .state-code--caption > .state-code__descriptionFix any of the following: Element has insufficient color contrast of 3.2 (foreground color: #898988, background color: #f4f4f4, font size: 7.5pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<span class="state-code__description"> Row of three </span>.states-grid__item:nth-child(7) > a[target="_blank"] > .state-code--caption > .state-code__descriptionFix any of the following: Element has insufficient color contrast of 3.2 (foreground color: #898988, background color: #f4f4f4, font size: 7.5pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<span class="state-code__description"> Row of five </span>.states-grid__item:nth-child(8) > a[target="_blank"] > .state-code--caption > .state-code__descriptionFix any of the following: Element has insufficient color contrast of 3.2 (foreground color: #898988, background color: #f4f4f4, font size: 7.5pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<span class="state-code__description"> Cluster of eight </span>.states-grid__item:nth-child(9) > a[target="_blank"] > .state-code--caption > .state-code__descriptionFix any of the following: Element has insufficient color contrast of 3.2 (foreground color: #898988, background color: #f4f4f4, font size: 7.5pt, font weight: normal). Expected contrast ratio of 4.5:1
...

Performance 76/100

Speed Index

  • Speed Index
    3709.84
    target < 4500 ms

Speed Index is a page load performance metric that shows you how quickly the contents of a page are visibly populated. The lower the score, the better. Source: Lighthouse - Learn more

Document complete

  • Time
    85.1
    seconds
  • Resources
    59
    requests
  • Bytes in
    14.8
    MB

These metrics are collected from the initial request until the browser considers the page loaded (JavaScript onLoad event). This usually happens after all of the image content has loaded but may not include content that is triggered by javascript execution.

Fully load

  • Time
    92.6
    seconds
  • Resources
    61
    requests
  • Bytes in
    14.8
    MB

These metrics are collected from the initial request until 2 seconds of no network activity after Document Complete (JavaScript onLoad event). This will usually include any activity that is triggered by javascript after the main page loads.

Assets by Domain

Requests

  • emptystate.com

  • unpkg.com

  • cdnjs.cloudflare.com

  • www.googletagmanager.com

  • www.google-analytics.com

  • ajax.googleapis.com

Bytes downloaded

  • emptystate.com

  • cdnjs.cloudflare.com

  • www.googletagmanager.com

  • unpkg.com

  • ajax.googleapis.com

Assets by Mime-Type

Requests

  • html

  • js

  • css

  • image

  • font

  • video

  • other

Bytes downloaded

  • html

  • js

  • css

  • image

  • font

  • video

  • other

Speed

Load time85147 ms

Also known as the document complete time, it’s the time from the initial request until the browser load event. It can vary based on server location, device, browser, and third-party apps. Source: WebPagetest - Learn more

Page load is fast enough on 3G

A fast page load over a 3G network ensures a good mobile user experience. Source: Lighthouse - Learn more

First byte1442 ms

The time from the initial request to the first byte of the response. Source: WebPagetest - Learn more

First Contentful Paint2741.537 ms

First contentful paint marks the time at which the first text/image is painted. Source: Lighthouse - Learn more

First meaningful paint2741.537 ms

First meaningful paint measures when the primary content of a page is visible. It's essentially the paint after which the biggest above-the-fold layout change has happened, and web fonts have loaded. Source: Lighthouse - Learn more

Estimated Input Latency12 ms (target < 50 ms)

The score above is an estimate of how long your app takes to respond to user input, in milliseconds. There is a 90% probability that a user encounters this amount of latency, or less. 10% of the time a user can expect additional latency. If your score is higher than Lighthouse's target score (< 50ms), users may perceive your app as laggy. Source: Lighthouse - Learn more

Uses persistent connections (keep alive)Score: 100%

Closing connections are a missed opportunity for performance enhancement: additional round-trips between the user and the server to initiate a connection is redundant and time-consuming. Keep-Alive measures the effectiveness of connection reuse. The purpose of this grade is to evaluate the extent to which requests are inefficiently reopening connections. Source: WebPagetest - Learn more

First CPU Idle2741.54 ms

First CPU Idle marks the first time at which the page's main thread is quiet enough to handle input. Source: Lighthouse - Learn more

Time to Interactive2741.54 ms

Interactive marks the time at which the page is fully interactive. Source: Lighthouse - Learn more

Page weight

Uses compression (gzip, zopfli, deflate, brotli)Score: 100%

This rule triggers when detecting that compressible resources were served without gzip compression. Source: WebPagetest - Learn more

Uses a CDN for all static assetsScore: 98%

Each request for a piece of content to the web server has to travel from the user's browser all the way to the server and back. A content delivery network (CDN) is a system for distributing resources to servers geographically closer to users. The main benefit of this is that the round-trip time is faster. The passing grade for using a CDN effectively is to have at least 80% of static resources served from a CDN. Source: WebPagetest - Learn more

Leverage browser caching

Setting an expiry date or a maximum age in the HTTP headers for static resources instructs the browser to load previously downloaded resources from local disk rather than over the network. Source: PageSpeed Insights - Learn more

Minify CSS

Minification refers to the process of removing unnecessary or redundant data in order to reduce file size without affecting how the resource is processed by the browser - e.g. code comments and formatting, removing unused code, using shorter variable and function names, and so on. Source: PageSpeed Insights - Learn more

Minify JavaScript

Minification refers to the process of removing unnecessary or redundant data in order to reduce file size without affecting how the resource is processed by the browser - e.g. code comments and formatting, removing unused code, using shorter variable and function names, and so on. Source: PageSpeed Insights - Learn more

Potential savings of 4 KiB

URL
https://emptystate.com/wp-content/themes/emptystate-theme/dist/js/libs.min.js?ver=5.7.2<\/span> ( 51.17% )
...

Avoids an excessive DOM size580 nodes

Number of elements in the document. Browser engineers recommend pages contain fewer than ~1,500 DOM nodes. The sweet spot is a tree depth < 32 elements and fewer than 60 children/parent element. A large DOM can increase memory usage, cause longer style calculations, and produce costly layout reflows. Source: Lighthouse - Learn more
  • Total DOM Nodes
    580
    target < 1,500 nodes
  • DOM Depth
    12
    target < 32
  • Maximum Children
    19
    target < 60 nodes

Compressed ImagesPotential savings of 7521 KB

The image compression check just looks at photo images and makes sure the quality isn't set too high. Images can usually be compressed pretty substantially without any noticeable reduction in visual quality. Source: Lighthouse - Learn more

ThumbnailsURLOriginalPotential Savings
https://emptystate.com/wp-content/uploads/2021/05/IMG_0647-1-1280x1920.jpg1084 KB860 KB (79%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0629-1-1280x1920.jpg998 KB851 KB (85%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0681-1-2-1280x1920.jpg1001 KB833 KB (83%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0578-1-1280x1920.jpg894 KB724 KB (80%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0672-1-1280x1920.jpg817 KB688 KB (84%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0623-1-1280x853.jpg489 KB408 KB (83%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0623-1-copy-1280x853.jpg489 KB408 KB (83%)
https://emptystate.com/wp-content/uploads/2021/05/Pill-ES36-Large-6-1280x1920.jpg618 KB390 KB (63%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0571-1_final-1280x853.jpg435 KB346 KB (79%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0571-1_final-1-1280x853.jpg435 KB346 KB (79%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0571-1_final-1-copy-1280x853.jpg435 KB346 KB (79%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0647-1-copy-768x1152.jpg406 KB317 KB (78%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0612-1-1280x853.jpg353 KB287 KB (81%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0578-1-1-768x1152.jpg325 KB259 KB (79%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0610-1-1280x853.jpg285 KB233 KB (81%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0612-1-copy-768x512.jpg150 KB120 KB (80%)
https://emptystate.com/wp-content/uploads/2021/05/IMG_0610-1-1-768x512.jpg120 KB97 KB (81%)
...

Uses Progressive JPEGsScore: 0 %

A progressive JPEG is image created using the JPEG suite of compression algorithms that will 'fade in' in successive waves of lines until the entire image has completely arrived. They show the entire image right away, looking slightly pixelated until the image data is fully loaded. Source: WebPagetest - Learn more

Properly Sized ImagesPotential savings of 57 KB

Serve images that are appropriately-sized to save cellular data and improve load time. Source: Lighthouse - Learn more

Offscreen images

Consider lazy-loading offscreen images to improve page load speed and time to interactive. Source: Lighthouse - Learn more

First impression

Eliminates render-blocking JavaScript and CSS in above-the-fold content

This rule triggers when detecting that your HTML references a blocking external resource / file in the above-the-fold portion of your page. Source: PageSpeed Insights - Learn more about JS - Learn more about CSS

Potential savings of 0 ms

URL
https://emptystate.com/wp-content/themes/emptystate-theme/dist/css/style.min.css<\/span>
...

Improves server response time

This rule triggers when detecting that your server response time is above 200 ms. Server response time measures how long it takes to load the necessary HTML to begin rendering the page from your server, subtracting out the network latency between Google and your server. Source: PageSpeed Insights - Learn more

Avoids landing page redirects

Redirects trigger an additional HTTP request-response cycle and delay page rendering. In the best case, each redirect will add a single round trip (HTTP request-response), and in the worst it may result in multiple additional roundtrips to perform the DNS lookup, TCP handshake, and TLS negotiation in addition to the additional HTTP request-response cycle. As a result, you should minimize use of redirects to improve site performance. Source: PageSpeed Insights - Learn more

Usability 67/100 Industry: Promotional

Brand logo linked to homepageNot applicable

Fails if doesn't have a logo or clicking it doesn't lead you to homepage.

No ending trailing paths

Fails if doesn't provide at least one of the following: main navigation options on footers, fixed or 'smart' headers/burger-icon, Back to top or close buttons.

Active section is highlighted in navigation menus

Fails if current section or page is not visually highlighted in navigation menus, except for internal section pages where it's accepted not to highlight the parent section.

Listing/overview pages with many items implements deferred loading techniques

Fails if the website doesn't provide at least one of the following: lazy-loading, load more buttons, paginator. Doesn't provide a clear reference about the total amount of items in a portfolio or blog page.

Prevent layout shiftings when loading media. Set width and height attributes on both <img> and <video> tags

Fails if transitioning from placeholders to final images changes the rendered size of the element as media loads. Not using a solid color placeholder occupying the same dimensions as the target image, or techniques such as LQIP or SQIP that hint at the content of a media item before it loads. These changes can be disorienting for users and trigger expensive DOM layout operations that consume system resources and contribute to jank.

Carousels are generally avoided (but they are acceptable if they are well implemented)

Fails if any of the following are seen: carousels auto-rotate, text is not legible, swipe is not supported, next images do not load within 1 second of swipe.

Make it easy to contact you

Fails if the website does not provide all of the following: easy to find contact options, tap to call, mailto on emails, addresses do not link to gMaps, except being embedded.

The most appropriate keyboard for the input type is provided firstNot applicable

Fails if most helpful keyboard not provided, i.e. input types text, tel, email, password, capitalization when appropiate, etc.

The website supports autofill for all form fields and the fields are tagged for the appropriate information from autofillNot applicable

Fails if fields are not tagged for efficient browser-based autofill, making users enter data that is already known either by the website or the OS. Not filling a standard field or filling fields with the wrong content, i.e. puts house number and street name into the same field when there are separate fields for each.

All mistakes made in forms are clearly highlighted in real time, and instructions for correct completion are provided in real timeNot applicable

Fails if mistakes and guidance for correct completion are not highlighted in real time and/or error messages are ambiguous or unfriendly.

PWA / Best Practices 73/100

Avoids Application Cache

Application Cache is deprecated. Source: Lighthouse - Learn more

Avoids WebSQL DB

Web SQL is deprecated. Consider using IndexedDB instead. Source: Lighthouse - Learn more

Avoids requesting the geolocation permission on page load

Users are mistrustful of or confused by sites that request their location without context. Consider tying the request to user gestures instead. Source: Lighthouse - Learn more

robots.txt is valid

If your robots.txt file is malformed, crawlers may not be able to understand how you want your website to be crawled or indexed. Source: Lighthouse

Avoids requesting the notification permission on page load

Users are mistrustful of or confused by sites that request to send notifications without context. Consider tying the request to user gestures instead. Source: Lighthouse - Learn more

Avoids deprecated APIs

Deprecated APIs will eventually be removed from the browser. Source: Lighthouse - Learn more

Allows to paste into password input fields

The main reason why password pasting improves security is because it helps to reduce password overload. Source: Lighthouse - Learn more

Registers a Service Worker

The service worker is the technology that enables your app to use many Progressive Web App features, such as offline, add to homescreen, and push notifications. Source: Lighthouse - Learn more

Responds with a 200 when offline

If you're building a Progressive Web App, consider using a service worker so that your app can work offline. Source: Lighthouse - Learn more

Uses HTTPS

All sites should be protected with HTTPS, even ones that don't handle sensitive data. HTTPS prevents intruders from tampering with or passively listening in on the communications between your app and your users, and is a prerequisite for HTTP/2 and many new web platform APIs. Source: Lighthouse - Learn more

Redirects HTTP traffic to HTTPS

If you've already set up HTTPS, make sure that you redirect all HTTP traffic to HTTPS. Source: Lighthouse - Learn more

Uses HTTP/2 for its own resources

HTTP/2 offers many benefits over HTTP/1.1, including binary headers, multiplexing, and server push. Source: Lighthouse - Learn more

Uses passive listeners to improve scrolling performance

Mark your touch and wheel event listeners as `passive` to improve your page's scroll performance. Source: Lighthouse - Learn more

Avoid using document.write()

For users on slow connections, external scripts dynamically injected via document.write() can delay page load by tens of seconds. Source: Lighthouse - Learn more

Manifest's short_name won't be truncated when displayed on homescreen

Make your app's short_name fewer than 12 characters to ensure that it's not truncated on homescreens. Source: Lighthouse - Learn more

Configured for a custom splash screen

A default splash screen will be constructed for your app, but satisfying these requirements guarantee a high-quality splash screen that transitions the user from tapping the home screen icon to your app's first paint. Source: Lighthouse - Learn more

User can be prompted to Install the Web App

Browsers can proactively prompt users to add your app to their homescreen, which can lead to higher engagement. Source: Lighthouse - Learn more
Report created on Jul 07, 2021, 11:04 AM GMT+0 in 15 min.

This report was built manually by Awwwards experts taking care personally of every detail using several Google and 3rd-party audit tools and services for metrics, web performance optimization and best practices for mobile design and development.

Loading time vary depending on network, device, server, site design, and implementation.

These are the environments used to create this report:

Webpagetest Test Location Virginia USA - EC2
Browser Chrome - Emulated Motorola G (gen 4)
Connection Mobile 3G (1.6 Mbps / 768 Kbps 300ms RTT)
Number of Runs 1
User Agent Default
Lighthouse User agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
Device Emulation Emulated Nexus 5X
Network Throttling 150ms TCP RTT, 1,638.4 Kbps throughput (Simulated)
CPU Throttling 4x slowdown (Simulated)
PageSpeed Insights EnvironmentMobile