Lighthouse Best Practices Guide

Master Lighthouse Best Practices audits. Learn what they measure, why they matter for security and UX, and how to pass every audit.
Harlan WiltonHarlan Wilton6 min read Published

Best Practices audits check whether your site follows established web standards for security, browser compatibility, and user experience. Unlike Performance metrics with thresholds and percentiles, these are binary: pass or fail.

A site can score 100 on Performance and still fail Best Practices because of a single console error or missing HTTPS. These audits catch the fundamentals that are easy to overlook but damage user trust.

What Best Practices Measures

The Best Practices score is a simple percentage of passed audits. 12 audits total, each weighted equally. Pass 10 of 12 and you score 83.

These audits fall into three categories:

  • Security - Protecting users from attacks and data theft
  • Browser Compatibility - Ensuring your site works across browsers and devices
  • User Experience - Respecting user expectations and avoiding dark patterns

Security Audits

Security audits verify your site protects users from common attack vectors.

AuditWhat It ChecksWhy It Matters
Uses HTTPSPage loaded over secure connectionPrevents man-in-the-middle attacks, required for modern APIs
Redirects HTTP to HTTPSHTTP requests redirect to HTTPSEnsures users always land on secure version

HTTPS is non-negotiable in 2025. Browsers flag HTTP sites as "Not Secure," many APIs refuse to work, and SEO suffers. If you're still on HTTP, this is priority zero.

Browser Compatibility Audits

These audits check that your site works correctly across browsers and leverages modern web platform features.

AuditWhat It ChecksWhy It Matters
bfcache eligiblePage can use back/forward cacheInstant back navigation, better UX
Valid charsetCharacter encoding declared properlyPrevents garbled text, accessibility issues
Valid DOCTYPEHTML5 doctype presentStandards mode rendering, predictable behavior
Avoids deprecated APIsNo deprecated browser APIs usedFuture-proofing, avoiding breaking changes

The bfcache audit is particularly impactful. When eligible, back/forward navigation is instant—the browser restores the page from memory rather than reloading. Users expect this behavior and notice when it's broken.

User Experience Audits

UX audits catch patterns that frustrate users or violate their expectations.

AuditWhat It ChecksWhy It Matters
No browser errorsConsole free of errorsErrors indicate broken functionality
No geolocation on startGeolocation not requested on loadPermission requests need user context
No notification on startNotifications not requested on loadSame principle—context before permission
Allows paste in passwordsPassword fields allow pastingPassword managers need paste support
Proper image sizingImages sized appropriately for displayPrevents blurry or wasteful images
Correct aspect ratiosImages maintain aspect ratioPrevents distorted images
No DevTools issuesNo issues flagged by DevToolsCatches various browser-detected problems

The permission audits reflect a broader principle: never ask for permissions without user context. A geolocation prompt on page load feels invasive. The same prompt after clicking "Find stores near me" makes sense.

Scoring

Best Practices scoring is straightforward:

  • 100 - All audits pass
  • 92 - 11 of 12 pass
  • 83 - 10 of 12 pass
  • 75 - 9 of 12 pass

Each failed audit drops your score by about 8 points. Unlike Performance where partial improvements help, Best Practices is all-or-nothing per audit.

Important: A single console error drops you to 92. A missing HTTPS redirect drops you to 92. These are easy to miss during development but show up in production.

Common Failure Patterns

Third-party scripts: Ad networks, analytics, and widgets often throw console errors or use deprecated APIs. You can't always fix these, but you can choose better vendors or load scripts conditionally.

Development leftovers: Debug logging, test console.log statements, and uncaught promise rejections that worked fine locally but fail in production.

Legacy code: Old APIs that still work but are deprecated. The site functions, but the audit fails. Refactoring takes time but avoids future breakage.

Eager permission requests: Marketing pressure to prompt for notifications immediately. This tanks user trust and fails the audit. Delay permission requests until users demonstrate intent.

How to Diagnose Issues

Chrome DevTools:

  1. Open DevTools → Console tab
  2. Look for red errors (not warnings)
  3. Check Issues tab for browser-detected problems
  4. Run Lighthouse audit from Lighthouse tab

Key things to check:

  • Any JavaScript errors in console?
  • Any deprecation warnings?
  • What permission prompts appear on load?
  • Is the page served over HTTPS?
  • Does HTTP redirect to HTTPS?

All Best Practices Issues

Quick reference for every audit:

AuditCategoryFix Guide
Uses HTTPSSecurityFix
Redirects HTTP to HTTPSSecurityFix
bfcache eligibleBrowserFix
Valid charsetBrowserFix
Valid DOCTYPEBrowserFix
Avoids deprecated APIsBrowserFix
No browser errorsUXFix
No geolocation on startUXFix
No notification on startUXFix
Allows paste in passwordsUXFix
Proper image sizingUXFix
Correct aspect ratiosUXFix
No DevTools issuesUXFix

Diagnose your specific issue

Test Your Entire Site

The home page might pass Best Practices while blog posts throw console errors. The checkout flow might request permissions inappropriately. Dynamic pages might have image sizing issues that static pages don't.

Unlighthouse scans your entire site and surfaces Best Practices scores for every page. You'll find console errors on obscure pages, permission prompts you forgot about, and deprecated APIs in legacy sections.

The CLI is free and runs locally. Cloud adds scheduled monitoring to catch regressions—like when a third-party script update breaks your score.