A single-page application (SPA) is a web website that interacts with users by dynamically rewriting content on the current page using new data from the server, instead of loading entirely new pages.
This topic is relevant for web developers and digital marketers who are concerned with optimizing site performance, user experience, or search engine visibility.
External context
For those building their own websites, understanding SPAs means knowing that content updates occur by modifying the existing page rather than navigating to new ones. This method aims to create faster transitions, giving the overall website a feel similar to a native mobile application.
Single-page application Wikipedia contributors, “Single-page application”, en.wikipedia.orgLicence01What it is and how it works
A single-page application serves a minimal HTML shell and relies on JavaScript to fetch data and update the DOM. When a user clicks a link, the SPA intercepts the navigation, requests only the needed data (often JSON), and re-renders the view in the browser. This creates a fast, app-like experience. For search engines, the initial HTML often contains little or no content. A crawler that does not execute JavaScript will see an empty page. Modern crawlers like Googlebot do run JavaScript, but they do so in a second wave, which can delay indexing. The key is that the content is not in the raw HTML; it appears only after JavaScript executes.
An SPA is a website that works like a desktop app: it loads once and then changes the page content on the fly. Search engines need to run JavaScript to see what's actually on the page.
02What to do about it
Make the content available without requiring JavaScript execution. The most reliable approach is server-side rendering (SSR) or static generation: the server returns the fully rendered HTML. If that is not possible, use dynamic rendering: serve a static snapshot to bots and the SPA to users. Alternatively, ensure your SPA uses the History API for routing, not hash fragments, and that all important content is included in the initial HTML payload. Test with Google's URL Inspection tool to see what Googlebot sees. Also, avoid blocking JavaScript files in robots.txt; crawlers need them to render.
03How it is measured or noticed
Check Google Search Console's URL Inspection tool: it shows the rendered HTML that Googlebot sees. If the rendered HTML contains your content, you are fine. Also look at the 'Coverage' report for indexing issues. Another signal is whether your pages appear in search results for their target keywords. If they do not, and the page is an SPA, rendering is the likely culprit. You can also use the 'View as Googlebot' feature (now part of URL Inspection) to see the rendered page. For a quick check, disable JavaScript in your browser and load the page; if the content is missing, you have a problem.
How the record puts it
A single-page application (SPA) is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the web server, instead of the default method of loading entire new pages.
04Common mistakes
- Assuming Googlebot does not run JavaScript — it does, but only after a queue, so content may be delayed.
- Using hash-based routing (#/page) instead of the History API; hashes are not treated as separate URLs.
- Blocking JavaScript or CSS files in robots.txt, which prevents rendering.
- Relying on client-side rendering for content that is not in the initial HTML.
- Forgetting to update the and meta description dynamically for each route.
05Limits and confusions
An SPA is not the same as a progressive web app (PWA), although a PWA can be an SPA. Also, not every SPA needs special treatment: if the content is static and included in the initial HTML, it is fine. The challenges arise when content is loaded asynchronously after user interaction or when the page uses client-side routing. SPAs are often confused with multi-page applications (MPAs) because both can have multiple URLs. The difference is that an SPA does not request a new HTML document for each route; it rewrites the current one. This distinction matters for SEO because each route in an SPA must be a separate URL that returns the same HTML shell.
06Worked example
Imagine an e-commerce SPA that loads a product page. The initial HTML contains only the header and footer. The product title, description, and price are fetched via an API and inserted into the DOM after a few seconds. Googlebot renders the page, but the content is not in the initial HTML. To fix this, you can implement server-side rendering for the product page: the server returns the full HTML with the product details. Now Googlebot sees the content immediately, and the page can be indexed. Alternatively, you could use dynamic rendering to serve a static HTML snapshot to bots.
The entry above is written by GetLoopLoop. What follows is what independent catalogues hold about the same term — none of it is the source of this page.
- Also called
- SPA
- Kind of thing
- type of website
The same term on Wikipedia
Catalogued in 23 languagesFrequently asked questions
How is a single-page application different from a regular website?
A regular website loads a new HTML page for each navigation, while a single-page application loads one HTML shell and updates content dynamically via JavaScript. This changes how search engines crawl and render your content because they must execute JavaScript to see the full page.
Should I build my site as a single-page application if I care about SEO?
It depends. If you need a highly interactive app, a single-page application can work, but you must implement server-side rendering or prerendering to make content visible to search engines. For content-heavy sites, a traditional multi-page approach is simpler and more reliable for SEO.
How do search engines crawl and render a single-page application?
Google uses a two-phase process: first it fetches the raw HTML, then it executes JavaScript with a headless browser to render the page. The rendered HTML is what gets indexed, so you need to ensure your JavaScript is crawlable and that critical content is available without requiring execution.
Does Google still render JavaScript and index single-page application content?
Yes, Google renders JavaScript, but it's not always immediate and can be resource-intensive. There are limits on how many pages Google will render, so it's safer to pre-render critical content or use dynamic rendering if you have a large SPA.
What happens if I don't make my single-page application crawlable?
Search engines will see an empty or minimal HTML page, and your content won't be indexed. You'll notice a drop in organic traffic, and you can confirm the issue by using Google Search Console's URL Inspection tool to see the rendered HTML Googlebot sees.
How long does it take for Google to index single-page application content after I fix it?
It varies from days to weeks. You can speed up indexing by submitting the URL in Google Search Console and ensuring fast server responses. Monitor the URL Inspection tool to see when the rendered HTML matches your expected content.
Wikimedia Commons
Related visuals with source and licence credit
Asked out loud
spoken, not typedThe same term in the words somebody uses speaking to an assistant rather than typing into a box — written from the situation, which is why each one carries the situation it came from.
That's a single-page application. The HTML shell is minimal and everything else is rendered by JavaScript, which is why search engines might not see your content unless you pre-render it.
It's a single-page application. That's likely the issue because Google needs to execute JavaScript to see the content. You'll need to add server-side rendering or prerendering to fix it.
You're dealing with a single-page application. Before launch, you need to ensure the content is crawlable, or you'll lose search visibility. Check the rendered HTML in Search Console to see what Google sees.