跳转到主要内容
杨月昌的软件博客
返回

宝塔面板实现百度 API 自动推送教程:加速 SEO 收录的两大方案

百度收录的速度直接影响网站的 SEO 表现。虽然百度取消了前端 JS 自动推送代码,但 API 提交(主动推送) 依然是目前最稳定、最高效的加速收录手段。本文将教你如何利用宝塔面板的“计划任务”实现全自动推送。


准备工作:获取推送准入密钥 (Token)

在开始之前,你需要:

  1. 登录 百度搜索资源平台
  2. 进入 资源提交 > 普通收录 > API 提交
  3. 复制你的 推送接口地址,它看起来像这样: http://data.zz.baidu.com/urls?site=https://yourdomain.com&token=YOUR_TOKEN

方法一:Sitemap 全自动推送(推荐)

该方法会自动读取网站的 sitemap.xml,提取所有链接并推送到百度。适合文章量大、更新频繁的网站。

1. 编写推送脚本

在网站根目录新建 baidu_push.php,填入以下代码。注意:为防止恶意访问,我增加了一个 ?key= 参数校验。

<?php
/**
 * 百度 API 自动推送脚本 (Sitemap 版)
 */
header('Content-Type:text/html;charset=utf-8');

// --- 安全校验:请修改下方密钥 ---
$secret_key = "my_secure_key_123"; 
if ($_GET['key'] !== $secret_key) {
    die("未授权访问");
}

// 1. 设置 Sitemap 地址和百度 API 地址
$sitemap_url = "https://你的域名/sitemap.xml";
$api_url = "你的百度推送接口地址";

// 2. 获取并解析 Sitemap
$xml_data = file_get_contents($sitemap_url);
if (!$xml_data) die("无法获取 Sitemap 内容");

$xml = simplexml_load_string($xml_data);
$urls = [];
foreach ($xml->url as $item) {
    $urls[] = (string)$item->loc;
}

// 3. 执行 cURL 推送
$ch = curl_init();
$options = array(
    CURLOPT_URL => $api_url,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("\n", $urls),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
    CURLOPT_TIMEOUT => 30
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);

echo "推送结果:" . $result;
?>

2. 在宝塔面板设置计划任务

  1. 进入 宝塔面板 > 计划任务
  2. 任务类型:访问 URL。
  3. 任务名称:百度自动推送。
  4. 执行周期:建议设置在每天凌晨(例如 01:30),避开流量高峰。
  5. URL 地址http://你的域名/baidu_push.php?key=my_secure_key_123
  6. 点击 添加任务 并在任务列表点击 执行 测试,查看日志是否显示 {"remain":... , "success":1}

方法二:指定 URL 手动/精确推送

如果你只想推送特定的新文章链接,可以使用这个精简版方案。

1. 编写推送脚本

新建 push_specific.php

<?php
$api_url = "你的百度推送接口地址";

// 在此处填写你需要推送的链接,每行一个
$urls = array(
    'https://yourdomain.com/article/1.html',
    'https://yourdomain.com/article/2.html',
);

$ch = curl_init();
curl_setopt_array($ch, array(
    CURLOPT_URL => $api_url,
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => implode("\n", $urls),
    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
));
$result = curl_exec($ch);
echo "提交反馈:" . $result;
?>

2. 使用场景

此方法适合配合宝塔的计划任务,或者在发布重要大稿后手动在浏览器访问一次该脚本。


常见问题与优化建议

1. 推送频率建议

2. 报错处理


总结

通过宝塔面板的计划任务配合 PHP 脚本,我们可以实现完全自动化的百度收录申请。方法一 胜在省心,方法二 胜在精准。



上一篇
如何在 Ubuntu 18.04 上使用 UFW 设置防火墙
下一篇
归一化技术全景:从数据预处理到现代大模型的稳定器