Static situs Generators

How Hugo, Jekyll, Eleventy, Hexo, Gatsby, dan Astro pre-bangun setiap halaman ke static HTML — bypassing Google's JS rendering queue so konten adalah dapat diindeks pada pertama fetch.

Pertama kali diterbitkan: 26 Jun 2026 · Terakhir diperbarui: 3 Agu 2026 · Advanced
Bahasa
1 sinyal bukti di halaman ini

sebuah static situs generator (SSG) membangun setiap halaman ke finished HTML di bangun time, so Anda konten adalah sudah di raw HTML sebelum sebuah crawler ever menanyakan untuk ini — no JavaScript rendering queue, no Wave 2 delay, immediately dapat diindeks. itu's core SEO advantage di atas client-side frameworks. Hugo, Jekyll, Eleventy, Hexo, Gatsby, dan Astro semua share ini; mereka differ di language, how much JS mereka ship untuk browser, dan dibangun-di image/sitemap tooling. one nyata gotcha adalah bangun freshness: sebuah static situs adalah hanya sebagai saat ini sebagai -nya last bangun, so konten perubahan perlu sebuah rebuild dan redeploy untuk reach mesin pencari. I dibangun ini situs (dan patrickstox.com) dengan Astro untuk exactly ini alasan.

TL;DR — sebuah SSG pre-renders setiap route untuk static HTML di bangun time, so konten exists di respons sebelum pertama crawler permintaan — no Web rendering Service, no rendering queue, no “Wave 2” (terjemahan) “Wave 2” delay. itu’s single biggest indexability advantage Anda dapat give sebuah situs. SSGs differ dari CSR frameworks (which bangun halaman di browser) dan dari meta-frameworks (which dapat SSR per permintaan). six di ini cluster — Hugo, Jekyll, Eleventy, Hexo, Gatsby, Astro — semua ship static HTML; mereka vary di language, JS payload, dan dibangun-di sitemap/image tooling. nyata failure mode isn’t rendering, ini adalah bangun freshness: sebuah static situs adalah hanya sebagai saat ini sebagai -nya last bangun, so changed konten itu doesn’t trigger sebuah rebuild silently menyajikan stale HTML untuk mesin pencari. I run ini situs pada Astro untuk exactly ini set dari trade-offs.

What “static” (terjemahan) “static” actually berarti

sebuah static situs generator runs Anda konten dan templates melalui sebuah bangun langkah dan emits sebuah folder dari finished HTML, CSS, dan assets. crucial bagian untuk SEO adalah when HTML adalah produced: di bangun time, once, untuk everyone — not per permintaan, dan not di browser. Google’s JavaScript guidance describes crawling, rendering, dan pengindeksan sebagai distinct processing stages. sebuah SSG menghapus client-side rendering dari critical path untuk -nya generated konten because HTML adalah sudah complete. Evidence for this claim Google processes JavaScript through crawling, rendering, and indexing, while pre-rendered HTML is present before client execution. Scope: Google Search JavaScript processing; indexing is not guaranteed. Confidence: high · Verified: Google: JavaScript SEO basics

ini adalah why static situs adalah safest mungkin architecture untuk getting terindeks. konten adalah di pertama byte dari respons. There’s no parity gap antara raw dan rendered HTML, no dependency pada renderer succeeding, no stateless-Chrome quirks untuk design sekitar.

SSG vs. rendering sisi klien vs. meta-frameworks

Three architectures, three berbeda moments HTML comes ke existence:

  • Static situs generation (SSG). HTML adalah dibangun once, di bangun time, sebelum apa pun permintaan. disajikan sebagai flat files (sering dari sebuah CDN). konten adalah di raw HTML. ini adalah Hugo, Jekyll, Eleventy, Hexo — dan Gatsby dan Astro di mereka default static mode.
  • rendering sisi klien (CSR). server mengirim sebuah minimal shell; JavaScript membangun halaman di browser di permintaan/runtime. konten depends pada rendering succeeding. ini adalah sebuah default-CSR React atau Vue SPA — riskiest setup untuk SEO (see JavaScript SEO).
  • Meta-frameworks (SSR / hybrid). Frameworks like Next.js, Nuxt, dan SvelteKit dapat render HTML per permintaan pada server (SSR), pre-render beberapa routes (SSG), atau mix both. konten adalah di HTML, tetapi produced di permintaan time, which menambahkan server cost dan latency Anda tidak memiliki dengan sebuah pure SSG.

line blurs di edges — Gatsby dan Astro adalah sometimes called meta-frameworks because mereka’re component-based dan dapat melakukan more daripada emit flat files. tetapi di mereka bread-dan-butter mode mereka’re static generators, dan itu’s how Anda harus treat them untuk SEO. mental model itu penting: ** earlier HTML exists, less dapat go wrong sebelum sebuah crawler sees ini.** SSG adalah earliest.

six generators, compared

semua six produce dapat diindeks static HTML. Here’s how mereka differ pada axes itu actually affect sebuah SEO decision:

GeneratorLanguage / dibangun diJS shipped untuk browserSitemapImage optimizationBest untuk
HugoGoNone oleh defaultdibangun-di (sitemap.xml auto-generated)dibangun-di image processing (resize, WebP)besar konten situs itu perlu fast membangun
JekyllRubyNone oleh defaultPlugin (jekyll-sitemap)Plugins (jekyll-picture-tag etc.)GitHub halaman blogs; original SSG
Eleventy (11ty)JavaScript (Node)None oleh defaultTemplate/plugin (Anda generate ini)Plugin (@11ty/eleventy-img)JS devs who ingin zero-JS output dan flexibility
HexoJavaScript (Node)None oleh default (theme-dependent)Plugin (hexo-generator-sitemap)PluginsBlogs, terutama di Node/Asia ecosystem
GatsbyJavaScript / ReactReact bundle (hydrates)Plugin (gatsby-plugin-sitemap)dibangun-di (gatsby-plugin-image, strong)React teams wanting sebuah data-driven static situs
AstroJS/TS, apa pun UI frameworkNone oleh default (islands hanya)Official (@astrojs/sitemap)dibangun-di (astro:assets)konten situs wanting components without JS tax

sebuah few things worth pulling out dari itu table:

  • JS payload adalah SEO-adjacent differentiator. Hugo, Jekyll, Eleventy, dan Hexo ship essentially no JavaScript unless Anda tambahkan ini. Gatsby rehydrates sebuah full React bundle pada client — masih dapat diindeks ( HTML adalah static), tetapi ini carries sebuah Core Web Vitals cost others don’t. Astro splits difference dengan islands architecture: static HTML oleh default, JavaScript hanya untuk spesifik interactive components (“islands” (terjemahan) “islands”) itu perlu ini.
  • bangun speed scales differently. Hugo (Go) adalah famously fast dan handles tens dari thousands dari halaman comfortably. Node-based generators adalah slower di besar scale, dan Gatsby’s bangun times memiliki historically telah -nya biggest complaint.
  • Sitemaps dan image optimization adalah mostly solved everywhere — tetapi Hugo dan Astro give Anda paling out dari box, while Jekyll/Eleventy/Hexo lean pada (well-maintained) plugins.
  • Gatsby’s release cadence memiliki slowed noticeably. project isn’t archived dan masih ships patches, tetapi sebagai dari July 2026 -nya GitHub repo menampilkan hanya sebuah handful dari commits di atas trailing 90 days dan one minor release since February. itu’s worth weighing terhadap sebuah more actively-developed option jika Anda’re picking sebuah generator today, pada top dari hydration/CWV cost above.

Why I dibangun ini pada Astro

I dibangun ini situs — dan patrickstox.com — dengan Astro, dan reasoning adalah straight out dari ini halaman. I wanted untuk author di Markdown/MDX dengan nyata components, tetapi I melakukan not ingin untuk pay JavaScript tax pada setiap halaman hanya untuk get them. Astro’s default adalah zero client-side JS: halaman Anda’re reading ship sebagai static HTML, dan hanya JavaScript itu memuat adalah untuk handful dari interactive pieces (like lens tabs dan quiz). itu gets me indexability dari sebuah classic SSG dan baik Core Web Vitals, without giving up sebuah component-based authoring experience. jika I needed blistering bangun speed di seluruh sebuah huge konten set dengan zero interactivity, Hugo akan menjadi obvious panggil; untuk sebuah React data layer, Gatsby. untuk ini — sebuah konten-heavy situs dengan sebuah few interactive flourishes — Astro adalah right trade.

one nyata gotcha: bangun freshness

Everything above adalah upside. Here’s catch itu bites people.

sebuah static situs adalah hanya sebagai saat ini sebagai -nya last bangun. HTML adalah sebuah snapshot frozen di bangun time. perubahan sebuah price, correct sebuah fact, publish sebuah post, update sebuah tag judul — none dari ini reaches mesin pencari until Anda rebuild dan redeploy. There’s no live server assembling halaman dari sebuah database pada setiap permintaan, so there’s nothing untuk pick up Anda perubahan automatically. Evidence for this claim Static build output remains a snapshot until the project is rebuilt and redeployed. Scope: Astro static build workflow as a representative example. Confidence: high · Verified: Astro: Build and deploy

dalam praktik ini berarti:

  • konten edits harus trigger sebuah bangun. jika Anda author di sebuah CMS headless atau Git, wire up sebuah webhook so sebuah publish kicks off sebuah deploy. sebuah manual-hanya bangun process adalah how stale prices dan “ghost” (terjemahan) “ghost” 404s sneak ke indeks.
  • Frequently-changing data adalah awkward. Inventory, prices, live counts — jika ini perubahan faster daripada Anda rebuild, static copy lags. itu’s where incremental membangun, scheduled rebuilds, atau sebuah hybrid (sebuah meta-framework dengan SSR/ISR untuk volatile routes) earn mereka pertahankan.
  • Time-sensitive halaman perlu sebuah cadence. jika “today’s deals” (terjemahan) “today’s deals” adalah baked di bangun time, bangun memiliki untuk run setidaknya daily, atau halaman lies.

None dari ini adalah sebuah dealbreaker — ini adalah sebuah discipline. whole alasan SSGs adalah great untuk SEO (HTML decided ahead dari time) adalah yang sama alasan Anda memiliki untuk menjadi deliberate tentang re-deciding ini when konten perubahan.

Where untuk go next: static situs generators cluster

ini hub adalah map. setiap generator below adalah -nya own deep dive — language, JS payload, sitemap/image tooling, framework-spesifik SEO gotchas, dan cara pertahankan membangun fresh:

  • Hugo SEO — Go-powered, zero-JS, blazing membangun; auto-generated sitemap, dibangun-di image processing, dan managing huge konten sets.
  • Jekyll SEO — original SSG dan GitHub halaman default; jekyll-seo-tag, jekyll-sitemap, dan plugin-pada-GitHub-halaman limitation.
  • Eleventy (11ty) SEO — JavaScript-based, zero-JS output; generating sitemaps dari templates dan eleventy-img untuk responsive images.
  • Hexo SEO — Node blog generator; sitemap/feed plugins, theme JS, dan permalink/canonical hygiene.
  • Gatsby SEO — React-based static generation; hydration/CWV trade-off, gatsby-plugin-image, gatsby-plugin-sitemap, dan bangun-time data sourcing.
  • Astro SEO — zero-JS oleh default, islands architecture, @astrojs/sitemap, astro:assets, View Transitions, dan server Islands fallback perilaku.

setiap topic above adalah nested di bawah ini hub dan lives di sidebar too.

untuk broader context — how Google renders JavaScript, parity dan interaction failure modes, dan which rendering mode untuk pick when Anda melakukan perlu JS — see parent JavaScript SEO hub.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.