# Discourse-indexnow —— 主题创建或编辑时即时通知 Bing 和 Yandex

**URL:** <https://meta.discourse.org/t/discourse-indexnow-instantly-notify-bing-yandex-when-topics-are-created-or-edited/410722>\
**Category:** Plugin\
**Created:** [2026年八月23日 06:12 UTC](https://meta.discourse.org/t/discourse-indexnow-instantly-notify-bing-yandex-when-topics-are-created-or-edited/410722 "2026-08-23T06:12:26Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![soul](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/soul/32/533647_2.png) [@soul](https://meta.discourse.org/u/soul)\
**Post date:** [2026年八月23日 06:12 UTC](https://meta.discourse.org/t/discourse-indexnow-instantly-notify-bing-yandex-when-topics-are-created-or-edited/410722/1 "2026-08-23T06:12:27Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **概述** | 在主题创建、编辑、删除以及回复时，自动向 [IndexNow](https://www.indexnow.org/) 协议提交公开主题的 URL，以便 Bing、Yandex 及其他兼容的搜索引擎能够在几分钟内发现或下架您的内容，而无需等待爬虫抓取。 |
| 🛠 | **仓库** | [github.com/imlotso/discourse-indexnow](https://github.com/imlotso/discourse-indexnow) |
| 📖 | **安装指南** | [如何在 Discourse 中安装插件](https://meta.discourse.org/t/install-plugins-in-discourse/19157) |

  

在我的论坛上还有一篇提供更多背景信息的中文文章：[sitetalk.net/t/topic/642](https://www.sitetalk.net/t/topic/642?tl=zh_CN)

 ![discourse indexnow - sitetalk](https://global.discourse-cdn.com/meta/original/4X/8/b/7/8b7a6aa6fa0b3af9e1c10825aa99f7a61d4eb712.png)

### 功能特性

- 自动提交新的公开主题；当首帖或关键主题属性发生变化时，重新提交。
- **回复时提交** ：当发布新回复时，自动提交分页 URL（例如 `?page=3`），并支持可配置的每 URL 冷却时间以防止滥用。
- 在主题删除时自动提交主题 URL，以帮助搜索引擎快速检测 404/410 状态并下架内容。
- 当启用 [内容本地化](https://meta.discourse.org/t/content-localization-and-automatic-translations-for-your-community/370000) 且爬虫语言查询参数处于激活状态时，自动批量提交本地化主题 URL。使用实际配置的语言参数，而非硬编码。
- 将规范 URL 和本地化 URL 打包到单个 IndexNow `urlList` 批量请求中，而不是逐个发送。
- **历史回填** ：支持按分类和日期范围筛选，预览匹配数量，并批量提交。对于超过协议 10,000 条限制的批次，会自动进行分块处理。可以从日志标签页中取消正在运行的任务。
- **手动提交** ：支持按需逐行提交自定义 URL；外部链接或不符合条件的链接会被自动过滤。
- **智能速率限制** ：使用细粒度的滑动窗口算法应用每小时和每日限制。在遇到 `429` 错误时自动退避（遵循 `Retry-After` 头）。管理界面包含可视化的 **配额条** ，显示当前使用情况以及容量释放的确切时间。
- 在自动化隐私过滤之上，作为业务层规则排除特定的分类 **和标签** 。
- 密钥轮换功能，并带有意外覆盖确认对话框；之前的密钥会立即失效。
- 管理员验证 `/<key>.txt` 的公开可访问性。
- 主题移动、分类可见性变更和标签更新会触发后台作业中的异步重新提交或排除扇出，以防止 UI 阻塞。
- 丰富的日志条目，包含批次 ID、语言、触发原因、7 天成功/失败趋势图以及分类的失败原因（速率限制、密钥错误、域名不匹配）。
- 完全异步提交，严格遵守隐私边界：私信、受限分类、未列出/已删除的主题以及需要登录的网站永远不会被提交。
- 提供英语和简体中文两种语言支持。

### 设置步骤

1. 按照上述指南安装插件并重建您的容器。
2. 前往 **管理员 \> 插件 \> discourse-indexnow** 。
3. 在 **设置** 下，点击 **生成密钥** （或粘贴现有的 32 位十六进制密钥）。
4. 勾选 **启用 IndexNow 提交** 。
5. 验证密钥的公开可访问性：

```plaintext
https://your-forum-domain.com/<key>.txt

```

应返回 HTTP 200 状态码及密钥字符串。管理面板也会显示一个缓存的绿色/红色指示器。  
6. （可选）在 **日志** 标签页中，使用“回填”面板：选择条件，点击 **预览** ，然后点击 **提交** 。  
7. （可选）使用手动提交框来提交自动化流程之外的单个 URL。

日志页面还包含配额使用条、7 天趋势图和失败分解指标，以便轻松诊断提交问题。

### 配置设置

| 设置项 | 描述 |
| --- | --- |
| `indexnow_enabled` | 主开关。如果启用了 `login_required`，则会自动禁用。 |
| `indexnow_api_key` | 用于提交验证的 32 位十六进制密钥。 |
| `indexnow_submit_on_create` | 当创建新的公开主题时自动提交。 |
| `indexnow_submit_on_edit` | 当首帖或主题属性发生变化时自动重新提交。 |
| `indexnow_submit_on_reply` | 当发布新回复时自动提交特定的分页 URL。 |
| `indexnow_url_cooldown_minutes` | 每个 URL 的冷却时间（以分钟为单位），以防止重复提交。 |
| `indexnow_excluded_category_ids` | 即使公开也要排除的分类。 |
| `indexnow_excluded_tag_names` | 即使主题分类符合条件也要排除的标签。 |
| `indexnow_hourly_limit` | 每小时提交的最大 URL 数量（滑动窗口）。 |
| `indexnow_daily_limit` | 每天提交的最大 URL 数量（滑动窗口）。 |

  

**已知限制**

- Google 目前不参与 IndexNow 协议。
- 仅当爬虫语言参数处于激活状态且存在本地化内容时，才会提交本地化 URL。
- 目前支持首帖编辑和新回复的分页，但对中间回复的编辑不会独立触发提交。

这是一个独立的非官方插件——并非由 Discourse 团队维护。它正在我自己的论坛的生产环境中运行，具有 RSpec 测试覆盖率，并在每次推送/PR 时运行 CI。如果您通过 GitHub issue 或在此处回复报告任何 bug 或提出功能请求，我将不胜感激。

---

_[View the full topic](https://meta.discourse.org/t/discourse-indexnow-instantly-notify-bing-yandex-when-topics-are-created-or-edited/410722)._
