Built-in search is powered by Pagefind (external link), 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 Link to this heading
params:
searchEnabled: trueStep 2: Generate the search index Link to this heading
Pagefind reads the HTML files Hugo produces and builds a search index from them. Install Node.js (external link), then add Pagefind to your development dependencies:
npm install -D pagefindAdd the following scripts to 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.
Include the indexing step in your deployment script (GitHub workflow, Cloudflare build script, etc.), otherwise search will not appear on the deployed site.
Exclude a page from search Link to this heading
Set pageNoList: true in a page's front matter to exclude it from search results and list pages.