Skip to content
Invisible link to canonical for Microformats

Enable Simple-Jekyll-Search search


Configure local search on an existing site

Use this guide for an existing site. No search-service account, API key or additional Jekyll plugin is needed. The personal-blog template already uses Fuse.js; follow these steps only if you want to replace that provider.

Configure the provider and page

In _config.yml, edit the existing search section, or add it once if absent:

search:
  provider: simplesearch
  landing_page: /search

Preserve other search settings. If your search page already has another address, keep that path in landing_page and in the page below.

Edit the existing search page. If there is none, create search.md next to _config.yml with this content:

---
layout: search
title: Search
permalink: /search
---

Keep only one page at that address. permalink and search.landing_page must match; do not prepend the site’s baseurl to either value. The search layout supplies the interface and does not display page-body text.

Publish and verify

Save with Commit changes on the publishing branch. Wait for Actions to succeed, then open your site’s search address. For a site at https://ana.github.io/my-blog, the default address is https://ana.github.io/my-blog/search.

Search for a distinctive word from a published article’s title, open a result and verify its address. Clear the field and check that the results clear. If a result is missing, check the document’s publication status and date, and any include_on_search: false in its settings or configuration defaults. The index updates during a site build; publish again after content changes.

The classic navbar and desktop dual navbar show the Search link only when navbar.nav is configured. If it is absent, use the direct address above or edit your menu. If the page itself is missing, check the build and matching paths; see publishing checks.

For word limits, attribution and legacy settings, use the search reference.