Next.js

Next.js can produce the cleanest server-rendered output on this list or the emptiest app shell, depending entirely on the rendering mode chosen per route.

What tends to go wrong here

Static generation and server rendering both produce real HTML with content in it. Client-side data fetching in a component does not. The same codebase can have routes that inspect perfectly and routes that return an empty frame, which is why inspecting one URL is not enough on a Next.js site.

Where the findings land

Easy To Fix
Metadata, structured data, canonical, and landmarks, all in the layout and metadata API.
Harder To Fix
Moving a route from client-side data fetching to server rendering, which is a real code change with real trade-offs.
Usually Structural
Any route whose main content is fetched in a client component. That is the finding, and it is a rendering decision.

Worth knowing

Inspect at least three different route types on a Next.js site. A marketing page that scores 94 says nothing about a product detail route that fetches its data in the browser.

Updated .

Others in Frameworks and Custom Builds

  • React Single-Page Applications The classic structural case. If the content only exists after the bundle runs, the inspection sees what an AI retriever sees, which is nothing.
  • Static Site Generators Astro, Hugo, Eleventy, Jekyll and their relatives produce plain HTML files, which is the best starting position on this list.
  • Custom PHP and Flat-File Builds Complete control, no defaults, and every finding is a quick fix in the sense that you can reach the code. Whether anybody wrote that code is the question.

Find out which of these apply to you

Everything above is what usually happens on this platform. The inspection tells you what is actually happening on your page.

Run a Quick Inspection Every platform