PHP实现自动提交百度普通收录/SEO

技术 · 2023-08-25 · 150 人浏览

本文来源于:得水小筑

说明

百度站长的资源提交分为快速收入和普通收录,资源的提交方式有:

  • API推送:最为快速的提交方式,建议您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。
  • sitemap:您可以定期将网站链接放到Sitemap中,然后将Sitemap提交给百度。百度会周期性的抓取检查您提交的Sitemap,对其中的链接进行处理,但收录速度慢于API推送。
  • 手动提交:如果您不想通过程序提交,那么可以采用此种方式,手动将链接提交给百度

多种提交方式互不冲突

下面以PHP为例子

百度官方api示例

$urls = array(
    'http://www.example.com/1.html',
    'http://www.example.com/2.html',
);
$api = 'http://data.zz.baidu.com/urls?site=域名&token=百度秘钥';
$ch = curl_init();
$options =  array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("\n", $urls),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;

上面代码是百度的示例这里我们改一下,官方提供的有点麻烦需要我们手动把收录的链接放到数组里面

下面我们让在用户访问后自动提交收录,通过api自动提交

百度 API 提交token 值的获取

登录百度站长 → 资源提交 → 普通收录,下面图片中’token=’的后面就是我们自己的API token值,将其复制下来

官网地址:http://data.zz.baidu.com/

百度推广API的token获取地址:http://data.zz.baidu.com/site/index

自己修改后的

$protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ?"https://": "http://";
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//获取当前访问目录的域名
//  echo $url;
$urls = array($url);
$api = 'http://data.zz.baidu.com/urls?site=域名&token=百度秘钥';
$ch = curl_init();
$options =  array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("\n", $urls),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo "<script>console.log('当前百度推送$result;')</script>";

使用的时候,把上面的域名跟百度的token换成自己的,下面是以Pbootcms建筑系统为例子

扩展到Pbootcms建站系统例子

{php}
$protocol = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443) ?"https://": "http://";
$url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
//获取当前访问目录的域名
//  echo $url;
$urls = array($url);
$api = 'http://data.zz.baidu.com/urls?site=域名&token=百度秘钥';
$ch = curl_init();
$options =  array(
    CURLOPT_URL => $api,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("\n", $urls),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo "<script>console.log('当前百度推送$result;')</script>";
{/php}

这样我们就实现了PHP对接百度API提交普通收录

.
成功返回图
状态码为200,可能返回以下字段:

字段是否必选参数类型说明
successint成功推送的url条数
remainint当天剩余的可推送url条数
not_same_sitearray由于不是本站url而未处理的url列表
not_validarray不合法的url列表
Theme Jasmine by Kent Liao