Django 生成sitemap的简单方式
gowhich最近的一个网站使用django搭建,急需sitemap这个家伙的帮助,so easy。
下面看下简介:
sitemaps 是 Google 最先引入的网站地图协议,采用 XML 格式,它的作用简而言之就是优化搜索引擎的索引效率,详细的解释可以参考 维基百科。
Bing、Yahoo 以及 Ask 都支持 sitemaps 协议。国内的百度最近也开始支持 sitemaps 协议,但我看百度官方文档的描述,
看看django的sitemap的框架吧
Django sitemap 框架的使用和设置
Django 的 contrib 包带了对网站地图协议的支持,使用起来非常方便,几行代码就可以搞定了。
首先需要在 settings.py
的 INSTALLED_APPS
列表中增加 app 'django.contrib.sitemaps'
。
随后在 urls.py 文件中追加如下代码:
1 | # django.contrib.sitemaps |
Blog 和 News 换成需要为其建立地图的 Model 即可,其中 ‘date_field
‘ 对应于网站地图协议的 lastmod(最后修改时间),所以值 modified_date
要换成对应 Model 用来保存最后修改时间的数据库字段。
测试
重启测试服务器后访问:http://127.0.0.1:8000/sitemap.xml 显示的是一个包含若干网站地图的索引(sitemap index)。
Google 和百度均支持网站地图索引,可以放心使用。使用网站地图索引的主要原因是,网站内容非常多时,生成的网站地图索引会非常大,检索效率低,搜索引擎为了分批检索,规定单个网站地图的条目不能超过 5 万个 URL 链接,总大小不超过 10M。
注意问题
django.contrib.sitemaps 依赖 django.contrib.sites app,必须启用。启用后需要到 “Sites” 中把缺省的 example.com 设置成真实域名;
Django 是动态生成网站地图,因此如果要提高搜索引擎的检索速度,获得更好的排名,应考虑将其静态化(django-static-sitemaps)。
参考链接
Sitemap 协议标准
Google sitemap 帮助
百度 sitemap 帮助
百度 sitemap 格式
Django sitemap 框架
Django sites 框架