主动推送是让新内容快速被收录的高效手段,配合定时任务可实现发布即推送,缩短内容到收录的时间窗。
一、推送平台对比
百度推送
API + Token
每日限额 3000
API + Token
每日限额 3000
神马推送
移动端优先
API + Key
移动端优先
API + Key
Bing推送
IndexNow
无配额限制
IndexNow
无配额限制
360推送
站点认证
暂仅支持手动
站点认证
暂仅支持手动
二、百度推送脚本
<?php
// push_baidu.php
$urls=file('/www/wwwroot/yoursite/sitemap_urls.txt', FILE_IGNORE_NEW_LINES);
$api='http://data.zz.baidu.com/urls?site=yourdomain.com&token=YOUR_TOKEN';
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $api);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: text/plain']);
curl_setopt($ch, CURLOPT_POSTFIELDS, implode("\n", $urls));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res=curl_exec($ch);
file_put_contents('/www/wwwlogs/push_baidu.log', date('Y-m-d H:i:s').' '.$res."\n", FILE_APPEND);
?>
返回示例:{"remain":2990,"success":10},remain 表示当日剩余配额。
三、从织梦数据库读取新链接
require_once(dirname(__FILE__).'/include/common.inc.php');
$sql="SELECT arc.url FROM dede_archives arc
WHERE arc.senddate > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY))
ORDER BY arc.id DESC LIMIT 1000";
$dsql->Execute('me', $sql);
while($row=$dsql->GetArray('me')){
$urls[]='https://yourdomain.com'.$row['url'];
}
file_put_contents('/www/wwwroot/yoursite/sitemap_urls.txt', implode("\n", $urls));
四、宝塔定时任务配置
宝塔 → 计划任务 → 添加 Shell 脚本任务,每 6 小时执行:
0 */6 * * * /www/server/php/74/bin/php /www/wwwroot/yoursite/push_baidu.php
# Bing/神马推送类似
0 8 * * * /www/server/php/74/bin/php /www/wwwroot/yoursite/push_bing.php
五、常见问题原因分析
5.1 推送返回 401
原因:token 错误或 site 参数与实际域名不匹配。
解决:登录百度搜索资源平台 → 普通收录 → API 提交,核对 site 与 token。
5.2 推送成功但未收录
原因:内容质量低、URL 重复、站点降权。
注意:推送只是请求抓取,是否收录取决于内容质量。低质内容推送过多反而触发降权。
六、推送策略优化
建议建立"推送队列表" dede_push_queue,记录每个 URL 的推送状态与时间,避免重复推送浪费配额:
CREATE TABLE dede_push_queue(
id INT AUTO_INCREMENT PRIMARY KEY,
arc_id INT, url VARCHAR(255),
engine VARCHAR(20),
status TINYINT DEFAULT 0,
push_time INT,
KEY idx_status(status)
);
七、效果监测
在百度搜索资源平台查看"索引量"曲线,对比推送前后增长趋势。同时接入百度统计"页面分析"查看收录页面的搜索流量,反向优化推送优先级。
八、行动指引
建议每周复盘推送数据:分析配额使用率、推送成功率、收录转化率三个核心指标。对持续未收录的页面进行内容补强或内链优化,让推送配额真正发挥价值,避免无效推送消耗配额。