TechnicalSPA

Single-page application

An architecture where one HTML shell loads and JavaScript handles all subsequent routing and content updates without full page loads.

In full

SPAs are indexable if built correctly, but they concentrate risk: routes must have real, server-addressable URLs; the History API must be used rather than fragment routing; and metadata such as titles, canonicals and structured data must update per route. Because crawlers do not click, every route must be reachable via a crawlable `<a href>`. Non-rendering agents, including many AI crawlers, will see only the shell unless SSR or prerendering is added.

Example

A Vue app routes with `#/products/123`; crawlers treat all fragments as the same URL, so no product page is ever indexed separately.

Related terms

JavaScript rendering

The execution of a page's client-side JavaScript by a search engine so that content and links generated at runtime become indexable.

Server-side rendering

Generating a page's full HTML on the server for each request, so crawlers and users receive complete markup without executing JavaScript.

Hydration

Attaching client-side JavaScript behaviour to server-rendered HTML so a static page becomes interactive.

Prerendering

Generating and caching a fully rendered HTML snapshot of a JavaScript page at build time or on request, so crawlers receive complete markup.

DOM (Document Object Model)

The in-memory tree representation of a document that the browser builds from HTML and mutates with JavaScript; the rendered DOM is what…