Low-Involvement Sites: Static Generation and HTML Caching
Technical design for low-involvement websites requires checking both the body content in the initial HTML and the CDN's HTML cache. A TTFB of 0.8 seconds is a reference value for performance improvements, and cache coverage and updates after edits are also part of the design.
Including the main content in the initial HTML can reduce reliance on JavaScript execution.
Google runs JavaScript, so React use alone is not enough to conclude that search crawling will fail.
A TTFB of at most 0.8 seconds is a reference value for performance improvements, not the total page load time.
Cloudflare CDN does not cache HTML by default, so you need to check the cache rules for public pages.
HTML caching requires excluding login pages and setting a policy for refreshing the cache after content edits.
To help search engines crawl low-involvement websites, include the core content in the initial HTML. Static generation and CDN caching of HTML are useful for public content. However, achieving a TTFB of 0.8 seconds alone does not guarantee visibility in search results.
The TTFB figure is based on the web.dev document updated on November 18, 2025.
Technical conditions to check first on low-involvement websites
In this article, low-involvement websites are websites where people briefly check the information they need. Rendering and delivery speed are technical checkpoints for these sites. However, these two factors alone cannot explain all differences in search visibility.
Crawling is the process by which a bot fetches a page. Indexing is the process of preparing the fetched content for search. Google explains that not every crawled page is included in the index. Google crawl budget guide
Checkpoint | What to check | Problem to address
Initial HTML | Whether the response includes the title and core content | Dependence on additional execution to read the content
Rendering | Whether content appears correctly after JavaScript runs | Missing content caused by execution errors or blocking
TTFB | Time until the first response arrives | Delays in connections and server responses
HTML caching | Whether public documents are reused through the CDN | The cost of repeatedly requesting the origin server
Indexing status | How Google has processed the URL | Confusing successful crawling with inclusion in search
Why React pages can appear as empty HTML
The initial HTML of a React page depends on how it is implemented. Generating the content in the browser is called CSR. With this approach, the first response may contain only executable code, without the content.
Google uses Chromium to run JavaScript. Pages may wait for rendering after they are crawled. Blocked pages or files may be excluded from rendering. Not all bots run JavaScript, either. Google JavaScript SEO basics
So do not judge crawling status solely by whether the page looks correct on screen. First, check whether the initial response contains the content. You can check Google's rendered output using URL Inspection in Search Console.
Comparing static generation and server rendering
You can choose how to generate HTML based on how the public content is updated. Static generation creates HTML before a request. Server rendering creates HTML on the server when a request arrives. These approaches can also be used with React. web.dev guide to rendering approaches
Approach | When HTML is generated | When to consider it | Operational checks
Client-side rendering CSR | When JavaScript runs in the browser | Screens with frequent user interaction | Execution and requests needed before the content appears
Static generation SSG | At build time or when content is created | Public documents that show the same content to visitors | Regeneration and deployment after edits
Server rendering SSR | When a page request is processed | Screens that assemble up-to-date content for each request | Time spent retrieving data and generating HTML
Prerendering | When the app runs before deployment to produce HTML | Providing the initial content of an existing app in advance | JavaScript needed for subsequent functionality
Static generation and CDNs serve different roles. Static generation is a choice about when HTML is created. A CDN is a system for delivering and reusing content. Server-generated HTML can also be cached on a CDN if it meets the conditions.
What does a TTFB of 0.8 seconds mean?
TTFB is the time from the start of navigation to the first byte of the response. web.dev suggests at most 0.8 seconds as a rough target for most sites. This differs from the time it takes to display the entire page. TTFB itself is not a Core Web Vitals metric. web.dev explanation of TTFB
TTFB includes delays beyond internal server processing. A DNS lookup finds the connection address for a domain. Establishing TCP and TLS connections can also take time. Redirects to another address also have an effect.
· Time spent on DNS lookups and connection setup
· Time for requests and responses to travel across the network
· Time for the origin server to retrieve data and generate HTML
· Time spent on redirects before the first response
A server's location in Seoul alone does not mean its TTFB is more than 0.8 seconds. Results vary depending on the connection location and whether connections are reused. Google's crawlers primarily use US IP addresses. However, they may also connect from IP addresses in other countries. Technical characteristics of Google crawlers
Persistent response delays affect Google's crawl capacity. Server errors also cause crawl volume to decrease. However, there is no rule that crawling stops if TTFB exceeds 0.8 seconds once. Page quality and update frequency also affect crawl demand. Google crawl budget guide
Why you need to check HTML caching on a CDN
The Cloudflare CDN does not cache HTML by default. Even if images or CSS are cached, you need to check the content document separately. For the default behavior of other CDNs, check the service's documentation.
The Cloudflare CDN does not cache HTML or JSON by default. Cloudflare, Default cache behavior
This means that HTML and JSON are not cached by default. You can use Cache Rules to make public HTML eligible for caching. Conditions such as response headers and cookies also affect whether it is actually stored. Cloudflare default cache behavior
Caching reuses stored responses. Connecting to a CDN does not instantly replicate every document worldwide. Cloudflare caches content at the data center that handles the request. Requests for content not in the cache may need to reach the origin server. Cloudflare cache getting started guide
Exclude personalized pages when applying cache rules to public HTML. Cloudflare warns that caching dynamic HTML can expose one person's information to another. Do not cache login or account pages. Cloudflare Cache Everything precautions
Caching criteria by page conditions
Whether visitors see the same content is the starting point for deciding what to cache. Public explanatory content is well suited to shared reuse. Responses that vary depending on login status need separate handling.
Page condition | Configuration to consider | What else to check
The same explanatory content is shown to visitors | Static generation and public HTML caching | Regeneration and cache refresh after edits
Public content includes frequently changing figures | Separate update methods for the content and changing data | The reference time for the figures and what appears if an update fails
The latest public information is needed at request time | Consider server rendering and conditional caching | Acceptable information delay
Login, account, and payment screens | Exclude from shared HTML caching | Authentication cookies and user-specific responses
Public documents are offered in multiple languages | Language-specific URLs and caching for each document | Links between translations and updates for each language
Loading real-time data later makes it easier to keep the main content static. However, do not defer all core content needed for search. Doing so can conflict with the purpose of providing initial HTML.
Common mistakes and verification criteria
Judging results by technology names or settings screens alone makes it easy to miss errors. Check the actual HTML alongside response headers. The following are states that need to be distinguished.
Common assumption | What to verify
Search bots cannot read React sites | Initial HTML and Google's rendered output
A TTFB of 0.8 seconds means the entire page is displayed | Time from the first response until the content appears
HTML is cached because a CDN is connected | Cache status of HTML requests
Static files always contain the latest content | The last generation time and deployed content
A fast response means inclusion in search is complete | Indexing status in Search Console
One cache hit is enough to judge global speed | Measurements by connection region and cache hit status
Cloudflare's CF-Cache-Status is a header that shows cache status. HIT means the response was found in the cache. MISS means it was not in the cache at the time of the request and was fetched from the origin. DYNAMIC means it was not treated as eligible for caching. Cloudflare cache response explanations
Refreshing the cache after content edits
For static files and CDN caches, you also need to design the process for applying edits. Even if you change the source, old content will still be delivered if the previous cache remains. If you publish HTML and JSON together, their content must also match.
The following is a checking sequence for maintaining documents and data files together.
· Finalize the changes in the source data.
· Regenerate the HTML and data files from the same revised version.
· Deploy the new files, then refresh the cache for the changed URLs.
· Request each URL again to check that the edits match.
Cloudflare recommends purging the cache by URL. Purging removes stored responses. Regenerating static HTML is a separate task. Therefore, connect file generation and cache refresh within the same deployment process. Cloudflare cache purge guide
Set update intervals according to the information delay the content allows. Explanatory content and real-time figures do not need the same schedule. A short cache lifetime alone cannot solve every update problem.
hreflang criteria for multilingual sites
hreflang links the language- and region-specific URLs for the same content. It does not create translations. It helps Google find the appropriate language version for visitors.
Implementation location | How it is specified | What to check when choosing
HTML | Specify alternate language links in the document's head | Whether they can be managed in each page template
HTTP headers | Specify them in the response's Link header | Whether the headers can be managed on the server
Sitemap | Specify relationships between language-specific URLs in the sitemap | Whether the document list can be managed in bulk
Google treats these methods equally. Therefore, the information does not have to appear only in HTML. Each language document must identify the alternate language documents, including itself. Also check the links between corresponding pages. Google guide to multilingual pages
Steps to verify deployment results
After deployment, verify content delivery and cache behavior separately. Record the measurement region and cache status alongside speed measurements. Checking in the following order makes it easier to identify where problems occur.
· Check the HTML document response in browser developer tools. See whether the response includes the core content.
· Check the rendered HTML using URL Inspection in Search Console. Separately check the actual indexing status as well.
· Check the cache headers in the HTML response. On Cloudflare, read CF-Cache-Status.
· Measure the same document from key visitor regions. Distinguish cache misses from cache hits.
· Edit the content, then verify the update results. Also check that login pages are excluded from caching.
Cloudflare warns that excessive caching of dynamic HTML can break login functionality. Do not cache login forms or authenticated pages. After making changes, also check that authentication cookies are retained. Cloudflare login troubleshooting guide
Implementation requirements to give an AI coding assistant
Ask AI for verifiable results along with technology names. It is useful to specify the content of the initial HTML and what must be excluded from caching. The following is an example request for building public knowledge pages.
Include the core content of public knowledge pages in the initial HTML.
Consider static generation first for public documents.
Explain separately how changing data will be updated.
Check whether the CDN caches HTML.
Exclude login, account, and payment pages from shared caching.
Connect static file regeneration with cache refresh when content is edited.
Set up hreflang links if there are multilingual pages.
Provide methods to verify the initial HTML, cache status, and whether edits have been applied.