前言
如果你希望你的网站尽快被百度搜索收录,你一定在百度搜索资源平台添加了你的站点,并通过普通收录功能向百度提交了你的站内链接。
百度的普通收录有以下三种方式:
方式 | 收录速度 | 收录完整性 |
---|---|---|
API 提交 | 最为快速 | 取决于推送程序 |
sitemap | 慢于 API | sitemap 完整则完整 |
手动提交 | 未知 | 正经人谁手动啊 |
考虑到大多数人的 Hugo 站点都在利用 Git 进行管理,使用 Github 上的仓库,我们可以利用 Github Actions,在 Push 时自动提交链接到百度搜索资源平台。
细节
我的 Hugo 仓库目录结构如下:
myth.cx (repo)
-- ...
-- blog (hugo)
-- ...
-- public
-- ...
-- sitemap.xml
-- scripts
-- ...
-- baidu.py
在每次利用 hugo
命令生成静态页面后,public 目录下都会自动产生 sitemap.xml 文件,从这个文件中我们可以获取所有站内链接,并通过 Python 脚本向百度搜索资源平台提交。
首先,我们需要在 Github Action Ubuntu 环境中配置 Hugo。利用 actions-hugo 配置 Hugo 环境:
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: 'latest'
extended: true
这样,我们就可以在 Actions 中使用 hugo
命令:
- name: Build
run: cd blog && hugo
这一步后,Hugo 已经为我们生成了 sitemap.xml 文件。利用如下 Python 脚本可以向百度提交链接:
|
|
该脚本接收两个参数,第一个参数是 sitemap.xml 的路径,第二个参数是百度搜索资源平台的 API 提交地址。对于第一个参数,我们可以直接写在 Github Actions 的 yml 文件中,而第二个参数涉及隐私,使用 Secret 的方式配置。
- name: Submit
run: cp blog/public/sitemap.xml scripts && cd scripts && pip3 install lxml && python3 baidu.py sitemap.xml "${{ secrets.BAIDU_API_URL }}"
新建 Secert BAIDU_API_URL,设置为百度搜索资源平台的 API 提交地址,形如 https://data.zz.baidu.com/urls?site=xxxx&token=xxxx
。最终的完整 yml 文件为:
name: Submit to Baidu
on: [ push ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: 'latest'
extended: true
- name: Build
run: cd blog && hugo
- name: Submit
run: cp blog/public/sitemap.xml scripts && cd scripts && pip3 install lxml && python3 baidu.py sitemap.xml "${{ secrets.BAIDU_API_URL }}"
开源地址
可以参考我的博客仓库