找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 24|回复: 0

[维护日志] [2026-05-15] [SEO] 禁止特定版块被搜索引擎索引并解决 IndexNow 推送冲突

[复制链接]
  • 打卡等级:本地老炮

9337

威望

7448

金钱

1万

贡献

管理员

自由的灵魂

积分
107434
主题
5630
回帖
26661
注册时间
2003-4-10
最后登录
2026-10-2
发表于 2026-5-15 18:20:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1、问题缘起

站长在优化论坛 SEO 过程中,发现两个管理类版块(管理员专区、不规范帖仓库)不应被搜索引擎索引。此前已通过修改模板文件 header_common.htm 为全站添加了分页标题优化,但需要针对特定版块单独设置 noindex 指令。

探讨过程中提出的独立问题汇总:

序号问题结论
1如何针对单个版块设置 noindex?三种方案:robots.txt、模板判断、程序文件判断
2选择了方案三(修改程序文件),需要修改哪些文件?forum_viewthread.php(帖子页)+ forum_forumdisplay.php(列表页)
3forum_viewthread.php 修改成功,但 forum_forumdisplay.php 找不到插入位置?在 $rsshead = ... 代码行之后插入
4设置了 noindex 的版块,发帖时是否还会通过 IndexNow 推送?会! post_newthread.php 中存在独立的瞬间推送代码,无版块判断
5这会造成什么后果?对同一 URL 同时发送“请索引”和“不要索引”的矛盾信号,可能导致搜索引擎信任度下降





2、解决方案

(1)简要技术分析

核心原理:在帖子发布流程中,通过判断当前版块 ID 是否在排除列表中,决定是否执行 IndexNow 推送;同时在页面输出层通过 meta robots 标签告知搜索引擎不要索引特定版块。

(2)修改、新增文件列表

文件路径修改内容作用
/source/module/forum/forum_viewthread.php添加 noindex 判断代码帖子内容页禁止索引
/source/module/forum/forum_forumdisplay.php添加 noindex 判断代码版块列表页禁止索引
/source/include/post/post_newthread.php添加版块过滤逻辑排除特定版块的 IndexNow 推送


(3)关键作用代码段全文

文件1:forum_viewthread.php(约第 114-117 行)

  1. // 禁止特定版块被索引 - 点拨论坛
  2. $noindex_fids = array(71, 73); // 管理员专区、不规范帖仓库的 fid
  3. if (in_array($_G['fid'], $noindex_fids)) {
  4.     $_G['setting']['seohead'] .= '<meta name="robots" content="noindex, nofollow">'."\n";
  5. }
复制代码


文件2:forum_forumdisplay.php(在 $rsshead = ... 之后插入)

  1. // 禁止特定版块被索引 - 点拨论坛
  2. $noindex_fids = array(71, 73); // 管理员专区、不规范帖仓库的 fid
  3. if (in_array($_G['fid'], $noindex_fids)) {
  4.     $_G['setting']['seohead'] .= '<meta name="robots" content="noindex, nofollow">'."\n";
  5. }
复制代码


文件3:post_newthread.php(约第 233-258 行,原 IndexNow 推送代码处)

  1. // ========= IndexNow 推送 =========
  2. // 需要排除的版块 ID(不推送 IndexNow)
  3. $excluded_fids = array(71, 73); // 管理员专区、不规范帖仓库的 fid

  4. // 只有不在排除列表中的版块才推送
  5. if (!in_array($_G['fid'], $excluded_fids)) {
  6.     $api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
  7.     $host = 'https://www.dianbo.org';
  8.     $url = 'https://www.dianbo.org/thread-' . ($tid ?: $_G['tid']) . '-1-1.html';

  9.     $ch = curl_init();
  10.     curl_setopt($ch, CURLOPT_URL, 'https://api.indexnow.org/IndexNow');
  11.     curl_setopt($ch, CURLOPT_POST, true);
  12.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  13.     curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
  14.     curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
  15.         'host' => $host,
  16.         'key' => $api_key,
  17.         'keyLocation' => "{$host}/{$api_key}.txt",
  18.         'urlList' => [$url]
  19.     ]));
  20.     $response = curl_exec($ch);
  21.     $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  22.     curl_close($ch);

  23.     // 记录日志
  24.     file_put_contents(DISCUZ_ROOT . './data/log/indexnow.log', date('Y-m-d H:i:s') . " HTTP:{$http_code} {$url}\n", FILE_APPEND);
  25. }
  26. // ========= IndexNow 推送结束 =========
复制代码





3、最终实现效果

版块noindex 指令IndexNow 推送状态
管理员专区 (fid=71)✅ 生效❌ 已屏蔽完全隔离
不规范帖仓库 (fid=73)✅ 生效❌ 已屏蔽完全隔离
其他所有版块❌ 无✅ 正常推送不受影响


验证方法:访问被屏蔽版块的任意页面,查看源代码,应在 <head> 区域看到:
  1. <meta name="robots" content="noindex, nofollow">
复制代码





4、重要技术沉淀

踩坑点:

问题教训
IndexNow 推送与 noindex 冲突只设置页面 noindex 不够,还要从推送源头屏蔽。两处都要改,缺一不可
双推送机制论坛中存在 sitemap 全量推送 + 发帖瞬间推送 两套机制,需同时排查
代码位置难找forum_forumdisplay.php 中的插入位置在 $rsshead = ... 之后,而非 SEO 变量定义处


需要更新到固化摘要的内容:

  • 记录被屏蔽的版块 ID(管理员专区、不规范帖仓库)
  • 记录三处修改的文件路径,供后续 Discuz! 升级时参考




5、进一步优化的可能性

构想说明优先级
sitemap 同步屏蔽在 sitemap 生成插件中同样排除 fid 71、73,从源头杜绝 URL 出现在 sitemap.xml 中⭐⭐⭐ 推荐
统一排除列表将排除版块 ID 定义为全局常量,避免三处代码各自维护⭐⭐ 可选
后台可视化配置开发插件,在后台直接勾选需要屏蔽的版块,无需修改代码⭐ 远期





维护日志编号:LOG-20260515-001
影响范围:管理员专区、不规范帖仓库
回滚方案:删除三处文件中添加的代码块即可恢复
不懂就搜!点此搜点拨论坛。如果本坛没有,请尝试点此问AI,或跟帖提问。
发帖前注意看置顶帖。
不定期借助AI对点拨论坛陈年老帖进行挖坟回复,打扰勿怪!
草率的提问只能得到草率的回答
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|点拨论坛 |网站地图

GMT+8, 2026-10-2 02:11 , Processed in 0.041642 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表