[{"data":1,"prerenderedAt":224},["ShallowReactive",2],{"hub:tools-hugo":3},{"path":4,"key":5,"title":6,"h1":7,"description":8,"crumbs":9,"blocks":17},"\u002Ftools\u002Fhugo\u002F","tools-hugo","Hugo in Production: Build Speed, Images, i18n","Hugo","Guides that use Hugo in depth: build profiling, partialCached, image caches in CI, Hugo Modules, segments for huge sites and multilingual setups.",[10,13,16],[11,12],"Home","\u002F",[14,15],"Tools","\u002Ftools\u002F",[7,4],[18,21,23,26,137,139,158,190,192],{"k":19,"text":20},"p","Hugo is the fastest mainstream generator by a wide margin, which changes what goes wrong with it. The guides below are rarely about making a small Hugo site fast; they are about what happens at tens of thousands of pages, when template cost multiplies across languages, image processing dominates cold builds, module downloads outweigh rendering in CI, and a single build runs out of memory on a standard runner.",{"k":19,"text":22},"The build-time guides come first, then the ones about Hugo’s strongest built-in feature — multilingual sites — and then deployment and migration. Every number was measured with hyperfine or Hugo’s own template metrics on the site described in each guide.",{"k":24,"html":25},"fig","\u003Cfigure>\n\u003Csvg viewBox=\"0 0 760 310\" role=\"img\" aria-labelledby=\"hub-hugo-hero-title hub-hugo-hero-desc\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n  \u003Ctitle id=\"hub-hugo-hero-title\">Cold build time by stage on a 4,000-page Hugo repository\u003C\u002Ftitle>\n  \u003Cdesc id=\"hub-hugo-hero-desc\">Vertical bars from the render hooks and caching guide. On a cold build of a 4,000-page repository, image processing took 96 seconds, Markdown about 19 seconds and partials about 16 seconds, 131 seconds in total. With the resource cache, partialCached and a stable cacheDir the same build took 34 seconds.\u003C\u002Fdesc>\n  \u003Crect x=\"0\" y=\"0\" width=\"760\" height=\"310\" fill=\"#ffffff\"\u002F>\n  \u003Cg style=\"font-family:system-ui, sans-serif;font-size:12px\">\n    \u003Crect x=\"80.0\" y=\"76.0\" width=\"90.0\" height=\"170.0\" rx=\"3\" fill=\"#ff595e\" opacity=\"0.3\" stroke=\"#d83b41\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"250.0\" y=\"212.4\" width=\"90.0\" height=\"33.6\" rx=\"3\" fill=\"#ffca3a\" opacity=\"0.45\" stroke=\"#a97b00\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"420.0\" y=\"217.7\" width=\"90.0\" height=\"28.3\" rx=\"3\" fill=\"#1982c4\" opacity=\"0.3\" stroke=\"#1982c4\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"590.0\" y=\"185.8\" width=\"90.0\" height=\"60.2\" rx=\"3\" fill=\"#8ac926\" opacity=\"0.4\" stroke=\"#5a8a16\" style=\"stroke-width:1px\"\u002F>\n    \u003Cpath d=\"M30.0 246.0 L730.0 246.0\" fill=\"none\" stroke=\"#556071\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ctext x=\"380.0\" y=\"30.0\" fill=\"#1f2937\" style=\"font-size:16px;text-anchor:middle;font-weight:700\">Where a cold Hugo build spends its time\u003C\u002Ftext>\n    \u003Ctext x=\"125.0\" y=\"69.0\" fill=\"#b32b30\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">96 s\u003C\u002Ftext>\n    \u003Ctext x=\"125.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Image processing\u003C\u002Ftext>\n    \u003Ctext x=\"295.0\" y=\"205.4\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">19 s\u003C\u002Ftext>\n    \u003Ctext x=\"295.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Markdown\u003C\u002Ftext>\n    \u003Ctext x=\"465.0\" y=\"210.7\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">16 s\u003C\u002Ftext>\n    \u003Ctext x=\"465.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Partials\u003C\u002Ftext>\n    \u003Ctext x=\"635.0\" y=\"178.8\" fill=\"#3f6410\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">34 s\u003C\u002Ftext>\n    \u003Ctext x=\"635.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Whole build, all caches\u003C\u002Ftext>\n    \u003Ctext x=\"635.0\" y=\"278.9\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">warm\u003C\u002Ftext>\n  \u003C\u002Fg>\n\u003C\u002Fsvg>\n\u003Cfigcaption>Measured with hyperfine on the repository in the render hooks and caching guide; image processing dominates until its cache is warm.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>",{"k":27,"h":28,"items":29},"group","Choosing the Right Static Site Generator for Production",[30,35,39,43,47,51,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,129,133],{"t":31,"u":32,"d":33,"y":34},"Choosing an SSG for API Reference Documentation","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fssg-framework-selection-matrix\u002Fchoosing-an-ssg-for-api-reference-documentation\u002F","API docs are generated, versioned and enormous. Compare Hugo, Astro, Eleventy and Next export on build scale, schema-driven pages, versioning and search.","Concept",{"t":36,"u":37,"d":38,"y":34},"Picking an SSG for a Multi-Language Docs Site","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fssg-framework-selection-matrix\u002Fpicking-an-ssg-for-a-multi-language-documentation-site\u002F","Compare i18n in Astro, Hugo, Eleventy, and Jekyll for multi-language documentation — routing, content organization, and build cost — with measured numbers across locales.",{"t":40,"u":41,"d":42,"y":34},"SSG Selection Checklist for Engineering Teams","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fssg-framework-selection-matrix\u002Fssg-selection-checklist-for-engineering-teams\u002F","A practical SSG selection checklist for engineering teams — score build scale, team skills, content model, i18n, hosting, ecosystem, and maintenance before you commit.",{"t":44,"u":45,"d":46,"y":34},"Scoring SSG Long-Term Maintenance Risk","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fssg-framework-selection-matrix\u002Fscoring-ssg-long-term-maintenance-risk\u002F","Score a static site generator’s five-year maintenance risk: project health, upgrade history, dependency surface, plugin ecosystem and your exit cost.",{"t":48,"u":49,"d":50,"y":34},"Total Cost of Ownership for Static Site Generators","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fssg-framework-selection-matrix\u002Ftotal-cost-of-ownership-for-static-site-generators\u002F","Estimate the three-year cost of running a static site on Hugo, Eleventy, Astro, Next.js export or a docs framework: people time, builds, hosting, upgrades.",{"t":52,"u":53,"d":54,"y":55},"Adding JSON-LD Structured Data at Build Time","\u002Fchoosing-the-right-static-site-generator-for-production\u002Ftechnical-seo-for-static-sites\u002Fadding-json-ld-structured-data-at-build-time\u002F","Emit valid JSON-LD from frontmatter in Astro, Eleventy and Hugo: build objects not strings, pick the right schema.org types, and validate every page in CI.","How-to",{"t":57,"u":58,"d":59,"y":55},"How to Benchmark Hugo vs Astro Build Speeds","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Fhow-to-benchmark-hugo-vs-astro-build-speeds\u002F","Build a reproducible Hugo-vs-Astro benchmark with hyperfine — identical corpus, pinned containers, production builds only — so numbers reflect the generators, not your laptop.",{"t":61,"u":62,"d":63,"y":55},"Hugo Image Processing Cache in CI","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Fhugo-image-processing-cache-in-ci\u002F","Persist Hugo’s resources cache between CI runs so image resizing and format conversion only run for new images, and keep the cache from growing forever.",{"t":65,"u":66,"d":67,"y":55},"Hugo Modules and Dependency Caching","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Fhugo-modules-and-dependency-caching\u002F","Use Hugo Modules for themes and shared content, vendor or cache them in CI, pin versions with go.sum, and cut module download time from Hugo builds.",{"t":69,"u":70,"d":71,"y":55},"Hugo partialCached for Faster Builds","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Fhugo-partialcached-for-faster-builds\u002F","Find the partials that dominate a Hugo build with template metrics, cache them with partialCached and the right variant keys, and avoid stale output.",{"t":73,"u":74,"d":75,"y":55},"Indexing Hugo Sites with Pagefind","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fsearch-for-static-sites\u002Findexing-hugo-sites-with-pagefind\u002F","Add fast, serverless search to a Hugo site with Pagefind: template attributes, taxonomy filters, multilingual output, CI integration and measured build cost.",{"t":77,"u":78,"d":79,"y":55},"Migrating From Hugo to Astro Without Breaking URLs","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fmigrating-between-static-site-generators\u002Fmigrating-from-hugo-to-astro-without-breaking-urls\u002F","Move a Hugo site to Astro content collections while reproducing every permalink: slug mapping, a typed schema, shortcodes as MDX components, and a URL parity gate in CI.",{"t":81,"u":82,"d":83,"y":55},"Migrating a Docs Site From Jekyll to Hugo","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fmigrating-between-static-site-generators\u002Fmigrating-a-docs-site-from-jekyll-to-hugo\u002F","Convert Jekyll collections, Liquid includes and permalinks to Hugo sections, partials and URL config — with a build that drops from 96 s to 3.4 s on 1,200 pages.",{"t":85,"u":86,"d":87,"y":55},"Multilingual Sites with Hugo","\u002Fchoosing-the-right-static-site-generator-for-production\u002Finternationalization-for-static-sites\u002Fmultilingual-sites-with-hugo\u002F","Build a multilingual Hugo site: per-language content directories, translated menus and string tables, translationKey linking and build-time checks per locale.",{"t":89,"u":90,"d":91,"y":55},"Parallel Hugo Builds Across CI Jobs","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Fparallel-hugo-builds-across-ci-jobs\u002F","Split a very large Hugo site into segments built in parallel CI jobs, merge the output safely, and measure when parallel builds beat a single larger runner.",{"t":93,"u":94,"d":95,"y":55},"Porting Shortcodes and Includes Between Generators","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fmigrating-between-static-site-generators\u002Fporting-shortcodes-and-includes-between-generators\u002F","Map Jekyll includes, Hugo shortcodes, Eleventy shortcodes and MDX components onto each other — with a census-first strategy, stub-then-port order, and a rendering test per component.",{"t":97,"u":98,"d":99,"y":55},"Profiling Hugo Templates With Template Metrics","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Fprofiling-hugo-templates-with-template-metrics\u002F","Use hugo --templateMetrics to find which partial is eating your build: read cumulative duration, spot cache misses, and cut a 41 s build to 6 s on 4,000 pages.",{"t":101,"u":102,"d":103,"y":55},"RSS and Atom Feeds for Static Blogs","\u002Fchoosing-the-right-static-site-generator-for-production\u002Ftechnical-seo-for-static-sites\u002Frss-and-atom-feeds-for-static-blogs\u002F","Publish valid RSS and Atom feeds from Eleventy, Astro or Hugo with full content, absolute URLs, stable IDs and correct headers, then check them in CI.",{"t":105,"u":106,"d":107,"y":55},"SEO-Safe Pagination and Tag Pages","\u002Fchoosing-the-right-static-site-generator-for-production\u002Ftechnical-seo-for-static-sites\u002Fseo-safe-pagination-and-tag-pages\u002F","Generate crawlable pagination and useful tag archives in Eleventy and Hugo: plain links, self canonicals, a minimum tag size and no thin date archives.",{"t":109,"u":110,"d":111,"y":55},"Sharing a Theme Across Hugo Sites With Modules","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Fsharing-a-theme-across-hugo-sites-with-modules\u002F","Move a theme copied into several Hugo sites into one versioned Hugo Module, let sites override safely, roll out updates with Renovate and keep CI fast.",{"t":113,"u":114,"d":115,"y":55},"Speeding Up Hugo Builds with Render Hooks & Caching","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Fspeeding-up-hugo-builds-with-render-hooks-and-caching\u002F","Cut Hugo build time with render hooks, partialCached, a persistent --cacheDir, and the image resource cache — with measured before\u002Fafter seconds from hyperfine.",{"t":117,"u":118,"d":119,"y":55},"Splitting Large Hugo Sites with Segments","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Fsplitting-large-hugo-sites-with-segments\u002F","Use Hugo segments to render only part of a very large site, build sections in parallel CI jobs, and merge the output without breaking links or sitemaps.",{"t":121,"u":122,"d":123,"y":55},"hreflang and Language Alternates on Static Sites","\u002Fchoosing-the-right-static-site-generator-for-production\u002Finternationalization-for-static-sites\u002Fhreflang-and-language-alternates-on-static-sites\u002F","Generate reciprocal hreflang alternates from a translation key at build time in Hugo, Astro or Eleventy, and validate every language group in CI.",{"t":125,"u":126,"d":127,"y":128},"Fixing Hugo Builds That Fail After a Version Upgrade","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Ffixing-hugo-builds-that-fail-after-a-version-upgrade\u002F","Diagnose Hugo build failures after an upgrade, from removed functions and pagination changes to output differences, then pin Hugo so it cannot recur.","Fix",{"t":130,"u":131,"d":132,"y":128},"Fixing Hugo Builds That Slow Down After Adding Taxonomies","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Ffixing-hugo-builds-that-slow-down-after-adding-taxonomies\u002F","Find why a Hugo build got slower after adding tags or categories, then fix the term templates, related content and pagination that multiply the work.",{"t":134,"u":135,"d":136,"y":128},"Reducing Hugo Memory Usage on CI Runners","\u002Fchoosing-the-right-static-site-generator-for-production\u002Fhugo-build-times-for-large-repositories\u002Freducing-hugo-memory-usage-on-ci-runners\u002F","Why large Hugo builds run out of memory in CI, how to measure peak usage, and the settings, template changes and image strategies that cut it by more than half.",{"k":24,"html":138},"\u003Cfigure>\n\u003Csvg viewBox=\"0 0 760 295\" role=\"img\" aria-labelledby=\"hub-hugo-kinds-title hub-hugo-kinds-desc\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n  \u003Ctitle id=\"hub-hugo-kinds-title\">Number of Hugo guides of each kind\u003C\u002Ftitle>\n  \u003Cdesc id=\"hub-hugo-kinds-desc\">Vertical bars: How-tos 27, Fixes 3, Comparisons 2 and Concepts 5.\u003C\u002Fdesc>\n  \u003Crect x=\"0\" y=\"0\" width=\"760\" height=\"295\" fill=\"#ffffff\"\u002F>\n  \u003Cg style=\"font-family:system-ui, sans-serif;font-size:12px\">\n    \u003Crect x=\"80.0\" y=\"76.0\" width=\"90.0\" height=\"170.0\" rx=\"3\" fill=\"#1982c4\" opacity=\"0.3\" stroke=\"#1982c4\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"250.0\" y=\"227.1\" width=\"90.0\" height=\"18.9\" rx=\"3\" fill=\"#ff595e\" opacity=\"0.3\" stroke=\"#d83b41\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"420.0\" y=\"233.4\" width=\"90.0\" height=\"12.6\" rx=\"3\" fill=\"#ffca3a\" opacity=\"0.45\" stroke=\"#a97b00\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"590.0\" y=\"214.5\" width=\"90.0\" height=\"31.5\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Cpath d=\"M30.0 246.0 L730.0 246.0\" fill=\"none\" stroke=\"#556071\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ctext x=\"380.0\" y=\"30.0\" fill=\"#1f2937\" style=\"font-size:16px;text-anchor:middle;font-weight:700\">Hugo guides by kind\u003C\u002Ftext>\n    \u003Ctext x=\"125.0\" y=\"69.0\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">27\u003C\u002Ftext>\n    \u003Ctext x=\"125.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">How-tos\u003C\u002Ftext>\n    \u003Ctext x=\"295.0\" y=\"220.1\" fill=\"#b32b30\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">3\u003C\u002Ftext>\n    \u003Ctext x=\"295.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Fixes\u003C\u002Ftext>\n    \u003Ctext x=\"465.0\" y=\"226.4\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">2\u003C\u002Ftext>\n    \u003Ctext x=\"465.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Comparisons\u003C\u002Ftext>\n    \u003Ctext x=\"635.0\" y=\"207.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:middle;font-weight:700\">5\u003C\u002Ftext>\n    \u003Ctext x=\"635.0\" y=\"264.0\" fill=\"#556071\" style=\"font-size:11.5px;text-anchor:middle\">Concepts\u003C\u002Ftext>\n  \u003C\u002Fg>\n\u003C\u002Fsvg>\n\u003Cfigcaption>37 guides use Hugo in depth; each is listed below under the section it belongs to.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>",{"k":27,"h":140,"items":141},"Core Web Vitals Optimization for SSGs",[142,146,150,154],{"t":143,"u":144,"d":145,"y":55},"Art Direction with the Picture Element","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Fart-direction-with-the-picture-element\u002F","Serve different crops of a hero image to mobile and desktop with picture and media queries in Astro, Eleventy and Hugo, without hurting LCP or causing layout shift.",{"t":147,"u":148,"d":149,"y":55},"Generating Open Graph Images at Build Time","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Fgenerating-open-graph-images-at-build-time\u002F","Render a unique social preview image for every page at build time with Satori and resvg, cache the output, and wire og:image tags into Astro, Hugo or Eleventy.",{"t":151,"u":152,"d":153,"y":55},"Lazy-Loading Images Without Hurting LCP","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Flazy-loading-images-without-hurting-lcp\u002F","loading=\"lazy\" saves bytes below the fold but delays the LCP image when applied to it. How to decide per image, per template, in Astro, Hugo and Eleventy.",{"t":155,"u":156,"d":157,"y":55},"Optimizing WebP Images in Hugo Without Plugins","\u002Fperformance-optimization-core-web-vitals-for-ssgs\u002Fimage-optimization-pipelines-in-astro\u002Foptimizing-webp-images-in-hugo-without-plugins\u002F","Generate WebP at build time using only Hugo's built-in image processing — no Node, no plugins, no system libraries. Requires the hugo-extended edition for WebP.",{"k":27,"h":159,"items":160},"Production-Ready Deployment & CI\u002FCD for SSGs",[161,166,170,174,178,182,186],{"t":162,"u":163,"d":164,"y":165},"Incremental Rebuild Times Across Astro, Eleventy and Hugo","\u002Fproduction-ready-deployment-cicd-workflows\u002Fincremental-builds-and-build-caching-for-ssgs\u002Fincremental-rebuild-times-across-astro-eleventy-and-hugo\u002F","Astro, Eleventy and Hugo measured on the same 5,000-page site for full, cached and single-page rebuilds, in CI and the dev server, with what each skips.","Comparison",{"t":167,"u":168,"d":169,"y":165},"Vercel ISR vs Static Generation for SSGs","\u002Fproduction-ready-deployment-cicd-workflows\u002Fnetlify-vs-vercel-deployment-strategies\u002Fvercel-isr-vs-static-generation-for-ssgs\u002F","ISR rebuilds pages on demand; static generation builds everything upfront. Astro, Eleventy, Hugo, and Jekyll have no ISR — they rebuild and purge at the CDN.",{"t":171,"u":172,"d":173,"y":55},"Build Caching on Netlify and Vercel","\u002Fproduction-ready-deployment-cicd-workflows\u002Fincremental-builds-and-build-caching-for-ssgs\u002Fbuild-caching-on-netlify-and-vercel\u002F","Make Netlify and Vercel reuse dependency, framework and image caches between static site builds, verify cache hits in logs, and measure the savings.",{"t":175,"u":176,"d":177,"y":55},"Caching Hugo Builds in GitHub Actions","\u002Fproduction-ready-deployment-cicd-workflows\u002Fincremental-builds-and-build-caching-for-ssgs\u002Fcaching-hugo-builds-in-github-actions\u002F","Cache Hugo resources\u002F_gen and the module cache in GitHub Actions with content-hashed keys. Includes the workflow, cache key design, and measured CI minutes saved.",{"t":179,"u":180,"d":181,"y":55},"Configuring Vercel for Hugo and Eleventy","\u002Fproduction-ready-deployment-cicd-workflows\u002Fnetlify-vs-vercel-deployment-strategies\u002Fconfiguring-vercel-for-hugo-and-eleventy\u002F","Deploy Hugo and Eleventy sites on Vercel with pinned versions, the right output directory, clean URLs, trailing slashes, headers and redirects in vercel.json.",{"t":183,"u":184,"d":185,"y":55},"Deploying Hugo to Cloudflare Pages and Workers","\u002Fproduction-ready-deployment-cicd-workflows\u002Fcloudflare-pages-edge-caching-setup\u002Fdeploying-hugo-to-cloudflare-pages-and-workers\u002F","Deploy a Hugo site to Cloudflare Pages — pin HUGO_VERSION, set the build command and public output dir — and learn when Workers and Wrangler earn their place.",{"t":187,"u":188,"d":189,"y":55},"GitHub Actions for Hugo Deployments","\u002Fproduction-ready-deployment-cicd-workflows\u002Fgithub-actions-for-automated-ssg-builds\u002Fhow-to-set-up-github-actions-for-hugo-deployments\u002F","Deploy Hugo with GitHub Actions using the extended edition for SCSS and WebP — a two-job build-and-publish pipeline, resource caching, and the Hugo-specific gotchas.",{"k":24,"html":191},"\u003Cfigure>\n\u003Csvg viewBox=\"0 0 760 278\" role=\"img\" aria-labelledby=\"hub-hugo-topics-title hub-hugo-topics-desc\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\">\n  \u003Ctitle id=\"hub-hugo-topics-title\">Topics with the most Hugo guides\u003C\u002Ftitle>\n  \u003Cdesc id=\"hub-hugo-topics-desc\">Horizontal bars, largest first: Hugo Build Times for Large Repositories 12, SSG Framework Selection Matrix 5, Image Optimization Pipelines in Astro 4, Migrating Between Static Site Generators 3, Technical SEO for Static Sites 3 and Incremental Builds and Build Caching for SSGs 3.\u003C\u002Fdesc>\n  \u003Crect x=\"0\" y=\"0\" width=\"760\" height=\"278\" fill=\"#ffffff\"\u002F>\n  \u003Cg style=\"font-family:system-ui, sans-serif;font-size:12px\">\n    \u003Crect x=\"350.0\" y=\"65.0\" width=\"357.2\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"99.0\" width=\"148.8\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"133.0\" width=\"119.1\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"167.0\" width=\"89.3\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"201.0\" width=\"89.3\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Crect x=\"350.0\" y=\"235.0\" width=\"89.3\" height=\"20.0\" rx=\"3\" fill=\"#6a4c93\" opacity=\"0.3\" stroke=\"#6a4c93\" style=\"stroke-width:1px\"\u002F>\n    \u003Cpath d=\"M350.0 60.0 L350.0 260.0\" fill=\"none\" stroke=\"#556071\" style=\"stroke-width:1.5px\"\u002F>\n    \u003Ctext x=\"380.0\" y=\"30.0\" fill=\"#1f2937\" style=\"font-size:16px;text-anchor:middle;font-weight:700\">Where Hugo comes up\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"79.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Hugo Build Times for Large Repositories\u003C\u002Ftext>\n    \u003Ctext x=\"715.2\" y=\"79.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">12\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"113.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">SSG Framework Selection Matrix\u003C\u002Ftext>\n    \u003Ctext x=\"506.8\" y=\"113.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">5\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"147.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Image Optimization Pipelines in Astro\u003C\u002Ftext>\n    \u003Ctext x=\"477.1\" y=\"147.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">4\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"181.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Migrating Between Static Site Generators\u003C\u002Ftext>\n    \u003Ctext x=\"447.3\" y=\"181.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">3\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"215.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Technical SEO\u003C\u002Ftext>\n    \u003Ctext x=\"447.3\" y=\"215.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">3\u003C\u002Ftext>\n    \u003Ctext x=\"20.0\" y=\"249.2\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start\">Incremental Builds and Build Caching\u003C\u002Ftext>\n    \u003Ctext x=\"447.3\" y=\"249.5\" fill=\"#1f2937\" style=\"font-size:12px;text-anchor:start;font-weight:700\">3\u003C\u002Ftext>\n  \u003C\u002Fg>\n\u003C\u002Fsvg>\n\u003Cfigcaption>Topic pages give the wider context for each group; the numbers count only guides that use this tool in depth.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>",{"k":27,"h":193,"items":194},"Often used with Hugo",[195,200,205,210,215,219],{"t":196,"u":197,"d":198,"y":199},"Astro","\u002Ftools\u002Fastro\u002F","Islands, content collections, astro:assets and deployment.","17 shared guides",{"t":201,"u":202,"d":203,"y":204},"Eleventy","\u002Ftools\u002Feleventy\u002F","Incremental builds, image pipelines and the data cascade.","15 shared guides",{"t":206,"u":207,"d":208,"y":209},"Jekyll","\u002Ftools\u002Fjekyll\u002F","Plugins, reproducible builds, upgrades and migration away.","5 shared guides",{"t":211,"u":212,"d":213,"y":214},"GitHub Actions","\u002Ftools\u002Fgithub-actions\u002F","Caching, matrix builds, reusable workflows and pinning.","3 shared guides",{"t":216,"u":217,"d":218,"y":214},"Vercel","\u002Ftools\u002Fvercel\u002F","Non-Next.js generators, the Build Output API and caching.",{"t":220,"u":221,"d":222,"y":223},"Next.js","\u002Ftools\u002Fnextjs\u002F","Static export for content sites, its limits and alternatives.","2 shared guides",1790943190466]