Search visibility can be weakened by technical page defects that are easy to miss during normal browsing. A repeatable audit should expose crawlable markup problems on the page templates that matter most, while keeping each finding tied to the exact URL that produced it.

The Lighthouse SEO category runs automated checks against one rendered page and can save the complete result as JSON. Choose one live canonical URL for each important template instead of treating one homepage score as evidence for the whole site; the CLI path assumes Chrome or Chromium, Lighthouse, and jq are already available.

Google index coverage, keyword relevance, backlinks, and query traffic fall outside the automated Lighthouse checks. Google Search Console supplies those signals, while the Lighthouse score acts as a triage surface for concrete page markup or crawlability work.

Steps to perform an SEO audit for your website with Lighthouse:

  1. Select one live canonical URL for each page template that matters to search traffic.
    Homepage
    Primary service or category page
    Lead or checkout page
    Representative article or help page

    A public URL that returns the intended page without a login, consent wall, or staging-only access control provides a representative audit target.

  2. Run a separate Lighthouse SEO audit for each selected URL with its own JSON output path.
    $ lighthouse https://example.com/ --only-categories=seo --output=json --output-path=seo-audit.json --chrome-flags="--headless" --quiet

    The placeholder URL stands for the selected canonical URL, and a distinct output filename keeps each template's findings attributable to its source page.

  3. Read the SEO score from each saved report.
    $ jq '.categories.seo.score * 100' seo-audit.json
    80

    The score summarizes only the automated SEO checks included in that Lighthouse release. A score of 100 does not prove that Google indexed the page or that its content matches valuable searches.

  4. List the failed automated audits from each saved report.
    $ jq -r '.audits[] | select(.score == 0) | .title' seo-audit.json
    Document does not have a meta description
    Links do not have descriptive text
  5. Record each failed audit beside the template URL that produced it.
    URL: https://example.com/
    Template: Homepage
    SEO score: 80
    Finding: Document does not have a meta description
    Finding: Links do not have descriptive text
  6. Confirm each saved Lighthouse JSON report is structurally complete.
    $ jq -e '.categories.seo.score != null and (.audits | type == "object")' seo-audit.json
    true

    A missing score, missing audit object, runtime error, or nonzero jq exit marks the report as incomplete and unsuitable for findings.