Introduction to Lighthouse  |  Chrome for Developers Skip to main content Docs Build with Chrome Learn how Chrome works, participate in origin trials, and build with Chrome everywhere. Web Platform Capabilities ChromeDriver Extensions Chrome Web Store Chromium Web on Android Origin trials Release notes Productivity Create the best experience for your users with the web's best tools. DevTools Lighthouse Chrome UX Report Accessibility Modern Web Guidance Get things done quicker and neater, with our ready-made libraries. Workbox Puppeteer Experience Design a beautiful and performant web with Chrome. AI Performance CSS and UI Identity Payments Privacy and security Resources More from Chrome and Google. All documentation Baseline web.dev PageSpeed Insights audit Isolated Web Apps (IWA) Case studies Blog New in Chrome / English Deutsch Español – América Latina Français Indonesia Italiano Nederlands Polski Português – Brasil Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어 Sign in Docs Lighthouse Lighthouse Get started Performance audits Accessibility audits Best Practices audits SEO audits Agentic browsing audits Docs More Lighthouse Get started Performance audits Accessibility audits Best Practices audits SEO audits Agentic browsing audits Case studies Blog New in Chrome Overview Performance Performance audit scoring Metrics First Contentful Paint Speed Index Total Blocking Time Largest Contentful Paint Cumulative Layout Shift Insights CSS selector costs Document request latency Duplicated JavaScript Font display Forced reflow Improve image delivery INP breakdown Layout shift culprits LCP breakdown LCP request discovery Legacy JavaScript Modern HTTP Network dependency tree Optimize DOM size Optimize viewport for mobile Render-blocking requests 3rd parties Use efficient cache lifetimes Diagnostics Avoid enormous network payloads Avoid non-composited animations Defer offscreen images Ensure the page can be restored from the back/forward cache Keep request counts low and transfer sizes small Lazy load third-party resources with facades Minify CSS Minify JavaScript Minimize main thread work Preload key requests Reduce JavaScript execution time Remove unused CSS User Timing marks and measures Retired Metrics Time to Interactive First Meaningful Paint First CPU Idle Max Potential First Input Delay Accessibility Accessibility audit scoring Manual checks Custom controls have ARIA roles Custom controls have associated labels Trapped user focus Interactive controls are keyboard-focusable Interactive elements indicate their purpose and state The page has a logical tab order The user's focus is directed to new content added to the page Offscreen content is hidden from assistive technology HTML5 landmark elements are used to improve navigation Visual order on the page follows DOM order Learn Accessibility Best practices audit General best practices Page lacks the HTML doctype, thus triggering quirks mode Browser errors were logged to the console Displays images with incorrect aspect ratio Charset declaration is missing or occurs too late in the HTML Make your page fast Uses document.write() Use passive listeners to improve scrolling performance Make your page secure Links to cross-origin destinations are unsafe Includes front-end JavaScript libraries with known security vulnerabilities Ensure CSP is effective against XSS attacks Does not use HTTPS Does not redirect HTTP traffic to HTTPS Use a strong HSTS policy Mitigate clickjacking with XFO or CSP Mitigate Dom-Based XSS with Trusted Types Create a good user experience Requests the notification permission on page load Requests the geolocation permission on page load Prevents users from pasting into input fields Avoid deprecated technologies Uses Application Cache Uses deprecated APIs Diagnostic audits Detected JavaScript libraries SEO Help search engines understand your content Document does not have a meta description Links do not have descriptive text Document doesn't have a valid hreflang Document does not have a valid rel=canonical Help search engines crawl and index Page has unsuccessful HTTP status code robots.txt is not valid Document uses plugins Mobile friendly changes Document doesn't use legible font sizes Tap targets are not sized appropriately Manual checks Structured data is valid Agentic browsing Agentic browsing scoring WebMCP integration Registered WebMCP tools Forms missing declarative WebMCP WebMCP schema validity Discoverability llms.txt Accessibility Accessibility for agents Layout stability Layout stability Migrations Lighthouse v3 Migration Guide Build with Chrome Web Platform Capabilities ChromeDriver Extensions Chrome Web Store Chromium Web on Android Origin trials Release notes Productivity DevTools Lighthouse Chrome UX Report Accessibility Modern Web Guidance Workbox Puppeteer Experience AI Performance CSS and UI Identity Payments Privacy and security Resources All documentation Baseline web.dev PageSpeed Insights audit Isolated Web Apps (IWA) Home Docs Lighthouse Get started Introduction to Lighthouse Stay organized with collections Save and categorize content based on your preferences. Lighthouse is an open-source, automated tool to help you improve the quality of web pages. You can run it on any web page, public or requiring authentication. It has audits for performance, accessibility, SEO, and more. You can run Lighthouse in Chrome DevTools, from the command line, or as a Node module. Give Lighthouse a URL to audit, it runs a series of audits against the page, and then it generates a report on how well the page performed. Use the failed audits as indicators for how to improve the page. Each audit has a reference that explains why the audit is important, as well as how to fix it. You can also use Lighthouse CI to prevent regressions on your sites. Get started Choose the Lighthouse workflow that suits you best: In Chrome DevTools. Audit pages that require authentication and read your reports in a user-friendly format, right from the browser. From the command line. Automate your Lighthouse runs with shell scripts. As a Node module. Integrate Lighthouse into your continuous integration systems. From a web UI. Run Lighthouse and link to reports, no installation needed. Note: The CLI and Node workflows require you to have an instance of Google Chrome installed on your machine. Run Lighthouse in Chrome DevTools Lighthouse has its own panel in Chrome DevTools. To run a report: Download Google Chrome for Desktop. Open Chrome, and go to the URL you want to audit. You can audit any URL on the web. Open Chrome DevTools. Click the Lighthouse tab. To the left is the viewport of the web page to be audited. The right is the Chrome DevTools Lighthouse panel. Click Analyze page load. DevTools shows you a list of audit categories. Leave them all enabled. Click Run audit. After 30 to 60 seconds, Lighthouse gives you a report on the page. A Lighthouse report in Chrome DevTools. Install and run the Node command line tool To install the Node module: Download Google Chrome for Desktop. Install the current Long-Term Support version of Node. Install Lighthouse. The -g flag installs it as a global module. npm install -g lighthouse To run an audit: lighthouse <url> To see all the options: lighthouse --help Run the Node module programmatically See Using programmatically for an example of running Lighthouse programmatically, as a Node module. Run PageSpeed Insights To run Lighthouse on PageSpeed Insights: Go to PageSpeed Insights. Enter a web page URL. Click Analyze. The PageSpeed Insights website. Run Lighthouse as a Chrome Extension Caution: Unless you have a specific reason, you should use Chrome DevTools rather than this Chrome Extension workflow. The DevTools workflow allows for testing local sites and authenticated pages, while the extension does not. To install the extension: Download Google Chrome for Desktop. Install the Lighthouse Chrome Extension from the Chrome Webstore. To run an audit: In Chrome, go to the page you want to audit. Click Lighthouse, next to the Chrome address bar or in Chrome's extension menu. Once clicked, the Lighthouse menu expands. The extension prompts you to generate a report. Click Generate report. Lighthouse runs its audits against the currently-focused page, then opens up a new tab with a report of the results. A Lighthouse report generated from the extension. Share and view reports online Use the Lighthouse Viewer to view and share reports online. The Lighthouse Viewer Share reports as JSON The Lighthouse Viewer needs the JSON output of a Lighthouse report. Generate the JSON outputs as follows: From a Lighthouse report. Click more_vert for the menu, then click Save as JSON Command line. Run: shell lighthouse --output json --output-path <path/for/output.json> To view the report data: Open the Lighthouse Viewer. Drag the JSON file onto the Viewer, or click anywhere in the Viewer to open your file navigator and select the file. Share reports as GitHub Gists If you don't want to manually pass around JSON files, you can also share your reports as secret GitHub gists. One benefit of gists is free version control. To export a report as a gist from the report: Click the more_vert menu, then click Open In Viewer. The report is located at https://googlechrome.github.io/lighthouse/viewer/. From the Viewer, click more_vert menu, then click Save as Gist. The first time you do this, a popup asks permission to access your basic GitHub data, and to read and write to your gists. To export a report as a gist from the CLI version of Lighthouse, manually create a gist and copy-paste the report's JSON output into the gist. The gist filename containing the JSON output must end in .lighthouse.report.json. See Share reports as JSON for an example of how to generate JSON output from the command line tool. To view a report that's been saved as a gist: Add ?gist=<ID> to the Viewer's URL, where <ID> is the ID of the gist. text https://googlechrome.github.io/lighthouse/viewer/?gist=<ID> Open the Viewer, and paste the URL of a gist into it. Lighthouse extensibility Lighthouse aims to provide guidance that is relevant and actionable for all web developers. To this end, there are two features available that allow you to tailor Lighthouse to your specific needs. Stack packs Developers use many different technologies (backend, content management systems, and JavaScript frameworks) to build their web pages. Instead of surfacing general recommendations, Lighthouse provides relevant and actionable advice, depending on the tools used. Stack packs allow Lighthouse to detect what platform your site is built on and display specific stack-based recommendations. These recommendations are defined and curated by experts from the community. To contribute a stack pack, review the Contributing Guidelines. Lighthouse plugins Lighthouse plugins allow domain experts to extend the functionality of Lighthouse for their community's specific needs. You can leverage the data that Lighthouse collects to create new audits. At its core, a Lighthouse plugin is a node module that implements a set of checks to be run by Lighthouse and added to the report as a new category. For more information about how to create your own plugin, check out our Plugin Handbook in the Lighthouse GitHub repo. Integrate Lighthouse If you're a company or an individual who is integrating Lighthouse as part of the products or services you're offering, that's great! We want as many people as possible to use Lighthouse. Refer to the Guidelines and Brand Assets for Integrating Lighthouse to show that Lighthouse is used, while protecting our brand. Contribute to Lighthouse Lighthouse is open source and contributions are welcome! Check out the repository's Issue tracker to find bugs that you can fix, or audits that you can create or improve upon. The Issues are a good place to discuss performance metrics, ideas for new audits, or anything else related to Lighthouse. Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Last updated 2025-06-02 UTC. [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-02 UTC."],[],[]] Contribute File a bug See open issues Related content Chromium updates Case studies Archive Podcasts & shows Follow @ChromiumDev on X YouTube Chrome for Developers on LinkedIn RSS Terms Privacy Manage cookies English Deutsch Español – América Latina Français Indonesia Italiano Nederlands Polski Português – Brasil Tiếng Việt Türkçe Русский עברית العربيّة فارسی हिंदी বাংলা ภาษาไทย 中文 – 简体 中文 – 繁體 日本語 한국어