What the decision must mean

Start by separating public material from private work. Product explanations, public listings and articles may need discovery through search. Customer dashboards and personal records need access control. Choosing server rendering for the whole application is not a substitute for deciding which URLs should exist publicly and what a first request should contain.

Roles and alternatives

For stable public content, pre-rendering can produce HTML ahead of requests. Request-time rendering can suit public pages whose data changes frequently. Client-side interactions can enhance either. Google's JavaScript guidance explains that crawling, rendering and indexing are distinct stages and recommends meaningful status codes. Our practical preference is to make the page's main explanation and ordinary navigation available in the initial HTML.

Walk through the change

Consider a directory with a public supplier page and a private procurement workspace. A direct request for the supplier URL should return its name, description and links; the private workspace requires authorization. Request an unknown supplier too: it should behave as a missing resource, not return an empty successful shell. Test the actual production response, because a development browser can hide these distinctions.

Check the failure paths

Avoid exposing private data through server-rendered payloads or shared caches. Do not assume a sitemap fixes pages that have no crawlable links. Keep canonical URLs consistent with the actual public page and treat loading, unavailable and nonexistent states differently. Search visibility still depends on useful content and discovery; rendering alone does not promise ranking or indexing.

Review routes before choosing how to render them

Create a route inventory with four columns: intended audience, source of content, freshness requirement and access requirement. A public supplier profile might come from reviewed editorial data and tolerate delayed publication, while a customer's order view needs current private records. Those differences justify separate rendering and caching decisions within one application. Do not let a single framework setting replace this page-by-page judgement or turn every changing value into a public response.

For a public page, inspect a direct request independently of the navigation that normally leads to it. Check the response status, title, canonical address, main text and real links. Then follow one of those links and request an invalid identifier. If a listing has pagination or filters, decide which combinations are useful public destinations and which are merely temporary views. Unlimited combinations of empty filters are not a content strategy. Keep the published route inventory aligned with the sitemap and normal navigation.

Review caching at the same boundary. Public editorial content may be reused, but a personalized response must not become another person's cached page. Test a signed-out visitor and two different accounts, using the actual deployment configuration rather than assuming local behaviour proves production safety. An indexing directive does not authorize access or protect a private response. When content is removed, handle its URL deliberately: redirect to a genuine replacement when one exists, otherwise return the appropriate missing state. Rendering should support these content decisions, not hide them behind a successful generic application shell.

Evidence from direct requests

Route typeWhat to verify
Published public profileInitial HTML contains the intended description and links, with metadata identifying that same profile.
Unknown public identifierThe response represents a missing resource; it does not advertise an empty page as normal content.
Private order pageUnauthorized requests cannot obtain its records, regardless of crawler directives or client-side button visibility.
Retired public pageIts status or replacement matches the editorial decision, and navigation no longer recommends a dead destination.

Agree these rules

Which pages deserve public search traffic? Does a direct HTTP response contain their essential content? What happens without a warm cache or a previous navigation? Bring a route list to the web-application design discussion and review access, content and metadata together.

Sources & further reading

  1. Google Search Central — JavaScript SEO
Services

Web applications

A clear workspace for complicated work.

Discuss this service