GearMoose Shop

By FHOKE (United Kingdom)
Find out more about the Evaluation

Mobile Friendliness 80/100

Configures the viewport

This rule triggers when detecting that your page does not specify a viewport, or specifies a viewport that does not adapt to different devices. 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. Learn more

Size tap targets appropriately

This rule triggers when detecting that certain tap targets (e.g. buttons, links, or form fields) may be too small or too close together for a user to easily tap on a touchscreen. Learn more

The following tap targets are close to other nearby tap targets and may need additional spacing around them.

URL
The tap target <button class="search-form__btn"></button> is close to 1 other tap targets final.
The tap target <div id="home-slider-pager" class="slider__pager…r__pager--home">Slide 1…Slide 3</div> is close to 1 other tap targets final.
...

Uses legible font sizes

This rule triggers when detecting that text in the page is too small to be legible. Learn more

Color Contrast is satisfactory

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

Performance 62/100

Speed Index

  • Speed Index
    8184
    target < 4000 ms

The Speed Index measures how quickly the page contents are visually populated / painted, and computes an overall score where lower numbers are better. It is expressed in milliseconds and dependent on size of the viewport (above-the-fold contents). Learn more

Document complete

  • Time
    15.1
    seconds
  • Resources
    42
    requests
  • Bytes in
    2.4
    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
    15.5
    seconds
  • Resources
    44
    requests
  • Bytes in
    2.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

  • cdn.shopify.com

  • fonts.gstatic.com

  • shop.gearmoose.com

  • www.google-analytics.com

  • v.shopify.com

  • fonts.googleapis.com

  • ajax.googleapis.com

  • stats.g.doubleclick.net

Bytes downloaded

  • cdn.shopify.com

  • fonts.gstatic.com

  • ajax.googleapis.com

  • shop.gearmoose.com

  • www.google-analytics.com

  • fonts.googleapis.com

  • v.shopify.com

  • stats.g.doubleclick.net

Assets by Mime-Type

Requests

  • html

  • js

  • css

  • image

  • font

  • other

Bytes downloaded

  • html

  • js

  • css

  • image

  • font

  • other

Speed

Load time 15149 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. Learn more

Page load is fast enough on 3G

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

First byte 1483 ms

The time from the initial request to the first byte of the response. Learn more

First meaningful paint 4312.5 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. Learn more

Estimated Input Latency 16 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 (< 50 ms), users may perceive your app as laggy. 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. Learn more

First interactive (beta - experimental) 6245.5 ms

The first point at which necessary scripts of the page have loaded and the CPU is idle enough to handle most user input (with the possibility of slow responses as more content loads). Learn more

Consistently Interactive (beta - experimental) 6245.5 ms

The point at which most network resources have finished loading and the CPU is idle for a prolonged period. Consistently Interactive requires a minimum of 5 seconds of both main thread idle and network idle. In other words, the point where the page is complete and will respond quickly to user input. 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. Learn more

Uses a CDN for all static assets Score: 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. 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. 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. Learn more

Leverage browser caching for the following cacheable resources:

URL
https://cdn.shopify.com/s/javascripts/tricorder/trekkie.storefront.min.js?v=2017.09.05.1 (30 minutes)
https://www.google-analytics.com/analytics.js (2 hours)
...

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. Learn more

Minify HTML

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. 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. Learn more

Minify JavaScript for the following resources to reduce their size by 572B (18% reduction).

URL
Minifying https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/jquery.custom.js?8917941624576342037 could save 572B (18% reduction) after compression.
...

Avoids an excessive DOM size 401 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. Learn more
  • Total DOM Nodes
    401
    target < 1,500 nodes
  • DOM Depth
    12
    target < 32
  • Maximum Children
    34
    target < 60 nodes

Compressed Images Potential savings of 5 KB (~30 ms)

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. Learn more

ThumbnailsURLOriginalPotential Savings
https://cdn.shopify.com/s/files/1/1703/8509/products/clamshell-wallet-brown_592x592_crop_center.jpg?v=149437841937 KB5 KB (13%)
...

Uses Progressive JPEGs Score: 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. Learn more

Properly Sized Images Potential savings of 15 KB (~80 ms)

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

Offscreen images Potential savings of 78 KB (~420 ms)

Consider lazy-loading offscreen images to improve page load speed and time to interactive. 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. Learn more about JS - Learn more about CSS

Your page has 5 blocking script resources and 2 blocking CSS resources. This causes a delay in rendering your page.

URL
https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js
https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/plugins.min.js?8917941624576342037
https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/jquery.custom.js?8917941624576342037
https://cdn.shopify.com/s/assets/themes_support/shopify_common-040322ee69221c50a47032355f2f7e6cbae505567e2157d53dfb0a2e7701839c.js
https://cdn.shopify.com/s/assets/themes_support/customer_area-4beccea87758d91106a581ba89341d9b51842f6da79209258c8297239e950343.js
https://fonts.googleapis.com/css?family=Bitter:400,400i,700|Montserrat:400,700
https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/style.css?8917941624576342037
...

Prioritizes visible content

This rule triggers when detecting that additional network round trips are required to render the above-the-fold content of the page. Learn more

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. 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. Learn more

Usability 100/100

Clicking logo always leads you to homepage.

Make it easy to get back to the homepage. Use your logo as a navigation button to return to the homepage.

Key CTAs are visible on the homepage.

Keep menus short, visible and sweet.

No ending trailing paths.

Always provide navigation options on footers and/or fixed header.

Suports multi-device experiences.

Use wishlists/favouriting/saved baskets; social sharing; email; to facilitate seamless movement between devices or mobile platforms.

For category pages/search result with lots of products, make sure lazy-loading or pagination are used.

Load images asynchronously -- after the above-the-fold content is fully loaded, or conditionally, only when they appear in the browser’s viewport.

Possible to swipe to see more images or tap to enlarge them.

Allow for mobile gestures like swipe or tap to enlarge images, graphics and other contents, keeping good quality and focus.

Streamlines forms information entry.

Minimize the number of fields and autofill information wherever possible. Implement correct input types in fields, i.e. input type = email, number, etc. Make use of tabIndex to iterate through fields with the keyboard.

Forms error warnings.

Users are notified immediately when mistakes are made in a field, and guidance is provided on how to fix it.

Makes site search visible and user-friendly.

Place your site search near the top of your pages, via an open text field or clear label. Offer filters to help users get what they need from search or group results per categories. Auto-complete is available in on-site search.

Keeps your user in a single browser window.

Switching between windows on a smartphone can be troublesome, and raises the risk that visitors might not find their way back to your site. Try to keep users in one place by avoiding calls-to-action that launch new windows.

Best Practices 80/100

Avoids Application Cache

Application Cache is deprecated. Learn more

Avoids WebSQL DB

Web SQL is deprecated. Consider using IndexedDB instead. 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. Learn more

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. Learn more

Avoids deprecated APIs

Deprecated APIs will eventually be removed from the browser. 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. 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. 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. 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. Learn more

Redirects HTTP traffic to HTTPS

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

Uses HTTP/2 for its own resources 2 requests were not handled over HTTP/2

HTTP/2 offers many benefits over HTTP/1.1, including binary headers, multiplexing, and server push. 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. 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. 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. 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. 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. Learn more

Mobile Friendliness 80/100

Configures the viewport

This rule triggers when detecting that your page does not specify a viewport, or specifies a viewport that does not adapt to different devices. 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. Learn more

Size tap targets appropriately

This rule triggers when detecting that certain tap targets (e.g. buttons, links, or form fields) may be too small or too close together for a user to easily tap on a touchscreen. Learn more

Uses legible font sizes

This rule triggers when detecting that text in the page is too small to be legible. Learn more

Color Contrast is satisfactory

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

View failing elements

ImpactSnippetTargetFailure Summary
serious<a class="btn sorter__btn" href="#">.spacing-small-bottom.sorter > a.btn.sorter__btnFix any of the following: Element has insufficient color contrast of 2.4 (foreground color: #a7a7a7, background color: #ffffff, font size: 10.5pt, font weight: bold)
serious<a class="pagination__item" href="/collections/wallets?page=2">html > body > .section--large > .section.section--small > .pagination > nav > aFix any of the following: Element has insufficient color contrast of 2.84 (foreground color: #999999, background color: #ffffff, font size: 10.5pt, font weight: bold)
...

Performance 67/100

Speed Index

  • Speed Index
    4671
    target < 4000 ms

The Speed Index measures how quickly the page contents are visually populated / painted, and computes an overall score where lower numbers are better. It is expressed in milliseconds and dependent on size of the viewport (above-the-fold contents). Learn more

Document complete

  • Time
    7.2
    seconds
  • Resources
    38
    requests
  • Bytes in
    672.6
    KB

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
    7.6
    seconds
  • Resources
    40
    requests
  • Bytes in
    678.2
    KB

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

  • cdn.shopify.com

  • fonts.gstatic.com

  • shop.gearmoose.com

  • v.shopify.com

  • www.google-analytics.com

  • fonts.googleapis.com

  • ajax.googleapis.com

  • stats.g.doubleclick.net

Bytes downloaded

  • cdn.shopify.com

  • fonts.gstatic.com

  • ajax.googleapis.com

  • www.google-analytics.com

  • shop.gearmoose.com

  • v.shopify.com

  • fonts.googleapis.com

  • stats.g.doubleclick.net

Assets by Mime-Type

Requests

  • html

  • js

  • css

  • image

  • font

Bytes downloaded

  • html

  • js

  • css

  • image

  • font

Speed

Load time 7198 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. Learn more

Page load is fast enough on 3G

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

First byte 1475 ms

The time from the initial request to the first byte of the response. Learn more

First meaningful paint 3877.5 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. Learn more

Estimated Input Latency 16 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 (< 50 ms), users may perceive your app as laggy. 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. Learn more

First interactive (beta - experimental) 5417.501 ms

The first point at which necessary scripts of the page have loaded and the CPU is idle enough to handle most user input (with the possibility of slow responses as more content loads). Learn more

Consistently Interactive (beta - experimental) 5417.501 ms

The point at which most network resources have finished loading and the CPU is idle for a prolonged period. Consistently Interactive requires a minimum of 5 seconds of both main thread idle and network idle. In other words, the point where the page is complete and will respond quickly to user input. 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. Learn more

Uses a CDN for all static assets Score: 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. 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. 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. Learn more

Leverage browser caching for the following cacheable resources:

URL
https://cdn.shopify.com/s/javascripts/tricorder/trekkie.storefront.min.js?v=2017.09.05.1 (30 minutes)
https://www.google-analytics.com/analytics.js (2 hours)
...

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. Learn more

Minify HTML

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. 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. Learn more

Minify JavaScript for the following resources to reduce their size by 572B (18% reduction).

URL
Minifying https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/jquery.custom.js?8917941624576342037 could save 572B (18% reduction) after compression.
...

Avoids an excessive DOM size 383 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. Learn more
  • Total DOM Nodes
    383
    target < 1,500 nodes
  • DOM Depth
    12
    target < 32
  • Maximum Children
    37
    target < 60 nodes

Compressed Images Potential savings of 5 KB (~30 ms)

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. Learn more

ThumbnailsURLOriginalPotential Savings
https://cdn.shopify.com/s/files/1/1703/8509/products/clamshell-wallet-brown_592x592_crop_center.jpg?v=149437841937 KB5 KB (13%)
...

Uses Progressive JPEGs Score: 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. Learn more

Properly Sized Images Potential savings of 215 KB (~1,090 ms)

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

Offscreen images Potential savings of 98 KB (~490 ms)

Consider lazy-loading offscreen images to improve page load speed and time to interactive. 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. Learn more about JS - Learn more about CSS

Your page has 5 blocking script resources and 2 blocking CSS resources. This causes a delay in rendering your page.

URL
https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js
https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/plugins.min.js?8917941624576342037
https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/jquery.custom.js?8917941624576342037
https://cdn.shopify.com/s/assets/themes_support/shopify_common-040322ee69221c50a47032355f2f7e6cbae505567e2157d53dfb0a2e7701839c.js
https://cdn.shopify.com/s/assets/themes_support/customer_area-4beccea87758d91106a581ba89341d9b51842f6da79209258c8297239e950343.js
https://fonts.googleapis.com/css?family=Bitter:400,400i,700|Montserrat:400,700
https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/style.css?8917941624576342037
...

Prioritizes visible content

This rule triggers when detecting that additional network round trips are required to render the above-the-fold content of the page. Learn more

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. 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. Learn more

Usability 100/100

Clicking logo always leads you to homepage.

Make it easy to get back to the homepage. Use your logo as a navigation button to return to the homepage.

Key CTAs are visible on the homepage.

Keep menus short, visible and sweet.

No ending trailing paths.

Always provide navigation options on footers and/or fixed header.

Suports multi-device experiences.

Use wishlists/favouriting/saved baskets; social sharing; email; to facilitate seamless movement between devices or mobile platforms.

For category pages/search result with lots of products, make sure lazy-loading or pagination are used.

Load images asynchronously -- after the above-the-fold content is fully loaded, or conditionally, only when they appear in the browser’s viewport.

Possible to swipe to see more images or tap to enlarge them.

Allow for mobile gestures like swipe or tap to enlarge images, graphics and other contents, keeping good quality and focus.

Streamlines forms information entry.

Minimize the number of fields and autofill information wherever possible. Implement correct input types in fields, i.e. input type = email, number, etc. Make use of tabIndex to iterate through fields with the keyboard.

Forms error warnings.

Users are notified immediately when mistakes are made in a field, and guidance is provided on how to fix it.

Makes site search visible and user-friendly.

Place your site search near the top of your pages, via an open text field or clear label. Offer filters to help users get what they need from search or group results per categories. Auto-complete is available in on-site search.

Keeps your user in a single browser window.

Switching between windows on a smartphone can be troublesome, and raises the risk that visitors might not find their way back to your site. Try to keep users in one place by avoiding calls-to-action that launch new windows.

Best Practices 80/100

Avoids Application Cache

Application Cache is deprecated. Learn more

Avoids WebSQL DB

Web SQL is deprecated. Consider using IndexedDB instead. 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. Learn more

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. Learn more

Avoids deprecated APIs

Deprecated APIs will eventually be removed from the browser. 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. 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. 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. 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. Learn more

Redirects HTTP traffic to HTTPS

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

Uses HTTP/2 for its own resources 2 requests were not handled over HTTP/2

HTTP/2 offers many benefits over HTTP/1.1, including binary headers, multiplexing, and server push. 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. 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. 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. 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. 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. Learn more

Mobile Friendliness 80/100

Configures the viewport

This rule triggers when detecting that your page does not specify a viewport, or specifies a viewport that does not adapt to different devices. 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. Learn more

Size tap targets appropriately

This rule triggers when detecting that certain tap targets (e.g. buttons, links, or form fields) may be too small or too close together for a user to easily tap on a touchscreen. Learn more

Uses legible font sizes

This rule triggers when detecting that text in the page is too small to be legible. Learn more

Color Contrast is satisfactory

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

View failing elements

ImpactSnippetTargetFailure Summary
serious<a class="btn sorter__btn" href="#">div:nth-child(8) > a.btn.sorter__btnFix any of the following: Element has insufficient color contrast of 2.4 (foreground color: #a7a7a7, background color: #ffffff, font size: 10.5pt, font weight: bold)
serious<a class="pagination__item" href="/collections/tools?page=2">html > body > .section--large.spacing-medium-bottom > .section.section--small > .pagination > nav > aFix any of the following: Element has insufficient color contrast of 2.84 (foreground color: #999999, background color: #ffffff, font size: 10.5pt, font weight: bold)
...

Performance 68/100

Speed Index

  • Speed Index
    4277
    target < 4000 ms

The Speed Index measures how quickly the page contents are visually populated / painted, and computes an overall score where lower numbers are better. It is expressed in milliseconds and dependent on size of the viewport (above-the-fold contents). Learn more

Document complete

  • Time
    6.8
    seconds
  • Resources
    38
    requests
  • Bytes in
    583.9
    KB

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
    7.2
    seconds
  • Resources
    41
    requests
  • Bytes in
    589.5
    KB

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

  • cdn.shopify.com

  • fonts.gstatic.com

  • shop.gearmoose.com

  • www.google-analytics.com

  • v.shopify.com

  • fonts.googleapis.com

  • ajax.googleapis.com

  • stats.g.doubleclick.net

Bytes downloaded

  • cdn.shopify.com

  • fonts.gstatic.com

  • ajax.googleapis.com

  • www.google-analytics.com

  • shop.gearmoose.com

  • v.shopify.com

  • fonts.googleapis.com

  • stats.g.doubleclick.net

Assets by Mime-Type

Requests

  • html

  • js

  • css

  • image

  • font

Bytes downloaded

  • html

  • js

  • css

  • image

  • font

Speed

Load time 6764 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. Learn more

Page load is fast enough on 3G

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

First byte 1391 ms

The time from the initial request to the first byte of the response. Learn more

First meaningful paint 3534 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. Learn more

Estimated Input Latency 16 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 (< 50 ms), users may perceive your app as laggy. 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. Learn more

First interactive (beta - experimental) 4779 ms

The first point at which necessary scripts of the page have loaded and the CPU is idle enough to handle most user input (with the possibility of slow responses as more content loads). Learn more

Consistently Interactive (beta - experimental) 4779 ms

The point at which most network resources have finished loading and the CPU is idle for a prolonged period. Consistently Interactive requires a minimum of 5 seconds of both main thread idle and network idle. In other words, the point where the page is complete and will respond quickly to user input. 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. Learn more

Uses a CDN for all static assets Score: 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. 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. 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. Learn more

Leverage browser caching for the following cacheable resources:

URL
https://cdn.shopify.com/s/javascripts/tricorder/trekkie.storefront.min.js?v=2017.09.05.1 (30 minutes)
https://www.google-analytics.com/analytics.js (2 hours)
...

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. Learn more

Minify HTML

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. 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. Learn more

Minify JavaScript for the following resources to reduce their size by 572B (18% reduction).

URL
Minifying https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/jquery.custom.js?8917941624576342037 could save 572B (18% reduction) after compression.
...

Avoids an excessive DOM size 379 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. Learn more
  • Total DOM Nodes
    379
    target < 1,500 nodes
  • DOM Depth
    12
    target < 32
  • Maximum Children
    36
    target < 60 nodes

Compressed Images

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. Learn more

Uses Progressive JPEGs Score: 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. Learn more

Properly Sized Images Potential savings of 146 KB (~710 ms)

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

Offscreen images Potential savings of 19 KB (~90 ms)

Consider lazy-loading offscreen images to improve page load speed and time to interactive. 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. Learn more about JS - Learn more about CSS

Your page has 5 blocking script resources and 2 blocking CSS resources. This causes a delay in rendering your page.

URL
https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js
https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/plugins.min.js?8917941624576342037
https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/jquery.custom.js?8917941624576342037
https://cdn.shopify.com/s/assets/themes_support/shopify_common-040322ee69221c50a47032355f2f7e6cbae505567e2157d53dfb0a2e7701839c.js
https://cdn.shopify.com/s/assets/themes_support/customer_area-4beccea87758d91106a581ba89341d9b51842f6da79209258c8297239e950343.js
https://fonts.googleapis.com/css?family=Bitter:400,400i,700|Montserrat:400,700
https://cdn.shopify.com/s/files/1/1703/8509/t/2/assets/style.css?8917941624576342037
...

Prioritizes visible content

This rule triggers when detecting that additional network round trips are required to render the above-the-fold content of the page. Learn more

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. 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. Learn more

Usability 100/100

Clicking logo always leads you to homepage.

Make it easy to get back to the homepage. Use your logo as a navigation button to return to the homepage.

Key CTAs are visible on the homepage.

Keep menus short, visible and sweet.

No ending trailing paths.

Always provide navigation options on footers and/or fixed header.

Suports multi-device experiences.

Use wishlists/favouriting/saved baskets; social sharing; email; to facilitate seamless movement between devices or mobile platforms.

For category pages/search result with lots of products, make sure lazy-loading or pagination are used.

Load images asynchronously -- after the above-the-fold content is fully loaded, or conditionally, only when they appear in the browser’s viewport.

Possible to swipe to see more images or tap to enlarge them.

Allow for mobile gestures like swipe or tap to enlarge images, graphics and other contents, keeping good quality and focus.

Streamlines forms information entry.

Minimize the number of fields and autofill information wherever possible. Implement correct input types in fields, i.e. input type = email, number, etc. Make use of tabIndex to iterate through fields with the keyboard.

Forms error warnings.

Users are notified immediately when mistakes are made in a field, and guidance is provided on how to fix it.

Makes site search visible and user-friendly.

Place your site search near the top of your pages, via an open text field or clear label. Offer filters to help users get what they need from search or group results per categories. Auto-complete is available in on-site search.

Keeps your user in a single browser window.

Switching between windows on a smartphone can be troublesome, and raises the risk that visitors might not find their way back to your site. Try to keep users in one place by avoiding calls-to-action that launch new windows.

Best Practices 80/100

Avoids Application Cache

Application Cache is deprecated. Learn more

Avoids WebSQL DB

Web SQL is deprecated. Consider using IndexedDB instead. 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. Learn more

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. Learn more

Avoids deprecated APIs

Deprecated APIs will eventually be removed from the browser. 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. 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. 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. 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. Learn more

Redirects HTTP traffic to HTTPS

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

Uses HTTP/2 for its own resources 2 requests were not handled over HTTP/2

HTTP/2 offers many benefits over HTTP/1.1, including binary headers, multiplexing, and server push. 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. 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. 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. 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. 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. Learn more
Report created in 14 min.

This report was built using several Google, 3rd-party and Awwwards 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 Dulles VA USA
Browser MotoG4 Chrome
Connection Mobile 3G (1.6 Mbps / 768 Kbps 300ms RTT)
Number of Runs 1
User Agent Default
Lighthouse User agent Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5 Build/MRA58N) AppleWebKit/537.36(KHTML, like Gecko) Chrome/61.0.3116.0 Mobile Safari/537.36
Device Emulation Nexus 5X o MotoG
Network Throttling 1.4Mbps down, 0.7Mbps up, 562.5ms RTT (PageSpeed uses Chrome on Moto G4 within a 3G network)
CPU Throttling 4x slowdown
PageSpeed Insights Mobile EnvironmentDefault
TestMySite EnvironmentDefault