|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、问题缘起
站长在 Bing Webmaster Tools 中发现论坛存在 12.8K 条 “Too many pages with identical meta descriptions” 警告。
重要说明:该警告针对的是 <meta name="description"> 标签的重复,而非页面主体内容的重复。搜索引擎不会因此对网站进行排名惩罚,但重复的元描述会导致搜索结果中多个页面显示相同的摘要文字,降低用户识别和点击相关内容的意愿。
经排查,涉及以下三类页面:
| 页面类型 | 重复原因 | 示例 | | 带 _dsign 参数的帖子页 | _dsign 参数生成大量相同内容的URL变体,每个变体都输出相同的 description | thread-90654-1-1.html?_dsign=xxx | | 版块分类筛选页(typeid) | 同一版块下不同分类(如“欧美电影”“华语电影”)共用版块级别的 description | forum.php?mod=forumdisplay&fid=14&filter=typeid&typeid=46 | | 标签页(tag) | 所有标签页共用 标签 - {标签名} 格式,缺乏差异化描述 | misc.php?mod=tag&id=xxx |
二、解决方案
2.1 协调 robots.txt 与 canonical 的关系
问题:原 robots.txt 中存在 Disallow: /*?_dsign= 规则,阻止了 Bing 抓取带 _dsign 的 URL。这使得 Bing 无法读取这些页面中已存在的 canonical 标签,导致 SEO 报告中的警告无法随重新抓取而更新。
解决:删除 Disallow: /?_dsign= 和 Disallow: /&_dsign= 规则,允许 Bing 正常抓取带参数的 URL,使 canonical 标签能够被识别。
- # 已删除以下规则
- # Disallow: /*?_dsign=
- # Disallow: /*&_dsign=
复制代码
验证:Bing URL 检查工具显示“该 URL 可以在必应上显示”,canonical 被正确识别,重复 URL 不再被索引。
2.2 版块分类筛选页(typeid)动态描述
问题:访问 forum.php?mod=forumdisplay&fid=14&filter=typeid&typeid=46(欧美电影分类)时,页面使用的仍是版块级别的 description(“点拨论坛影视殿堂,分享电影、电视剧、美剧、纪录片等影视资源……”),与同版块下其他分类页面完全相同。
文件:/source/module/forum/forum_forumdisplay.php
修改位置:第 228 行之后($navtitle 修改完成后)
新增代码:
- // 如果存在 typeid(分类筛选),将分类名称添加到描述开头
- $typeid = !empty($_GET['typeid']) ? intval($_GET['typeid']) : 0;
- if($typeid && !empty($_G['forum']['threadtypes']['types'][$typeid])) {
- $type_name = $_G['forum']['threadtypes']['types'][$typeid];
- if(!empty($metadescription)) {
- $metadescription = $type_name . ' - ' . $metadescription;
- }
- }
复制代码
效果对比:
| 页面 | 修改前 | 修改后 | | typeid=46(欧美电影) | 点拨论坛影视殿堂,分享电影... | 欧美电影 - 点拨论坛影视殿堂,分享电影... | | typeid=37(华语电影) | 点拨论坛影视殿堂,分享电影... | 华语电影 - 点拨论坛影视殿堂,分享电影... |
2.3 标签页(tag)动态描述
问题:所有标签页的 description 均为 标签 - {标签名} 格式,多个标签页之间仅标签名不同,结构高度雷同,缺乏实质信息量。
文件:/source/module/misc/misc_tag.php
修改位置:第 54-58 行($navtitle、$metakeywords、$metadescription 赋值处)
修改后代码:
- $searchtagname = $name;
- $navtitle = $tagname ? $tagname.' - '.$_G['setting']['bbname'] : $taglang;
- $metakeywords = $tagname ? $tagname.' - '.$_G['setting']['bbname'] : $taglang;
- // 动态生成 description:获取该标签关联的最新帖子标题
- $dynamic_desc = '';
- if($tagname) {
- $thread_titles = array();
- $query = C::t('common_tagitem')->select($id, 0, 'tid', '', '', 0, 5);
- $tidarray = array();
- foreach($query as $result) {
- $tidarray[$result['itemid']] = $result['itemid'];
- }
- if(!empty($tidarray)) {
- $threads = C::t('forum_thread')->fetch_all_by_tid($tidarray);
- foreach($threads as $thread) {
- if($thread['displayorder'] >= 0 && !empty($thread['subject'])) {
- $subject = $thread['subject'];
- $subject = preg_replace('/\[.*?\]/', '', $subject);
- $subject = mb_substr($subject, 0, 20, 'utf-8');
- if(!in_array($subject, $thread_titles)) {
- $thread_titles[] = $subject;
- }
- }
- }
- }
- if(!empty($thread_titles)) {
- $related = implode('、', array_slice($thread_titles, 0, 5));
- $dynamic_desc = $tagname.' - 相关帖子:'.$related.'等';
- } else {
- $dynamic_desc = $tagname.' - '.$_G['setting']['bbname'];
- }
- } else {
- $dynamic_desc = $taglang;
- }
- $metadescription = $dynamic_desc;
复制代码
效果对比:
| 页面 | 修改前 | 修改后 | | 智能助手标签页 | 标签 - 智能助手 | 智能助手 - 相关帖子:KIMI智能助手、DeepSeek从入门到精通等 |
2.4 打印版与 Archiver 的规范处理
问题:打印版(action=printable)和 Archiver 页面与标准主题页的主体内容完全相同,且拥有独立 URL。如果被搜索引擎收录,会造成真正的“重复内容”问题,可能影响网站信任度。
处理措施:
| 措施 | 状态 | 说明 | | 打印版添加 noindex, follow + canonical | ✅ 已修改 | /template/default/forum/viewthread_printable.htm | | Archiver 后台关闭 | ✅ 已关闭 | 全局 → 站点功能 → 论坛 Archiver 设置 | | robots.txt 屏蔽 | ✅ 已添加 | Disallow: /action=printable 和 Disallow: /archiver/ |
打印版模板新增代码(/template/default/forum/viewthread_printable.htm,<head> 区域内):
- <meta name="robots" content="noindex,follow">
- <link rel="canonical" href="forum.php?mod=viewthread&tid=$_G[tid]" />
复制代码
三、关键决策记录
| 问题 | 决策 | 理由 | | 带 _dsign 的 URL 是否允许抓取 | 允许 | 让 Bing 看到 canonical,使重复 URL 警告自然消除 | | 版块分类筛选页 description | 分类名 + 定制描述 | 保留已有优化成果,同时解决重复警告 | | 标签页 description | 动态生成(提取关联帖子标题) | 差异化描述,提升搜索结果的辨识度 | | 分页 canonical | 保持现状(全指向第一页) | 早期深度讨论帖近期较少,暂不调整 | | 打印版/Archiver | noindex + 屏蔽 | 避免真正的重复内容风险 |
四、预期效果与观察期
| 观察指标 | 预期效果 | 预计时间 | | “重复元描述”警告数量 | 从 12.8K 逐步下降 | 2-4 周 | | 带 _dsign 的 URL 状态 | canonical 生效,不再作为独立页面索引 | 1-2 周 | | 打印版/Archiver 从索引移除 | 不再出现在搜索结果中 | 1-3 个月 |
验证方式:
- Bing Webmaster Tools → SEO 报告 → 定期查看错误数量变化
- Bing URL 检查工具 → 抽查各类页面的索引状态和 canonical 识别情况
五、技术沉淀
- canonical 需要配合抓取才能生效:如果 robots.txt 阻止了搜索引擎抓取某个 URL,该页面上的 canonical 标签就无法被读取
- 元描述重复 ≠ 内容重复:前者影响点击率,后者影响排名,两者严重程度不同
- 动态 description 的价值:对聚合类页面(标签页、筛选页),根据实际内容生成描述能有效提升搜索结果差异化
- 打印版/Archiver 对现代 SEO 价值有限:建议统一使用 noindex 或关闭功能,避免分散权重
- 搜索引擎处理 noindex 需要时间:1-3 个月的等待期属于正常现象,无需主动通知
日志时间:2026-05-20
关联分支:env-base
下次回顾:2026-06-20(观察 Bing 报告更新情况) |
|