How do you analyze websites? 🔍
Tags: webdev, webperf, pagespeed, lighthouse
Published: 2020-05-25 20:25:05

---
title: How do you analyze websites? 🔍
published: true
canonical_url: https://annmirosh.com/blog/how-do-you-analyze-websites/
---

In this post, I'd like to discuss tools that might be helpful for analyzing websites.

I'd like to talk about the [PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/?hl=RU) tool and the [Lighthouse](https://developers.google.com/web/tools/lighthouse) Chrome plugin.

- Both these tools give you a bunch of interesting metrics and score your site by several dimensions (like "Performance", "Accessibility" and etc.)
- Both these tools work from the "browser", so you don't need to upload the content of your site to somewhere or set up a special testing environment

**What do we need them for?** With numbers that these tools provide we can understand if the website or web app is becoming better from release to release.

Along with fairly standard recommendations like "Reduce CSS/JavaScript code size" or "Compress your images" they can give us recommendations which can be really useful. Below I'd like to discuss specific things which were useful for me.

## ❤️ What I love in the PageSpeed Insights:

- It shows the speed of the loading of the page both for mobile and desktop versions of the site. It's great because when I develop a site, I work with it from the desktop browser 80% of the time (if there are no special requirements about mobile usability, of course). So, for me, it's extremely useful to see "mobile" and "desktop" metrics in one place.
- It forces us to use modern formats of the images (like WebP, JPEG 2000, or JPEG XR). For some images, we cannot use an SVG format, and for such cases, this tool gives good recommendations about using WebP format and etc.
- It makes a warning in case you forgot to set up an efficient cache policy for static assets.

## ❤️ What I love in the Lighthouse:

- It makes an **"Accessibility"** check - it means that this tool is able to find and list:

  - blocks with poor background and foreground colors - I'm not a designer, so for me, it's very helpful to have such checks;
  - HTML tags that don't follow common rules (like ![]() tags without the alt attribute, links without discernible names and etc.)
- It makes a **"Vulnerabilities"** check for the third-party scripts (so, if you use some old jQuery on your site you should definitely run it on your site)
- It makes a **"SEO"** check - with it you can make sure that your page is optimized for search engine result ranking.

I was thinking if there are any things which are missing in these tools... I'd say I miss an ability to test all pages on a site from "the package". Of, course there are some solutions that can grab all links from your site and run speed checks for all pages, but as I know now there is no a "magic" button 🧙‍♂️ that allows you to do it.

From my experience, sometimes developers don't keep attention on these tools. Just for curiosity, I've tested some popular sites (I won't name them here, because I don't want to offend anybody). And here are results which I got:

 ![Results of testing some popular sites via Lighthouse](https://annmirosh.com/assets/posts/how-do-you-analyze-websites/tests.png "Results of testing some popular sites via Lighthouse")

Of course, it's not 100% fare to compare different websites, because they all have different designs and complexity, but as we can see even popular ones don't have ideal metrics.

From my point of view, it's great if you check your site and support good metrics.👍 It's also fine if you don't care about them in a situation when it's better to spend time on solving tasks which will be useful for your project or for end-users (like adding new functionality and etc).

What are your thoughts about these tools? I'd appreciate your feedback and opinion:

- Do you always use these tools on your real projects? 
- Are there any features that are missing there from your point of view?
- Do you know better alternatives for them?