船说 CMS 自动推送百度怎么设置
学会这篇,你能让船说 CMS 每发一篇文章就自动把 URL 推给百度,不用再手动复制粘贴。
第一步:拿到百度的推送密钥(token)
这一步要做的,是让百度确认「这个站是你的」,并给你一个可以调接口的凭证,做完之后你会拿到一串 20 位左右的 token。
打开百度搜索资源平台 ziyuan.baidu.com,用绑定该站点的账号登录,进入「用户中心 → 站点管理」,确认你的域名已经通过验证(推荐用「HTML 标签验证」或「CNAME 验证」,文件验证容易因为伪静态规则失效)。验证通过后,点顶部「普通收录」,左侧选「API 提交」,页面里有一栏「准入密钥」,点「复制」把它存到记事本。
注意:token 只和「验证通过的那个域名」绑定。你验证的是
www.example.com,推送时就必须推www.example.com的链接;如果站点同时能用不带 www 的域名访问,先去宝塔或 Nginx 做 301 跳转到带 www,否则推过去的链接会被判为重复或抓取失败。
第二步:在船说 CMS 后台开启自动推送
这一步是把 token 填进 CMS,让它发文章时自动调接口,做完之后新发布的文章会进入推送队列。
登录船说 CMS 后台,在左侧菜单找「系统」→「推送设置」(不同版本可能叫「SEO 设置 → 百度推送」或「接口设置 → 主动推送」),逐项填写:
- 推送开关:选「开启」
- 推送接口地址:
http://data.zz.baidu.com/urls - 站点域名:填
www.example.com(不带 http://) - 准入密钥:粘贴第一步复制的 token
- 推送时机:勾选「文章发布后」
- 推送条数上限:建议按你百度后台显示的当日配额,填 80%
如果后台版本较老、菜单里根本没有「推送设置」,说明它没内置这个功能,直接跳到第三步用脚本实现。
注意:每次保存后先点后台的「测试推送」,填一个当天新发的文章链接点提交。返回
{"remain":9997,"success":1}才算通;返回{"error":"site error"}是域名没对上,返回{"error":"token is not valid"}是密钥复制时多了空格。
第三步:没有内置功能就用脚本挂到发布流程
这一步解决的是老版本或需要精细控制的情况,做完之后可以用定时任务兜底推送。
在网站根目录建一个 baidu_push.php,内容大致如下:
<?php
$token = '你的准入密钥';
$site = 'www.example.com';
$urls = [
'https://www.example.com/a/123.html',
// 可改成从数据库读取最近 1 小时发布的文章
];
if (!$urls) exit;
$ch = curl_init('http://data.zz.baidu.com/urls?site='.$site.'&token='.$token);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: text/plain'],
]);
echo curl_exec($ch);
生产环境建议改成读数据库:查 article 表里 publish_time 在最近 2 小时、且 is_push=0 的记录,推送成功后把 is_push 置 1,避免重复推送浪费配额。然后在宝塔面板「计划任务」里加一条:类型「Shell 脚本」,执行周期选「每 10 分钟」,脚本内容 php /www/wwwroot/你的站/baidu_push.php。
注意:接口每行只能放一个 URL,多个链接用换行分隔,不要用逗号;单次最多推 2000 条,超了要分批。推送前务必用浏览器打开链接确认返回 200,301 跳转的地址、404 的地址推了也算失败。
第四步:给历史文章补推一次
这一步是把之前没推过的老内容一次性交出去,做完之后站点收录进度会明显加快。
在后台内容管理里按发布时间筛选,导出全部 URL,或者直接从数据库导出:
SELECT CONCAT('https://www.example.com/a/', id, '.html') FROM article WHERE status=1;
把结果存成 urls.txt,一行一个,用 curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=www.example.com&token=你的token" 提交,注意按每日配额分批,今天推一半、明天推另一半。
第五步:确认推送生效
这一步是回到百度侧看数据。进入搜索资源平台「普通收录 → API 提交」,看「今日推送成功」条数,再打开「抓取诊断」,输入刚才推的 URL,点「抓取」,能看到返回码和抓取时间就说明百度已经来过了。同时可以观察「索引量」曲线,一般 3 到 7 天会有变化。
注意:推送成功不等于马上收录,它只是告诉百度「这个链接存在」。真正决定收录的是内容质量和站内链接结构,别指望靠推送把垃圾内容刷上去。
小结
- 先在搜索资源平台验证域名、复制准入密钥,域名必须和推送链接完全一致。
- 后台有「推送设置」就直接填 token 开开关,没有就用脚本加定时任务兜底。
- 推送接口
http://data.zz.baidu.com/urls,site 传不带协议的域名,URL 每行一个。 - 用
is_push字段去重,按每日配额分批推,别浪费。 - 推送只是通知,收录还看内容质量和抓取诊断里的实际返回码。
原文链接:https://www.gj0.com/thread-718.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。