Files
Pagefind-pagefind/docs/content/docs/config-options.md
T
dualfroz 3a1d31147a Add an opt-in option to lowercase filter values
Filter values that only differ in case, like `Mint` and `mint`, came
through as separate values. The new `--lowercase-filters` option
(`lowercase_filters`, `PAGEFIND_LOWERCASE_FILTERS`, and
`lowercaseFilters` / `lowercase_filters` in the Node and Python
wrappers) lowercases filter values when indexing and merges values on
a page that become equal. Filter names are left as they are. Off by
default.

Fixes #737
2026-10-03 01:43:17 +02:00

7.7 KiB

title, nav_title, nav_section, weight
title nav_title nav_section weight
Pagefind CLI configuration options CLI config options References 51

The Pagefind CLI has the following options. These can be set via any configuration source.

These configuration options only apply when running the Pagefind indexing tool on your site. For configuring Pagefind search in the browser, see Pagefind Search Config. For configuring the Pagefind Component UI, see Pagefind Component UI.

Required arguments

Site

The location of your built static site.

CLI Flag ENV Variable Config Key
--site <PATH> PAGEFIND_SITE site

Optional arguments

Serve

Serve the site directory after creating the search index. Useful for testing search on a local build of your site without having to serve the site directory manually.

CLI Flag ENV Variable Config Key
--serve PAGEFIND_SERVE serve

Output subdirectory

The folder to output the search bundle into, relative to the processed site. Defaults to pagefind.

CLI Flag ENV Variable Config Key
--output-subdir <DIR> PAGEFIND_OUTPUT_SUBDIR output_subdir

Output path

The folder to output the search bundle into, relative to the working directory. Overrides output-subdir if supplied.

CLI Flag ENV Variable Config Key
--output-path <PATH> PAGEFIND_OUTPUT_PATH output_path

Root selector

The element that Pagefind should treat as the root of the document. Defaults to html.

Note that filters and metadata outside of this selector will not be detected, all Pagefind behaviour will be limited to this element and below. In most cases, you should use the data-pagefind-body attribute detailed in Customizing the index.

CLI Flag ENV Variable Config Key
--root-selector <S> PAGEFIND_ROOT_SELECTOR root_selector

Exclude selectors

Pass extra element selectors that Pagefind should ignore when indexing. For example, in pagefind.yml:

exclude_selectors:
  - "#my_navigation"
  - "blockquote > span"
  - "[id^='prefix-']"

All children will also be ignored, so using a #my_navigation * selector is not required — in other words, the semantics are the same as the data-pagefind-ignore attribute.

Note that currently Pagefind only supports lists of options via configuration files. If using the --exclude-selectors CLI flag or the PAGEFIND_EXCLUDE_SELECTORS environment variable, only one selector may be supplied. The selector may be a comma-separated CSS selector though, so the above example can be passed as --exclude-selectors "#my_navigation, blockquote > span, [id^='prefix-']".

CLI Flag ENV Variable Config Key
--exclude-selectors <S> PAGEFIND_EXCLUDE_SELECTORS exclude_selectors

Include characters

Prevents Pagefind from stripping the provided characters when indexing content. Allows users to search for words including these characters.

See Indexing special characters for more documentation.

Care is needed if setting this argument via the CLI, as special characters may be interpreted by your shell. Configure this via a configuration file if you encounter issues.

include_characters: "<>$"
CLI Flag ENV Variable Config Key
--include-characters <S> PAGEFIND_INCLUDE_CHARACTERS include_characters

Glob

Configures the glob used by Pagefind to discover HTML files. Defaults to **/*.{html}. See Wax patterns documentation for more details.

CLI Flag ENV Variable Config Key
--glob <GLOB> PAGEFIND_GLOB glob

Force language

Ignores any detected languages and creates a single index for the entire site as the provided language. Expects an ISO 639-1 code, such as en or pt.

See Multilingual search for more details.

CLI Flag ENV Variable Config Key
--force-language <LANG> PAGEFIND_FORCE_LANGUAGE force_language

Keep index URL

Keeps index.html at the end of search result paths. By default, a file at animals/cat/index.html will be given the URL /animals/cat/. Setting this option to true will result in the URL /animals/cat/index.html.

CLI Flag ENV Variable Config Key
--keep-index-url PAGEFIND_KEEP_INDEX_URL keep_index_url

Write playground

Writes the Pagefind playground files to /playground within your bundle directory. For most sites, this will make the Pagefind playground available at /pagefind/playground/.

This defaults to false, so playground files are not written to your live site. Playground files are always available when running Pagefind with --serve.

CLI Flag ENV Variable Config Key
--write-playground PAGEFIND_WRITE_PLAYGROUND write_playground

Lowercase filters

Lowercases all filter values when indexing, so that values differing only in case are merged. With this option, <span data-pagefind-filter="garnish">Mint</span> and <span data-pagefind-filter="garnish">mint</span> both come through as the mint value of the garnish filter. Filter names are left as they are.

Filter values passed to Pagefind search should then be lowercase too, and any UI that displays them will show the lowercased values.

CLI Flag ENV Variable Config Key
--lowercase-filters PAGEFIND_LOWERCASE_FILTERS lowercase_filters

Verbose

Prints extra logging while indexing the site. Only affects the CLI, does not impact web-facing search.

CLI Flag ENV Variable Config Key
--verbose PAGEFIND_VERBOSE verbose

Quiet

Only logs errors and warnings while indexing the site. Only affects the CLI, does not impact web-facing search.

CLI Flag ENV Variable Config Key
--quiet PAGEFIND_QUIET quiet

Silent

Only logs errors while indexing the site. Only affects the CLI, does not impact web-facing search.

CLI Flag ENV Variable Config Key
--silent PAGEFIND_SILENT silent

Logfile

Writes logs to the given logfile, in addition to the console. Replaces the file on each run.

CLI Flag ENV Variable Config Key
--logfile <PATH> PAGEFIND_LOGFILE logfile