Skip to content

Headless & API

Static vs dynamic website: what each means for speed, SEO, and a blog

Static vs dynamic website is the distinction between a site whose pages exist as finished HTML files before anyone asks for them, and one whose server builds each page when it is requested, usually from a database. Static pages are identical for every visitor until the site is rebuilt; dynamic pages can change with every request or user.

Last reviewed October 12, 2026 · 7 min read

Reviewed by Yurii, Founder of Structura

A brochure site written in plain HTML, or a documentation site built with a static site generator such as Jekyll or Hugo, is static. Facebook, an online store's cart, a search results page and a standard WordPress install are dynamic. Most modern sites are neither purely one nor the other, and the useful question for a blog is which pages need to be built per request and which do not.

How each kind of page gets made

Static pages are built ahead of time. Someone writes the HTML by hand, or a static site generator turns templates and content into one file per URL during a build. The web.dev guide to rendering describes it simply: "Static rendering happens at build time," and it "means producing a separate HTML file for each URL ahead of time." The files can then be copied to a content delivery network and served from the location nearest each visitor.

Dynamic pages are built on request. When a visitor asks for a URL, code on the server runs, reads the database, applies a template and returns the result. This is how WordPress works out of the box: PHP assembles every page from posts stored in its database. In web.dev's terms, server-side rendering "generates the full HTML for a page on the server in response to navigation."

Client-side pages are built in the browser. A third option sends a near-empty HTML shell plus JavaScript that fetches data and draws the page on the visitor's device. It is dynamic too, only the work happens in a different place, and that difference matters for search engines.

Static vs dynamic website compared

Static website Dynamic website
When the HTML is made At build time, once per URL On each request, on the server
Same page for every visitor Yes, until the next build Can differ per visitor, login or query
Time to first byte Consistently fast; files come from a CDN Slower without caching, because the server works first
Hosting File hosting or a CDN; no database A server runtime plus a database
Publishing a change Rebuild and redeploy, or regenerate the page Live as soon as it is saved
Logins, carts, search, comments Need an external service or API Built in
Attack surface Small: no code runs per request Larger: server code and database are exposed
Examples Portfolio, docs, landing pages, many blogs Facebook, stores, dashboards, a default WordPress site

Both columns can be fast and both can rank. The trade-off web.dev describes is the one to remember: static rendering gets "a consistently fast TTFB, because the HTML for a page doesn't have to be dynamically generated on the server," while with server rendering "generating pages on the server takes time, which can increase your page's TTFB." In return, server rendering can respond to things static files cannot: "Pages that need personalization are a concrete example of the type of request that doesn't work well with static rendering."

The modern middle: caching, SSR, and ISR

The neat split has mostly dissolved, because sites now choose per route.

  • Caching makes dynamic sites serve static files. WordPress's own handbook says cache plugins "will cache your WordPress posts and pages as static files. These static files are then served to users, reducing the processing load on the server." On a cached WordPress blog, most visitors receive a stored copy rather than a freshly built page.
  • Frameworks mix both. The web.dev guide notes that frameworks such as Next.js or Nuxt "offer both static rendering and server-side rendering", so a site can generate its blog at build time and render its account pages per request.
  • Incremental static regeneration (ISR) rebuilds one page at a time. In Next.js, a page is served as a static file, and after a set interval the next request triggers a rebuild in the background. The Next.js documentation lists the point of it: to "update static content without rebuilding the entire site" and to "handle large amounts of content pages without long next build times." Pages can also be regenerated on demand when content changes.

What it means for a blog

A blog is mostly the same for every reader, which makes it a natural fit for static output. The friction is in publishing.

Build times. A fully static blog regenerates on every publish. The web.dev guide names the limit: static rendering "must generate individual HTML files for every possible URL", which becomes hard "for sites with a large number of unique pages." A blog with thousands of posts, or a set of programmatic SEO pages, is where ISR or on-demand regeneration replaces full rebuilds.

Scheduled posts and previews. A dynamic CMS publishes a scheduled post once its time comes and shows drafts on request. A static site shows the post only after something triggers a build or a regeneration, and draft previews need a separate preview mode.

Comments, search and forms. These are dynamic by nature. A static blog hands them to a third-party service or a small API.

For a headless blog the usual answer is static generation with regeneration: posts are built once, served from a CDN, and refreshed when the CMS reports a change. The Next.js CMS comparison covers which content sources fit that pattern, and headless WordPress shows how a WordPress backend feeds it.

What static and dynamic change for SEO

Google indexes the HTML it receives, whatever produced it. Static files and server-rendered pages both arrive complete, so both are safe. The risk is the client-side shell: Google queues such pages for rendering, and "the page may stay on this queue for a few seconds, but it can take longer than that." Its advice is that "server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript."

The SEO differences between static and dynamic sites are mostly operational. A static site's sitemap, canonicals and redirects are produced by the build or the host, not by a plugin, and a stale build can keep serving an old title or a deleted page until it reruns. The page on headless CMS SEO has the checklist for a front end that owns those jobs.

How Structura handles this

Structura works with both models. On WordPress, the plugin publishes native posts into a dynamic site, and your caching plugin decides how they are served. On a headless space, Structura serves posts from a public, CDN-cached Content API that a static or server-rendered front end fetches at build or regeneration time. Every post carries publishedAt and updatedAt, so an ISR setup can revalidate only what changed, and the developer docs include a Next.js App Router example with time-based revalidation.

Structura does not trigger your build. A site that rebuilds only on deploy will show a new post after its next build, so poll the list endpoint on a revalidation interval instead. On paid plans, article delivery sends each published post to an HTTPS endpoint you build, which can store it and start a rebuild. The API-first CMS page shows the endpoints and the response fields.

FAQ

What are examples of static and dynamic websites?

Static: a portfolio or brochure site in plain HTML, a documentation site built with a generator such as Jekyll or Hugo, and many marketing landing pages. Dynamic: social networks, online stores, web apps with logins, search results pages, and content management systems such as WordPress that build pages from a database on request.

Is Facebook a static or dynamic website?

Dynamic. Every visitor sees a different page, assembled on request from their account, their connections and what those connections posted. Nothing about a personal feed can be built in advance, which is the clearest sign of a dynamic site.

Is WordPress static or dynamic?

Dynamic. WordPress runs PHP on each request to build the page from posts in its database. In practice many WordPress sites behave like static ones for most visitors, because a cache plugin or server cache stores each page as a file and serves that copy until the content changes.

Is a static website better for SEO?

Not by itself. Google ranks the content and the HTML it receives, and a cached dynamic site can be as fast as a static one. Static sites make speed easier to get right, while dynamic sites make freshness easier; the setup to avoid for content pages is the one that builds them only in the browser.

Share this post