Mobile Excellence / Robin Noguier - Portfolio
Oct 22, 2020, 10:50 PM

Robin Noguier - Portfolio

  • 0
    Friendliness
  • 0
    Performance
  • 0
    Usability
  • 0
    PWA
  • 0
    Total
Find out more about the Evaluation

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<p>My year long journey around the world to shine a light on creatives from 16 different countries.</p>.slide.jsx-4016609264:nth-child(1) > .jsx-1663857289.root > .jsx-2886661157 > div:nth-child(2) > .jsx-2809592786.root > .wrapper.jsx-2809592786 > div > div > .content.jsx-2809592786 > .jsx-1747818979.root > .jsx-2188066947.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<span class="label">Open case study</span>a[href$="esperanto/"] > .labelFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<span class="label">Open case study</span>a[href$="google/"] > .labelFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
...

Performance 84/100

Speed Index

  • Speed Index
    5631.73
    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
    16.3
    seconds
  • Resources
    61
    requests
  • Bytes in
    1.5
    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
    19.4
    seconds
  • Resources
    67
    requests
  • Bytes in
    1.5
    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

  • images.prismic.io

  • robin-noguier.com

  • prismic-io.s3.amazonaws.com

  • www.google-analytics.com

  • www.googletagmanager.com

  • stats.g.doubleclick.net

Bytes downloaded

  • images.prismic.io

  • robin-noguier.com

  • www.googletagmanager.com

  • www.google-analytics.com

  • prismic-io.s3.amazonaws.com

  • stats.g.doubleclick.net

Assets by Mime-Type

Requests

  • html

  • js

  • image

  • font

  • other

Bytes downloaded

  • html

  • js

  • image

  • font

  • other

Speed

Load time16311 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 byte1506 ms

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

First Contentful Paint1028.609 ms

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

First meaningful paint3016.21 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 Idle3016.21 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 Interactive3016.21 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: 94%

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

1 resource found

URL
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. 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 29 KiB

URL
https://robin-noguier.com/_next/static/ZOpKq1JufzVlwoDks9KPF/pages/_app.js<\/span> ( 89.84% )
...

Avoids an excessive DOM size437 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
    437
    target < 1,500 nodes
  • DOM Depth
    21
    target < 32
  • Maximum Children
    52
    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. Source: Lighthouse - Learn more

Uses Progressive JPEGsn/a

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 273 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

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 100/100 Industry: Agency / Portfolio

Brand logo linked to homepage

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 menusNot applicable

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.

The case listing page is not the only way to browse through all the cases

Fails if doesn't provide at least one of the following: next/prev case buttons, related cases listing, or any other way to keep browsing without going back and forth to the listing page.

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.

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 82/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<h3>About the project</h3>.jsx-4066623025.root > h3Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<h1>No selfies, no memes. Just things you’ve made yourself.</h1>.jsx-467499162.root > h1Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 30.0pt, font weight: normal). Expected contrast ratio of 3:1
serious<div class="jsx-627902061 root " style="margin-top: 0px; margin-bottom: 0px;">.jsx-823033344.root > div > div:nth-child(2) > .jsx-627902061.rootFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<span class="label">Join the beta</span>.jsx-3448047819[href$="bubblehouse.com/"][target="_blank"] > .labelFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<h4>Role</h4>.block.jsx-823033344:nth-child(1) > .jsx-4066623025.root > h4Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<p>User Experience</p>.block.jsx-823033344:nth-child(1) > .jsx-627902061.root > p:nth-child(1)Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>Visual Design</p>p:nth-child(2)Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>Prototyping</p>p:nth-child(3)Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>User Testing</p>p:nth-child(4)Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>Business &amp; Marketing</p>p:nth-child(5)Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<h4>Client</h4>.block.jsx-823033344:nth-child(2) > .jsx-4066623025.root > h4Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<p>Bubblehouse</p>.block.jsx-823033344:nth-child(2) > .jsx-627902061.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<h4>Date</h4>.block.jsx-823033344:nth-child(3) > .jsx-4066623025.root > h4Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<p>September 2019 - Ongoing</p>.block.jsx-823033344:nth-child(3) > .jsx-627902061.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<div class="jsx-4066623025 root " style="margin-top: 0px; margin-bottom: 0px;">01</div>.jsx-748311096.root:nth-child(3) > div > .jsx-1534209356.root > div > div > div > .jsx-4066623025.rootFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<h2>Insights &amp; Problems</h2>.jsx-748311096.root:nth-child(3) > div > .jsx-1534209356.root > div > div > div > .jsx-467499162.root > h2Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 30.0pt, font weight: normal). Expected contrast ratio of 3:1
serious<h3>Carefully crafted content is getting lost</h3>.jsx-748311096.root:nth-child(4) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(1) > .jsx-2772737230.root > h3Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 15.0pt, font weight: bold). Expected contrast ratio of 3:1
serious<p>We are spending a lot of time, and sometimes money, crafting content we're proud of. To stay relevant you have to keep posting and the problem is that you are burying content you love over time.</p>.jsx-748311096.root:nth-child(4) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(2) > .jsx-627902061.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>.jsx-1534209356.root > div > .jsx-2785084468.root > div:nth-child(2) > div > .jsx-2317177261.root > .jsx-1097368967.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<a href="https://www.behance.net/gustavo_v" target="_blank" rel="noopener">Gustavo Viselner</a>.jsx-1534209356.root > div > .jsx-2785084468.root > div:nth-child(2) > div > .jsx-2317177261.root > .jsx-1097368967.root > p > a[rel="noopener"][target="_blank"]:nth-child(1)Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<a href="https://amritpaldesign.com/about" target="_blank" rel="noopener">Amrit Pal Singh</a>a[rel="noopener"][target="_blank"]:nth-child(2)Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<a href="https://www.instagram.com/james_films/" target="_blank" rel="noopener">James Tralie</a>a[rel="noopener"][target="_blank"]:nth-child(3)Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<h3>Your time and creativity should be focused on your content</h3>.jsx-748311096.root:nth-child(8) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(1) > .jsx-2772737230.root > h3Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 15.0pt, font weight: bold). Expected contrast ratio of 3:1
serious<p>We will always find ways to be creatives even when there are constraints on a platform. But to bypass those, it takes a lot of time and energy which could be spent crafting your content.</p>.jsx-748311096.root:nth-child(8) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(2) > .jsx-627902061.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>Definitely a real user using Bubblehouse. Definitely not a mockup. (Illustration by <a href="https://www.behance.net/kimsalt" target="_blank" rel="noopener">Kim Salt</a>)</p>.jsx-2610044214.root > div > .jsx-2785084468.root > div:nth-child(2) > div > .jsx-2317177261.root > .jsx-1097368967.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<a href="https://www.behance.net/kimsalt" target="_blank" rel="noopener">Kim Salt</a>.jsx-2610044214.root > div > .jsx-2785084468.root > div:nth-child(2) > div > .jsx-2317177261.root > .jsx-1097368967.root > p > a[rel="noopener"][target="_blank"]Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<div class="jsx-4066623025 root " style="margin-top: 0px; margin-bottom: 0px;">02</div>.jsx-748311096.root:nth-child(11) > div > .jsx-1534209356.root > div > div > div > .jsx-4066623025.rootFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<h2>Visual Identity</h2>.jsx-748311096.root:nth-child(11) > div > .jsx-1534209356.root > div > div > div > .jsx-467499162.root > h2Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 30.0pt, font weight: normal). Expected contrast ratio of 3:1
serious<h3>Muted, in the background, and only here to bring out people's content.</h3>.jsx-748311096.root:nth-child(12) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(1) > .jsx-2772737230.root > h3Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 15.0pt, font weight: bold). Expected contrast ratio of 3:1
serious<p>We chose Proxima Nova for his geometric appearance with modern proportions to complement our wide variety of content. We created a black &amp; white theme with only one brand color (used carefully!) to be as muted as possible.</p>.jsx-748311096.root:nth-child(12) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(2) > .jsx-627902061.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<div class="jsx-4066623025 root " style="margin-top: 0px; margin-bottom: 37px;">Typography</div>.jsx-748311096.root:nth-child(13) > div > .jsx-1534209356.root > div > .root > div > div:nth-child(1) > .jsx-4066623025.rootFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<div class="jsx-4066623025 root " style="margin-top: 0px; margin-bottom: 37px;">Colors</div>.jsx-1534209356.root > div > .root > div > div:nth-child(2) > .jsx-4066623025.rootFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<p>Wordmark of Bubblehouse</p>.jsx-748311096.root:nth-child(14) > div > .jsx-1534209356.root > div > .jsx-2238755170.root > div:nth-child(2) > div > .jsx-2317177261.root > .jsx-1097368967.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<div class="jsx-4066623025 root " style="margin-top: 0px; margin-bottom: 0px;">03</div>.jsx-748311096.root:nth-child(15) > div > .jsx-1534209356.root > div > div > div > .jsx-4066623025.rootFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<h2>Express yourself</h2>.jsx-748311096.root:nth-child(15) > div > .jsx-1534209356.root > div > div > div > .jsx-467499162.root > h2Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 30.0pt, font weight: normal). Expected contrast ratio of 3:1
serious<h3>Modules help you tell your story to your audience</h3>.jsx-748311096.root:nth-child(16) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(1) > .jsx-2772737230.root > h3Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 15.0pt, font weight: bold). Expected contrast ratio of 3:1
serious<p>Choose how to present your content with interactive modules. Also, your content gets the place it deserves with this full-page and background adaptive feed.</p>.jsx-748311096.root:nth-child(16) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(2) > .jsx-627902061.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>Feed showing some modules and the adaptive background</p>.jsx-748311096.root:nth-child(17) > div > .jsx-1534209356.root > div > .jsx-1465210274.root > .jsx-2317177261.root > .jsx-1097368967.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>Edit mode for : Layouts / Before-After / Slider / Panorama</p>.jsx-748311096.root:nth-child(20) > div > .jsx-1534209356.root > div > .jsx-1465210274.root > .jsx-2317177261.root > .jsx-1097368967.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<h3>How do you create module? Glad you asked!</h3>.jsx-748311096.root:nth-child(21) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(1) > .jsx-2772737230.root > h3Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 15.0pt, font weight: bold). Expected contrast ratio of 3:1
serious<p>Choose the module that will better tell your story and then select the content you want to share. As easy as that!</p>.jsx-748311096.root:nth-child(21) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(2) > .jsx-627902061.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<div class="jsx-4066623025 root " style="margin-top: 0px; margin-bottom: 0px;">Rohan Sinha</div>.jsx-748311096.root:nth-child(23) > div > .jsx-1534209356.root > div > .jsx-995106187.root > div > div > .jsx-1947768839.root > .jsx-3859924900 > .content.jsx-1412065357 > .jsx-4066623025.rootFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<div class="jsx-1412065357 role">CEO &amp; Founder at Bubbblehouse</div>.jsx-748311096.root:nth-child(23) > div > .jsx-1534209356.root > div > .jsx-995106187.root > div > div > .jsx-1947768839.root > .jsx-3859924900 > .content.jsx-1412065357 > .role.jsx-1412065357Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>Choose how you want to display your post on your profile (3D Art by <a href="https://www.behance.net/ChristianLiquid" target="_blank" rel="noopener">Christian J Liquid</a>)</p>.jsx-748311096.root:nth-child(36) > div > .jsx-1534209356.root > div > .jsx-1465210274.root > .jsx-2317177261.root > .jsx-1097368967.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<a href="https://www.behance.net/ChristianLiquid" target="_blank" rel="noopener">Christian J Liquid</a>.jsx-748311096.root:nth-child(36) > div > .jsx-1534209356.root > div > .jsx-1465210274.root > .jsx-2317177261.root > .jsx-1097368967.root > p > a[rel="noopener"][target="_blank"]Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<div class="jsx-4066623025 root " style="margin-top: 0px; margin-bottom: 0px;">06</div>.jsx-748311096.root:nth-child(38) > div > .jsx-1534209356.root > div > div > div > .jsx-4066623025.rootFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 10.5pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<h2>Explore</h2>.jsx-748311096.root:nth-child(38) > div > .jsx-1534209356.root > div > div > div > .jsx-467499162.root > h2Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 30.0pt, font weight: normal). Expected contrast ratio of 3:1
serious<h3>Explore freely or be specific</h3>.jsx-748311096.root:nth-child(39) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(1) > .jsx-2772737230.root > h3Fix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 15.0pt, font weight: bold). Expected contrast ratio of 3:1
serious<p>The first grid is the content we gathered for the user. With the filters, he can also look at users or a specific module type.</p>.jsx-748311096.root:nth-child(39) > div > .jsx-1534209356.root > div > .root > .jsx-3742499781 > div:nth-child(2) > .jsx-627902061.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 12.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<p>Join the beta now on <a href="https://bubblehouse.com/" target="_blank" rel="noopener"><strong>bubblehouse.com</strong></a></p>.jsx-748311096.root:nth-child(46) > div > .jsx-1534209356.root > div > .jsx-1839175329.root > div:nth-child(2) > div > .jsx-2317177261.root > .jsx-1097368967.root > pFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
serious<strong>bubblehouse.com</strong>a[href$="bubblehouse.com/"][rel="noopener"][target="_blank"] > strongFix any of the following: Element has insufficient color contrast of 1.08 (foreground color: #0d0d0d, background color: #000000, font size: 9.0pt, font weight: bold). Expected contrast ratio of 4.5:1
serious<h1>Ueno</h1>.jsx-927446925.title > h1Fix any of the following: Element has insufficient color contrast of 1.92 (foreground color: #fff794, background color: #7ab9e0, font size: 46.3pt, font weight: normal). Expected contrast ratio of 3:1
serious<span class="jsx-3829695856" style="opacity: 1; transform: translateY(0px);">Click the image to go to my next project</span>.jsx-3099192319.jsx-1097368967.root:nth-child(3) > .jsx-3829695856Fix any of the following: Element has insufficient color contrast of 2.13 (foreground color: #ffffff, background color: #7ab9e0, font size: 9.0pt, font weight: normal). Expected contrast ratio of 4.5:1
...

Performance 85/100

Speed Index

  • Speed Index
    7623.69
    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
    N/A
    seconds
  • Resources
    N/A
    requests
  • Bytes in
    N/A
    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
    3.5
    seconds
  • Resources
    9
    requests
  • Bytes in
    241.3
    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

  • robin-noguier.com

  • images.prismic.io

Bytes downloaded

  • robin-noguier.com

Assets by Mime-Type

Requests

  • html

  • js

  • image

Bytes downloaded

  • html

  • js

Speed

Load time3507 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 byte1685 ms

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

First Contentful Paint1370.117 ms

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

First meaningful paint1546.958 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 Idle1546.96 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 Interactive1546.96 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

1 resource found

URL
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. 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 29 KiB

URL
https://robin-noguier.com/_next/static/ZOpKq1JufzVlwoDks9KPF/pages/_app.js<\/span> ( 89.84% )
...

Avoids an excessive DOM size2005 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
    2,005
    target < 1,500 nodes
  • DOM Depth
    23
    target < 32
  • Maximum Children
    124
    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. Source: Lighthouse - Learn more

Uses Progressive JPEGsn/a

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 29 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

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 100/100 Industry: Agency / Portfolio

Brand logo linked to homepage

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 menusNot applicable

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.

The case listing page is not the only way to browse through all the cases

Fails if doesn't provide at least one of the following: next/prev case buttons, related cases listing, or any other way to keep browsing without going back and forth to the listing page.

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.

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 82/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 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 80/100

Speed Index

  • Speed Index
    5192.72
    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
    33.3
    seconds
  • Resources
    127
    requests
  • Bytes in
    3.6
    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
    34.3
    seconds
  • Resources
    135
    requests
  • Bytes in
    3.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

  • images.prismic.io

  • prismic-io.s3.amazonaws.com

  • robin-noguier.com

  • www.google-analytics.com

  • robin-noguier-portfolio-2020.cdn.prismic.io

  • www.googletagmanager.com

  • stats.g.doubleclick.net

Bytes downloaded

  • images.prismic.io

  • robin-noguier-portfolio-2020.cdn.prismic.io

  • robin-noguier.com

  • prismic-io.s3.amazonaws.com

  • www.googletagmanager.com

  • www.google-analytics.com

  • stats.g.doubleclick.net

Assets by Mime-Type

Requests

  • html

  • js

  • image

  • font

  • video

  • other

Bytes downloaded

  • html

  • js

  • image

  • font

  • video

  • other

Speed

Load time33313 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 byte1462 ms

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

First Contentful Paint1204.791 ms

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

First meaningful paint1382.214 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 Idle1382.21 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 Interactive1382.21 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: 91%

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

Uses a CDN for all static assetsScore: 75%

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

1 resource found

URL
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. 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 31 KiB

URL
https://robin-noguier.com/_next/static/ZOpKq1JufzVlwoDks9KPF/pages/_app.js<\/span> ( 89.84% )
...

Avoids an excessive DOM size1341 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
    1,341
    target < 1,500 nodes
  • DOM Depth
    26
    target < 32
  • Maximum Children
    141
    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. Source: Lighthouse - Learn more

Uses Progressive JPEGsn/a

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 78 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

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 100/100 Industry: Agency / Portfolio

Brand logo linked to homepage

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 menusNot applicable

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.

The case listing page is not the only way to browse through all the cases

Fails if doesn't provide at least one of the following: next/prev case buttons, related cases listing, or any other way to keep browsing without going back and forth to the listing page.

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.

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 82/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 Oct 22, 2020, 22:50 PM GMT+0 in 10 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 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 (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