各大搜索引擎都提供了让用户主动推送url地址到搜索引擎的功能,但是这个功能需要我们手动去收集我们的url,然后再通过编程的方式去实现推送功能,比较麻烦。
因为使用的是hexo架构,其有一些插件已经实现了类似的功能,我们选择了其中的hexo-submit-urls-to-search-engine来实现这个功能。
原因有二:
这个插件还在更新,说明还在维护
支持目前主流的百度、谷歌、必应搜索引擎,且一键推送。
下面让我们开始吧!
前期准备 要将我们的博客的url推送的搜索引擎,我们就先需要在搜索引擎那里注册账号,然后获取对应的密钥才行。
百度(baidu) 进入百度资源 站点管理页面,添加网站。 地址写自己的网站地址即可。
三步配置好后,点击提交,我们的站点就已经注册到百度了。 理论上这个时候,百度的爬虫就会主动的爬取我们的网站了。
但是呢?因为我的博客是托管在github上的,因为众所周知的原因,百度是爬不了github上的网站的。所以,对于百度的搜索引擎,我们现在只能通过主动推送的方式,将我们的新文章推送给百度 。
在资源提交->api提交目录下,我们就可以拿到我们要推送的接口地址和推送密钥(token)了,这个token要记住,后面插件中会用到。
百度的配置就这些,是不是很简单。
必应(bing) 进入bing的站点管理工具webmasters , 如果没注册过, 可以参考我的文章将我们的博客录入bing搜索引擎 实现准备工作。
bing站点注册好后,打开右上角的配置按钮,即可看到api访问凭证管理入口:
然后,在API密钥这里生成密钥,记住这个密钥,后面插件中会用到。
谷歌(google) 谷歌的配置就比较麻烦了。
首先,同百度一样,我们要在google-search-console 里注册我们的网站。
然后,在站点添加成功后,打开谷歌Index api文档 按照要求,配置一些内容。
创建项目 在设置工具里先创建项目。创建项目即可,启用api,后面说的凭证什么的不用管。
当然,错过了也不用担心,我们依然可以在谷歌云控制台 首页进行补救。 进入后,开启web search index api即可。
创建服务账号 创建服务账号,只需要填写第一步即可,后面的可选步骤都可以跳过。 创建好服务账号后,你会得到一个邮箱地址,类似[email protected] ,这个邮箱要记住,后面会用到。
然后,在服务账号页面去创建密钥,选择JSON格式,下载到自己的电脑上,后面会用到。
关联网站 在google-search-console 里(此时应该已经注册好)。
点击左边栏的设置,进入用户和权限配置部分: 点击添加用户,将我们在服务账号那里获得的邮箱地址填入,选择拥有者即可。
注意,一定要选择拥有者
到这里,我们在谷歌的配置也完成了。
安装插件 安装 打开项目,在控制台执行如下命令
1 npm install --save hexo-submit-urls-to-search-engine
在_config.yml中添加如下配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 hexo_submit_urls_to_search_engine: submit_condition: count count: 10 period: 900 google: 1 bing: 1 baidu: 1 txt_path: submit_urls.txt baidu_host: https://www.hancher.top baidu_token: bing_host: https://www.hancher.top bing_enable_indexnow: true bing_token: google_host: https://www.hancher.top google_key_file: xxx.json google_proxy: 0 replace: 0 deploy: - type: cjh_google_url_submitter - type: cjh_bing_url_submitter - type: cjh_baidu_url_submitter
把google下载的json文件放在网站根目录,通_config.yml平级。
运行 配置插件完成后,在控制台执行如下命令:
1 2 3 hexo clean & hexo generate npm run clean & npm run build
如果在生成的网站里,有submit_urls.txt文件,则说明配置成功。
github action配置 在代码的.github/workflows/hexo.yml里增加如下配置:
1 2 3 4 5 6 7 jobs: build: steps: - name: 构建博客内容 run: npm run clean && npm run build - name: 提交url到搜索引擎 run: npm run deploy
然后我们提交代码的时候就会发现差距可以正常运行了。 三大引擎提交的返回值:
超过每日限额(10条)
1 Baidu response: {"error" :400 ,"message" :"over quota" }
现在百度的每日限额就剩10条了,请节约使用。
成功:
1 Baidu response: {"remain" :0 ,"success" :10 }
超过每日限额(10条)
1 2 3 4 Bing response: { ErrorCode: 2 , Message: 'ERROR! ! ! You have exceeded your daily url submission quota : 10 ' }
密钥没有配置对:
1 Bing response: { ErrorCode: 3, Message: 'ERROR!!! InvalidApiKey' }
成功:
1 Bing response: { d: null }
1 2 3 4 5 6 7 Google response: { error: { code: 403, message: 'Permission denied. Failed to verify the URL ownership.', status: 'PERMISSION_DENIED' } }
index api 没有开启:
1 2 3 4 5 6 7 8 Google response: { error: { code: 403, message: 'Web Search Indexing API has not been used in project xxx before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/indexing.googleapis.com/overview?project=xxxx then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.', status: 'PERMISSION_DENIED', details: [ [Object], [Object], [Object] ] } }
点击返回的链接,去开启api权限即可。
成功:
1 2 3 4 5 Google response: { urlNotificationMetadata: { url: 'https://www.hancher.top/2025/02/11/exception-doris-stream-load-from-clickhouse-by-data-crash/' } }
如此,我们的主动提交url到搜索引擎的配置就完成了。
参考