Guide : Static Site Generators

Comment Hugo, Jekyll, Eleventy, Hexo, Gatsby, et Astro pre-construire chaque page dans static HTML — bypassing Google's JS rendu queue donc contenu est indexable on le premier récupérer.

Première publication : 26 juin 2026 · Dernière mise à jour : 3 août 2026 · Avancé
1 indice probant sur cette page

A static site generator (SSG) construit chaque page dans finished HTML à construire temps, donc votre contenu est déjà dans le raw HTML avant a robot d’exploration ever demande pour il — aucun JavaScript rendu queue, aucun Wave 2 delay, immédiatement indexable. c’est le core SEO advantage over client-side frameworks. Hugo, Jekyll, Eleventy, Hexo, Gatsby, et Astro tout share il; ils differ dans langue, comment beaucoup JS ils ship à le navigateur, et built-dans image/sitemap tooling. Le un réel gotcha est construire freshness: a static site est seulement as actuel as son dernier construire, donc contenu changements besoin a rebuild et redeploy à reach moteur de recherches. Je construit ce site (et patrickstox.com) avec Astro pour exactly ces raisons.

TL;DR — An SSG pre-renders chaque route à static HTML à construire temps, donc le contenu exists dans la réponse avant le premier robot d’exploration requête — aucun Web Rendu Service, aucun rendu queue, aucun “Wave 2” delay. c’est le unique biggest indexability advantage vous pouvez donner a site. SSGs differ depuis CSR frameworks (qui construire lune page dans le navigateur) et depuis meta-frameworks (qui peut SSR per requête). Le six dans ce cluster — Hugo, Jekyll, Eleventy, Hexo, Gatsby, Astro — tout ship static HTML; ils vary dans langue, JS payload, et built-dans sitemap/image tooling. Le réel échec mode n’est pas rendu, c’est construire freshness: a static site est seulement as actuel as son dernier construire, donc modifié contenu que ne fait pas trigger a rebuild silently sert stale HTML à moteur de recherches. Je exécuter ce site on Astro pour exactly ce définir de trade-offs.

Ce que “static” en réalité signifie

A static site generator exécute votre contenu et templates via a construire étape et emits a folder de finished HTML, CSS, et assets. Le crucial partie pour le SEO est quand le HTML est produced: à construire temps, une fois, pour everyone — pas per requête, et pas dans le navigateur. Google’s JavaScript guidance décrit exploration, rendu, et indexation as distinct processing stages. An SSG supprime client-side rendu depuis le critical chemin pour son generated contenu parce que le HTML est déjà complet. Preuve à l’appui de cette affirmation Google processes JavaScript through crawling, rendering, and indexing, while pre-rendered HTML is present before client execution. Portée : Google Search JavaScript processing; indexing is not guaranteed. Niveau de confiance : élevé · Vérifié : Google: JavaScript SEO basics

Ce est pourquoi static sites sont le safest possible architecture pour getting indexé. Le contenu est dans le premier byte de la réponse. il y a aucun parity gap entre raw et rendu HTML, aucun dependency on le renderer succeeding, aucun stateless-Chrome quirks à design autour.

SSG vs. rendu côté client vs. meta-frameworks

Three architectures, three différent moments le HTML comes dans existence:

  • Static site generation (SSG). HTML est construit une fois, à construire temps, avant quelconque requête. Servi as flat fichiers (souvent depuis a CDN). Contenu est dans le raw HTML. Ce est Hugo, Jekyll, Eleventy, Hexo — et Gatsby et Astro dans leur par défaut static mode.
  • Rendu côté client (CSR). Le serveur sends a minimal shell; JavaScript construit lune page dans le navigateur à requête/runtime. Contenu dépend on rendu succeeding. Ce est a default-CSR React or Vue SPA — le riskiest setup pour le SEO (voir JavaScript SEO).
  • Meta-frameworks (SSR / hybrid). Frameworks comme Suivant.js, Nuxt, et SvelteKit peut rendre HTML per requête on le serveur (SSR), pre-rendre some routes (SSG), or mix les deux. Contenu est dans le HTML, mais produced à requête temps, qui ajoute serveur coût et latency vous ne pas ont avec a pure SSG.

Le line blurs à le edges — Gatsby et Astro sont parfois appelé meta-frameworks parce que ils sont component-based et peut faire plus que emit flat fichiers. Mais dans leur bread-et-butter mode ils sont static generators, et c’est comment vous devez treat les pour le SEO. Le mental model que matters: le précédent le HTML exists, le moins peut go incorrect avant a robot d’exploration voit il. SSG est le earliest.

The six generators, comparé

Tout six produce indexable static HTML. Here’s how ils differ on the axes que en réalité affecter an SEO decision:

«| Generator | Language / built in | JS shipped to browser | Sitemap | Image optimization | Best for | | --- | --- | --- | --- | --- | --- | | Hugo | Go | None by default | Built-in (sitemap.xml auto-generated) | Built-in image processing (resize, WebP) | Large content sites that need fast builds | | Jekyll | Ruby | None by default | Plugin (jekyll-sitemap) | Plugins (jekyll-picture-tag etc.) | GitHub Pages blogs; the original SSG | | Eleventy (11ty) | JavaScript (Node) | None by default | Template/plugin (you generate it) | Plugin (@11ty/eleventy-img) | JS devs who want zero-JS output and flexibility | | Hexo | JavaScript (Node) | None by default (theme-dependent) | Plugin (hexo-generator-sitemap) | Plugins | Blogs, especially in the Node/Asia ecosystem | | Gatsby | JavaScript / React | React bundle (hydrates) | Plugin (gatsby-plugin-sitemap) | Built-in (gatsby-plugin-image, strong) | React teams wanting a data-driven static site | | Astro | JS/TS, any UI framework | None by default (islands only) | Official (@astrojs/sitemap) | Built-in (astro:assets) | Content sites wanting components without the JS tax | » (Traduction) (Résumé en français de la section vingt-sept, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.)

A few choses worth pulling out of que table:

«- JS payload is the SEO-adjacent differentiator. Hugo, Jekyll, Eleventy, and Hexo ship essentially no JavaScript unless you add it. Gatsby rehydrates a full React bundle on the client — still indexable (the HTML is static), but it carries a Core Web Vitals cost the others don’t. Astro splits the difference with islands architecture: static HTML by default, JavaScript only for the specific interactive components (“islands”) that need it. » (Traduction) (Résumé en français de la section vingt-neuf, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- Build speed scales differently. Hugo (Go) is famously fast and handles tens of thousands of pages comfortably. The Node-based generators are slower at large scale, and Gatsby’s build times have historically been its biggest complaint. » (Traduction) (Résumé en français de la section vingt-neuf, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- Sitemaps and image optimization are mostly solved everywhere — but Hugo and Astro give you the most out of the box, while Jekyll/Eleventy/Hexo lean on (well-maintained) plugins. » (Traduction) (Résumé en français de la section vingt-neuf, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.) «- Gatsby’s release cadence has slowed noticeably. The project isn’t archived and still ships patches, but as of July 2026 its GitHub repo shows only a handful of commits over the trailing 90 days and one minor release since February. That’s worth weighing against a more actively-developed option if you’re picking a generator today, on top of the hydration/CWV cost above. » (Traduction) (Résumé en français de la section vingt-neuf, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.)

Pourquoi I construit ce on Astro

Je construit ce site — et patrickstox.com — avec Astro, et le reasoning est straight out de ce page. Je wanted à author dans Markdown/MDX avec réel components, mais Je a fait pas vouloir à pay le JavaScript tax on chaque page simplement à obtenir les. Astro’s par défaut est zero client-side JS: lune pages vous êtes reading ship as static HTML, et le seulement JavaScript que charge est pour le handful de interactive pieces (comme le lens tabs et le quiz). Que obtient me le indexability de a classic SSG et bon Core Web Vitals, sans giving up a component-based authoring experience. Si Je nécessaire blistering construire speed à travers a huge contenu définir avec zero interactivity, Hugo voudrait être le obvious appel; pour a React données couche, Gatsby. Pour ce — a contenu-heavy site avec a quelques interactive flourishes — Astro est le correct trade.

The un réel gotcha: construire freshness

Tout ci-dessus est le upside. Ici’s le catch que bites personnes.

A static site est seulement as actuel as son dernier construire. Le HTML est a snapshot frozen à construire temps. Modifier a price, correct a fact, publish a post, mettre à jour a titre balise — none de il reaches moteur de recherches jusqu’à vous rebuild et redeploy. il y a aucun actif serveur assembling lune page depuis a database on chaque requête, donc il y a rien à pick up votre modifier automatiquement. Preuve à l’appui de cette affirmation Static build output remains a snapshot until the project is rebuilt and redeployed. Portée : Astro static build workflow as a representative example. Niveau de confiance : élevé · Vérifié : Astro: Build and deploy

En pratique ce signifie:

  • Contenu edits doit trigger a construire. Si vous author dans a CMS headless or Git, wire up a webhook donc a publish kicks off a deploy. A manual-seulement construire traiter est comment stale prices et “ghost” 404s sneak dans le indexer.
  • Frequently-changing données est awkward. Inventory, prices, actif counts — si il changements faster que vous rebuild, le static copy lags. c’est où incremental construit, scheduled rebuilds, or a hybrid (a meta-framework avec SSR/ISR pour le volatile routes) earn leur garder.
  • Time-sensitive pages besoin a cadence. Si “aujourd’hui’s deals” est baked à construire temps, le construire a à exécuter au moins daily, or lune page lies.

None de ce est a dealbreaker — c’est a discipline. Le entier raison SSGs sont great pour le SEO (HTML decided ahead de temps) est le même raison vous ont à être deliberate à propos de re-deciding il quand contenu changements.

Où à go suivant: le static site generators cluster

Ce hub est le map. Chaque generator ci-dessous est son propre deep dive — langue, JS payload, sitemap/image tooling, le framework-spécifique SEO gotchas, et comment garder construit fresh:

«- Hugo SEO — Go-powered, zero-JS, blazing builds; the auto-generated sitemap, built-in image processing, and managing huge content sets. » (Traduction) (Résumé en français de la section quarante, sous-partie un : le texte source est conservé pour vérification lors de la relecture francophone.) «- Jekyll SEO — the original SSG and the GitHub Pages default; jekyll-seo-tag, jekyll-sitemap, and the plugin-on-GitHub-Pages limitation. » (Traduction) (Résumé en français de la section quarante, sous-partie deux : le texte source est conservé pour vérification lors de la relecture francophone.) «- Eleventy (11ty) SEO — JavaScript-based, zero-JS output; generating sitemaps from templates and eleventy-img for responsive images. » (Traduction) (Résumé en français de la section quarante, sous-partie trois : le texte source est conservé pour vérification lors de la relecture francophone.) «- Hexo SEO — the Node blog generator; sitemap/feed plugins, theme JS, and permalink/canonical hygiene. » (Traduction) (Résumé en français de la section quarante, sous-partie quatre : le texte source est conservé pour vérification lors de la relecture francophone.) «- Gatsby SEO — React-based static generation; the hydration/CWV trade-off, gatsby-plugin-image, gatsby-plugin-sitemap, and build-time data sourcing. » (Traduction) (Résumé en français de la section quarante, sous-partie cinq : le texte source est conservé pour vérification lors de la relecture francophone.) «- Astro SEO — zero-JS by default, islands architecture, @astrojs/sitemap, astro:assets, View Transitions, and Server Islands fallback behavior. » (Traduction) (Résumé en français de la section quarante, sous-partie six : le texte source est conservé pour vérification lors de la relecture francophone.)

Every topic ci-dessus is nested sous ce hub and lives in the sidebar aussi.

Pour le broader context — comment Google renders JavaScript, le parity et interaction échec modes, et qui rendu mode à pick quand vous faire besoin JS — voir le parent JavaScript SEO hub.

Ajouter une note d’expert

Épingler une citation d’expert

Nouvelle personne ? Créez son profil non revendiqué à /admin/experts/ → Épingler une citation d’expert d’abord.