织梦定时推送链接到搜索引擎

主动推送是让新内容快速被收录的高效手段,配合定时任务可实现发布即推送,缩短内容到收录的时间窗。

一、推送平台对比

百度推送
API + Token
每日限额 3000
神马推送
移动端优先
API + Key
Bing推送
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)
);

七、效果监测

在百度搜索资源平台查看"索引量"曲线,对比推送前后增长趋势。同时接入百度统计"页面分析"查看收录页面的搜索流量,反向优化推送优先级。

八、行动指引

建议每周复盘推送数据:分析配额使用率、推送成功率、收录转化率三个核心指标。对持续未收录的页面进行内容补强或内链优化,让推送配额真正发挥价值,避免无效推送消耗配额。