SaaS technical SEO audit: what Lighthouse actually flags on a Next.js site
A SaaS SEO audit of a Next.js site should measure a live URL with Lighthouse on mobile and desktop, label where each finding came from, and rank the fixes.
What should a SaaS SEO audit measure?
Most SaaS SEO audit checklists stop at advice. A useful audit measures the page you actually shipped.
On a Next.js marketing or product URL that means the HTML people and crawlers receive, not a design file and not a local preview. You need a mobile run and a desktop run. The same route often fails one and passes the other. A hero that looks fine on a laptop can wreck Largest Contentful Paint on a phone. A desktop nav can hide tap-target and contrast issues that only appear on a narrow viewport.
The audit also has to say where a finding came from. A score with no source is a lecture. Labelled evidence lets you open the check, see the node or the metric, and decide if it is real. You need the live URL, measured twice, with the evidence still attached.
What does Lighthouse actually flag on a Next.js SaaS page?
Lighthouse is not a ranking oracle. It is a lab measurement of the URL you give it. On Next.js SaaS pages it keeps surfacing the same families of issues.
Performance first, because they change how the page is felt and how long a crawler waits:
- Largest Contentful Paint, often a hero, a web font, or a client-rendered block that was not in the first HTML
- Cumulative Layout Shift from images or embeds without reserved space, or from fonts swapping late
- Main-thread work and Total Blocking Time from a large client bundle on a marketing route
- Render-blocking CSS and unused JavaScript left over from app-shell code
- Images served at the wrong size, or a raw img tag instead of next/image, so the browser downloads more than it paints
Then the document and SEO checks:
- A missing or weak title and meta description, usually because the App Router metadata API was never set on that route
- Links without a discernible name
- A page blocked from indexing, or a robots check that fails for that URL
- Canonical or viewport problems that make the document look unfinished
- Heading structure that skips levels, or an H1 that only appears after hydration
Accessibility sits beside those. Contrast, tap targets, and missing alt text are flagged on the same URL. The page is harder to use than it looks in a laptop browser.
Why do Next.js sites fail checks a static page would pass?
Next.js makes it easy to ship a SaaS that looks complete in the browser and thin to a crawler.
Client Components move work to the browser. If the meaningful copy, the pricing table, or the H1 only appears after hydration, Lighthouse first paint and the extracted document can disagree with what you see when you click around. Putting use client on a layout is a common way to drag a marketing page into that state.
The metadata API is easy to skip on a new route. You inherit a generic title from the root layout and no description. Lighthouse will say so. So will anyone reading the tab.
Fonts and images are the other usual leak. A next/font file that swaps late shifts the hero. A raw image in a client island has no width or height. The App Router will happily ship both.
This is why the audit has to run on the production URL, mobile and desktop, and keep the evidence on the finding. A local dev server will not match what Lighthouse records on the live host.
What should you do with the findings?
A list of red items is not a plan. Rank them.
A missing title is a text change. A bloated client bundle on the pricing page is an engineering change.
Each finding should carry two things:
- 01The labelled source: which Lighthouse run, which audit, which node or metric
- 02A rank, so you know what to do first
A list without a rank is how the report sits in a folder.
What does iVanHub measure on a live URL?
Paste a SaaS URL. iVanHub runs Lighthouse on mobile and desktop, checks technical SEO and accessibility, and keeps a labelled source on every finding. You get a ranked fix list.
It is one live URL. The point is the page you care about: measured, labelled, and ranked.
What we measure
- Lighthouse on mobile and desktop
- Technical SEO and accessibility on that URL
- Labelled evidence on every finding
- Ranked fixes