3

hexo-submit-urls-to-search-engine 中文文档

 3 years ago
source link: https://cjh0613.com/20200603HexoSubmitUrlsToSearchEngine.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

hexo-submit-urls-to-search-engine 中文文档

发表2020-07-06更新2021-05-12字数5.3k预计阅读时长33分阅读次数980

English Documentation

hexo使用hexo-submit-urls-to-search-engine插件后,可主动推送Hexo博客新链接至谷歌、必应、百度搜索引擎站长平台以提升网站收录质量和速度。本插件允许你向各大搜索引擎发送纯天然、植物饲养的索引编制请求,一劳永逸。

比如,现在我的一篇文章有时刚发布 5 分钟,即可在必应搜索到(这是最佳情况,不保证长期稳定)。看吧,这就是 hexo-submit-urls-to-search-engine 的威力。百度与谷歌略慢一筹。

这三大搜索引擎已占据 97% 的全球搜索引擎市场份额(包括元搜索引擎 多吉、Duckduckgo 等;使用 Bing 索引的雅虎、 Ecosia 等)。后期可能会加入向 Yandex(官方现仅开通重点页面提交)、360(目前官方没开通)提交链接的功能。另外我已向 360 、Yandex 提交了关于增加 API 提交接口的建议。它们的反馈:

  • 360,2020.7.3:感谢您的支持,我们记录下您的建议,转给给相关工作人员查看评估下
  • Yandex,2020.8.15:Thank you for contacting and sharing your thoughts with us. I’ve added your suggestion to the list of ideas considered by our developers.

警告
非专业使用其他类似的推送代码可能会导致危险的副作用,包括但不限于:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、怀疑人生、抑郁、头疼,甚至死亡、魂飞魄散、湮灭。

Github地址

官方交流 QQ 群:1079685183 点击打开 QQ 凑人数

Telegram group: https://t.me/hexoseo

如您不希望被过量的群消息打扰,可加入后设为屏蔽,需要时再打开交流。

快速入门:

  1. 获取各站长平台密钥
  2. 安装并配置hexo-submit-urls-to-search-engine插件
  3. hexo clean && hexo g && hexo d,并查询推送结果
  4. 如果推送成功,前往 Github 地址点击 Star 按钮以支持
  5. 顺便 watch Github 项目获取插件升级提醒
  6. 还可以点此去打赏

获取站长平台密钥

本节所“记下”的密匙均填写至 hexo 的 _config.yml ,格式在后文给出。

关于验证网站:有的 Hexo 主题支持添加站长平台 html 验证标签,填写有关设置后hexo g && hexo d即可验证。通用详细操作步骤请自行 谷歌 / 百度 :hexo 站长平台 验证

  1. 注册、登陆百度搜索资源平台( https://ziyuan.baidu.com/
  2. 用户中心,站点管理,添加网站
  3. 搜索服务,普通收录,API提交,记下下方接口调用地址的【百度站长平台中注册的域名,密匙】:http://data.zz.baidu.com/urls?site=https://cjh0613.github.io&token=密匙,这里即【 https://cjh0613.github.io ,密匙】

提示
如果网站使用 github page 发布,建议删掉百度站长平台的 sitemap ,用 API 主动提交,我从 5 月底开始百度索引掉了一半,最后发现是当时加 sitemap ,但百度对 github 托管的 sitemap 不友好,动不动抓取失败,影响网站权重。删并用 API 推送后,索引量迅速回升

另外,github.io 2020.9月前就被特殊照顾了,建议自行购买顶级域名使用。

必应站长平台有新旧之分。

  1. 注册、登陆必应新站长平台( https://www.bing.com/webmasters
  2. 进入网站管理页面,设置,API 访问,API 密钥 ,记下 API 密匙

(近期必应站长平台升级,服务器、版面不稳定,如果无法显示 token ,可以过段时间再试)

这是从必应旧站长平台获取的示意图:

提示
需要科学上网。不仅访问谷歌站长平台时需要,而且部署 hexo 的计算机也需要。实测中国内地 ssV4.1.8 科学上网的 windows 无法使用 googleapis ,也无法使用本插件向Google提交的功能。
我使用境外 持续集成服务 Travis_CI,解决了这个问题
【您可以在文末将您的有关解决方案留言,以便大家参考,谢谢】

谷歌站长平台也有新旧之分,但两站关系没有必应处理得好。另外,我们使用的 Google Indexing API 不是站长平台提供的,而是隶属 google developers 谷歌开发平台。过程中,您可参考官方文档(中国内地可访问)进行配置。

使用步骤:

  1. 打开官方文档,按提示创建项目、创建服务帐号。只需要按提示在网站进行配置操作即可,不需要完成获取访问令牌等后续操作
  2. 您仅按谷歌官方文档在 Google 新的搜索控制台 中添加权限邮箱还是会提示无权限。请转到 旧的网站站长工具 ,点击您的网站,把邮箱地址添加到其中
  3. 将获取到的 json 密匙文件放于 hexo 根目录(与hexo _config.yml文件位置相同)

谷歌旧的网站站长工具:

另外,其官方文档中有如下提示,请根据实际情况决定是否启用向谷歌提交链接的功能:

目前,Indexing API 只能用于抓取包含 JobPostingBroadcastEvent(嵌套于 VideoObject的网页。对于包含很多短效网页(如招聘信息或直播视频)的网站,Indexing API 会通过为不同的内容分别推送更新,使搜索结果中的内容保持最新状态。

Google Indexing API官方文档Indexing API 快速入门

反正我提交了。谷歌不抓怎么知道您的网页不包含招聘信息或直播视频呢?既然抓了,即使没发现招聘信息或直播视频,又有什么原因浪费资源、把已抓取的信息弃之不用呢?既然用,我们的目的就达到了。实际使用过程中,谷歌好像也没有对此进行降权。也许是谷歌忘了改文档?我目前就发现这个文档中有两处多年未改的严重错误。

配置hexo

提示
推荐使用境外 CI (持续集成)服务,如 Github Action、Travis,这样可以顺利推送至谷歌。本插件支持利用 CI 的环境变量设置记录密匙

安装本插件

请在 hexo 根目录运行:

当然,在大中华地区使用cnpm下载速度更快

npm install --save hexo-submit-urls-to-search-engine

本插件也支持yarn安装:

yarn add hexo-submit-urls-to-search-engine

编辑hexo的_config.yml

hexo-submit-urls-to-search-engine

配置 hexo-submit-urls-to-search-engine 插件,将下方粘贴至 hexo 的_config.yml

提示
您当然可以利用 CI 的环境变量设置记录密匙,这样即使源码放在公开仓库,也不会泄露秘钥

hexo_submit_urls_to_search_engine:
submit_condition: count #链接被提交的条件,可选值:count | period 现仅支持count
count: 10 # 提交最新的10个链接
period: 900 # 提交修改时间在 900 秒内的链接
google: 0 # 是否向Google提交,可选值:1 | 0(0:否;1:是)
bing: 1 # 是否向bing提交,可选值:1 | 0(0:否;1:是)
baidu: 1 # 是否向baidu提交,可选值:1 | 0(0:否;1:是)
txt_path: submit_urls.txt ## 文本文档名, 需要推送的链接会保存在此文本文档里
baidu_host: https://cjh0613.github.io ## 在百度站长平台中注册的域名
baidu_token: 请按照文档说明获取 ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
bing_host: https://cjh0613.github.io ## 在bing站长平台中注册的域名
bing_token: 请按照文档说明获取 ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
google_host: https://cjh0613.github.io ## 在google站长平台中注册的域名
google_key_file: Project.json #存放google key的json文件,放于网站根目录(与hexo _config.yml文件位置相同),请不要把json文件内容直接发布在公众仓库里!
google_proxy: http://127.0.0.1:8080 # 向谷歌提交网址所使用的系统 http 代理,填 0 不使用
replace: 0 # 是否替换链接中的部分字符串,可选值:1 | 0(0:否;1:是)
find_what: http://cjh0613.github.io/blog
replace_with: https://cjh0613.com

将密钥公开的后果
您的“冤家”、有自我意识的人工智能、恐怖分子可能使用您的密钥向搜索引擎推送不存在的页面链接。既消耗您的配额让您无法正常推送,又因推送死链导致网站权重下降

注释

  • submit_condition:支持两种是否提交链接的判断方式,即 count | period 。分别应用下方 count | period 配置项
  • period:一段时间,单位秒,若文章更新时间与本插件运行时间之差小于这个数值,其链接会被提交。例如:有两个文件 a.html 和 b.html,分别对应 https://yoursite.com/a.htmlhttps://yoursite.com/b.html,其更新时间与本插件运行时间之差分别为 800s 和 1000s(period 字段设为 900),则 https://yoursite.com/a.html 会被提交,https://yoursite.com/b.html 不会
  • google_proxy:向谷歌提交网址所使用的系统 http 代理,格式:http://proxyhost:port,修改proxyhostport即可;Hexo 部署于境外可填 0 不使用。使用科学上网软件,proxyhost一般为127.0.0.1port可在软件中查看设置,一般为8080。Win10 可在 设置->代理 处查看
  • replace: 部分链接可能生成不正确(如中文域名,首页位于http://cjh0613.github.io/blog等情况)。这是一个简单粗暴的替换功能,将生成的全部链接中的指定字符串以替换。示例中将 http://cjh0613.github.io/blog 替换为 https://cjh0613.com。也可将中文域名替换为转码后的域名。

2020.7.12 更新本节注释,感谢 liuyib 提供建议
2021.5.12 添加 google_proxy

完成上述配置后,你在 Hexo 根目录下运行 hexo generate 指令时,会生成一个 .txt 文件来存储要推送的链接。

您可以打开此文件查看链接是否正确,如不正确,请访问 hexo 的 _config.yml 进行配置。您也可以手动修改此 .txt 文件后再推送链接。

deploy

如果您之前没有添加过 deploy: 配置项,直接将下方粘贴至 hexo 的 _config.yml ,覆盖默认的 deploy: 配置项。

deploy:
- type: cjh_google_url_submitter
- type: cjh_bing_url_submitter
- type: cjh_baidu_url_submitter

完成这一步之后,运行 hexo deploy 命令时就可以自动推送链接至搜索引擎了。

  • 您必须运行 hexo deployhexo d 命令以触发推送,无论您之前是否使用这条命令进行部署。

当然此前您需要运行 hexo generate 生成最新的 .txt 文件来存储要推送的链接。

如果可以推送成功,烦请至Github仓库 Star 支持一下,谢谢!

如果已设置过 deploy: 配置项,直接粘贴上述代码块会提示 配置冲突,直接在已有 deploy: 配置项下添加即可。如:

deploy:
- type: git
repo:
coding: git@xxx
branch: master

#添加本插件的配置项:
- type: cjh_google_url_submitter
- type: cjh_bing_url_submitter
- type: cjh_baidu_url_submitter

注意:上面每个 type: 前都有 -

持续集成支持

本节为 hexo 存放于公开仓库,且使用 CI (持续集成,如 Github action, travis, coding-ci, netlify 等)编译发布的部署方式提供参考。

百度、必应可利用环境变量记录密匙,谷歌有其他解决办法,参见下文

请注意,如果您使用 CI 自动部署,请务必在每个页面的 Front-matter (.md文件最上方以 --- 分隔的区域,用于指定个别文件的变量)中添加updated:来告知 Hexo 修正“文章最后修改时间”,举例来说:

---
title: Hello World
date: 2013/7/13 20:46:25
updated: 2020-08-25 9:36:00
---

这是因为,文件放在本地计算机上时,如果没有updated:,Hexo 会读取文件属性,使用“文件最后修改时间”作为“文章最后修改时间”,可以正常判断并提交最新的 10 个链接;而 CI 自动部署时,由于 Hexo 资源都是才 clone 到服务器上的,如果没有添加updated:,Hexo 同样会读取文件属性,但此时属性中最后修改时间是完全相同的 git clone 的时间,Hexo 得到错误的“文章最后修改时间”,就无法正常判断并提交最新的链接了。

  1. 请先在hexo_submit_urls_to_search_engine:的配置项baidu_token:bing_token:处填写0
  2. 设置环境变量BAIDU_TOKENBING_TOKEN,值为已获取的token
  3. 如果您使用 Github Action ,还需在 yml 文件中设置环境变量,下方有例子
  4. hexo clean && hexo generate && hexo deploy享受生活
hexo_submit_urls_to_search_engine:
submit_condition: count #链接被提交的条件,可选值:count | period 现仅支持count
count: 10 # 提交最新的10个链接
period: 900 # 提交修改时间在 900 秒内的链接
google: 1 # 是否向Google提交,可选值:1 | 0(0:否;1:是)
bing: 1 # 是否向bing提交,可选值:1 | 0(0:否;1:是)
baidu: 1 # 是否向baidu提交,可选值:1 | 0(0:否;1:是)
txt_path: submit_urls.txt ## 文本文档名, 需要推送的链接会保存在此文本文档里
baidu_host: https://en.cjh0613.com ## 在百度站长平台中注册的域名
baidu_token: 0 ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
bing_host: https://en.cjh0613.com ## 在bing站长平台中注册的域名
bing_token: 0 ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
google_host: https://en.cjh0613.com ## 在google站长平台中注册的域名
google_key_file: Project.json #存放google key的json文件,放于网站根目录(与hexo _config.yml文件位置相同),请不要把json文件内容直接发布在公众仓库里!
google_proxy: 0 # 向谷歌提交网址所使用的系统 http 代理,填 0 不使用
replace: 0 # 是否替换链接中的部分字符串,可选值:1 | 0(0:否;1:是)
find_what: http://cjh0613.github.io/blog
replace_with: https://cjh0613.com

Github Action ,还需在 yml 文件中设置环境变量:

- name: xxxx #随便填
env:
BAIDU_TOKEN: ${{ secrets.BAIDU_TOKEN }} # 注意这里,其他的都是浮云
BING_TOKEN: ${{ secrets.BING_TOKEN }} # 注意这里,其他的都是浮云
run: |
npm i -g hexo-cli # 安装hexo
npm i
……
hexo deploy

至于用境外 CI 推送链接至谷歌,json密钥文件里信息那么多,复制粘贴设置环境变量……咳咳。我将json密钥文件放入一个私有仓库, 再 clone ,复制到根目录下解决。

hexo generate
git clone https://cjh0613:${Token}@github.com/cjh0613/存放密钥文件的私有仓库.git tem
cp ./tem/Project.json Project.json
hexo deploy

插件升级提醒

您安装本插件后,请从 Github watch 本项目,以获得插件升级提示选择 Releases only 仅获取升级提示,选择 Watching 还会推送 Issues ,Pull requests 等,通过电子邮件发送

请在 hexo 根目录运行:

当然,在大中华地区使用cnpm下载速度更快

npm install --save hexo-submit-urls-to-search-engine@版本

我之前给出的是另一个命令:npm update --save hexo-submit-urls-to-search-engine,但我实测时出现了问题。

yarn升级:

yarn add hexo-submit-urls-to-search-engine@版本

不兼容升级

警告
有时,插件升级不向下兼容,可能会需要您修改 hexo 的_config.yml中与本插件有关的配置项,或作其他修改。
此情况一般伴随 版本号中第一个小数点前的数字增加 出现。如 ^1.0.0 升级至 ^2.0.0

1.x.x升级至2.x.x:

您需要给hexo_submit_urls_to_search_engine:配置项添加以下三个配置项:

replace: 0  # 是否替换链接中的部分字符串,可选值:1 | 0(0:否;1:是)
find_what: http://cjh0613.github.io/blog
replace_with: https://cjh0613.com

好吧,我发现这次升级是向下兼容的,即使没有这三个配置项也不会报错……

成功推送信息

Bing response:  { d: null }
Baidu response:  {"remain":2999,"success":1}
Google response:  { urlNotificationMetadata:
{ url:
'https://cjh0613.github.io',
latestUpdate:
{ url:
'https://cjh0613.github.io',
type: 'URL_UPDATED',
notifyTime: '2020-06-12T05:37:25.701779228Z' } } }

其他返回可参考它们的官方文档,但一般翻译一下返回就知道原因了。

有时是因为搜索引擎每天只允许提交一定数量的链接。可登陆它们的官网查询。我站点域名cjh0613.github.io换为 cjh0613.com 后,必应配额 10 条,连续推送 10 天后,配额突然从 10 变为 10000。

若部分链接推送失败请人工处理:根据反馈来修改保存提交链接的 txt (一般把成功推送的链接去掉),然后只运行 hexo deploy 重新推送,不必重新生成网站。

以查询本站索引为例,打开任一搜索引擎,输入 site:域名 ,这里即:

site:cjh0613.github.io

搜索即可。

新站索引量 0→1 需要的时间可能很长,也许一个月……请耐心等待

实际收录速度还与其他因素有关,网上 SEO 资料很多,但都是以官方说明为中心的,可参考 [转]搜索引擎优化[SEO]新手官方指南,我也写了一篇 Hexo搜索引擎优化[SEO]

查询推送记录

可登陆必应新站长平台查到详细的推送链接列表(实时更新):

https://www.bing.com/webmasters/submiturl?siteUrl=你的网站链接

也可以从必应旧站长平台进入

登陆百度搜索资源平台( https://ziyuan.baidu.com/ ),搜索服务,普通收录,数据反馈,仅可在给出的图中查看到过去一段时间中,每天的推送数量,且延期更新。由于百度与此相关的具体期限不确定,您实际最快在第t+1天、最慢在第t+3天才可以看到第t天的推送链接数。

仅可在下方地址“错误”表格中查到一段时间内(最多近30天)累计推送链接数量及失败推送所占百分比(实时更新),虽然给了每天提交数据图,但相当于没给……

https://console.developers.google.com/apis/api/indexing.googleapis.com/metrics?project=

官方交流 QQ 群:1079685183 点击打开 QQ 凑人数

Telegram group: https://t.me/hexoseo

如您不希望被过量的群消息打扰,可加入后设为屏蔽,需要时再打开交流。

(一般使用 TG 联系我比使用本站留言可以更快获得回复!)

欢迎交友交流。如果你也有自己的网站,我希望与你交换链接交换本站友情链接请点这里

其实我很早就自编一键部署程序推送链接给站长平台们,对于自己已经没有必要额外开发插件了。开发这个插件是看到目前网络上其他类似插件只支持百度,以及为了避免全球 Hexo 用户啃文档、重造轮子、怀疑人生……

我开发的参考资料

推送至百度的代码参考自插件:hexo-baidu-url-submit。如果您之前使用该插件,现在可以停用它了。它另外提供向熊掌推送的功能,但百度熊掌已经关闭。百度将熊掌推送升级为“快速收录”,如您有需求,且您网页满足要求,可以使用此功能,请至issues/8投票,我视人数决定;或提交 Pull Request。

本站还有许多与此相关的文章,比如使用 python 从 sitemap 获取链接推送,您可至归档页点击查看,也可使用右上角搜索查找您感兴趣的内容。

下方整理不全……有些没来得及记录,还参考了我之前写的文章及它们的参考资料。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK