前言
sitemap雖然對SEO來說,不一定有加分的效果。但是sitemap還是能幫助搜尋引擎對你的網站進行索引
Django就自帶了相關的套件來幫助快速製作sitemap,使用該套件可以自動處理分頁問題,也不用另外在寫方法去跟資料庫交互,真的很方便
配置
步驟
在跟settings.py同級的目錄下新建sitemap.py檔
在sitemap.py引入django.contrib.sitemaps.Sitemap以及你要用的model
在sitemap.py檔中建立Sitemap的子類
其中屬性的chagefreq跟priority去看參考資料裡面給的文檔,另外如果網站是https要加上protocol
該類的方法只有items是一定要的,lastmod跟location不是必須,其他還有很多不同的方法可以去看官方文檔
以下稍微說一下我使用的三個方法:
items
是必須的,將你要篩選的資料選出來,返回對象的sequence或QuerySet方法
loaction
可選項,返回對象的絕對路徑,所以如果對象本身沒有get_absolute_url()會報錯
lastmod
可選項,返回datetime,可以自己設定或是對象的datetime屬性
最後在底下寫下字典sitemaps,方便urls.py去調用特定的類
接著去urls.py中設定好url
就可以在sitemap.xml路徑下看到xml了
但是當今天需要為每個sitemap設置sitemap index時,我們就需要修改一下方法。至於sitemap index也就是將為每一個sitemap去製作索引,讓瀏覽器知道要去看這個站點的所有sitemap應該怎麼走
接著我們就可以看到結果啦~
首先去sitemap.xml
接著去sitemap-brand.xml
可以看到結果就如同預期一樣~
參考
官方文檔:https://docs.djangoproject.com/zh-hans/3.2/ref/contrib/sitemaps/
sitemap格式文檔:https://www.sitemaps.org/protocol.html