IndexNow 协议实战:让搜索引擎实时收录新文章与更新内容

IndexNow 协议实战:让搜索引擎实时收录新文章与更新内容

传统的搜索引擎收录流程依赖爬虫定时抓取,周期长、浪费爬虫资源。IndexNow 协议由微软与 Bing 主导,现在已被 Yandex、Naver 等多家搜索引擎支持,甚至 Google 也已部分接入。通过在发布新文章或更新内容的瞬间通过 HTTP POST 通知搜索引擎,可将收录时间从数天缩短至分钟级。

IndexNow 的工作原理

IndexNow 的核心流程极其简单:站点向搜索引擎的 IndexNow 端点发送一个 HTTP POST 请求,包含文章的 URL 与最后修改时间。搜索引擎收到通知后,会立即抓取该 URL,并将其加入索引。整个过程不需要提交 sitemap,也不依赖 robots.txt 爬行发现。

Nginx 配置 IndexNow 端点

location = /indexnow {
    root /var/www/zz1984;
    add_header Content-Type "text/plain; charset=utf-8";
    # 接受 POST 请求,返回 200 OK
    if ($request_method = POST) {
        default_type "text/plain";
        return 200 "IndexNow received\n";
    }
    # GET 请求返回验证用的 token(若需要)
    return 200 "IndexNow endpoint for POST only\n";
}

Python 脚本自动推送

import requests, time

KEY = "your-indexnow-api-key"  # 从 Bing Webmaster Tools 获取
ENDPOINT = "https://api.bing.com/indexnow/siteurl"

urls = [
    "https://www.zz1984.com/2150.html",  # 新文章
    "https://www.zz1984.com/2151.html",  # 更新的旧文章
]

for url in urls:
    payload = {"key": KEY, "url": url, "keyLocation": "https://www.zz1984.com/indexnowkey.txt"}
    r = requests.post(ENDPOINT, data=payload, timeout=10)
    print(f"Pushed {url} -> status={r.status_code}, body={r.text[:80]}")
    time.sleep(0.5)  # 稍作间隔,避免短时间大量请求

验收与监控

  1. 发布文章后 5 分钟内,在 Bing Webmaster Tools 或 Yandex.Webmaster 中检查是否出现新收录。
  2. 使用 site:www.zz1984.com 新文章URL 查验是否被收录。
  3. 若未及时收录,检查 IndexNow Key 是否正确放置于站点根目录,且 Nginx 配置已生效。
  4. 监控 robots.txt 是否屏蔽了 /indexnow 路径。

结语

IndexNow 协议为个人站长提供了一种轻量、即时的收录方式。配合 sitemap 与普通抓取,可形成“主动推送+被动爬行”双轮驱动的收录体系,显著提升新内容的曝光速度。

Last modification:November 10th, 2026 at 07:26 pm

Leave a Comment