Chapter 19 — Exercises

Work these with the chapter open. Items marked have worked solutions in the answers appendix; the rest are for discussion or self-check. No answers appear in this file. Where a task uses a tool, it is a free one (your browser, a Google search, Search Console).

A. Recall and definitions

19.1 In one sentence each, distinguish client-side rendering, server-side rendering, and static site generation by when and where the HTML is produced.

19.2 † What is the two-wave index, and why does content that exists only after client-side rendering depend on the "second wave" while content in the raw HTML does not?

19.3 Name three things the Web Rendering Service (Googlebot's renderer) does not do that a human user does — and give one content pattern that each omission can hide from Google.

19.4 † Define hydration. Why does it mean an SSR page can show correct content to a crawler immediately even though its interactivity arrives a moment later?

19.5 What does dynamic rendering serve to bots versus users, and in one sentence, what single condition keeps it from being cloaking?

19.6 Explain the difference between prerendering in general and static site generation specifically.

B. Applied reasoning

19.7 † A colleague says, "We're switching to React, so kiss our SEO goodbye." Correct the reasoning in two or three sentences: what is actually true, and what is the real question they should be asking?

19.8 A logged-in customer dashboard is built as a client-rendered single-page application. Is that a JavaScript-SEO problem? Explain your answer using the §19.7 decision rule.

19.9 † Rank these four approaches from most to least reliable for getting content indexed, and give the one-line reason for the ordering: dynamic rendering, static site generation, client-side rendering, server-side rendering.

19.10 Explain why a client-rendered page can be perfectly indexed by Google yet still show up as a blank, titleless card when someone pastes its URL into a chat app — and why that gap is getting more important, not less.

19.11 † Your developer proposes serving a keyword-rich text block to Googlebot that users never see, calling it "just dynamic rendering." Explain precisely why this is not dynamic rendering, what it actually is, and the risk it creates.

19.12 A news site's breaking-story pages are client-rendered. Why is a rendering delay a much bigger problem for this site than it would be for an evergreen how-to blog?

C. Diagnose the problem

19.13 † A page ranks for nothing. You View Source and find only <div id="root"></div> and some script tags — none of the visible body text. List, in order, the next two free checks you would run and what each result would tell you.

19.14 A brand-new set of product pages on a React site is taking weeks to be discovered by Google, while the older pages index fine. You notice the site's menu items are <div>s with JavaScript click handlers, not <a href> links. Explain the likely cause and the fix.

19.15 † An e-commerce category page shows 60 products in the browser, but Google seems to index only the first 12. The page uses a "Load more" button to reveal the rest. Diagnose the cause and give two fixes that keep the button for users.

19.16 A site's entire catalog uses URLs like store.example/#/product/8842. Only the home page appears in site: results. Explain what is happening at the URL level and state the correct fix.

19.17 † A page's content appears in the browser and even in URL Inspection's rendered HTML, but a specific paragraph is missing from both. The paragraph is fetched from a third-party API. Give two distinct reasons the render could have completed without it, and the architectural change that removes the risk.

19.18 A developer "saved crawl budget" by adding Disallow: /assets/js/ to robots.txt on a client-rendered site. Traffic collapsed. Explain the mechanism connecting the two.

D. Audit your own site (free tools)

19.19 † Open your most important page, View Page Source, and Ctrl+F for a distinctive sentence you can see on screen. Record: is your core content in the raw HTML, or is it JavaScript-built? Write the one-sentence verdict.

19.20 Take a sentence that appears only in a JavaScript-built part of one of your pages, quote it, and run a site: phrase search for it on Google. Record whether Google returned the page, and what that tells you.

19.21 † In your browser's developer tools, disable JavaScript and reload one important page. Note everything that disappears — content, links, navigation. For each disappearing item, decide whether it is something Google must be able to see.

19.22 If you have Google Search Console access, inspect one URL and open the rendered HTML (and the list of page resources). Record whether your main content is present and whether any resource failed to load.

19.23 † Check your robots.txt (visit yourdomain/robots.txt). Is any folder containing JavaScript or CSS disallowed? Write down what you find and why it matters for rendering.

E. Research and read-the-report

19.24 Pick three well-known websites you use. For each, View Source and decide from the raw HTML whether it looks server-rendered (content present) or client-rendered (an empty shell). Note what surprised you.

19.25 † Read the figure below and answer the questions beneath it.

FIGURE E19.1 — URL Inspection, "Store category page"          [constructed teaching example]
  Crawled HTML:   <div id="app"></div> + scripts; no product names or prices in the body.
  Rendered HTML:  full grid of 24 products with names, prices, links present.
  Page resources: 1 resource "Other error" — a script at reviews-widget.thirdparty.example.
  Coverage:       URL is on Google. Indexed.

(a) Did Google see the products this time? (b) Name one reason you would still not call this page "safe." (c) State the move that would make indexing no longer depend on a live render succeeding.

19.26 In your own words, write a four-field mini-report (WHAT'S THERE / WHAT IT SHOWS / WHAT IT DOESN'T / THE MOVE) for a page where View Source is an empty shell but the site: phrase search does return the page.

F. Spot the myth, and judge the risk

19.27 † Two people give you opposite advice: "Google can't read JavaScript, avoid React entirely" and "Google renders JavaScript perfectly now, so JavaScript SEO is a solved problem." Explain why both are wrong and state the accurate middle position.

19.28 "We'll add noindex to the page with JavaScript after it loads, to hide it from Google." Explain why this can fail to do what they intend, referencing how Google handles a noindex seen in the initial HTML.

19.29 † A vendor pitches a "prerender for SEO" service that shows Googlebot a snapshot generated specifically for crawlers. List two honest questions you would ask before adopting it, and name the Google stance on this general approach.

19.30 Ethics/risk: a team under pressure wants to detect Googlebot and serve it a heavier, more keyword-dense version of each page "to help it understand us." Draw the line for them between an acceptable practice and a policy violation, and say which side this lands on.

G. Rivertown Strategy File extension

19.31 † Write the four-step "can Google see it?" test as a checklist Marisa and Tony Delgado could hand to whoever maintains rivertownhome.example, in plain language (no jargon they'd have to look up).

19.32 Rivertown's location pages embed a third-party star-rating widget that is injected by JavaScript. The Delgados assume "the stars in Google's results come from that widget." Correct the assumption: explain what Google can and cannot do with a JavaScript reviews widget, and name (without solving) the two later chapters where the real fix lives.