Overview Open Chrome DevTools Simulate mobile devices with Device Mode Performance insights: Get actionable insights on your website's performance Lighthouse: Optimize website speed Animations: Inspect and modify CSS animation effects Changes: Track your HTML, CSS, and JavaScript changes Coverage: Find unused JavaScript and CSS CSS Overview: Identify potential CSS improvements Issues: Find and fix problems Media: View and debug media players information Memory Inspector: Inspect JavaScript ArrayBuffer Network conditions: Override the user agent string Recorder: Record, replay and measure user flows Security: Understand security issues WebAuthn: Emulate authenticators
Overview Open Chrome DevTools Simulate mobile devices with Device Mode Performance insights: Get actionable insights on your website's performance Lighthouse: Optimize website speed Animations: Inspect and modify CSS animation effects Changes: Track your HTML, CSS, and JavaScript changes Coverage: Find unused JavaScript and CSS CSS Overview: Identify potential CSS improvements Issues: Find and fix problems Media: View and debug media players information Memory Inspector: Inspect JavaScript ArrayBuffer Network conditions: Override the user agent string Recorder: Record, replay and measure user flows Security: Understand security issues WebAuthn: Emulate authenticators

Coverage: Find unused JavaScript and CSS

Published on Updated on

The Coverage tab in Chrome DevTools can help you find unused JavaScript and CSS code. Removing unused code can speed up your page load and save your mobile users cellular data.

Analyzing code coverage.
Figure 1. Analyzing code coverage.
Caution

A word of warning. Finding unused code is relatively easy. But refactoring a codebase so that each page only ships the JavaScript and CSS that it needs can be difficult. This guide doesn't cover how to refactor a codebase to avoid unused code because these refactors depend highly on your technology stack.

Overview

Shipping unused JavaScript or CSS is a common problem in web development. For example, suppose that you want to use Bootstrap's button component on your page. To use the button component you need to add a link to Bootstrap's stylesheet in your HTML, like this:

...
<head>
...
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
crossorigin="anonymous">

...
</head>
...

This stylesheet doesn't just include the code for the button component. It contains the CSS for all of Bootstrap's components. But you're not using any of the other Bootstrap components. So your page is downloading a bunch of CSS that it doesn't need. This extra CSS is a problem for the following reasons:

  • The extra code slows down your page load. See Render-Blocking CSS.
  • If a user accesses the page on a mobile device, the extra code uses up their cellular data.

Open the Coverage tab

  1. Open the Command Menu.
  2. Start typing coverage, select the Show Coverage command, and then press Enter to run the command. The Coverage tab opens in the Drawer.
The Coverage tab.
Figure 2. The Coverage tab.

Record code coverage

  1. Click one of the following buttons in the Coverage tab:
    • Click Start Instrumenting Coverage And Reload Page Reload if you want to see what code is needed to load the page.
    • Click Instrument Coverage Record if you want to see what code is used after interacting with the page.
  2. Click Stop Instrumenting Coverage And Show Results Stop when you want to stop recording code coverage.

Analyze code coverage

The table in the Coverage tab shows you what resources were analyzed, and how much code is used within each resource. Click a row to open that resource in the Sources panel and see a line-by-line breakdown of used code and unused code. Any unused lines of code will have a red line at the beginning.

A code coverage report.
Figure 3. A code coverage report.
  • The URL column is the URL of the resource that was analyzed.
  • The Type column says whether the resource contains CSS, JavaScript, or both.
  • The Total Bytes column is the total size of the resource in bytes.
  • The Unused Bytes column is the number of bytes that weren't used.
  • The last, unnamed column is a visualization of the Total Bytes and Unused Bytes columns. The red section of the bar is unused bytes. The green section is used bytes.

Last updated: Improve article

We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.