在 Django 项目中做搜索引擎优化(SEO),通常从技术 SEO、内容 SEO、性能与可访问性三个层面入手。下面按“实操可落地”的方式给你一个系统清单。
使用语义化、静态化 URL:
# urls.py
path('blog/<slug:slug>/', views.post_detail, name='post_detail')
✅ 推荐:/blog/django-seo-guide/
❌ 避免:/post?id=12
在模板中使用 block:
<title>{% block title %}默认标题{% endblock %}</title>
<meta name="description" content="{% block description %}{% endblock %}">
视图中传参:
return render(request, 'post.html', {
'title': post.title,
'description': post.summary
})
使用 Django 自带:
pip install django
# settings.py
INSTALLED_APPS += ['django.contrib.sitemaps']
# urls.py
from django.contrib.sitemaps.views import sitemap
from .sitemaps import PostSitemap
urlpatterns = [
path('sitemap.xml', sitemap, {'sitemaps': {'posts': PostSitemap}})
]
# sitemaps.py
class PostSitemap(Sitemap):
def items(self):
return Post.objects.filter(published=True)
def lastmod(self, obj):
return obj.updated_at
from django.views.generic import TemplateView
urlpatterns += [
path('robots.txt', TemplateView.as_view(
template_name='robots.txt',
content_type='text/plain'
))
]
from django.utils.text import slugify
class Post(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.title)
super().save(*args, **kwargs)
使用 JSON-LD:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "{{ post.title }}",
"author": "{{ post.author }}"
}
</script>
<nav>
<a href="/">首页</a> >
<a href="/blog/">博客</a> >
{{ post.title }}
</nav>
select_related / prefetch_relatedPost.objects.select_related('author').all()
<meta name="viewport" content="width=device-width, initial-scale=1">
SECURE_SSL_REDIRECT = True
SECURE_HSTS_SECONDS = 31536000
| 工具 | 用途 |
|---|---|
| django-meta | Meta 管理 |
| django-seo | SEO 字段 |
| allauth | 用户 & 安全 |
| django-redis | 缓存 |
| google search console | 收录分析 |
❌ 动态参数 URL
❌ 重复 title
❌ 无 sitemap
❌ 页面加载慢
❌ 无移动端适配
Django
├─ slug URL
├─ sitemap.xml
├─ meta block
├─ JSON-LD
├─ Redis 缓存
├─ CDN
└─ GSC 提交
如果你愿意,我可以:
你现在是做博客、企业站,还是电商?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。