Placeholder Image

Subtitles section Play video

  • (lively music)

  • - [Morten] Most aspects of web performance

  • can be measured in a consistent way

  • for comparison and analysis and iteration.

  • There are a myriad of tools out there for this purpose,

  • including tools built into your browser

  • and online tools you can use either for free

  • or for a fee.

  • Different tools give you different types of feedback,

  • and because they exist in different locations

  • on different stacks and provide different types of services,

  • they also give you slightly different results compared

  • to one another.

  • For this reason, the best practice

  • is to use several different performance monitoring tools,

  • collect the data from all of them

  • and then compare, contrast and analyze when possible.

  • These tools fall under two main categories:

  • browser tools and hosted third-party tools.

  • Let's look at the browser tools first.

  • There are two main types of tools here.

  • The first one exists inside the Chrome browser.

  • If you open the Developer Tools for Chrome,

  • and go to the far right-hand side

  • of the Developer Tools,

  • there's a button called Lighthouse.

  • This tool generates a performance report

  • for your site and it also gives you a long list

  • of suggestions on how to improve the performance

  • of your site.

  • It also tests for other things,

  • Progressive Web Apps, best practices,

  • accessibility and SEO.

  • And you can choose whether you want

  • to test on a mobile device or a desktop device.

  • If you choose mobile,

  • then the browser will mimic a mobile device,

  • so small screen, slower load times and all that.

  • So I'm going to generate a report

  • just to see what's going on on this site

  • that I'm running right now.

  • This is a site that lives somewhere on the web

  • but you can also run Lighthouse on a locally hosted site

  • on your computer if you want to.

  • What I get in response here

  • is a performance score of 84.

  • This is good but not great.

  • Ideally, I want to get as close as possible to 100.

  • I want it to at least be in the green, so over 90.

  • To fix that, I can now scroll down

  • and see what's slowing my site down.

  • Well, first off, I can see there's some issues.

  • First Contentful Paint is too slow.

  • Largest Contentful Paint is too slow

  • and there's too much cumulative layout shift,

  • meaning things are moving too much around

  • as the page is loaded.

  • Scrolling further down,

  • we get a list here of opportunities, and diagnostics.

  • So the opportunities here

  • include eliminate render-blocking resources.

  • If I open that,

  • I can see the render-blocking resource in question

  • is Google Fonts.

  • You can also see it says server images in next-gen formats.

  • And if we open up, it'll say image formats

  • like JPEG 2000, JPEG XR,

  • and WebP often provide better compression

  • than PNGs and JPEGs.

  • And finally at the bottom here,

  • we have remove unused JavaScript.

  • And that just means somewhere in the site,

  • there's JavaScript being loaded that isn't being used,

  • which is a waste of resources.

  • So the Lighthouse report is really good

  • at seeing at a glance where the performance enhancements

  • of your site can be.

  • It gives you good recommendations on what to do.

  • If you want to dig further into exactly

  • what is going on in your site,

  • you can also run the network monitor.

  • You open the network monitor,

  • make sure you click disable cache

  • so that you are downloading the site from scratch

  • and then you just reload the page.

  • What you get here is a waterfall

  • of every single resource

  • that's being downloaded from the site

  • and you can see right away

  • how it's been downloaded.

  • On this case, the site is running HTTP/2,

  • meaning it's multiplexing and loading resources

  • as fast as they become available.

  • And we can see here

  • that it takes quite a bit of time

  • for everything to load.

  • For example, we have this file here called vendor.js.

  • Now, this is the file that Lighthouse said has a lot

  • of unused code.

  • And we can see it takes quite a while to load,

  • and there's a lot of execution going on here too.

  • Further down, we have main.js.

  • If you hover over any of these,

  • you get a breakdown of how long it takes

  • for queuing, how long it was stalled,

  • how long it took for the request to be sent

  • and how much wait time happened before it came back,

  • how long it take to download.

  • So here you see, for example,

  • it took 237.99 milliseconds

  • between the request was sent to the server

  • and the response came back.

  • And then the actual download

  • was only 1.49 milliseconds.

  • If we look at the top one here,

  • this is the HTML document,

  • you can also see there's a very slow start

  • on the server.

  • So the server waited for 1.48 milliseconds

  • before anything happened,

  • and then we waited 151 milliseconds

  • before the file actually got downloaded.

  • So the total execution of this was 153.9 milliseconds,

  • which is a very long time.

  • That means that the server that it's running on

  • is not all that fast.

  • If you want to go even deeper

  • into what's going on,

  • you can also go to the performance monitor.

  • Now, the performance monitor tells you

  • about how the scripts and everything else on the site

  • are actually performing

  • but it's worth knowing about

  • because it gives you a lot of details

  • about what's going on in your site.

  • Again, to run it, you need to go over here,

  • clear everything and then click on start profiling

  • and reload page.

  • Now the page will be reloaded into the browser

  • and the profiler starts.

  • Now, the profiler's a fairly advanced tool,

  • and you can use it to do things

  • like profile existing behaviors,

  • so you can go in and mess around with the site

  • and then see what is happening.

  • But what you get here is now very detailed information

  • about how the page is loaded

  • and what kind of activity happens as it's loaded.

  • So you can see, there's 20 milliseconds for loading,

  • then 83 for scripting

  • and 38 for rendering and 12 for painting.

  • And you can see here in the breakdown exactly

  • when different things happen

  • and what is happening, and so on.

  • So there's a lot of information here.

  • Lighthouse exists in Chrome,

  • network monitor and performance monitor exist

  • in all modern browsers, including Firefox,

  • Edge and so on.

  • The second category of performance monitoring tools

  • is hosted third-party tools.

  • The most used example here is PageSpeed Insights.

  • Now, if we go to PageSpeed Insights,

  • you'll notice, it looks exactly the same

  • as Lighthouse, just that it's on the web.

  • That's because it is.

  • The difference is Lighthouse runs on your computer.

  • PageSpeed Insights runs on some server

  • that Google has.

  • So you get slightly different data

  • and you get slightly more reliable data

  • because it's also compared to other data that they have.

  • But this is a way you can run Lighthouse

  • on any website, even if you don't have Chrome

  • and you get the same type of breakdown,

  • same type of tips and everything else.

  • One cool thing is the PageSpeed Insights screenshots

  • are not reliant on the browser window.

  • You may have noticed in my Lighthouse output here

  • that the screenshots are based

  • on the size of my browser window,

  • so right now, we're just getting the hamburger menu.

  • Well, in PageSpeed Insights,

  • you get the actual screens.

  • You can see what's going on.

  • Another popular tool is the WebPageTest website.

  • Again, here you just enter the website you want to test,

  • and you get a report and return,

  • and you get a full breakdown of the waterfall,

  • you get different runs

  • so you can run the same site against different browsers,

  • different configurations, different locations

  • to see how it differs.

  • So the difference between run one and run two here

  • is run one is the first load.

  • Run two is the cached load,

  • so the website is already being cached inside the system.

  • And you get a ton of information.

  • Regardless of what testing procedure you use,

  • browser tools, hosted third-party tools

  • or something else,

  • the actual test results always include page speeds scores

  • and other details.

  • They also show you key indicators,

  • describing the user experience,

  • most important of which are First Paint,

  • the time it takes before the users sees changes happening

  • in the browser.

  • Largest Contentful Paint,

  • the time it takes before the user sees content,

  • so text, images, something else in the browser.

  • First Meaningful Paint,

  • the time it takes before the user sees content

  • that is actually meaningful.

  • So when above the full content

  • and web fonts are loaded

  • and the user can derive meaning from what they are seeing.

  • And finally, Time to Interactive,

  • the time it takes before the content has finished loading

  • and the UI can be interacted with,

  • so the user can actually click on buttons,

  • fill forms or do whatever else is going to happen on the site.

  • The longer it takes for a site to hit each of these points,

  • the higher the chance of the user either getting annoyed

  • or abandoning the user experience all together.

  • As an example, I'm sure you've experienced visiting a site

  • on your computer or mobile device

  • and experiencing not being able

  • to click on a button or interact with an input field.

  • In that circumstance,

  • you're still waiting for TTI or Time to Interactive,

  • and that wait can be extremely infuriating.

  • When it comes to reliable automated testing,

  • Lighthouse is currently the industry standard

  • and it's even integrated in other hosted solutions,

  • like GTmetrix and PageSpeed Insights.

  • Lighthouse also gives you other important feedback,

  • like accessibility testing and recommendations

  • on more performant JavaScript libraries and so on.

  • So for ongoing testing during development,

  • Lighthouse is by far the quickest

  • and more reliable route.

  • (upbeat music)

(lively music)

Subtitles and vocabulary

Click the word to look it up Click the word to find further inforamtion about it