Project/Page Metadata and SEO
Pegasus comes with some built in tools and best-practices for setting page-level metadata (e.g. title, image URL, etc.).
The PROJECT_METADATA
setting
Section titled “The PROJECT_METADATA setting”Your Pegasus project will ship with a settings.py
variable called PROJECT_METADATA
with the following values:
PROJECT_METADATA = { 'NAME': '<your app name>', 'URL': '<your app domain>', 'DESCRIPTION': '<your app description>', 'IMAGE': 'https://upload.wikimedia.org/wikipedia/commons/2/20/PEO-pegasus_black.svg', 'KEYWORDS': 'SaaS, django', 'CONTACT_EMAIL': '<your email>',}
This information will be available in every view under the variable name project_meta
.
Out of the box, the values are used in a number of places, though can be overridden/modified at the view level.
Page Titles
Section titled “Page Titles”The default title for your pages will be your project name and description from PROJECT_METADATA
.
If you want to add a custom page title, you can pass a page_title
context variable to the template.
For example:
def my_new_view(request): return render('a/template.html', {'page_title': 'My New Page'})
Pegasus will then set your title to be My New Page | <project name>
.
If you’d like to change the way the title is formatted (e.g. remove the project name), you can change
that behavior in web.templatetags.meta_tags.get_title
.
In Pegasus versions after 2022.4 you can also override the title directly in a template by overriding the page_title
block.
For example:
{% block page_title %}This title will be used instead of the Pegasus versions{% endblock %}
Sitemaps
Section titled “Sitemaps”As of version 2022.6, Pegasus will automatically generate a basic sitemap for your site at sitemap.xml
.
Out of the box, the sitemap will only contain your application’s homepage, but can be readily extended by adding
URLs in apps/web/sitemaps.py
.
If you have enabled Wagtail, your sitemap will also include any content managed by Wagtail. Make sure you properly set the hostname in your Wagtail site.