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. FAQ Q. Do low-involvement websites need to be built with a specific framework? A. No specific framework is required. Check whether the main content is included in the initial HTML. You should also review how public content is cached and updated. Q. Doesn't Google execute JavaScript? A. Google executes JavaScript using Chromium. However, rendering delays and blocked resources can affect processing. Including the main content in the initial HTML can reduce reliance on additional execution. Q. Can sites built with React also use static generation? A. React can also generate static HTML. It also supports generating HTML on the server. Whether a site uses React alone does not tell you what its initial HTML contains. Q. If TTFB is at most 0.8 seconds, has the page fully loaded? A. TTFB is the time it takes for the first response byte to arrive. Image downloads and page rendering may continue afterward. It should be distinguished from the total page load time. Q. Will a page be excluded from Google search if its TTFB is more than 0.8 seconds? A. 0.8 seconds is a rough performance target suggested by web.dev. It is not a rule that exceeding it leads to exclusion from search. Persistent response delays and server errors can affect crawl capacity. Q. Does using a server in Korea put a global site at a disadvantage? A. Visitors who are far away may experience network latency. However, location alone does not determine a specific response time. Base your judgment on actual measurements from the main regions your visitors access the site from. Q. Does connecting Cloudflare automatically cache HTML too? A. Cloudflare CDN does not cache HTML or JSON by default. Check the Cache Rules to apply to public HTML. After applying the rules, check the response headers to verify the actual cache status. Q. Is the first request always fast even when it is not in the CDN cache? A. A request that is not in the cache may need to fetch a response from the origin server. Its latency may therefore differ from that of a cache hit. Measure the two cases separately. Q. Is it okay to cache HTML on login pages too? A. Do not cache login pages or authenticated HTML. Cloudflare warns that excessive caching can break login behavior. There is also a risk of user-specific information being delivered to other visitors. Q. What should I do if I edit a post on a static site but still see the old content? A. First, check whether the new HTML has been generated and deployed. Then refresh the CDN cache for the changed URL. Clearing the cache alone does not regenerate static files. Q. Does hreflang have to be included only in HTML? A. Google supports HTML, HTTP headers, and sitemaps. All three methods are equivalent from Google's perspective. Choose the method that is easiest to manage and keep the links between language versions consistent. Q. Do I need to focus on managing crawl budget even for a small site? A. Google's crawl budget guidance is mainly aimed at large sites that are updated frequently. If your site does not have many pages, start by updating the sitemap and checking indexing reports. If there are server errors or missing main content, resolve those issues first. Sources - Google Search Central: Understand the JavaScript SEO basics: https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics - web.dev: Rendering on the web: https://web.dev/articles/rendering-on-the-web - web.dev: Time to First Byte (TTFB), updated November 18, 2025: https://web.dev/articles/ttfb - Google: Overview of Google crawlers and fetchers: https://developers.google.com/crawling/docs/crawlers-fetchers/overview-google-crawlers?hl=en - Google: Optimize your crawl budget: https://developers.google.com/crawling/docs/crawl-budget - Cloudflare: Default cache behavior: https://developers.cloudflare.com/cache/concepts/default-cache-behavior/ - Cloudflare Cache: Get started: https://developers.cloudflare.com/cache/get-started/ - Cloudflare: Cache Level (Cache Everything): https://developers.cloudflare.com/cache/how-to/cache-rules/examples/cache-everything/ - Cloudflare cache responses: https://developers.cloudflare.com/cache/concepts/cache-responses/ - Cloudflare: Purge cache: https://developers.cloudflare.com/cache/how-to/purge-cache/ - Cloudflare: Dynamic content and login issues: https://developers.cloudflare.com/cache/troubleshooting/dynamic-content-and-login-issues/ - Google Search Central: Tell Google about localized versions of your page: https://developers.google.com/search/docs/specialty/international/localized-versions Images - A man inspecting a server rack with neatly bundled purple cables: https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzgxNjYsInB1ciI6ImJsb2JfaWQifX0=--3301cc345476b9a82de57f9e5bdbad57a8717225/ai-cace8faa.webp - A woman compares web pages on two tablets beside a diagram linking a document refresh to two browser windows.: https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzgxNzIsInB1ciI6ImJsb2JfaWQifX0=--6d794cafac94909fa4ac95705b51dc5bde79c2df/ai-9e2e0147.webp --- Category: Knowledge Base Source: https://injoys.com/en/articles/low-involvement-web-static-generation-html-cache License: cc_by Translation-Status: reviewed