Accessibility, Best Practices and SEO scores explained

How Lighthouse scores accessibility, best practices and SEO: the weights, what each check looks for, which failures cost most and what a perfect score misses.

IntermediateReference12 min readUpdated October 30, 2026

In this guide
  1. How the three scores are made
  2. A check by hand: three test pages
  3. Accessibility
    1. Fix these first
    2. What real sites look like
  4. Best practices
  5. SEO
  6. What a good score leaves out
  7. Fix in this order
  8. Mistakes to avoid
  9. Check your own page
  10. Sources

How the three scores are made

Each Lighthouse category is a list of checks, which Lighthouse calls audits. Every audit has a weight inside its category. In these three categories an audit nearly always scores exactly 0 or 1. The category score is the weight of the audits that passed, divided by the weight of the audits that apply to the page, times 100. Three rules follow from that.

Older sources disagree with the numbers on this page. Lighthouse's own scoring page still says that every audit in best practices and SEO has the same weight, and it gives accessibility weights "for v7". The configuration of Lighthouse 13.5, the version I installed and tested, matches neither statement. It gives some audits far more weight than others. The configuration is what actually runs, so the numbers below come from it, and the next section checks them against real reports. PageSpeed Insights may run a different version, so its weights can differ a little. Every Lighthouse report prints its version number.

A check by hand: three test pages

To see the average at work, I wrote three tiny pages, ran Lighthouse 13.5 on each in mobile mode, and worked out the scores from the weights. Most checks did not apply to such small pages, so the weight that applied is far below the full total.

Test pageCategoryFailed (weight)AppliedPassedScore
An image with no alt attribute, and an SVG with role="img" and no textAccessibilityImage has no alt (10), SVG image has no text (1)15 audits, weight 9483 of 94 = 0.88388
No <title>, and a heading that jumps from H1 to H3AccessibilityNo title (7), heading order (3)8 audits, weight 5444 of 54 = 0.81581
The same pageSEONo title (1), no meta description (1)7 audits, weight 10.048.04 of 10.04 = 0.80180
Links that use javascript:void(0) or have no hrefSEOLinks not crawlable (1)7 audits, weight 10.049.04 of 10.04 = 0.90090

The reported scores matched my arithmetic in all four cases. One missing alt and one SVG without text cost 12 points on a page where only 94 units of weight applied. On a page where all 58 accessibility checks applied, the same two failures would cost under 3 points (11 of 416). So compare a score with the same page last month, not with a different page.

The SEO runs also show the third rule. The checks for robots.txt, the canonical link and image alt text did not apply, because the test server had no robots.txt and the pages had no canonical link and no images. A page with no canonical link is not marked down.

Accessibility

The category has 58 scored audits with a total weight of 416. They sit in eight groups. The group called "Best practices" here is Lighthouse's label for a few accessibility checks. It is not the separate Best Practices category further down.

GroupAuditsShare of weightWhat it checks
ARIA2242%That role and aria-* attributes are valid, spelled right and in the right place, and that custom widgets have names
Names and labels1223%That images, buttons, links, form fields, frames and the page title have a name a screen reader can speak
Tables and lists610%That lists and tables are built from the right elements
Best practices78%Zoom not blocked, no automatic refresh, touch target size, a main landmark
Navigation46%A way to skip repeated blocks, heading order, no positive tabindex, unique access keys
Language46%A valid lang on the page and on parts in another language
Contrast23%Text contrast, and links that differ from the text around them by more than color
Audio and video12%Captions on video

The weights come in four steps.

WeightAuditsWhat is in the step
1018Images with no alt. Buttons, input buttons, image inputs, select menus and form fields with no name. Video with no captions. Zoom blocked in the viewport tag. Automatic refresh by meta tag. Nine ARIA checks, such as invalid roles, misspelled attributes and aria-hidden on the body
731Links with no name. No <title>. No lang on <html>. Low-contrast text. Small touch targets. No way to skip repeated content. Lists built wrongly. ARIA widgets with no name
35Heading order. A field with more than one label. A skip link that cannot be focused. No main landmark. A lang and xml:lang that disagree
14Deprecated ARIA roles. Wrong autocomplete values. Conflicting presentation roles. An SVG with role="img" and no text

Eighteen more audits have weight 0. Ten are manual checks, such as tab order, focus traps and custom controls, which Lighthouse asks you to review yourself. The rest run but do not change the score, for example empty headings and redundant alt text.

Fix these first

What the report saysWeightThe fix
Image elements do not have [alt] attributes10Describe what the image shows or does. Use alt="" when it is only decoration. See image SEO and speed
Buttons do not have an accessible name10Put text inside the button, or add aria-label to an icon-only one
Form elements do not have associated labels10Add a label tied to the field with for. A placeholder is not a label
user-scalable="no" is used, or maximum-scale is less than 510Remove those limits from the viewport tag, so people can zoom
Links do not have a discernible name7Give the link text, or alt text when the link is an image
Background and foreground colors do not have a sufficient contrast ratio7WCAG level AA asks for at least 4.5 to 1 for normal text and 3 to 1 for large text
Document doesn't have a <title>7Add a short title that fits the page
<html> element does not have a [lang] attribute7Add lang="en", or the language of the page
Heading elements are not in a sequentially-descending order3Do not skip levels: H1, then H2, then H3

What real sites look like

The 2025 Web Almanac reports on the HTTP Archive's monthly crawl of 17 million sites, which uses Lighthouse. The median accessibility score was 85, up from 83 in 2019. Only 31% of mobile sites met the minimum text contrast. Of mobile sites, 19% limited zooming. About a quarter of form inputs had no accessible name at all: 24.65% on desktop and 24.93% on mobile. Those problems match the contrast, viewport and label checks above, which is why those three are worth fixing early.

Best practices

The category has 13 scored audits with a total weight of 27.

GroupWhat it flagsWeight
Trust and safetyThe page does not use HTTPS, including mixed content5
Trust and safetyHTTP traffic is not redirected to HTTPS1
Trust and safetyThe page asks for the location permission as it loads1
Trust and safetyThe page asks for the notification permission as it loads1
User experienceInputs block pasting, which also blocks password managers3
User experienceImages are shown at the wrong aspect ratio1
User experienceImages have too low a resolution for the space they fill1
Browser compatibilityThe page has no doctype, so the browser uses quirks mode1
Browser compatibilityThe character set is missing or comes too late1
GeneralThe page uses deprecated APIs5
GeneralThe page uses third-party cookies5
GeneralErrors were logged to the browser console1
GeneralIssues were logged in the Issues panel of Chrome DevTools1

SEO

The category has 10 scored audits with a total weight of 13.04. The check for a page blocked from indexing carries 4.04 of that, about 31%. Each of the other nine carries about 7.7%.

CheckShareWhat makes it fail
Page is blocked from indexing31%noindex or none in a robots meta tag or an X-Robots-Tag header, or a robots.txt rule that disallows the page
Page has unsuccessful HTTP status code7.7%The page itself answered with a status from 400 to 599
Document doesn't have a <title>7.7%No title element, or an empty one
Document does not have a meta description7.7%No description tag, or an empty one
Links do not have descriptive text7.7%Link text from a list of vague phrases
Links are not crawlable7.7%Anchors that rely on script instead of a real href
robots.txt is not valid7.7%Syntax errors in the file, or a server error when it is requested
Image elements do not have [alt] attributes7.7%The same check as in accessibility
Document doesn't have a valid hreflang7.7%An hreflang link with a language code Lighthouse does not know, or an href that is not a full address
Document does not have a valid rel=canonical7.7%A canonical link that is relative, invalid, conflicting or pointing at the wrong place

Lighthouse says in its own description of the category that many factors it does not score may affect search ranking, including performance on Core Web Vitals. Older articles mention font size and tap target checks in the SEO category. The 13.5 SEO category has neither. Touch target size now sits in accessibility as a check with weight 7.

What a good score leaves out

ScoreWhat it cannot showWhat to do next
Accessibility 100Lighthouse says automatic detection finds only a subset of issues. Whether alt text is accurate, whether headings and landmarks are marked up correctly, whether focus order makes sense and whether video has transcripts all need a personPut the mouse aside and tab through the page. Zoom in. Read it with a screen reader. See the web.dev guide in the sources
Best practices 100It is not a security audit. Five header checks are unscoredTest headers on their own with curl or a header checker
SEO 100It does not know whether Google has indexed the page or how it ranksUse Search Console for indexing, and read page speed and Google rankings

The Web Almanac adds a warning of its own. It cites a comparison in which every popular automated accessibility tool found less than half of accessibility errors, and it treats a Lighthouse score as a starting point, not a goal. It also notes that when a metric becomes a target, it stops being a reliable metric.

Fix in this order

  1. Accessibility: names first (images, buttons, links, form fields), then zoom, lang and title, then contrast, then ARIA errors. Prefer plain HTML elements to ARIA where one exists.
  2. Best practices: HTTPS everywhere with a redirect, then console errors and Issues panel entries, then the script behind a deprecated API or a third-party cookie.
  3. SEO: make sure the page is not blocked, check its status code, then the title and description, then the links, then canonical and hreflang if you use them.
  4. Last: test by hand what the scores cannot see.

Mistakes to avoid

Check your own page

Run the free audit and read the SEO findings, then open the same page in PageSpeed Insights and note its accessibility, best practices and SEO scores. For each failed check, find it in the tables above to see its weight, and fix the heaviest one first. Then tab through the page with the keyboard. See PageSpeed Insights explained for how to read the report.

Sources

Start here

Free website audit

Live Google data for any public page: mobile and desktop.

Mobile + desktop · Lighthouse lab test · Real-user Chrome data when Google has it

Rather have this done for you? Speed optimization · Book a call

Related guides

All guides →