Hugo 站长必看:百度 API 推送显示“成功0条”?原来是 localhost 在捣鬼!

作为 科技刺猬 (Keji Ciwei) 的博主,记录这个“踩坑与填坑”的过程非常有价值,不仅能复盘技术,还能为其他 Hugo 站长提供实战参考。
08yt
Hugo 站长必看:百度 API 推送显示“成功0条”?原来是 localhost 在捣鬼!
问题背景:最近在折腾我的垂直站 霍山铁皮枫斗网 时,为了加快百度收录,我写了一个 Python 脚本,利用 Hugo 生成的 sitemap.xml 自动向百度站长平台推送链接。 然而,脚本运行后,出现了一个诡异的现象: 终端显示 API 接口调用成功,剩余配额扣除了,但“成功推送条数”却是 0。 🚀 百度反馈结果: 🎉 成功推送: 0 条 📅 今日剩余配额: 10 明明我的 Sitemap 里有 90 多个链接,为什么百度一条都不收? 🔍 排查过程 我在脚本里加了一行 print 代码,打印出脚本到底抓取了什么链接。 真相瞬间大白: 👀 正在尝试推送的链接示例: http://localhost:1313/science/efficacy-liver-immunity/ 原来,我推给百度的全是 localhost 的本地预览链接! 百度蜘蛛肯定访问不了我家里的电脑,自然全部拒收。 💡 原因分析 这是一个 Hugo 初学者(包括我)非常容易忽视的机制: 当你运行 hugo server 时: Hugo 会在内存中生成网站,为了方便本地调试,它会强制把 sitemap.xml 里的域名替换为 http://localhost:1313。 当你只运行 hugo 时: Hugo 才会读取配置文件 hugo.toml 中的 baseURL(例如 https://huoshantiepifengdou.com/),生成真正的生产环境文件。 我之前的操作习惯是开着 hugo server 预览,然后直接运行 Python 脚本,读取到的自然是“假”的 Sitemap。 ✅ 解决方案 第一步:修正 Hugo 配置 确保 hugo.toml 中的 baseURL 是带 HTTPS 且 以斜杠结尾 的标准格式: baseURL = "[https://huoshantiepifengdou.com/](https://huoshantiepifengdou.com/)" 第二步:正确的构建流程 在运行推送脚本前,必须先生成正式文件(最好先清理一下缓存): # 1. 清理旧文件 rm -rf public # 2. 生成正式环境文件 (千万别加 server 参数) hugo # 3. 运行 Python 推送脚本 python baidu_push.py 附:优化后的 Python 推送脚…