一、百度MIP是什么,为什么它已经不重要了
百度MIP是2016年推出的移动端网页加速框架,核心思路是:网站按MIP规范改造页面→百度缓存MIP页面→用户在百度搜索时直接打开缓存版,加载速度极快。MIP页面在搜索结果里带"闪电"标识,对移动端点击率有明显提升。
但百度在2020年4月宣布MIP Cache服务下线,2022年9月宣布MIP服务正式下线,2023年6月彻底停止支持。下线原因也不复杂:MIP的封闭标准与W3C的开放Web标准冲突,加上AMP(Google的同类方案)全球式微,百度转向拥抱标准H5和更开放的移动适配方案。
· 如果你的网站还有MIP页面:去掉MIP专用标签(mip-img→img、mip-video→video等),恢复标准HTML
· 301重定向:把 mip.xxx.com 或 xxx.com/mip/ 的URL 301跳转到对应的标准移动页面
· 在百度搜索资源平台的"移动适配"中更新适配关系
· 核心页面速度跟不上就用CDN+图片懒加载+资源压缩来补,不需要MIP也能快
二、百度搜索资源平台的三种推送方式
MIP虽然没了,但百度搜索资源平台(ziyuan.baidu.com)的URL提交功能一直在迭代。目前有三种推送方式,各有各的适用场景。
| 推送方式 | 原理 | 每日额度 | 速度 | 适合场景 |
|---|---|---|---|---|
| API推送 | 调用百度接口,直接把URL推送给百度爬虫 | 3000条/天(新站100条) | 最快 | 新内容发布后即时推送 |
| 自动推送(JS) | 页面嵌入JS代码,用户访问时自动提交URL | 无限制 | 实时 | 所有页面兜底推送 |
| 站点地图(Sitemap) | 提交sitemap.xml,百度定期抓取 | 无限制 | 较慢 | 全站URL索引 |
API推送负责新内容的即时提交(快),JS自动推送负责所有页面的被动发现(全),Sitemap负责整体URL索引的兜底(稳)。三个通道全开,收录效率最高。如果只开一个,首选API推送。
三、API推送:最快收录的核心通道
3.1 获取推送Token
登录百度搜索资源平台(ziyuan.baidu.com)→ 添加并验证站点 → 点击左侧"普通收录"→"API提交"→ 复制接口调用地址中的token。接口地址格式:
http://data.zz.baidu.com/urls?site=https://www.yoursite.com&token=YOUR_TOKEN3.2 PHP版推送脚本(WordPress直接能用)
<?php/*** 百度主动推送工具 - PHP版* 用法:放到网站根目录,访问 push.php 即可推送*/$api = 'http://data.zz.baidu.com/urls?site=https://www.yoursite.com&token=YOUR_TOKEN';// 待推送的URL列表(一行一个)$urls = array('https://www.yoursite.com/article/123.html','https://www.yoursite.com/article/124.html','https://www.yoursite.com/article/125.html',);$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $api);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POSTFIELDS, implode("\n", $urls));curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/plain'));$result = curl_exec($ch);curl_close($ch);$response = json_decode($result, true);echo "推送结果:\n";echo "成功: " . ($response['success'] ?? 0) . "\n";echo "剩余额度: " . ($response['remain'] ?? '未知') . "\n";?>3.3 WordPress自动推送插件方案
如果用的是WordPress,更推荐用插件实现自动推送——文章发布时自动推送给百度,不需要手动操作:
<?php/*** WordPress自动推送到百度 - 发布文章时触发* 添加到主题的 functions.php 中*/function baidu_auto_push($post_id) {// 仅处理已发布的文章if (get_post_status($post_id) != 'publish') return;$api = 'http://data.zz.baidu.com/urls?site=https://www.yoursite.com&token=YOUR_TOKEN';$url = get_permalink($post_id);$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'],CURLOPT_TIMEOUT => 10,]);$result = curl_exec($ch);curl_close($ch);// 记录推送日志$response = json_decode($result, true);update_post_meta($post_id, '_baidu_push_result', $response);}add_action('publish_post', 'baidu_auto_push');// 批量推送历史文章(在主题目录下创建 push-history.php 访问)function baidu_batch_push_history() {$api = 'http://data.zz.baidu.com/urls?site=https://www.yoursite.com&token=YOUR_TOKEN';$posts = get_posts(['post_status' => 'publish','posts_per_page' => 100,'meta_query' => [['key' => '_baidu_push_result', 'compare' => 'NOT EXISTS']],]);$urls = array_map(function($p) { return get_permalink($p); }, $posts);if (empty($urls)) {return "所有文章已推送过,无需重复推送";}$ch = curl_init();curl_setopt_array($ch, [CURLOPT_URL => $api,CURLOPT_POST => true,CURLOPT_RETURNTRANSFER => true,CURLOPT_POSTFIELDS => implode("\n", $urls),CURLOPT_HTTPHEADER => ['Content-Type: text/plain'],]);$result = curl_exec($ch);curl_close($ch);// 标记已推送foreach ($posts as $post) {update_post_meta($post->ID, '_baidu_push_result', 'batch_pushed');}$response = json_decode($result, true);return "批量推送完成:成功 " . ($response['success'] ?? 0) . " 条";}?>3.4 Python版推送脚本(适合站群和批量操作)
import requestsimport jsonimport timefrom typing import Listclass BaiduPusher:"""百度主动推送工具 - Python版"""def __init__(self, site, token):self.api = f"http://data.zz.baidu.com/urls?site={site}&token={token}"self.pushed_count = 0self.failed_urls = []def push(self, urls: List[str]) -> dict:"""推送URL列表,返回API响应"""try:resp = requests.post(self.api,data="\n".join(urls).encode("utf-8"),headers={"Content-Type": "text/plain"},timeout=30)result = resp.json()if result.get("success"):self.pushed_count += result["success"]print(f"✅ 成功推送 {result['success']} 条,剩余额度: {result.get('remain', 'N/A')}")else:print(f"❌ 推送失败: {result}")self.failed_urls.extend(urls)return resultexcept Exception as e:print(f"❌ 推送异常: {e}")self.failed_urls.extend(urls)return {"error": str(e)}def push_batch(self, urls: List[str], batch_size=200):"""分批推送(每批最多2000条,建议200条一批)"""for i in range(0, len(urls), batch_size):batch = urls[i:i + batch_size]print(f"推送第 {i//batch_size + 1} 批 ({len(batch)} 条)...")self.push(batch)time.sleep(1) # 批次间隔1秒,避免频率过高print(f"\n总计成功推送: {self.pushed_count} 条")if self.failed_urls:print(f"失败 {len(self.failed_urls)} 条,已记录到 failed_urls")# ─── 使用示例 ───if __name__ == "__main__":pusher = BaiduPusher(site="https://www.yoursite.com",token="YOUR_TOKEN")# 从sitemap中提取URL批量推送urls = [f"https://www.yoursite.com/article/{i}.html" for i in range(1, 501)]pusher.push_batch(urls, batch_size=200)四、JS自动推送:页面被访问时自动提交
JS自动推送不需要任何后端配置,只要在每个页面的HTML里加上一段JS代码,用户打开页面时自动把URL提交给百度。代码从百度搜索资源平台直接复制:
<!-- 百度自动推送JS代码 --><!-- 放在 </body> 标签前面 --><script>(function(){var bp = document.createElement('script');var curProtocol = window.location.protocol.split(':')[0];if (curProtocol === 'https') {bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';} else {bp.src = 'http://push.zhanzhang.baidu.com/push.js';}var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(bp, s);})();</script>这段代码放到网站全局模板(比如WordPress的footer.php)里,每个页面被访问时都会自动提交一次。优点是零配置、全自动、不限额度,缺点是依赖用户访问——如果某个页面没人访问就不会被提交。
五、Sitemap提交:全站索引的兜底方案
Sitemap是三种方式里最慢但覆盖面最全的。百度建议Sitemap文件不超过5万个URL,文件大小不超过10MB。如果网站页面多,可以分拆成多个sitemap文件,然后用sitemap索引文件统一提交。

WordPress自动生成Sitemap
# 方法一:用插件(最简单)# 安装 Yoast SEO 或 Rank Math,自动生成 sitemap.xml# 方法二:PHP手动生成(无需插件)# 在主题目录创建 sitemap-gen.php:<?phpheader('Content-Type: application/xml; charset=utf-8');$posts = get_posts(['numberposts' => 5000, 'post_status' => 'publish']);echo '<?xml version="1.0" encoding="UTF-8"?>';echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';foreach ($posts as $post) {echo "<url><loc>" . get_permalink($post) . "</loc><lastmod>" . get_the_modified_date('c', $post) . "</lastmod></url>";}echo '</urlset>';?>六、在线推送工具:不想写代码就用这些
如果只是偶尔推送几条URL,或者不想部署代码,下面这些在线工具直接输入URL和token就能推:
| 工具名称 | 核心功能 | 免费 |
|---|---|---|
| 百度搜索资源平台自带 | 官方后台手动输入URL提交,单次最多20条 | ✅ |
| 懒人工具 - 百度API推送 | 在线批量推送,支持实时状态反馈,额度智能提醒 | ✅ |
| 工具匠 - 百度主动推送 | 批量提交URL,直接对接百度API接口 | ✅ |
| 福娃工具 - 百度提交 | 批量提交URL,专为SEO人员设计 | ✅ |
在线推送工具需要你输入站点的推送Token。这个Token有推送权限,泄露后别人可以冒用你的额度。建议只在可信的在线工具上使用,或者直接用本地脚本推送。如果用在线工具,推送完成后可以去百度搜索资源平台重置Token。
七、推送失败?先查这五个原因
1. Token过期或无效
检查百度搜索资源平台的API提交页面,确认Token是否还有效。Token可以在平台后台重新生成。如果站点刚验证通过,等几分钟再试,有时候生效有延迟。
2. 日推送额度用完
新站每日100条,老站3000条。API返回的remain字段会告诉你还剩多少额度。如果额度不够,改用JS自动推送和Sitemap来补充。
3. URL格式不对
推送的URL必须和站长平台验证的站点域名完全一致。验证了www就推www开头的URL,验证了不带www就推不带www的。URL要包含协议头(https://),末尾不要有空格和换行符。

4. 页面本身被百度屏蔽
如果页面内容违规、被robots.txt禁止抓取、或者网站被百度惩罚,推送成功也不会收录。先在百度搜索资源平台检查站点状态和抓取诊断。
5. 推送频率过高
虽然API没有明确限频,但短时间内大量连续请求可能被暂时限制。建议每批之间间隔1-2秒,每批不超过200条URL。
八、推送之后怎么验证效果
推送完成不代表收录。需要通过以下方式验证推送是否生效:
API返回确认
推送后API返回的success字段就是成功推送的URL数量。remain是当日剩余额度。如果success > 0,说明推送通道没问题,URL已进入百度处理队列。

搜索site命令
在百度搜索 site:yoursite.com 查看已收录页面。新推送的URL通常1-7天内出现在结果中。API推送比Sitemap快得多,有时当天就能查到。
站长平台数据
百度搜索资源平台 → 数据统计 → 索引量,查看收录趋势。注意索引量数据有1-3天延迟,推送后不要立刻去查。
九、站群和批量站点的推送策略
如果管理多个站点,逐个去平台手动推送效率太低。下面是站群场景的高效推送方案:
import jsonimport requestsimport timefrom datetime import datetimeclass MultiSitePusher:"""多站点批量推送器"""def __init__(self, config_file="sites.json"):"""从配置文件加载站点列表"""with open(config_file, "r", encoding="utf-8") as f:self.sites = json.load(f)self.results = {}def push_all(self):"""遍历所有站点执行推送"""for site in self.sites:name = site["name"]domain = site["domain"]token = site["token"]print(f"\n{'='*50}")print(f"站点: {name} ({domain})")pusher = BaiduPusher(domain, token)# 这里可以接入各站点自己的URL生成逻辑urls = site.get("urls", [])if urls:pusher.push_batch(urls)self.results[name] = {"pushed": pusher.pushed_count,"failed": len(pusher.failed_urls),"time": datetime.now().isoformat()}time.sleep(2) # 站点间间隔# 输出汇总报告print(f"\n{'='*50}")print("📊 多站点推送汇总:")for name, result in self.results.items():print(f" {name}: 成功 {result['pushed']} 条,失败 {result['failed']} 条")return self.results# sites.json 配置文件格式:# [# {"name": "主站", "domain": "https://www.site1.com", "token": "xxx"},# {"name": "分站A", "domain": "https://www.site2.com", "token": "yyy"}# ]十、从MIP过渡到现代移动端优化
MIP退出历史舞台后,移动端SEO的核心策略回到了这些基础但有效的事情上:
| 优化方向 | 具体措施 | 对标MIP的效果 |
|---|---|---|
| 页面加载速度 | CDN加速、图片WebP格式+懒加载、CSS/JS压缩合并、服务端开启Gzip/Brotli | 替代MIP缓存加速 |
| 移动适配 | 响应式设计或独立移动站+适配标注,百度搜索资源平台提交移动适配关系 | 替代MIP移动标识 |
| 结构化数据 | 添加JSON-LD结构化数据(Breadcrumb、Article、FAQ、Product等) | 替代MIP组件富展示 |
| URL规范化 | 统一使用HTTPS、规范Canonical标签、301处理重复URL | 提升收录效率 |
UC建站系统的百度推送集成方案
对于使用UC建站系统的用户,系统内置了百度推送管理中心,多站点推送一站式搞定:
填入Token后,新文章发布自动推送到百度,无需每次手动操作。支持设置推送延迟(发布后N分钟再推)
一键将全站历史文章批量推送给百度,自动分批次、控频率,避免超额度
记录每次推送的URL、时间、API返回结果,可视化展示推送成功率趋势
一个面板管理所有站点的Token和推送配置,批量操作,汇总推送报告
自动监控各站点当日剩余推送额度,智能分配推送队列,优先推送新发布的高价值页面
对接百度搜索资源平台数据,自动检测推送URL的收录状态,未收录的自动重新推送
最后说几句
百度MIP已经彻底成为历史,但URL主动推送这件事不仅没过时,反而比MIP时代更重要了——因为现在没有MIP缓存帮你加速收录,全靠推送效率。三种推送方式里,API推送是主力,JS自动推送是辅助,Sitemap是兜底。三个通道全开,再加上页面本身的内容质量和加载速度过关,收录就不会是问题。
如果你之前一直在用MIP相关的老工具老教程,建议尽快切换到百度搜索资源平台的标准推送方案。Token在后台就能拿到,PHP或Python脚本几行代码就能集成到发布流程里,配置一次之后就是全自动的了。
