# The technical SEO checks Lighthouse runs (and what it misses)

> Lighthouse's SEO audit checks indexability, titles, meta descriptions, canonicals, hreflang and link text on one page. Here is what it misses.

Published: 2026-11-15 · Author: AiroPages

Lighthouse's SEO category runs a short checklist of technical basics on one page: can it be indexed, does it return a successful status code, does it have a title, meta description, valid canonical and hreflang tags, and crawlable links. It is a good smoke test, but it cannot see content quality, backlinks, duplicate content or anything that only shows up across many pages. This post covers what each check does, what it misses, and why you need to run it on every page.

## What the Lighthouse SEO category checks

The SEO category is a list of pass or fail audits for a single URL. Each one looks for a common technical mistake that can stop a search engine from crawling, indexing or understanding the page. The score from 0 to 100 is a weighted average of the audits that pass, using the same bands as the other categories: 90 to 100 is good, 50 to 89 needs improvement, 0 to 49 is poor. See [Lighthouse score](/glossary/lighthouse-score) for how the categories are scored.

The audits fall into two groups.

### Crawling and indexing

- **Page isn't blocked from indexing.** Fails when Lighthouse finds a `noindex` directive, for example in a meta robots tag or an `X-Robots-Tag` header, or a rule that blocks crawlers from the page.
- **Page has a successful HTTP status code.** Fails on error responses such as 404 or 500. A page that errors for crawlers will not be indexed.
- **Links are crawlable.** Checks that links use a real `href` that a crawler can follow, rather than a `javascript:` URL or a click handler with no link behind it.
- **robots.txt is valid.** Fetches `/robots.txt` and reports lines that cannot be parsed. A malformed file can block more, or less, than you intended.
- **Document has a valid rel=canonical.** Flags canonical tags that are invalid, conflicting (more than one), or point somewhere suspicious, such as a different domain or the homepage from a deep page.
- **Document has a valid hreflang.** For multilingual sites, checks that `hreflang` annotations use valid language codes and well-formed URLs.

### Content basics

- **Document has a title element.** The title is the main headline in search results.
- **Document has a meta description.** Search engines often use it as the snippet under the title.
- **Links have descriptive text.** Flags generic link text such as "click here" or "read more", which tells search engines and users nothing about the target page.
- **Image elements have alt attributes.** Alt text helps search engines understand images and is also an [accessibility](/blog/accessibility-at-scale) requirement.

Lighthouse also lists **structured data** as an item to check manually. It is not scored, because validating structured data needs a dedicated tool.

Older versions of Lighthouse included some mobile-friendliness checks in this category, such as tap target sizing. Those have since been removed or moved, so do not treat the current SEO score as a mobile usability test.

## What a good result looks like

A healthy page passes every applicable audit and scores 100. Unlike the Performance score, the SEO score does not swing from run to run on an unchanged page: a check either passes or it does not. So any score below 100 points to a specific, fixable issue.

The most common failures are easy to spot once you know where to look:

1. **A leftover `noindex`** from a staging environment or a CMS setting on one content type.
2. **Missing meta descriptions** on a template that never had a description field, such as tag or category archives.
3. **Canonical tags pointing to the wrong URL**, often on product variants, filtered listings or pages with tracking parameters.
4. **Generic link text** in card components, where every card ends with "Read more".
5. **Images without alt attributes** in a gallery, logo strip or product grid.

## What Lighthouse can't tell you

Lighthouse only sees one page, as it loads, at one moment. Anything that depends on comparing pages, on data from outside your site, or on human judgment is out of scope.

| Area | Lighthouse checks it? | What to use instead |
|---|---|---|
| Indexability of one page | Yes | Lighthouse, plus Search Console's URL inspection |
| Title and meta description present | Yes | Lighthouse |
| Title and description quality | No | Human review against the search queries you target |
| Content quality and usefulness | No | Editorial review |
| Backlinks | No | Search Console's links report or a backlink tool |
| Duplicate content across pages | No | A site crawl that compares pages and canonicals |
| Internal linking and orphan pages | No | A site crawl that maps links between pages |
| Redirect chains and broken links site-wide | No | A site crawl |
| Sitemap coverage | No | Search Console's page indexing report |
| Real-user page speed | No, lab only | [Chrome UX Report field data](/glossary/crux) and Search Console's Core Web Vitals report |

A few of these deserve a closer look.

**Content quality.** Lighthouse checks that a title exists, not that it is any good. A page titled "Home" passes. So does a meta description that repeats the title.

**Duplicate content.** Lighthouse can confirm a canonical tag is valid, but it cannot know whether 40 filtered category URLs all show the same products. That needs a crawler that compares pages.

**Internal linking.** A page can pass every audit and still be an orphan that nothing links to. Lighthouse never follows links beyond the page it is testing.

**Site-wide crawl issues.** Redirect chains, soft 404s, crawl traps from faceted navigation and sitemaps full of broken URLs only show up when you look at the whole site.

## Why checking every page matters for SEO

SEO problems rarely live on the homepage. They live in templates, and the homepage is usually the one template that gets the most attention. Testing it alone tells you very little about the rest of the site, which is the core point of [Lighthouse only tests one page](/blog/lighthouse-only-tests-one-page).

Consider a typical site with a few templates: homepage, blog posts, category archives, product pages and landing pages. For example:

- A developer adds `noindex` to tag archives to stop thin pages from being indexed, but the rule also matches the main blog index.
- The product template builds the canonical URL from the current URL, so every tracking parameter creates a new "canonical".
- The blog template has no meta description field, so every post relies on whatever snippet Google picks.

None of these would show up in a homepage audit. Each one affects every page built from that template, which might be hundreds of URLs. This is why grouping results by template matters: one fix to the template clears the issue everywhere. The post on [template-level fixes](/blog/template-level-fixes) covers that approach in more detail.

Checking every page also catches one-off problems: the single landing page someone built with a different tool, the old campaign page that now returns a 404 but is still in the sitemap, or a page an editor accidentally set to noindex.

## How to check this across your whole site

The manual way is to collect every URL from your sitemap, run Lighthouse on each one with the CLI or a script, and collect the SEO audits into a spreadsheet. Filter for failures, then sort by audit to see which problems repeat. The guide to [running Lighthouse on every page](/guides/run-lighthouse-on-every-page) walks through the steps, including how to clean up your URL list first.

If you would rather not maintain scripts, AiroPages is a hosted option. You enter a domain or sitemap URL, it finds your pages, runs Lighthouse on mobile and desktop for each one, and groups identical issues by page template so you can see which fix covers the most pages. Each issue comes with a plain-English explanation and a technical fix for your developer.

## Where Lighthouse fits in an SEO workflow

Use Lighthouse for what it does well: fast, repeatable, page-level checks of technical basics. A sensible routine looks like this:

1. **Run the SEO audits on every indexable page** after major releases, CMS changes or migrations.
2. **Fix template-level failures first**, ranked by how many pages they affect.
3. **Review titles and descriptions by hand** for your most important pages, since Lighthouse only checks they exist.
4. **Use Search Console** for indexing status, backlinks and field performance data.
5. **Run a site crawl** periodically for duplicate content, redirects and internal links.

The SEO category is also a good place to start if you are preparing your site for AI tools. Clean titles, crawlable links and descriptive link text help any system that reads your pages, which overlaps with Lighthouse's newer [Agentic Browsing checks](/blog/get-your-site-ready-for-ai-agents).

Lighthouse's SEO audits are a checklist, not a strategy. They tell you whether search engines can crawl, index and parse a page, and they do that reliably. Run them on every page, fix the templates that fail, and use other tools for the questions Lighthouse was never built to answer.
