VITE & REACT / EVIDENCE

An empty Vite page source does not prove Google sees an empty page.

Compare the HTTP response, the browser DOM and Google's view before blaming Vite or buying a rendering service.

BY VERISTRIA · 8 OCTOBER 2026 · 7 minute read

You open “View source” on a React site and find a root element, a script and very little text. It is tempting to conclude that Google sees an empty page. That conclusion skips an important step: Google can execute JavaScript, and different request paths can receive different output.

The initial response is evidence about that response. It is not automatically evidence of indexing failure. A useful investigation keeps three views separate and explains what each can—and cannot—tell you.

View one: the initial HTTP response

This is the HTML the server returns before the browser runs the app. A static app shell may contain almost none of the text you later see on screen. A server-rendered page may contain most of it. Neither observation, by itself, tells you whether a particular URL is in Google's index.

A tool that strips scripts and counts words is measuring the first view. Its output can help you prioritize a review, especially when a page is intended to work without authentication. But the count can also include navigation, hidden text or boilerplate. A zero might mean “nothing measured” rather than a successfully fetched blank page, depending on the tool.

Do not turn “42 words in the initial response” into “98% of your website is invisible” unless the metric really supports that statement. Usually it does not. Use the full URL, response time and test method alongside any number.

View two: the browser after JavaScript

The browser builds a document, loads resources and runs code. Content may appear after a request finishes or after a user interacts. This rendered document can differ substantially from the initial HTML.

Check the intended public content without signing in. If it appears only after a private account request, consider whether that page was ever supposed to be a public search result. Search repair should not expose private data. If the app depends on a button click to reveal its core public explanation, the issue is different from a server returning noindex.

Network errors, blocked resources and timing can matter. But a browser showing a page correctly does not prove that every other rendering environment receives exactly the same outcome. Save the observation; do not stretch it beyond the test.

View three: Google's evidence for the URL

Google's JavaScript guidance separates crawling, rendering and indexing. It describes execution of JavaScript, resource restrictions and the rendering queue. That makes “Google cannot read React” an inadequate diagnosis.

The owner's URL Inspection result provides a more relevant next piece of evidence. Look at the stored result and the current live test as different observations. When output is available, inspect the tested page and resource information. Record the date. Do not present an ordinary fetch with a Googlebot user-agent string as though it were a real Google crawl.

Three observations, three labels:
Initial response: what this HTTP request received.
Browser output: what this browser rendered.
Google evidence: what the owner's report or test shows.
Keep the labels attached when comparing them.

A real markup issue may not explain nonindexing

Consider a hypothetical page with two declared canonical URLs. Removing the contradictory declaration is a concrete, testable change. It still does not establish that this was the reason Google had not indexed the page. The page might also be new, duplicate another page or offer little distinct value.

This distinction is commercially important. A service should explain what its patch changes and what remains uncertain. “We corrected the duplicate declaration” is reviewable. “We solved your Google visibility” is a much larger claim that the same evidence does not establish.

Choose the smallest justified intervention

If the condition is an accidental header, fix the header. If it is a canonical origin drawn from a preview host, review that configuration. If direct requests for an intended public route return the wrong status, inspect the route/hosting rule. Avoid migrating the whole app merely because a scanner prefers initial HTML.

Some projects genuinely need architecture work. A large dynamic route set, build-time data requirements or a rendering implementation that cannot serve the product's public content may exceed a small repair. That is a separate engineering decision with its own tests, deployment risk and budget.

Google describes dynamic rendering as a workaround and points to other approaches for long-term solutions in its rendering guidance. That does not make any one approach mandatory for every site. Account for the current host, native platform features and the content's actual requirements.

A decision you can write down

Before changing anything, complete four statements: this public URL should show this content; the evidence shows this unintended condition; this small change should correct it; these checks will confirm the correction without damaging another route.

If you cannot complete the second statement, you have an investigation, not an agreed repair. If the change affects half the app, you have a larger engineering project. Either conclusion can save money.

Our buyer guide explains what fits a SearchPatch order. Bring a current owner report and up to three public URLs. We agree the condition before payment, then deliver the correction and a before/after record—not a promise of rankings.