How it works
Each URL is its own HTML document, rendered on the server or at build time. Clicking a link makes the browser fetch and show the next page, with history, scrolling and accessibility handled by the browser itself. WordPress, Laravel and Django sites, and most static sites, are MPAs.
The old downsides, a flash between pages and lost state, have shrunk: browsers cache pages well, cross-document view transitions can animate between pages in Chrome, Edge and Safari, and tools such as htmx or small islands of JavaScript add interactivity where it is needed. Frameworks such as Astro build MPAs on purpose.
Multi-page app (MPA) pros and cons
Pros
- Fast first load and strong SEO by default
- Simple mental model: the browser handles history and focus
- Keeps working when JavaScript fails or loads slowly
- Each page can be cached separately on a CDN
Cons
- Full page loads between screens, which can feel slower
- State such as a playing video resets on every navigation
- Rich, app-like interactions need extra JavaScript
When to use Multi-page app (MPA)
Pick it when
- Content sites, blogs, stores and marketing pages
- Sites where SEO and reliability matter more than an app-like feel
Skip it when
- Long sessions with rich interaction, such as editors or dashboards
Multi-page app (MPA) vs the alternatives
Related terms
More in Rendering and architecture
App shapes