All configuration lives in a single SEO_SUITE dict in settings.py. Keys
you omit inherit the package defaults shown below.
# settings.pySEO_SUITE={# ... only the keys you want to change ...}
The DEFAULTS and SITE_DEFAULTS dicts are deep-merged with the
built-in values rather than replaced wholesale — you only need to specify keys
you want to override within them.
The resolver class. Swap to customise collection or merging. Must be a subclass of seo_suite.resolver.BaseResolver.
SITE_ID_RESOLVER
dotted import string or None
None
A callable (request) -> int \| None that returns the current site ID. When None, the standard fallback chain is used (sites framework → settings.SITE_ID).
Maps site ID (int) or None to a partial-metadata dict. Applied at priority 20, above global defaults. None key acts as a catch-all for unmatched sites.
Example:
SEO_SUITE={"SITE_DEFAULTS":{1:{"title_suffix":" | Main Site","og":{"site_name":"Main Site"}},2:{"title_suffix":" | Blog","og":{"site_name":"Blog"}},},}
These settings control the versioned robots.txt workflow. They have
no effect on the SEO metadata resolver and do not change the <meta name="robots"> tag.
Key
Type
Default
Description
ROBOTS_TXT_FALLBACK
str
"User-agent: *\nAllow: /"
The body served at /robots.txt when no database version is active for the current site.
ROBOTS_SITEMAP_URLS
list of str
[]
URLs appended to every served robots.txt as Sitemap: lines. Relative URLs are made absolute using the incoming request.
ROBOTS_CACHE_TTL
int
0
Cache TTL in seconds for the rendered robots.txt body. 0 disables caching. The cache is invalidated automatically whenever any version is saved or activated. Uses the same backend as CACHE_BACKEND.