用秒哒做了个拍照识餐小程序,上线两周踩的 4 个坑

0 阅读3分钟

智能识餐是一款微信小程序,通过拍照或上传食物图片,自动分析热量、宏量营养素及维生素,提供个性化饮食搭配建议,并支持历史记录追踪。这篇不聊功能,只复盘上线后踩的坑,都是查了官方文档才弄明白的。

坑 1:搜一搜「页面收录数 0」,不是缺 sitemap.json

后台「推广与搜索 → 页面内容接入」里页面收录开关是开的,接入概况却显示总页面收录数 0。我一开始以为要补 sitemap.json,查官方才发现搞反了:

  • 官方原文:没有 sitemap.json 则默认所有页面都允许被索引;{"action":"allow","page":"*"} 是优先级最低的默认规则;
  • 后台那个模块正式名称叫「页面屏蔽能力(sitemap 设置)」,用途是排除不便于收录的页面,不是开启收录;
  • 微信爬虫 UA 是 mpcrawler、场景值 1129,官方明确「若爬虫发现的页面数据和真实用户呈现不一致,该页面将不会进入索引」。

真实原因其实是两个:新版本刚发布,收录数据还没更新到当天;以及动态渲染页面在爬虫下能否读到静态内容。秒哒 AI 顺带查证了 RouteGuard 允许游客浏览、未登录不跳登录页,首页本来就会渲染。我在首页底部补了一个常驻静态「关于智能识餐」区块,把官方简介原文和三个使用场景写死在 JSX 里。

坑 2:Taro 工程的 sitemap.json 要放编译产物目录

秒哒生成的微信小程序是 Taro + React + TypeScript 工程,project.config.json 里 "miniprogramRoot": "dist/"。所以 sitemap.json 必须出现在 dist/ 根目录,放源码根不会被开发者工具读到。常规做法是 src/sitemap.json + Taro 构建配置 copy.patterns 加一条:

copy: {
  patterns: [{ from: 'src/sitemap.json', to: 'dist/sitemap.json' }],
  options: {}
}

文件大小上限 5120 个 UTF8 字符,app.json 的 sitemapLocation 默认指向 sitemap.json。

坑 3:第三方代开发的提审 quota 不是你自己的

用第三方平台代开发时,正式版提审受服务商额度约束(面板会显示剩余次数),而普通小程序走 MP 后台提交审核没有次数限制。这个 quota 属于微信开放平台第三方平台账号,可在「小程序服务商助手」(需 open 账号管理员)或用 wxa/queryquota 接口查。所以改完代码别反复点发布,先看额度,免得浪费次数。

坑 4:分享类托管域名的静态资源对爬虫是 403

顺手做了个推广落地页,带 FAQ 和 Schema.org JSON-LD,还放了 llms.txt。结果一测:不带 sharecode 参数访问一律 403,连 Baiduspider/2.0 UA 也一样。公网爬虫根本抓不到,SEO/GEO 基建等于白做。教训是:判断静态站发布是否健康,别只看首页 200,要分别测「无参数 + 爬虫 UA」。现在这个页面只当私域分享物料,公域可索引内容放在秒哒社区和应用广场。

数据

微信后台 2026-11-14:累计用户 218、打开次数 115、访问人数 56、新增用户 45,日环比分别 +26.01%/+43.75%/+33.33%/+40.62%。对比 11-12 的 141/51/29/25,还很小,但方向是对的。

小结

无代码平台把「做出来」的门槛打没了,剩下的坑全在「发布、收录、被看见」这一段。先把官方规则读一遍,比瞎试省很多时间。

(识别与估算结果仅供参考,不构成医疗或营养治疗建议。)