Skip to main content

Search

Published:

Built-in search is powered by Pagefind, a static search library that serves results entirely in the browser with no external service needed.

Enabling search requires two steps: setting a config flag so Yore renders the search UI, and running Pagefind after every build to generate the search index. Both are required because the UI will not work without the index.

Step 1: Enable the search UI

hugo.yaml
params:
  searchEnabled: true

Step 2: Generate the search index

Pagefind reads the HTML files Hugo produces and builds a search index from them. Install Node.js, then add Pagefind to your development dependencies:

npm install -D pagefind

Add the following scripts to package.json.

package.json
{
  "scripts": {
    "pagefind": "pagefind --site public",
    "build": "hugo --gc --minify && npm run pagefind",
    "dev": "hugo server"
  }
}

Finally, run npm run pagefind after the site is built.

Important

Include the indexing step in your deployment script (GitHub workflow, Cloudflare build script, etc.), otherwise search will not appear on the deployed site.

Set pageNoList: true in a page's front matter to exclude it from search results and list pages.

Article Connections

Accessibility settings

Font size