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
params:
searchEnabled: trueStep 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 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
Set pageNoList: true in a page's front matter to exclude it from search results and list pages.