Hugo 静态站 POST 链接到百度 SEO
By S.F.
本文链接 https://www.kyfws.com/post/kyfws-hugo-baidu-seo-post/
版权声明 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
- 3 分钟阅读 - 1251 个词 阅读量 0基于 Hugo 的搜索引擎 SEO,站点地图自动推送新实现,在上一篇基于 Hugo 的搜索引擎 SEO,站点地图自动推送中,提到百度SEO支持直接推送文章的URL全路径,用到了gulp,编写了js脚本实现,经过这次调整,已经去掉了node.js的gulp 依赖,直接用命令行完成所有的事情,但是请注意,该脚本目前是生成全站的URL并提交,它并没有控制并指定生成范围,也没有剔除已提交过百度的URL,所以还有待进一步的进化
。
已实现
1、基于 Hugo 提取全部文章的 URL
2、基于 Linux 指令处理提交内容
3、无三方依赖,并定时执行
有待加强
1、指定生成某类下的文章 URL
2、剔除已提交过的 URL
实现思路基本可以确定,还是基于 Linux 的指令完成,得找个时间深入学习下并写出来
实现过程
Hugo 指令
hugo list all
输出内容解析
awk 'BEGIN{FS=",";OFS="/"}{print $8}'
过滤
sed 's/https:\/\//https:\/\//gp;d'
输出到文件
> url.txt
提交百度
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=www.kyfws.com&token=此处token请登录百度站长平台获得"
完整脚本
#!/bin/bash
while :
do
echo $(date "+%Y-%m-%d %H:%M:%S")
hugo list all | awk 'BEGIN{FS=",";OFS="/"}{print $8}' | sed 's/https:\/\//https:\/\//gp;d' > urls.txt
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=www.kyfws.com&token=此处token请登录百度站长平台获得"
sleep 1d
done
死循环+Sleep等待1天
部署
vim /etc/profile
nohup /mnt/blog/seo.sh > /mnt/blog/public/post.log 2>&1 &
:wq
附录
API 提交使用说明
- 普通收录工具可以向百度搜索主动推送资源,缩短爬虫发现网站链接的时间,不保证收录效果。
- API提交和手动提交共享配额,每日至多提交10万条有价值的内容,sitemap提交配额不与其他方式共享,具体配额以站点页面显示数据为准,提交内容会进入百度搜索统一管理。
- 仅限提交关联过主体的站点下的内容,否则无法成功提交,配额不可累计,当日有效。
- 若链接存在跳转关系,请直接提交跳转后链接。如网站换域名,需提交新域名资源;进行HTTPS改造页面,请提交HTTPS资源。
推送接口
接口调用地址:http://data.zz.baidu.com/urls?site=https://www.yourdomain.com&token=tokens
参数名称 | 是否必选 | 参数类型 | 说明 |
---|---|---|---|
site | 是 | string | 在搜索资源平台验证的站点,比如www.example.com |
token | 是 | string | 在搜索资源平台申请的推送用的准入密钥 |
推送示例
-
curl推送示例
-
将要提交的链接按照每行一条的格式写入一个文本文件中,命名此文件为urls.txt,然后进入该文件所在目录,执行如下命令:
curl -H ‘Content-Type:text/plain’ –data-binary @urls.txt “http://data.zz.baidu.com/urls?site=https://www.yourdomain.com&token=tokenxxxxx"
使用php、python、java等可以参照这个过程推送结构化数据。
查看推送反馈
推送成功
状态码为200
,可能返回以下字段:
字段 | 是否必选 | 参数类型 | 说明 |
---|---|---|---|
success | 是 | int | 成功推送的url条数 |
remain | 是 | int | 当天剩余的可推送url条数 |
not_same_site | 否 | array | 由于不是本站url而未处理的url列表 |
not_valid | 否 | array | 不合法的url列表 |
成功返回示例:
{
"remain":99998,
"success":2,
"not_same_site":[],
"not_valid":[]
}
推送失败
状态码为4xx
,返回字段有:
字段 | 是否必传 | 类型 | 说明 |
---|---|---|---|
error | 是 | int | 错误码,与状态码相同 |
message | 是 | string | 错误描述 |
失败返回示例:
{
"error":401,
"message":"token is not valid"
}