dedecms分页标签怎么优化
pagelist
SEO
canonical
默认分页标签的SEO痛点
织梦列表页底部的分页标签 {dede:pagelist listsize='5' listitem='index,end,pre,next,pageno'/} 默认会输出几十个独立的分页 URL,例如 list_5_2.html、list_5_3.html。这些页面内容高度相似,容易被百度判为低质重复页,导致整站权重分散。
优化方向一览
- 减少分页链接数量,
listsize调小。 - 增加首页/上一页/下一页/尾页的语义化文字。
- 给分页 URL 添加
rel="prev"、rel="next"。 - 第 2 页之后加上
canonical指向第 1 页或自身规范 URL。 - 过滤掉无意义的空分页(如只有 1 条记录)。
基础写法与参数说明
{dede:pagelist listsize='3' listitem='index,pre,pageno,next,end'/}
listitem 可用值:
index:首页pre:上一页pageno:页码next:下一页end:尾页option:下拉跳转
渲染效果示例:
升级版:自定义分页样式
修改 include/arc.listview.class.php 中 GetPageListDM 方法,让分页 a 标签带 rel 属性:
// 上一页
$prepage .="<a href='".str_replace('{page}',$prepagenum,$tnamerule)."' rel='prev'>上一页</a>\n";
// 下一页
$nextpage .="<a href='".str_replace('{page}',$nextpagenum,$tnamerule)."' rel='next'>下一页</a>\n";
添加 canonical 标签
在 <head> 中根据当前页码输出 canonical:
{dede:field name='page' runphp='yes'}
if(@me > 1){
@me='<link rel="canonical" href="'.GetCurUrl().'/list_{dede:field.typeid/}_1.html" />';
}else{
@me='';
}
{/dede:field}
注意:百度已不再使用
rel="prev/next",但 Google 仍参考,且对用户浏览体验有帮助,建议保留。
NOINDEX 处理分页第N页
对第 2 页之后的内容,可在 <head> 注入 noindex,follow,让搜索引擎不收录但仍跟踪内链:
{dede:field name='page' runphp='yes'}
if(@me > 1) @me='<meta name="robots" content="noindex,follow" />';
else @me='';
{/dede:field}
移动端分页优化
移动端屏幕窄,建议 listsize='2' 并隐藏尾页按钮,用「加载更多」替代分页:在 list_article.htm 末尾用 AJAX 请求下一页 list_5_2.html 并追加到列表容器。
后续行动建议
先用站长工具抓取一下现有分页,看看返回码和标题是否雷同,再有针对性地按本文方案逐项优化。分页优化完成后,记得在百度搜索资源平台提交 sitemap,让搜索引擎尽快重新评估。SEO 不是一次性工作,建议每季度复查一次分页收录情况,把分页这块「隐形的权重漏斗」持续维护好。