网站发了200篇文章,手动一条条往百度站长平台提交链接,花了三个下午才提交完,第4天发现每天API配额只给100条,剩下100条只能明天再推
一个网站内容多了之后,链接提交就是绕不开的体力活。每天写文章、更新页面,如果不主动通知搜索引擎,靠蜘蛛自己来爬,新页面可能一两周都进不了索引库。等收录的这段时间,流量基本为零。所以链接提交这件事,不做不行,手动做又太痛苦。更让人崩溃的是,很多站长辛辛苦苦提交完了才发现,百度的API配额每天只有100条甚至更少,谷歌Indexing API每天200条且只支持JobPosting和直播视频两种类型,Bing的IndexNow倒是没配额限制但提交了也不一定马上收录。这篇文章要解决的问题就三个:
· 四个搜索引擎(百度/谷歌/Bing/360)各有哪些提交通道,区别在哪
· 从WordPress插件到Python脚本,自动提交工具有哪些选择
· 配额、报错、收录不生效,这些坑怎么绕过去
一、四条提交通道,选错等于白提交
百度后台的链接提交页面,看起来就三种方式:API推送、sitemap、手动提交。但很多站长不知道,加上"自动推送JS代码",实际上是四条通道,每条的作用和时效完全不同。| 提交方式 | 响应速度 | 配额 | 适用场景 | 关键缺陷 |
|---|---|---|---|---|
| API主动推送 | 分钟级 | 100-10000条/天(站点权重决定) | 新文章发布后立即推送 | 配额少,用超了报错 |
| 自动推送JS | 访问触发 | 无上限 | 页面被用户访问时自动提交 | 依赖真实访问量,新站没用 |
| Sitemap | 小时-天级 | 独立配额,不限条数 | 全站URL结构批量告知 | 更新频率低,非实时 |
| 手动提交 | 不确定 | 与API共享每日10万条配额 | 临时补充个别链接 | 效率最低,不适合批处理 |
一个容易被忽略的区别:API推送和手动提交共享每日10万条配额,但这是理论值,实际每个站点根据权重分配的API配额可能是100条、500条、3000条甚至10000条不等。新站通常只有100条/天。Sitemap的配额是独立的,不占用API配额。
谷歌那边的情况简单一些。Google Search Console提供手动请求索引(每天有限额但官方不说具体数字),Indexing API每天200条但仅限JobPosting和BroadcastEvent类型页面。普通网页用Indexing API提交,谷歌接收了也不处理——这是2025年后明确的限制。Bing的IndexNow协议反而是最开放的:没有每日配额上限,一个API Key可以提交多个域名,提交后几分钟内Bing蜘蛛就会来抓。Yandex、Seznam也支持IndexNow。二、WordPress网站的自动提交方案,从零配置到全自动
如果你是WordPress建站,链接自动提交的实现成本是最低的。核心逻辑是:文章发布/更新时触发钩子,自动调用百度API推送链接。方案一:站长帮插件(零代码,5分钟配好)
在WordPress后台插件市场搜索"站长帮 – 百度索引提交",安装后填写百度站长平台的token即可。1. 登录百度搜索资源平台 → 普通收录 → API推送 → 复制接口调用地址中的token
2. WordPress后台 → 设置 → 百度索引提交 → 粘贴token
3. 勾选"发布文章时自动推送"和"更新文章时自动推送"
4. 保存,发布一篇新文章测试推送结果
方案二:functions.php加代码(轻量,不装插件)
如果不想装插件,在主题的functions.php里加一段代码也能实现发布时自动推送:// 文章发布时自动推送到百度function auto_push_to_baidu($post_id, $post, $update) {if ($post->post_status != 'publish' || wp_is_post_revision($post_id)) return;$url = get_permalink($post_id);$api = 'http://data.zz.baidu.com/urls?site=你的域名&token=你的token';$ch = curl_init();curl_setopt_array($ch, [CURLOPT_URL => $api,CURLOPT_POST => true,CURLOPT_RETURNTRANSFER => true,CURLOPT_POSTFIELDS => $url,CURLOPT_HTTPHEADER => ['Content-Type: text/plain'],]);$result = curl_exec($ch);curl_close($ch);error_log('Baidu Push: ' . $result);}add_action('save_post', 'auto_push_to_baidu', 10, 3);这段代码的推送时机是每次保存文章时,不管是新建还是更新都会触发。如果要更精细的控制(比如只推首次发布),需要加一个post_meta标记判断是否已推送过。这段代码少了什么?没有错误处理、没有配额检测、没有推送记录。推成功了没有日志,推失败了也不知道。如果真的要在生产环境用,至少加一个推送结果存入post_meta的功能,方便后续排查。
方案三:Python定时脚本(全引擎覆盖,适合非WP站点)
如果你的网站不是WordPress,或者需要同时推送到百度、Bing、360三个平台,用Python写一个定时脚本是最灵活的选择。import requestsimport jsonfrom datetime import datetime# === 配置区 ===BAIDU_API = "http://data.zz.baidu.com/urls?site=你的域名&token=你的token"BING_API = "https://api.indexnow.org/indexnow?key=你的key&keyLocation=你的keyLocation"SITEMAP_URL = "https://你的域名/sitemap.xml"# =============def get_urls_from_sitemap(sitemap_url):"""从sitemap中提取所有URL"""import xml.etree.ElementTree as ETresp = requests.get(sitemap_url, timeout=30)root = ET.fromstring(resp.content)ns = {'ns': 'http://www.sitemaps.org/schemas/sitemap/0.9'}return [elem.text for elem in root.findall('.//ns:loc', ns)]def push_to_baidu(urls):"""推送到百度,每次最多2000条"""chunks = [urls[i:i+2000] for i in range(0, len(urls), 2000)]results = []for chunk in chunks:resp = requests.post(BAIDU_API, data='\n'.join(chunk),headers={'Content-Type': 'text/plain'}, timeout=30)results.append(resp.json())print(f"百度推送 {len(chunk)} 条: {resp.json()}")return resultsdef push_to_bing(urls):"""推送到Bing IndexNow"""payload = {"host": "你的域名","key": "你的key","keyLocation": "https://你的域名/你的keyLocation.txt","urlList": urls}resp = requests.post(BING_API, json=payload, timeout=30)print(f"Bing推送 {len(urls)} 条: {resp.status_code}")return resp.status_codeif __name__ == "__main__":urls = get_urls_from_sitemap(SITEMAP_URL)print(f"{datetime.now()} 从sitemap获取到 {len(urls)} 个URL")push_to_baidu(urls)push_to_bing(urls[:10000]) # IndexNow单次建议不超过10000条这个脚本的核心逻辑是:从sitemap读所有URL → 分批推百度 → 批量推Bing。放在服务器crontab里每天跑一次就行。三、六个在线提交工具,按需求对号入座
如果你不想折腾代码,网上有很多现成的在线提交工具。但它们的质量和安全性参差不齐。| 工具名称 | 支持平台 | 免费额度 | 核心功能 | 注意点 |
|---|---|---|---|---|
| 懒人工具 | 百度 | 免费 | 在线批量推送、实时反馈、额度提醒 | token在第三方服务器,安全性靠自己评估 |
| 工具匠 | 百度 | 免费 | 批量提交、推送状态返回 | 功能较基础,仅支持百度 |
| 福娃工具 | 百度 | 免费 | 批量提交、秒收辅助 | 广告较多 |
| IndexNow在线提交 | Bing/Yandex/Seznam | 免费 | 批量IndexNow提交、多引擎覆盖 | 不支持百度/谷歌/360 |
| AutoSEO(GitHub开源) | 百度/Bing | 免费/需自行部署 | 定时自动提交、支持Github Actions | 需要自己配置,有一定技术门槛 |
| Hexo-SEO-AutoPush | 百度/Bing/Google | 免费/开源 | Github Actions自动推送 | 仅适用Hexo博客 |
在线工具 vs 自行部署的取舍:在线工具零门槛,但你的百度token会经过第三方服务器。如果网站不大、token泄露也不会造成太大损失,用在线工具最省事。如果是企业站或者有敏感数据,建议自己写脚本或者在服务器上部署开源方案。

四、提交了不等于收录了,五个常见问题排查清单
问题1:API推送返回 {"error":400,"message":"site init fail"}
· token填写错误或已过期,重新生成一个
· 推送的URL和验证的域名不一致(www和@记录算两个域名)
· 接口地址中的site参数和token不匹配
问题2:推送返回 {"error":401,"message":"token is not valid"}
token过期了或者复制的时候漏了字符。百度站长平台的token不会自动过期,但如果你在后台重新生成了新token,旧的就立即失效。一个站点同一时间只有一个有效token。问题3:推送成功但好几天不收录
这是最常见的困惑。API推送返回的{"success":1,"remain":99}只代表百度"收到了"你的提交请求,不代表会收录。影响实际收录的因素包括:页面内容质量、网站整体权重、页面是否有原创价值、技术层面是否有抓取障碍(robots屏蔽、服务器响应慢等)。问题4:每天推送配额到底是多少
百度官方没有公开配额分配规则。根据站长社区的反馈,新站普遍100条/天,有一定权重和收录量的站可能拿到3000-10000条/天。快速收录(即时收录)权限是另外申请的,门槛更高。可以在百度站长平台后台"普通收录"页面的"API推送"标签下查看自己的剩余额度。问题5:谷歌Indexing API提交了完全没反应
2025年谷歌收紧Indexing API适用范围后,只处理JobPosting和BroadcastEvent两种结构化数据类型的页面。你提交一个普通博客文章URL,谷歌会返回HTTP 200,但实际上不会触发抓取。对于普通网页,Google Search Console的"请求索引"按钮或者提交sitemap仍然是唯一官方渠道。五、搭建一个"发布即提交"的完整自动化流程
如果你运营的是中大型网站(每天新增几十到几百个页面),手动提交、在线工具、甚至单次脚本都不够用。需要一套完整的自动化流程。· 内容发布环节:不管什么CMS,发布/更新内容时触发一个webhook或函数调用
· 队列缓冲:不要直接调API,先写入Redis队列或数据库表。因为百度API有配额限制,直接调容易超限报错
· 配额检查:推送前先调百度API查询剩余额度,剩余不够就排队等明天
· 分批推送:百度API单次最多2000条URL,超过要分批
· 多引擎推送:百度走API推送、Bing走IndexNow、360走站长平台API、谷歌走sitemap
· 日志+告警:每次推送结果记录入库,连续失败N次发通知
为什么中间要加一个队列?
直接调API的问题在于:如果你批量发了100篇文章,CMS钩子会连续调100次百度API。而百度API有频率限制(虽然没有明确公开QPS),短时间内大量请求大概率触发限流。用Redis队列做缓冲,每秒消费1-2条,既能用完每日配额又不会被封。
六、三组实际场景的方案推荐
| 你的情况 | 推荐方案 | 为什么 |
|---|---|---|
| WordPress博客,每天发1-3篇 | 站长帮插件 + IndexNow插件 | 5分钟配置完,发文自动推,覆盖百度和Bing |
| 自建CMS,每天发10-50篇 | Python定时脚本 + crontab | 从sitemap读URL,每天自动推一次,灵活可控 |
| 站群/大站,每天发100+篇 | 自建队列系统 + 多引擎分发 | 需要配额管理、失败重试、多站点统一调度 |
七、几个容易踩进去的坑
· 提交的URL必须是绝对路径:百度API推送的URL必须是完整的http://或https://开头的绝对路径。如果CMS默认输出相对路径(/article/123.html),推送会报400错误。

· 带www和不带www是两个站:百度站长平台里,www.example.com和example.com是两个独立的站点,需要分别验证、分别获取token、分别推送。同理,http和https也是分开的。
· Sitemap文件大小限制:百度sitemap提交限制单个文件不超过10MB、不超过5万条URL。超过的话要拆分多个sitemap文件,然后用sitemap索引文件提交。
· 别把推送当救命稻草:推送能加速百度发现你的链接,但不保证收录,更不保证排名。如果你的页面内容质量差、重复度高、或者网站本身权重低,推送一百次也不会收录。推送工具解决的是"蜘蛛不知道你的页面存在"这个问题,解决不了"蜘蛛看了觉得没价值"。
· 360和搜狗的自动提交:360站长平台也提供了API推送和JS自动推送,但接口文档和社区资料都比百度少很多。搜狗目前没有公开的API推送接口,只能通过手动提交或sitemap。
链接提交这件事的投入产出比极高:投入时间极少(甚至为零),收益是让蜘蛛第一时间知道你有新内容。不做的话,新页面可能一两个星期才被发现,这期间的流量损失远大于配置一个自动提交工具的成本。
