Module

postprocess.sitemap

Sitemap generation for SEO.

Generates XML sitemap files for search engine discovery and indexing. Creates sitemap.xml with page URLs, modification dates, change frequencies, and priorities. Supports sitemap index files for large sites.

Key Concepts:

  • XML sitemap: Standard XML format for search engine discovery
  • Page metadata: Last modified dates, change frequencies, priorities
  • Sitemap index: Index file for multiple sitemap files (large sites)
  • SEO optimization: Helps search engines discover and index content

Related Modules:

  • bengal.orchestration.postprocess: Post-processing orchestration
  • bengal.core.site: Site container with pages
  • bengal.core.page: Page objects with metadata

See Also:

  • bengal/postprocess/sitemap.py:SitemapGenerator for sitemap generation
  • https://www.sitemaps.org/: Sitemap protocol specification

Classes

SitemapGenerator 5
Generates XML sitemap for SEO and search engine discovery. Creates sitemap.xml files listing all p…

Generates XML sitemap for SEO and search engine discovery.

Creates sitemap.xml files listing all pages with metadata for search engines. Supports sitemap index files for large sites and i18n alternate language links.

Creation: Direct instantiation: SitemapGenerator(site)

  • Created by PostprocessOrchestrator for sitemap generation
  • Requires Site instance with rendered pages

Relationships:

  • Used by: PostprocessOrchestrator for sitemap generation
  • Uses: Site for page access and configuration

Features:

  • URL location with baseurl support
  • Last modified dates from page metadata
  • Change frequency and priority metadata
  • i18n alternate language links (hreflang)
  • Sitemap index support for large sites

Attributes

Name Type Description
site

Site instance with pages and configuration

logger

Logger instance for sitemap generation events

Methods

generate 0
Generate and write sitemap.xml to output directory. Iterates through all pages…
def generate(self) -> None

Generate and write sitemap.xml to output directory.

Iterates through all pages, creates XML entries with URLs and metadata, and writes the sitemap atomically to prevent corruption.

If no pages exist, logs info and skips generation (no empty sitemap file).

Internal Methods 2
__init__ 2
Initialize sitemap generator.
def __init__(self, site: SiteLike, collector: OutputCollector | None = None) -> None
Parameters
Name Type Description
site

Site instance

collector

Optional output collector for hot reload tracking

Default:None
_get_version_priority 1 str
Get sitemap priority for a page based on version. Latest version pages get pri…
def _get_version_priority(self, page: Any) -> str

Get sitemap priority for a page based on version.

Latest version pages get priority 0.8. Older version pages get priority 0.3 (lower but still indexed). Non-versioned pages get default priority 0.5.

Parameters
Name Type Description
page

Page object

Returns
str Priority string (0.0-1.0)