Prerendering
Generating and caching a fully rendered HTML snapshot of a JavaScript page at build time or on request, so crawlers receive complete markup.
Serving a server-rendered HTML version to crawlers and a client-rendered version to users; Google now describes it as a deprecated workaround.
Dynamic rendering detects crawler user agents and routes them to a prerendering service. Google explicitly labels it a workaround rather than a long-term solution because it is brittle, doubles the surfaces you must keep in sync, and sits uncomfortably close to cloaking. The recommended replacements are server-side rendering, static generation or hydration. It survives in practice mainly as a stopgap on legacy single-page applications.
A legacy Angular app routes requests whose user agent matches Googlebot to a Rendertron instance while humans get the SPA.
Generating and caching a fully rendered HTML snapshot of a JavaScript page at build time or on request, so crawlers receive complete markup.
Generating a page's full HTML on the server for each request, so crawlers and users receive complete markup without executing JavaScript.
Presenting different content or URLs to search engines than to users with the intent to manipulate rankings; a Google spam policy violation.
The execution of a page's client-side JavaScript by a search engine so that content and links generated at runtime become indexable.
An architecture where one HTML shell loads and JavaScript handles all subsequent routing and content updates without full page loads.