常见问题

设置与安装


如何开始使用 IndexNow?

要开始使用 IndexNow,请检查您的内容管理系统 (CMS)、托管提供商或 SEO 插件是否已经支持 IndexNow。许多平台提供内置支持或兼容的附加组件,因此您可能不需要手动设置。

如果您的平台不支持 IndexNow,您可以通过生成密钥文件、验证网站并使用 IndexNow API 提交 URL 来手动实施。

在手动设置 IndexNow 之前,请查阅您的 CMS 文档或插件库。

哪些内容管理系统支持 IndexNow?

以下 CMS 提供原生 IndexNow 集成,或通过 SEO 插件或扩展提供支持:

  • WordPress
  • Shopify
  • Wix
  • GoDaddy
  • Duda
  • XenForo
  • Milestone
  • Joomla!
  • Drupal
  • Bitrix24
  • PrestaShop
  • MODX
  • Shopware
  • OpenCart
  • Typo3
  • Umbraco

其他内容管理系统也可能通过其插件库中的第三方插件或扩展原生支持 IndexNow。请咨询您的 CMS 或托管提供商,了解如何在您的网站上启用 IndexNow。

哪些内容分发网络支持 IndexNow?

Cloudflare 提供原生 IndexNow 集成。但此列表并非详尽无遗。有关在您的网站上启用 IndexNow 的具体步骤,请联系您的提供商。

为什么应该使用 IndexNow 而不是依赖搜索引擎爬虫?

传统搜索引擎依靠网络爬虫来发现内容更新,但这个过程可能很慢,需要几天到几周的时间。使用 IndexNow,您可以在内容被添加、更新或删除时立即提交 URL。

这可以加快网站在支持的搜索引擎中的索引速度,并有助于在 AI 驱动的搜索结果中保持内容的最新状态。更快的索引可以带来更好的可见性和在搜索结果中的及时展示,有助于提高 SEO 性能。

应该什么时候使用 IndexNow 通知搜索引擎?

每当内容被添加、更新或删除时,网站都应通过 IndexNow 发出通知,以便搜索引擎在其索引中反映最新版本。

常见情况包括:

  • 新内容:产品页面、视频、旅游列表、招聘信息、博客文章或活动公告。
  • 更新的内容:产品描述、视频标题/元数据、旅行指南、企业简介或政策页面。
  • 价格或库存变更:库存状态、促销活动或过期优惠。
  • 用户生成的内容:新评论、评价或论坛帖子(分批提交以避免过多通知,例如:1-20 条每条评论提交,之后 100 条内每 5 条提交,1000 条内每 10 条提交)。
  • 删除的内容:下架的产品、视频、旅游信息或过期活动。

在这些时间点使用 IndexNow 通知,可以帮助搜索引擎更快、更高效地索引您网站的准确版本。

API 密钥与验证


如何生成 IndexNow API 密钥?

如果您的 CMS、托管提供商或 SEO 插件支持 IndexNow,则不需要密钥文件。提交将自动处理。

对于手动设置,您需要创建一个 API 密钥。此密钥用于证明域名所有权并验证提交,使搜索引擎能够确认提交来自合法来源。

API 密钥生成步骤

1. 生成密钥字符串

  • 使用 GUID/UUID 生成器或命令行工具。
  • 密钥长度必须为 8 到 128 个字符
  • 允许的字符:小写字母 (a-z)、大写字母 (A-Z)、数字 (0-9) 和连字符 (-)。

2. 创建密钥文件

  • 打开文本编辑器或代码编辑器(例如 Notepad、TextEdit、VS Code)。
  • 将 API 密钥粘贴到文件中。
  • 以密钥作为文件名,加上 .txt 扩展名,使用 UTF-8 编码保存。
  • 例如:如果密钥是 abcd1234,则创建名为 abcd1234.txt 的文件,内容为 abcd1234。

3. 上传文件

  • 将密钥文件放置在网站的根目录下,或同一主机上的可公开访问的文件夹中(无需登录)。
  • 确保可以通过公共 URL 访问。例如:https://yourdomain.com/{your-key}.txt
  • 例如:如果您的域名是 yourdomain.com,密钥是 I-love-IndexNow-3000,则文件应放置在 https://yourdomain.com/I-love-IndexNow-3000.txt
  • 或者,您也可以使用其他公开位置,例如:https://yourdomain.com/keys/well-known.txt。如果使用非根位置,请在提交 URL 时使用 keyLocation 参数指定密钥文件的位置。
如何验证 IndexNow 的网站所有权?

生成密钥文件后,将其上传到以下位置之一:

  • 网站的根目录(推荐)。
  • 或者,如果无法访问根目录,可以放在托管提供商上的可公开访问的文件夹(无需登录)。

然后在浏览器中打开文件 URL:
https://yourdomain.com/{your-key}.txt

如果文件加载并仅显示密钥,则您的网站已通过验证。搜索引擎在接受 IndexNow 提交之前会使用此文件来确认域名所有权。如果验证失败,请参阅下面的故障排除部分了解常见修复方法。

如何更新或轮换 IndexNow API 密钥?

您可以按照以下步骤轮换 IndexNow API 密钥,而不会中断服务:

生成新密钥。使用与最初相同的方法(手动或基于工具)。

  • 将根目录中的旧密钥文件替换为新的 {key}.txt 文件。
  • 开始使用新密钥提交 URL。这将在下次提交时触发搜索引擎自动验证新密钥。

当 URL 提交中检测到更新的密钥时,搜索引擎将自动重新验证所有权。

URL 提交


如何使用 IndexNow 提交 URL?

当您添加、更新或删除内容时,可以通过将 URL 提交到 IndexNow API 来立即通知搜索引擎。

1. 格式化请求 URL:

您可以向以下任一参与端点发送请求。
每个端点将提交直接发送到各自的搜索引擎,并且提交将与所有启用 IndexNow 的搜索引擎共享:

  • IndexNow 全球端点: https://api.indexnow.org/indexnow?url={your-added-or-updated-or-deleted-url}&key={your-key}
  • Amazon: https://indexnow.amazonbot.amazon/indexnow?url={your-url}&key={your-key}
  • Bing: https://www.bing.com/indexnow?url={your-url}&key={your-key}
  • Naver: https://searchadvisor.naver.com/indexnow?url={your-url}&key={your-key}
  • Seznam.cz: https://search.seznam.cz/indexnow?url={your-url}&key={your-key}
  • Yandex: https://yandex.com/indexnow?url={your-url}&key={your-key}
  • Yep: https://indexnow.yep.com/indexnow?url={your-url}&key={your-key}

2.{your-url} 替换为您添加、更新或删除的页面的完整 URL,将 {your-key} 替换为已验证的 IndexNow API 密钥。

3. 使用浏览器、脚本或 HTTP 客户端发送请求。

4. 确认提交成功:

  • 如果收到 HTTP 200 响应,则提交已被接受并处理。
  • 注意:首次请求时,您可能会收到 HTTP 202 响应。这意味着 URL 已被接收,搜索引擎将在索引内容之前验证您的密钥。验证完成后,后续成功的提交通常会返回 HTTP 200。
如何使用 IndexNow 一次提交多个 URL?

IndexNow 支持在单个 POST 请求中批量提交最多 10,000 个 URL。当需要在一个批次中通知搜索引擎多个页面的更新、添加或删除时,这非常有用。

在 POST 请求中使用以下 JSON 格式:

POST /indexnow HTTP/1.1
Host: <searchengine>
Content-Type: application/json; charset=utf-8

{
  "host": "www.example.com",
  "key": "fa8c0a469da44e9b8f6a769f291829f5",
  "urlList": [
    "https://www.example.com/url1",
    "https://www.example.com/folder/url2",
    "https://www.example.com/url3"
  ]
}

POST 请求发送目标:
https://api.indexnow.org/indexnow

提交多个 URL 时的注意事项:

  • 每次请求提交不超过 10,000 个 URL。
  • 使用 UTF-8 编码并设置正确的 Content-Type 头。
IndexNow POST 请求的最大负载大小是多少?

IndexNow 允许在单个 JSON 负载的 POST 请求中提交最多 10,000 个 URL。超过此限制可能导致请求失败或返回 HTTP 422(Unprocessable Entity)响应。

为确保成功处理,请始终将批量提交保持在 10,000 个 URL 限制以下。

如何格式化 IndexNow 通知 URL?

您可以使用以下 URL 结构向任何参与的搜索引擎提交:

https://<searchengine>/indexnow?url={your-url}&key={your-key}

例如,要向 IndexNow 提交,URL 如下所示:

https://api.indexnow.org/indexnow?url=https%3A%2F%2Fwww.example.com%2Fpage1&key=50283fcd8c764cfd9bd79a8b4002f647

如何正确格式化 IndexNow 提交 URL:

  • 将 key 参数替换为您的实际 IndexNow API 密钥。
  • 确保对提交的页面 URL 进行 URL 编码(例如:%3A 代表 :,%2F 代表 /)。
如何正确编码 IndexNow 的 URL?

IndexNow 要求根据 RFC-3986 标准对 URL 进行编码。这可确保特殊字符通过 API 安全传输。

常见 URL 编码示例:

  • : 变为 %3A
  • / 变为 %2F
  • ? 变为 %3F
  • = 变为 %3D
  • & 变为 %26

为什么正确编码 IndexNow URL 很重要:

正确的编码可确保 IndexNow URL 被搜索引擎正确解析和处理。未对 URL 进行编码可能导致错误或提交被跳过。

使用 IndexNow 提交 URL 后会发生什么?

使用 IndexNow 提交 URL 后,搜索引擎会根据抓取配额、调度逻辑和质量信号来评估是否应抓取该 URL。如果页面通过内部检查,将被抓取以获取最新内容。

提交 URL 不保证立即被索引。但是,IndexNow 增加了重要变更被更快发现和抓取的可能性,有助于搜索引擎更快地展示您的内容。

通过 IndexNow 提交的 URL 是否计入抓取配额?

是的。通过 IndexNow 提交的所有 URL 都计入网站的抓取配额。

但是,使用 IndexNow 会向搜索引擎表明这些 URL 很重要且应优先处理。这通常会使提交的 URL 比未提交的页面更快被抓取。

可以在一天内多次提交同一个 URL 吗?

除非有实质性的内容变更,否则请避免在一天内多次提交同一个 URL。对于频繁更新的页面,最佳做法是在重新提交之前至少等待 5 分钟。

对于高频率的更新,请专注于仅对影响内容或结构的实质性变更使用 IndexNow。提交不必要的更新可能会在不提高可见性的情况下浪费抓取配额。

如何处理频繁变化的内容提交?

如果内容频繁更新,请将 IndexNow 提交集中在有意义的变更上,例如页面内容、价格、库存更新等。避免因布局或外观的微小变更而提交。

要有效处理频繁更新:

  • 使用检测实际内容变更的脚本自动化提交
  • 在重新提交同一 URL 之前至少等待 5 分钟
  • 监控索引行为以平衡内容新鲜度和抓取效率。
可以通过 IndexNow 提交重定向或已删除的 URL 吗?

是的。您应该提交重定向的 URL 以及返回 HTTP 404 或 HTTP 410 状态码的页面。

通过 IndexNow 提交重定向或已删除的 URL,搜索引擎可以:

  • 当页面使用 301、302 或元刷新进行重定向时更新索引。
  • 当页面被删除并返回 404 或 410 时移除过时或损坏的链接。
  • 为用户维护准确且最新的搜索结果。

IndexNow 支持对已删除、已移动或已重定向内容的 URL 提交。包含这些更新有助于搜索引擎反映网站最准确的结构并提高抓取效率。

可以使用 IndexNow 提交网站的所有 URL 吗?

IndexNow 旨在通知搜索引擎最近添加、更新或删除的 URL。它不是为了一次性提交网站的所有 URL 而设计的。

如果整个网站最近都已更新(例如迁移或重新设计后),则可以使用 IndexNow 提交所有 URL。对于持续发现和长期索引,请使用 XML 站点地图。

要提高索引覆盖率和新鲜度,请使用以下方法:

  • 使用 IndexNow 提交高优先级或频繁变更的页面。
  • 使用站点地图向搜索引擎提供网站所有 URL 的完整列表。

这种组合可确保快速发现内容和在搜索结果中的全面可见性。

应该同时使用 IndexNow 和站点地图吗?

是的。同时使用 IndexNow 和站点地图可以提高内容可见性,并确保搜索引擎提供更广泛的覆盖。

IndexNow 通过以下方式提高搜索可见性:

  • 在内容被添加、更新或删除时提供即时通知。
  • 更快地发现重要变更。
  • 为频繁变化的内容提供实时更新。

站点地图通过以下方式增强搜索覆盖:

  • 网站上所有 URL 的完整列表。
  • 发现不常变化或位于网站结构深处的页面。
  • 为全面索引提供长期抓取支持。

结合使用 IndexNow 和站点地图,可以确保内容在传统和 AI 驱动的搜索引擎中既能快速展示,又能被完全发现。

是否应该提交在开始使用 IndexNow 之前变更的 URL?

不需要。IndexNow 旨在通知搜索引擎最近的添加、更新或删除。它不用于追溯提交过去的变更。

要确保搜索引擎发现之前更新的页面,请遵循以下方法:

  • 使用 IndexNow 提交设置后发生变更的 URL。
  • 使用具有准确 lastmod 值的站点地图来展示在实施前更新的内容。
  • 这种组合可确保最近的和历史的变更对搜索引擎都可见。
小型网站应该使用 IndexNow 吗?

是的。即使只有很少页面的小型网站,IndexNow 也是有益的。它允许您立即通知搜索引擎更新,增加更快抓取和索引的可能性。

小型网站使用 IndexNow 可以:

  • 更快地展示新的或更新的内容。
  • 通过针对变更的页面提高抓取效率。
  • 控制更新在搜索结果中显示的速度。

自动化与脚本


自动化 IndexNow 提交的最佳做法是什么?

自动化有助于确保及时通知 URL,同时不会过度加载搜索引擎或超过速率限制。关键是检测实际变更并仅提交重要的变更。

要有效地自动化 IndexNow:

  • 使用后端脚本或 CMS 钩子在内容被添加、更新或删除时触发提交。
  • 检测和过滤有意义的更新(价格、库存、内容等),而不是仅限外观或布局的更改。
  • 实施防抖逻辑以防止快速重新提交(例如,同一 URL 的提交间隔至少 5 分钟)。
  • 记录每次提交并监控 HTTP 响应码以发现问题。
  • 将 IndexNow 集成到发布工作流或部署管道中,以确保提交自动且可靠地完成。
如何使用脚本自动化 IndexNow 提交?

您可以通过编写脚本来检测动态内容变更并将更新的 URL 直接提交到 IndexNow API,从而自动化 IndexNow 提交。这确保在重要内容发生变化时实时通知搜索引擎。
以下是一个 Python 示例,用于检查内容数据库中最近变更的 URL 并自动将其提交到 IndexNow。

请将模拟的 content_db 字典替换为查询 CMS、发布平台或后端数据库以检测最近更新内容的实时集成。

import requests
import time

# 配置
API_KEY = "your-api-key"
HOST = "example.org"
KEY_LOCATION = "https://{HOST}/{API_KEY}.txt"
INDEXNOW_API_URL = "https://api.indexnow.org/indexnow"

# 模拟内容数据库(时间戳 = 当前时间 - 随机偏移)
content_db = {
    "/product?id=101": int(time.time()) - 100,  # 约 100 秒前变更
    "/news?id=202": int(time.time()) - 4000,   # 约 1 小时以上前变更
    "/blog?id=303": int(time.time()) - 200     # 约 200 秒前变更
}

def detect_dynamic_changes():
    current_time = int(time.time())
    changed_urls = []
    for url, last_modified in content_db.items():
        if current_time - last_modified < 3600:  # 最近 1 小时
            changed_urls.append(f"https://{HOST}{url}")
    return changed_urls

def submit_urls(url_list):
    payload = {
        "host": HOST,
        "key": API_KEY,
        "keyLocation": KEY_LOCATION,
        "urlList": url_list
    }
    headers = {"Content-Type": "application/json; charset=utf-8"}
    response = requests.post(INDEXNOW_API_URL, json=payload, headers=headers)

    if response.status_code in (200, 202):
        print("URLs sent successfully:", url_list)
    elif response.status_code == 429:
        print("Rate limited. Try again later.")
    else:
        print("Failed:", response.status_code, response.text)

if __name__ == "__main__":
    changed_urls = detect_dynamic_changes()
    if changed_urls:
        submit_urls(changed_urls)
    else:
        print("未检测到动态内容变更。")
IndexNow 返回哪些 HTTP 响应码?

提交 URL 时,您可能会收到以下 HTTP 响应码:

  • 200 OK:URL 已成功接收。
  • 202 Accepted:提交已被接受但尚未处理。
  • 400 Bad Request:URL 或 API 密钥格式可能不正确。
  • 422 Unprocessable Entity:服务器理解了请求但无法处理。
  • 429 Too Many Requests:已达到速率限制。请稍后重试。

记录 HTTP 响应以监控提交成功并识别问题。这有助于及早发现问题,特别是与速率限制或格式错误相关的问题。

应该为 IndexNow 提交设置什么日志?

适当的日志设置有助于监控 URL 提交并排除 IndexNow 集成中的错误。

IndexNow 日志系统中应包含的关键字段:

  • 提交时间戳
  • 提交的完整 URL
  • HTTP 响应码(例如 200、400、429)
  • 重试尝试或失败
  • 提交方法(GET 或 POST)
  • 使用的 API 密钥(如果管理多个密钥则为可选)

日志在 IndexNow 中为何重要:

  • 有助于发现提交模式和重复出现的错误。
  • 使检测和修复失败的提交变得更容易。
  • 可以验证 URL 是否已被接受并正确索引。
如何监控和测试 IndexNow 提交?

监控和测试 IndexNow 实施可确保 URL 被正确提交并被搜索引擎接收。

要有效地监控和测试 IndexNow 提交:

  • 使用 curl 或 wget 等工具测试 URL 提交并检查 HTTP 响应码。
  • 检查成功响应(HTTP 200)或错误(例如 400、429)。
  • 记录所有提交,包括时间戳和服务器响应。
  • 查看搜索引擎提供的索引报告或工具以跟踪抓取行为。

高级用例


如何在多个子域中使用 IndexNow?

每个子域被视为独立的主机,因此您需要为每个子域创建和管理单独的密钥文件。

对于具有以下子域的网站:

  • blog.example.com
  • shop.example.com
  • support.example.com

您需要为每个子域执行以下操作:

  • 在子域的根目录中托管唯一的 {key}.txt 文件。
  • 使用该子域特定的 API 密钥提交 URL。

这确保每个子域独立验证,并在所有搜索引擎中正确索引。

如何在多语言网站中使用 IndexNow?

如果您的网站以多种语言提供内容,请分别向 IndexNow 提交每个语言版本的 URL。

例如:

  • https://example.com/en/product
  • https://example.com/fr/product
  • https://example.com/de/product

如何优化 IndexNow 的多语言提交:

  • 为每个语言版本提交单独的 URL。
  • 确保每个版本在适用时使用 canonical 和 hreflang 标签。
  • 按照 RFC-3986 标准对所有提交的链接进行 URL 编码。

以这种方式使用 IndexNow 有助于搜索引擎更快地发现和抓取本地化内容。

IndexNow 问题故障排除


为什么 IndexNow 密钥文件无法通过验证?

如果您的 IndexNow 密钥文件已上传但未通过验证,通常意味着文件命名、放置或访问不正确。

  • 文件名:文件必须以 API 密钥为名并加上 .txt(例如:密钥为 I-love-IndexNow-3000,则文件名为 I-love-IndexNow-3000.txt)。
  • 文件位置:必须放置在域名的根目录中(不是子文件夹,除非主机另有要求)。

需要检查的常见问题:

  • 文件内容:文件中的文本必须与 API 密钥完全匹配。
  • 文件可访问性:必须能够在 https://yourdomain.com/{your-key}.txt 处无需登录、防火墙或 IP 限制即可访问。

测试方法

在浏览器中打开文件 URL。如果仅显示密钥的纯文本,则搜索引擎可以验证您的网站。如果文件未找到、不匹配或被阻止,IndexNow 提交将不会被接受。

为什么向 IndexNow 提交 URL 后没有被索引?

通过 IndexNow 提交 URL 会通知搜索引擎内容已更改,但不保证索引。URL 未被索引的原因可能包括:

  • 域名的抓取配额限制。
  • 低质量、单薄或重复的内容。
  • 404 错误、robots.txt 阻止或 noindex 标签等技术问题。
  • 由于抓取调度导致的索引延迟。
  • 搜索引擎可能根据其算法选择不索引某个 URL。

确保您的内容高质量、有内部链接且对爬虫可访问。

为什么 IndexNow URL 在一个搜索引擎中被索引但在另一个中没有?

通过 IndexNow 提交 URL 会通知所有参与的搜索引擎内容的更改,但每个搜索引擎会独立决定是否索引。

URL 在一个搜索引擎中被索引而在另一个中未被索引的原因:

  • 每个搜索引擎对内容质量评估的差异。
  • 抓取预算或 URL 优先级策略的差异。
  • 独特的索引算法和排名系统。
  • 搜索引擎之间的时间或抓取调度差异。

搜索引擎使用自己的标准来决定在搜索结果中显示哪些内容。要验证 URL 是否已被索引,请使用每个搜索引擎的网站检查或报告工具。

IndexNow 的速率限制是什么?

IndexNow 不公布确切的速率限制。每个参与的搜索引擎根据网站设置自己的每日提交阈值。

如果收到 HTTP 429(Too Many Requests)响应,请执行以下步骤:

  • 暂停提交,并在 Retry-After 头指定的时间后重试。
  • 减少提交频率或批次大小。
  • 记录提交活动以监控速率限制错误。

要避免达到速率限制,请遵循以下最佳做法:

  • 仅在内容发生变更时提交。不要重新提交未更改的 URL。
  • 监控 HTTP 响应码并相应调整提交模式。
IndexNow 返回 400 Bad Request 错误怎么办?

HTTP 400 Bad Request 错误意味着由于请求格式不正确或缺少必需信息,IndexNow 提交失败。

IndexNow 返回 400 错误的常见原因:

  • IndexNow API 密钥缺失或不正确。
  • 提交的 URL 未正确进行 URL 编码。
  • 请求结构不符合 IndexNow 格式。
  • url 或 key 等参数拼写错误或缺失。

如何修复使用 IndexNow 时的 400 错误:

  • 验证 IndexNow API 密钥 — 确保提交中的密钥与密钥文件中托管的密钥匹配。
  • 确保提交的 URL 已正确编码 — 对 :、/ 和 & 等字符使用符合 RFC-3986 的编码。
  • 检查 IndexNow 请求结构 — 使用 GET 或 POST 提交时,确保格式遵循 IndexNow 协议指南。
  • 修复拼写错误和格式问题 — 检查是否有多余的字符,如尾随逗号或错位的括号。
  • 使用日志监控 IndexNow 提交 — 跟踪错误和响应码以识别和修复重复出现的问题。

解决这些问题可确保 IndexNow 提交被参与的搜索引擎接受并正确处理。

IndexNow 返回 422 Unprocessable Entity 错误怎么办?

HTTP 422 Unprocessable Entity 错误意味着服务器理解了 IndexNow 提交,但由于一个或多个问题无法处理。

IndexNow 返回 422 错误的常见原因:

  • 提交的 URL 与已验证的域名不匹配。
  • IndexNow 密钥文件缺失或无法访问。
  • 在没有有意义的更改的情况下重复提交相同的 URL。

如何解决 IndexNow 中的 422 错误:

  • 检查密钥文件位置和可访问性 — 确保密钥文件正确托管在根目录中,并且可以在 https://yourdomain.com/{your-key}.txt 公开访问。
  • 确保域名与密钥匹配 — 仅提交与已验证 IndexNow 密钥匹配的域名的 URL。
  • 仅提交最近变更的内容 — 避免提交未更改的 URL。IndexNow 专为新的、更新的或删除的内容而设计。
  • 监控并记录提交 — 使用日志跟踪重复错误,避免重复提交,并验证正常传递。

修复这些问题可确保 IndexNow 请求被参与的搜索引擎接受和处理。

IndexNow 返回 429 Too Many Requests 错误怎么办?

429 错误意味着您在短时间内向 IndexNow 提交了太多 URL,已超过网站的提交速率限制

如何解决 IndexNow 429 错误:

  • 检查 Retry-After 头以确定需要等待多长时间才能重新提交。
  • 避免不必要或重复的提交来降低提交频率
  • 除非有重大更改,否则在重新提交同一 URL 之前至少等待 10 分钟
  • 记录请求并监控响应码以避免再次达到速率限制。

每个搜索引擎设置自己的 IndexNow 限制。放慢提交速度并保持间隔可以提高传递成功率。

实施 IndexNow 时应避免哪些常见错误?

以下是可能导致 IndexNow 无法正常工作的常见实施问题:

  • 将密钥文件托管在域名根目录之外。
  • 使用错误的文件名(必须与密钥完全匹配并以 .txt 结尾)。
  • 忘记对提交 URL 中的特殊字符进行 URL 编码。
  • 重复提交未更改的 URL。
  • 使用未验证或不匹配的密钥。
  • 在密钥文件可公开访问之前就提交。

确保密钥文件放置正确、可公开访问,并且提交请求格式正确。