Laravel 自定义artisan推送链接到百度
百度主动推送是什么?
百度主动推送是在百度站长工具改版升级之后推出的一款帮助站长快速向百度提交链接的工具。通常百度发现链接时间长,为了促使百度尽快发现并收录,我们会主动推送链接到百度站长 https://ziyuan.baidu.com/。 百度推送有三种方式。 1.API主动推送:当网站发布新内容时,可以通过API主动向百度推送链接。保证新链接能尽快被百度收录。主动提交链接数量上限由你提交的新生成的有价值链接数量决定。百度会根据你提交的新生成有价值链接的数量,不定期调整上限。提交的新生成的有价值链接越多,提交链接的上限越高。这也保护了你的网站的原创性。 2.sitemap的提交:将sitemap文件上传到网站根目录,使用百度站长工具上传Sitemap。百度会周期性抓取提交的Sitemap,收录速度会比较慢。而且你的Sitemap要定期更新,让百度定期抓取的网站链接都是最新的。 3.手动提交:如果不想通过程序提交,可以手动向百度提交链接。一天内向一个账户提交的次数有上限。
百度主动推送的好处。
- 加快被百度发现 减少百度蜘蛛发现新链接时间,快速实现收录,更快通过检测
- 保护原创 发布新链接马上发给百度,保证原创。很快速让百度蜘蛛发现,实现收录
- 节省带宽 一次推送多条链接,不要重复推送,负担服务器压力
- 接口推送是最快速提交收录方式 百度主动推送是最为快速的提交方式,建议您将站点当天新增链接通过主动发给百度,以保证新链接可以最快被百度收录。
Laravel 自定义 artisan 命令方式推送到百度
- 百度站长平台注册,配置站点域名等信息
- 网站根目录下,执行命令
php artisan make:command PushBaidu
- 配置命令
php artisan push:baidu
,注解 - 配置Laravel的配置文件,保存推送链接
- 编辑代码,发起请求推送到百度
http请求工具:GuzzleHttp
headers:text/plain
请求链接:已保存的config推送地址
请求数据:换行符
分割的提交链接
$http = new Client(['headers' => [ "Content-type" => 'text/plain' ]]); try{ $response = $http->post('http://data.zz.baidu.com/urls?site='. env('APP_URL'). '&token='. config('push_baidu_token'), ['body' => $data]); $response = $response->getBody()->getContents(); $response = json_decode($response,true); if (isset($response['success'])){ $res = $pushBaidu->allInsert($insertArr); if ($res){ $this->info("推送成功,推送条数:". $response['success'] . "! 当天剩余的可推送url条数:{$response['remain']} "); #由于不是本站url而未处理的url列表:". implode(" ",$response['not_same_site']) . " 不合法的url列表:". implode(" ",$response['not_valid'])); return; } $this->info('推送失败!数据库写入失败!'); }elseif(isset($response['error'])){ $this->info('推送失败!'. $response['message']); } }catch (Exception $e){ print_r($e->getMessage());die; }
还可以使用已有包
安装 composer require larva/laravel-baidu-ping -vv
配置
#config/services.php 配置文件
'baidu'=>[
//百度站长平台
'site' => '',//网站域名HTTPS网站需要包含 https://
'site_token' => '',//网站Token
//百度移动搜索平台
'app_id' => '',
'token' => '',
]
#使用
use LarvaBaiduPingBaiduPing;
BaiduPing::push('https://blog.ebeast.club/');