You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Django分页出现重复Title Tags问题的解决办法

解决Django分页页面重复Title标签的问题

这个问题我之前帮不少开发者解决过,核心就是让每个分页页面的title带上独特标识,同时配合SEO最佳实践来处理,给你几个具体的实现方案:

方案1:通过视图传递页码,动态生成Title

如果你的首页是基于类的视图(比如ListView),可以在视图里把当前页码传递到模板,然后在模板里判断并拼接title:

步骤1:修改视图代码

from django.views.generic import ListView
from .models import YourContentModel  # 替换成你自己的模型

class HomePageListView(ListView):
    model = YourContentModel
    paginate_by = 10  # 你设置的每页数量
    template_name = 'home.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        # 获取当前请求的页码,默认是1
        current_page = self.request.GET.get('page', 1)
        context['current_page'] = int(current_page)
        return context

步骤2:在模板中动态渲染Title

在首页模板的<title>标签里加入判断逻辑:

<title>
    {% if current_page > 1 %}
        首页 - 第{{ current_page }}页 | infortion
    {% else %}
        首页 | infortion
    {% endif %}
</title>

方案2:直接使用分页对象属性(无需修改视图)

Django的ListView会自动把分页对象page_obj传入模板,你可以直接用它的number属性来判断页码,省去修改视图的步骤:

<title>
    首页 {% if page_obj.number > 1 %} - 第{{ page_obj.number }}页 {% endif %} | infortion
</title>

这个方案更简洁,适合不想改动视图逻辑的场景。

额外SEO优化:添加Canonical标签

除了修改Title,建议在页面<head>里添加rel="canonical"标签,明确告诉搜索引擎哪个是首页的主版本,避免被判定为重复内容:

<!-- 主页面(不带page参数)的canonical指向根URL -->
{% if page_obj.number == 1 %}
    <link rel="canonical" href="https://infortion.com/">
{% else %}
    <!-- 分页页面的canonical指向当前分页URL,让搜索引擎识别为独立页面 -->
    <link rel="canonical" href="https://infortion.com/?page={{ page_obj.number }}">
{% endif %}

这样处理后,不仅能解决Duplicate title tags的错误提示,还能提升网站的SEO表现,让搜索引擎更好地收录你的分页内容。

内容的提问来源于stack exchange,提问作者user9796393

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:06:15