dedecms如何防止重复收录
重复收录的成因分析
织梦DedeCMS站点出现重复收录,往往不是单一原因造成的。常见诱因有:动态页和静态页同时存在、栏目列表页有多套URL、分页参数导致同内容多地址、移动端与PC端URL未做对应处理。当同一篇内容被搜索引擎以不同URL收录后,会造成权重分散、关键词内部竞争,严重时还会被判定为内容重复而降权。
要彻底解决重复收录,需要从URL规范化、页面屏蔽、canonical声明三个层面同时入手。
一、统一动态与静态URL
织梦默认会生成静态HTML文件,但如果伪静态或动态访问没关闭,同一篇文章会同时存在 /123.html 和 /plus/view.php?aid=123 两个可访问地址。
解决步骤
- 确定使用静态生成还是伪静态,二选一,不要混用。
- 如果用静态生成,在 robots.txt 中屏蔽
/plus/目录下的动态入口:
User-agent: *
Disallow: /plus/
Disallow: /*?*
这样搜索引擎只能抓取静态HTML地址,从源头杜绝动态URL被收录。
二、处理列表页重复URL
织梦栏目列表页存在多种访问路径,例如 /news/、/news/index.html、/news/list_1.html 都可能指向同一页面,造成列表页重复收录。
应对方案
- 统一首页地址: 修改栏目模板,让所有内部链接指向
/news/而非index.html,并在nginx/apache中把访问index.html301跳转到目录地址。 - 屏蔽分页首页: 列表第一页
list_1_1.html和栏目首页/news/内容相同,应在robots中屏蔽list_*_1.html这种第一页地址。
# 屏蔽列表第一页(与栏目首页重复)
Disallow: /list_*_1.html$
三、使用canonical标签指定规范URL
对于无法避免多URL共存的页面,canonical标签是最有效的去重手段。它告诉搜索引擎「这几个地址中哪个是权威版本」,搜索引擎会把权重归并到指定URL上。
织梦添加canonical方法
在模板 <head> 区域加入:
<!-- 文章页 -->
<link rel="canonical" href="{dede:field name='arcurl'/}" />
<!-- 列表页 -->
<link rel="canonical" href="{dede:field name='typeurl'/}" />
<!-- 首页 -->
<link rel="canonical" href="https://www.example.com/" />
canonical指向的URL必须是绝对地址(带域名和协议),且该页面真实可访问。不要用canonical指向不存在或已跳转的页面。
四、移动端适配去重
如果站点做了PC与移动端分离(动态判断或独立移动站),同一内容会出现PC版和移动版两套URL。需要通过适配声明告诉搜索引擎两者的对应关系,避免重复收录。
- 自适应站点: 同一URL服务不同设备,无需额外处理。
- 独立移动站: 在PC页head中加入
alternate声明,并在百度搜索资源平台提交适配规则。
<link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com{dede:field name='arcurl'/}" />
五、排查已有重复收录
对于已经被收录的重复页面,需要主动清理。操作方法:
- 在百度搜索资源平台使用「site:域名」查询已收录页面,找出重复URL。
- 对重复URL设置301永久跳转到规范地址。
- 无法301的,在robots.txt中屏蔽,并到百度平台提交死链删除。
- 持续监控索引量变化,确认重复页面被剔除。
| 重复类型 | 处理方式 | 生效速度 |
|---|---|---|
| 动态/静态重复 | robots屏蔽动态URL | 较快 |
| 列表多地址 | 301跳转+canonical | 中等 |
| 分页标题重复 | 标题加页码区分 | 较快 |
| PC/移动重复 | 适配规则声明 | 较慢 |
清理重复收录是个渐进过程,不要急于用robots大范围屏蔽已有收录页面,可能导致有效流量短期内下降。建议先用canonical归并权重,再逐步用301和屏蔽清理。
长效维护建议
防止重复收录不是一次性的工作,而是要在站点搭建之初就把URL规范确立好。每次新增栏目、调整伪静态规则、上线移动适配时,都要同步检查是否引入了新的重复URL。养成定期查看搜索资源平台索引报告的习惯,发现异常及时处理。URL结构越干净规范,搜索引擎对站点的抓取效率越高,SEO效果也会更稳定。