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:
- 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.
- 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.
- 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.
- 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
- 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
- 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.
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.