You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在从其他仓库部署的GitHub Pages上安全实现IndexNow?

解决GitHub Pages上IndexNow密钥文件泄露问题的两种方案

你的核心矛盾是既要满足IndexNow的验证要求,又要避免密钥文件出现在公开的<myname>.github.io仓库中,以下是两种可行的解决思路:

方案一:使用DNS验证替代文件验证(推荐)

IndexNow支持通过DNS TXT记录完成站点所有权验证,完全不需要在站点放置密钥文件,从根源上避免泄露风险:

  1. 登录你的域名管理后台,添加一条TXT记录:
    • 主机记录:填@(若使用子域名则对应填写子域名前缀)
    • 记录值:格式为indexnow:<你的INDEXNOW_KEY>(替换为你设置的密钥内容)
  2. 在内容仓库的GitHub Secrets中添加INDEXNOW_KEY,值为你的密钥
  3. 调用indexnow-action时,无需生成密钥文件,直接配置密钥参数即可——搜索引擎会自动通过DNS记录验证你的所有权,无需访问站点上的文件。

方案二:通过GitHub Actions直接部署构建产物,不提交到公开仓库

如果必须使用文件验证,可利用GitHub Pages的Actions部署模式,让密钥文件仅存在于部署的静态资源中,不进入公开仓库的提交记录:

  1. 进入<myname>.github.io仓库的设置页面,将GitHub Pages的部署来源改为GitHub Actions(而非分支部署)
  2. 在内容仓库的GitHub Secrets中添加INDEXNOW_KEY
  3. 修改内容仓库的构建Action流程,确保密钥文件生成在构建产物目录,然后直接部署到Pages:
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
          - name: 拉取内容仓库代码
            uses: actions/checkout@v4
          # ... 执行你的站点构建步骤(如Markdown转静态页面)
          - name: 生成IndexNow密钥文件
            run: echo "${{ secrets.INDEXNOW_KEY }}" > "${{ secrets.INDEXNOW_KEY }}.txt"
            working-directory: ./dist # 替换为你的构建产物目录
          - name: 上传构建产物
            uses: actions/upload-pages-artifact@v3
            with:
              path: ./dist
          - name: 部署到GitHub Pages
            uses: actions/deploy-pages@v4
          - name: 提交更新到IndexNow
            uses: bojieyang/indexnow-action@v1
            with:
              key: ${{ secrets.INDEXNOW_KEY }}
              url: "https://<myname>.github.io"
    
  4. 这种方式下,包含密钥文件的构建产物会直接部署到GitHub Pages服务器,但不会被提交到<myname>.github.io仓库的分支中,公开仓库里不会出现密钥文件的痕迹。

额外补充:谷歌目前没有类似IndexNow的自动提交API,但可以通过Google Search Console的API结合GitHub Action实现URL自动提交,替代手动提交站点地图的操作。

内容的提问来源于stack exchange,提问作者NewGuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 04:25:57