Inspect a direct response first
Open a deep page directly and record its response status, title, canonical and visible initial content. A successful client navigation from the homepage can hide a hosting rule that breaks direct requests. Keep a missing-route example in the same test sample. The browser address and the HTML returned by the host are part of the application contract.
Read the initial HTML separately from the live DOM
Server-rendered or statically generated content should contain the article explanation and useful links before interactive code starts. Inspect the response source, then compare it with the browser’s rendered DOM. A tool can need JavaScript for its calculation while still exposing its purpose, labels and instructions as ordinary HTML. These are distinct responsibilities.
Exercise hydration with real inputs
After the page loads, edit a field, trigger its primary action and verify a visible result. Watch for console errors and layout movement. Test a failure case, such as invalid JSON or an unsupported URL, rather than proving only that a button is present. A statically rendered form can look complete while its event handlers fail to become usable.
Follow links through the application router
Navigate to a related page and confirm that the document title, content and canonical update together. Return using browser history and check whether state behaves as expected. Split components can reduce unnecessary code, but their loaded chunks must belong to the same release. A missing runtime asset is a deployment integrity problem, not a reason to hide the error with more text.
Validate output and production delivery separately
An export checker can prove that referenced files exist locally and that canonical routes are generated. The host still decides status codes, MIME types, caching and redirects. Test those after an authorized deployment. Keep one complete artifact together so an old HTML file does not request a new release’s nonexistent chunks.
Keep the sample representative
Include a long article, a filtered directory, an original tool and a dynamically loaded tool. Test a narrow viewport and keyboard input as well as a desktop mouse path. Record which layer failed and the exact URL. This keeps the investigation focused on observable behavior rather than assuming every JavaScript framework has the same indexing characteristics.
Direct request → status, title, canonical, initial text
Hydration → input change, action, output, error state
Client navigation → destination content and head update
Hosting → deep links, content types, missing URLs, release assetsFrequently asked questions
Does a successful build prove Google can read the live page?
No. It verifies the build step. Delivery, access and search-engine processing still need their own checks.
Must all tools become server components?
No. Interactive controls need client behavior; the surrounding useful content can remain server-rendered.
Further reading
Put the idea to work.
Explore free browser tools for images, text and developer workflows.