本文目录导读:

百度自动推送代码(通常指 自动推送JS 或 百度站长平台的自动收录工具)是目前最简单、最主流的百度收录提交方式,它通过在页面加载时自动将当前URL推送给百度,实现“页面被访问即被提交”。
以下是正确安装与配置的详细步骤及注意事项:
核心原理
用户访问你的网站 -> 浏览器加载这段JS代码 -> 代码执行,把当前页面URL发送给百度服务器 -> 百度收到URL并加入抓取队列。
第一步:获取代码
- 登录百度站长平台(现称“百度搜索资源平台”):ziyuan.baidu.com
- 验证站点:确保你的网站已经过“文件验证”或“CNAME验证”或“HTML标签验证”。
- 找到代码:
- 进入站点后台 -> 左侧菜单栏找到 “资源提交” -> “自动提交”。
- 在“自动推送”模块下,你会看到一段类似下面的 JS 代码:
<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>
第二步:正确安装(关键位置)
错误做法:只放在首页。
正确做法:必须放在网站所有页面的公共模板中(如:footer.html、header.html 或 base.html)。
不同平台的安装方法:
-
传统多页网站(PHP/ASP.NET/JSP):
- 找到公共头文件或底文件(
include/footer.php),在</body>标签关闭之前粘贴上述代码。 - 位置要求:建议放在
</body>前,不要放在<head>里(虽然技术上可以,但放在底部不影响页面加载,且百度推荐放在body闭合前)。
- 找到公共头文件或底文件(
-
CMS系统(WordPress、织梦、帝国等):
- WordPress:进入后台 -> 外观 -> 主题文件编辑器 -> 找到
footer.php文件,在</body>之前粘贴。 - 织梦DedecCMS:找到
/templets/你的模板名/footer.htm,或在后台“模板管理”中编辑,同样在</body>前粘贴。 - 如果使用插件(如“All in One SEO”、“Yoast SEO”等),很多自带“自定义脚本”功能,可以直接在插件设置中添加。
- WordPress:进入后台 -> 外观 -> 主题文件编辑器 -> 找到
-
单页应用 / Vue / React:
- 原生写法:放在
index.html的</body>之前。 - 框架方法:在 Vue 中,放在
App.vue的mounted生命周期里动态插入;在 React 中,放在index.js或根组件的componentDidMount或useEffect中。 - 关键点:确保每次路由切换时都能触发推送,可以使用
vue-router的afterEach钩子或react-router的onUpdate回调,手动重新执行代码。
- 原生写法:放在
第三步:验证是否生效(重要)
安装完成后,不要只看首页。打开一个内页(如文章页、产品页):
- 检查控制台(F12 -> Console):
- 如果看到
百度自动推送: xxx或类似带push.js的网络请求信息,通常说明生效。
- 如果看到
- 检查Network(F12 -> Network):
- 过滤
push,如果看到push.js文件被加载,且状态为200,说明代码正常加载。
- 过滤
- 查看百度站长后台:
- 进入“资源提交 -> 自动提交”页面。
- 查看 “自动推送数据” 曲线,如果安装正确,1-2天内会开始出现“提交量”数据。
常见错误与排查
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 后台提交量为0 | 代码只放在首页,没放内页模板 | 将代码复制到所有页面的公共模板中 |
| 代码无法加载 | 网站使用了HTTPS,但代码中的push.js是HTTP地址 |
确保代码中包含 if(curProtocol === 'https') 的判断逻辑(官方代码自动处理) |
| 控制台提示404 | 你的服务器或CDN没允许加载zz.bdstatic.com |
在服务器安全组或CDN白名单中添加 zz.bdstatic.com 和 push.zhanzhang.baidu.com |
| 单页应用无效 | 未在路由变化后重新执行推送 | 使用 Vue Router 的 afterEach 或 React Router 的 useEffect 手动调用 (new Image()).src = '//api.share.baidu.com/s.gif?r='+encodeURIComponent(document.referrer)+'&l='+encodeURIComponent(window.location.href) 或直接重复插入那段script |
| 已安装但收录慢 | 自动推送提交的是“URL”,百度不一定立即抓取,只是进入队列 | 耐心等待(通常1-2周),同时检查网站内容质量、内链结构、robots.txt是否屏蔽 |
补充建议(配合使用效果更好)
- 不要同时使用多个推送插件或重复代码:同一页面插入多次自动推送代码可能导致数据异常。
- 搭配Sitemap提交:在百度站长后台,同时提交 Sitemap(站点地图),这是最稳定的主动提交方式。
- 主动推送API(高级):如果你有开发能力,可以在发布新文章时,使用百度主动推送API(接口形式,非JS),即时性比自动推送高得多。
把自动推送代码放在网站所有页面的 </body> 标签前(而不是只放首页),然后打开一个内页验证Network是否有push.js请求,最后去百度站长后台查看提交量曲线。