
Why Moving Away from SPAs improves Usability, Accessibility, and SEO
- Publication
- Author
- Florian Thoma
- Categories
- Reading time
- 3 minutes
For years, Single Page Applications (SPAs) built with frameworks like React have dominated the web development landscape. They promised fluid transitions, dynamic interfaces, and app-like experiences. But as performance bottlenecks, accessibility challenges, and SEO limitations become more apparent, many teams are reconsidering this approach. A growing movement is embracing traditional server-rendered websites. Not out of nostalgia, but as a strategic return to simplicity, speed, and inclusivity for content-driven sites.
This isn’t a blanket dismissal of SPAs. For highly interactive platforms like social networks, dashboards, or real-time collaboration tools, SPAs remain a powerful choice. But for marketing sites, blogs, documentation, other content-first experiences, and sites where interactive content is merely embedded from external services, server-rendered architectures often offer a better balance of performance and maintainability.
Usability: Speed and Predictability Without the Bloat
SPAs often delay the delivery of meaningful content until large JavaScript bundles are downloaded, parsed, and executed. This can lead to sluggish initial loads and unpredictable behaviour, especially on lower-end devices or slow connections. In contrast, server-rendered sites deliver fully composed HTML directly from the server, allowing users to see and interact with meaningful content almost immediately.
Navigation also becomes more consistent. Traditional server-rendered sites rely on native browser behaviour, so features like the back and forward buttons work predictably. Developers avoid the complexity of client-side routing and layout shifts, which often plague SPAs and frustrate users. By leveraging the web’s native strengths, server-rendered architectures provide a faster, simpler, and more reliable user experience.
Modern frameworks like Next.js and Remix are already bridging this gap, offering hybrid approaches that combine server rendering with client-side interactivity. The goal isn’t to abandon JavaScript, but to use it where it adds value, not where it’s a prerequisite for basic functionality.
Accessibility: Semantic HTML Delivered Upfront
Accessibility should be a foundational concern, not an afterthought. SPAs, by their nature, often interfere with assistive technologies due to their reliance on dynamic content updates and custom components. These can confuse screen readers, complicate keyboard navigation, and require meticulous management of ARIA roles and focus states.
Server-rendered pages, on the other hand, provide semantic HTML from the outset. This allows assistive technologies to parse headings, landmarks, and button roles without waiting for JavaScript to hydrate the page. Even if JavaScript fails or is disabled, the core content and navigation remain accessible. Testing and auditing also become more straightforward, as tools like Axe and Lighthouse can evaluate the markup directly without needing to simulate client-side behaviour.
That said, accessibility is not guaranteed by architecture alone. SPAs can be made accessible with careful engineering, but server-rendered sites often reduce the surface area for errors and simplify compliance efforts.
SEO: Visibility Starts with HTML
Search engines thrive on structured, crawlable HTML. SPAs often serve a minimal shell and rely on JavaScript to populate content, which can create hurdles for indexing. While modern crawlers have improved their ability to parse JavaScript, relying on it remains a gamble, especially for smaller sites or niche content.
Server-rendered sites deliver complete content immediately, allowing search bots to index headlines, product lists, and metadata without executing scripts. Metadata such as titles, descriptions, and Open Graph tags are embedded in the server response, reducing the risk of race conditions. Additionally, faster Time to Interactive (TTI) improves Core Web Vitals scores, which can positively influence search rankings.
Hybrid rendering strategies, such as prerendering, partial hydration, and edge rendering, are helping SPAs become more SEO-friendly. But these solutions often introduce additional complexity, which may not be justified for simpler sites.
Comparing Architectures
To illustrate the differences, consider the following comparison:
Metric | Server-Rendered Site | React SPA |
---|---|---|
First Contentful Paint | Less than 1 second | 1–3 seconds, depending on bundle size |
SEO Friendliness | Excellent, due to static HTML | Variable, depending on prerendering |
ARIA & Landmark Parsing | Immediate | Delayed until hydration |
Navigation Consistency | Native browser behaviour | Custom routing with edge cases |
JavaScript Dependency | Optional for enhancements | Mandatory for core functionality |
Rediscovering the Web’s Strengths
The web was originally designed for documents, links, and accessibility. SPAs attempted to reinvent it, but often at the cost of usability, inclusivity, and discoverability. By returning to server-rendered architectures, developers are not regressing but refining. They are choosing tools that align with the web’s foundational strengths and deliver better experiences for all users.
This philosophy echoes the principles outlined in Jeremy Keith’s 2017 book "Resilient Web Design", which champions building with the grain of the web, embracing its fault tolerance, progressive enhancement, and semantic clarity. As Jeremy writes, “The web is the most resilient platform we’ve ever built,” and by leaning into its strengths, we create experiences that are robust, inclusive, and future-proof.
Of course, server rendering comes with its own challenges, like caching strategies, edge infrastructure, and personalisation at scale. But for many teams, these are solvable problems with well-established patterns. The tradeoff is often worth it when weighed against the complexity and fragility of client-heavy architectures.
If your site isn’t a social platform and doesn’t demand intricate interactivity and deep personalisation across every element, it is time to rethink the SPA model. You can still incorporate dynamic, personalised components where they add value, but much of the page can be pre-rendered, delivering faster load times and more predictable behaviour. Returning to server-rendered simplicity doesn’t mean sacrificing modern UX; it means embracing a foundation that supports speed, accessibility, and discoverability. It’s a move that benefits everyone involved, from your users to your developers, by making your digital presence more thoughtful, efficient, and resilient.