Pagefind CLI configuration options

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 Default UI, see Pagefind 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

#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 KEEP_INDEX_URL keep_index_url

#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

#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