Simple Sitemap with django.contrib.sitemaps
A snippet showing how to build sitemaps in Django.
# models.py
from django.db import models
class Post(models.Model):
slug = models.SlugField(unique=True)
updated_at = models.DateTimeField(auto_now=True)
# admin.py
from django.contrib import admin
from .models import Post
@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
list_display = ("slug","updated_at")
# sitemaps.py
from django.contrib.sitemaps import Sitemap
from .models import Post
class PostSitemap(Sitemap):
changefreq = "weekly"
priority = 0.5
def items(self): return Post.objects.all()
def location(self, obj): return f"/posts/{obj.slug}/"
def lastmod(self, obj): return obj.updated_at
# urls.py
from django.contrib.sitemaps.views import sitemap
from .sitemaps import PostSitemap
sitemaps = {"posts": PostSitemap}
urlpatterns = [ path("sitemap.xml", sitemap, {"sitemaps": sitemaps}) ]
Explanation:
-
Install
django.contrib.sitemapsand wire the view at/sitemap.xml. -
Provide
items(),location(), and optionallastmod.
- Category Utilities & Miscellaneous
- Total Views 934
- Last Modified 30 May, 2026
- Tags #sitemap #seo #utilities #urls
Previous snippet
CSV Import to Models
Next snippet