Skip to main content
Back to Glossary (S)
Glossary · S

Single Page Application (SPA).

A single page application (SPA) is a web application that loads an HTML skeleton only once and generates all further views in the browser with JavaScript, without reloading the page. It feels like an app but is demanding for search engines and for the first load. SPAs suit applications behind a login well, and websites that need to be found less well.

Illustration of "Single Page Application (SPA)": Tile "SPA" SPASingle Page Application (SPA)APIFrontendBackend

Single Page Application (SPA) — Explained in Detail

On a classic website, every click on a link loads a new HTML page from the server. A single page application works differently: the browser loads an almost empty HTML shell and a larger JavaScript bundle once. After that the framework, such as React, Vue or Angular, takes over. It fetches data through interfaces, builds the views in the browser and changes the URL in the address bar without reloading the page. For the user it feels as smooth as an installed app.

The strengths lie in applications with a lot of interaction: dashboards, client portals, booking systems, admin interfaces, tools that people use for long stretches at a time. What matters there is that switching between views happens instantly and that states such as filters or inputs are preserved. Many web apps and progressive web apps are therefore built entirely or partly as SPAs.

The weaknesses show on public websites. Because the content is only created in the browser, a crawler initially sees just the empty shell. Google can render JavaScript, but it does so in a second step, with a delay and not always completely; many AI crawlers do not execute JavaScript at all and see nothing. Typical errors add to this: missing or identical title tags, soft 404s because the server returns status 200 for every URL, and internal links that exist only as click handlers rather than real links. JavaScript SEO describes these problems in detail.

The first load suffers too: before anything meaningful appears, the JavaScript has to be loaded and executed, which shows in the Largest Contentful Paint. Modern frameworks solve this by rendering the first view on the server and then continuing in the browser like an SPA. Next.js, for example, delivers finished HTML and still switches between pages without a full reload. For websites that are meant to be found, this is usually the better choice than a pure SPA.

SPA or server-rendered website?

The rule of thumb is simple: whatever sits behind a login and does not need to be found by search engines can be an SPA. Whatever is public and should rank, meaning the homepage, service pages, blog and shop, should come as HTML from the server or the build. Many projects combine the two: a fast, server-rendered website and, behind it, a client portal as an SPA.

We settle this split at the start of every project, both when we develop a web app and in our web development in Zurich. Existing SPAs with visibility problems are reviewed in a website audit, usually with the result that the public pages should be rendered on the server.

Example: a property portal without rankings

A typical case, described as an example: a property management company has its website with property search built as a pure SPA. It is pleasant to use, but almost no property pages appear in Google, and Search Console shows many URLs as crawled but not indexed. The source code of each property page contains only an empty element and a script reference.

The fix is not a rebuild of the entire application: the property pages and the overview are rendered on the server and delivered with their own titles, descriptions and structured data. The watch list and the tenant portal remain as interactive areas. The website thus combines findability with an app-like feel.

Related Page

JavaScript SEO

Frequently Asked Questions About Single Page Application (SPA)

Pure SPAs that only generate their content in the browser are difficult for SEO. Google can render JavaScript, but with a delay and not always completely, and many AI crawlers cannot at all. Rendering the first view on the server lets you keep the advantages of an SPA without these drawbacks.

Not in the classic sense. Next.js delivers finished HTML for every page from the server or the build and then behaves much like an SPA when navigating. It is therefore often described as a hybrid application.

For applications behind a login with a lot of interaction, such as dashboards, client portals, internal tools or booking interfaces. There, smooth operation is what counts, and search engines do not need to find the content.

Ready for Your Project?

Apply this knowledge to your website — DLM Digital will help you.