跳到主要内容

Docusaurus 自动提交 url 到搜索引擎

之前使用 Hexo 时,有三方包可用。于是调研了一下,发现 Docusaurus 没有类似三方可以使用,索性就自己写了个通用的 Github Action search-engines-urls-push,只要你的网站有 sitemap 就可以使用。

使用方式

使用前提

你的网站已经生成了 sitemap

创建 Github Action

为你的项目创建一个 Github Action,内容如下

信息

触发条件可自行配置,触发条件可参考 Docusaurus DocSearch 搭建

name: search-engines-urls-push

on: deployment

jobs:
search-engines-urls-push:
runs-on: ubuntu-latest
name: search-engines-urls-push
steps:
- name: search-engines-urls-push
id: search-engines-urls-push
# 使用最新的版本
uses: 3Alan/search-engines-urls-push@v0.2.2
with:
site: ${{ secrets.SITE }}
sitemap: ${{ secrets.SITEMAP }}
count: ${{ secrets.COUNT }}
bing-token: ${{ secrets.BING_TOKEN }}
baidu-token: ${{ secrets.BAIDU_TOKEN }}
google-client-email: ${{ secrets.GOOGLE_CLIENT_EMAIL }}
google-private-key: ${{ secrets.GOOGLE_PRIVATE_KEY }}

配置 Actions secrets

在你的项目仓库中创建以下 Actions secrets

NameDescriptionRequired
SITE网站 urltrue
SITEMAPsitemap urltrue
COUNT提交 url 的数目,不填的话全部提交false
GOOGLE_CLIENT_EMAILclient_emailfalse
GOOGLE_PRIVATE_KEYprivate_keyfalse
BING_TOKENBing API Keyfalse
BAIDU_TOKEN百度 tokenfalse

具体参数获取参照 action search-engines-urls-push 文档,欢迎 star 和奉献代码。

若你的 bing 每日配额大于你提交 url 总数请忽略此条警告

如果你配置了 BING_TOKEN,那么 COUNT 数值应小于 10,由于 BING 每日配额数只有 10 条(大部分小流量网站应该都是 10 条),超出 10 条将导致所有 url 提交失败。

各平台每日配额数(供参考,每个人可能不一样)

百度:3000

必应:10

谷歌:200

TODO

Docusaurus 生成最近更新的 10 篇文章 sitemap

之前的想法是每次只提交最近更新的 10 篇文章(通过前言中的 date),毕竟每次重复提交不仅耗费配额可能还影响 seo。但是由于 Docusaurussitemap 插件无法自定义生成规则,之前尝试过修改源码,最终发现 DocusauruspostBuild 生命周期暴露的 url 信息过少(只有一个 url...),无法拿到每篇文章的前言信息。