Moodji 文档中心
首页
下载App
  • 简体中文
  • 繁體中文
  • English
  • 日本語
  • 한국어
首页
下载App
  • 简体中文
  • 繁體中文
  • English
  • 日本語
  • 한국어

moodji.net 运营报告 — 2026-08-15 (run 13)

取数:GSC(90d/28d)· Vercel Analytics + Firewall + Deployments · Bing AI Performance/URL 检查 · Keywords Everywhere · 仓库 · 线上站点。 上轮:2026-08-10 (run 12)。间隔仅 5 天,多数 90d 指标属同一窗口内的小步移动,读 delta 不读绝对值。


0. 总览数字

GSC 90d:点击 942 / 曝光 29,800 / CTR 3.2% / 平均排名 10.8 对比 07-12 baseline(339 / 13,700 / 2.5% / 9.6):点击 2.8×、曝光 2.2×、CTR +0.7pt。排名 9.6→10.8 变差,是新增大量低位曝光摊薄分母所致,非老页下滑。

Vercel 7d(Aug 8–15):访客 836(+11%)/ PV 1,276(-2%)/ 跳出 84%(+5%)

渠道(可辨识引荐 428):google 280 + google.com.hk 11 = 291(68%) · bing 44+23 = 67(16%) · naver 46+12 = 58(14%) · tw.yahoo 12(3%) → Google 份额 run7 39% → run9 55% → 本轮 68%,连续三轮回升;非 Google 仍占 ~1/3。

国家:CN 36%(含自测污染)· KR 22% · JP 13% · TW 13% · US 6%


1. 🔴 P0 发现:线上 sitemap 由一个「以为已废弃」的硬编码脚本生成,漏了 15 个 URL

事实链

检查结果
线上 sitemap.xml437 个 URL,含 157 个 /docs/,apple-watch 0 个、/app/ 0 个
页面是否活着/apple-watch/body-battery/ 及 5 语言变体全部 200 + 正确渲染
最新生产部署4d4885d (Aug 10) Ready —— 含专题页的构建确实上线了
Bing 索引/apple-watch/body-battery/ 未发现(上线 5 天)
/__sitemap__/en.xml404 —— Nuxt sitemap 模块的产物根本没被服务

根因

scripts/build/build_nuxt.sh 里:

if [ -f "$nuxt_output_dir/sitemap.xml" ]; then  cp ...
else  generate_sitemap()   # → web/scripts/generate-sitemap.esm.js(硬编码路由表)
fi

NITRO_PRESET=static 下 @nuxtjs/sitemap 不产出根 sitemap.xml → fallback 每次都触发,线上 sitemap 一直由 legacy 脚本生成。线上那 157 个 /docs/ 就是铁证 —— 只有 legacy 脚本才有 INCLUDE_DOCS 扫描逻辑,Nuxt 模块完全不知道 VuePress 文档的存在。

该脚本的路由表是手写的:tools/articles 从 JSON 遍历,其余靠人记得添加。habits 当初被显式加了(第 316 行),/app/ 和 /apple-watch/* 从未加过。

影响

漏掉 3 个路由族 × 5 语言 = 15 个 URL:

  • /apple-watch/ + /apple-watch/body-battery/ — run 12 的旗舰页,站内唯一直接指向 App 安装的入口,上线 5 天零发现渠道(仅首页一条内链)
  • /app/ — Moodji App 产品详情页,自建站起从未进过 sitemap

GSC 实测(本轮用 URL 检查逐条打)

URLGoogle 判定
/app/✅ 网页已编入索引
/ko/app/❌ 未编入索引 — Google 无法识别此网址
/apple-watch/body-battery/❌ 未编入索引 — Google 无法识别此网址
/ko/apple-watch/body-battery/❌ 未编入索引;发现面板:「未检测到任何引荐站点地图」+「未检测到引荐来源网页」

→ 新结论:内链发现只对默认 locale 生效。 EN /app/ 靠首页内链被 Google 自己爬到了,但同样有内链的 /ko/app/ 没有。对非默认 locale 页面来说,不在 sitemap ≈ 没有发现路径 —— 这把 sitemap 缺口的严重性从「新页慢一点」抬到「4/5 的语言版本可能永远进不去」。

⚠️ 自查记录:我第一次读这几条时把静态文案「仅已编入索引的网址有增强选项」当成了判定结果,误报两条为「已编入索引」,核对面板回显 URL 后才发现。这正是本节批评 run 12 的同一种假绿,当场自查抓住并更正。

第二重锁:IndexNow 也漏

scripts/indexnow-ping.mjs 的 collectDiffUrls() 只匹配两类文件:

/^web\/data\/([^/]+)\/toolsData\.json$/     // → /tools/<slug>/
/^web\/data\/([^/]+)\/articles\.json$/      // → /article/<id>/

新建的是 .vue 路由页(web/pages/apple-watch/body-battery.vue),两个正则都不匹配 → 本次变更 0 个内容 URL → 从不推送。且它的 resolveUrl 依赖 sitemap 产物查规范 URL,sitemap 漏了它就更查不到 —— 两个缺陷互相锁死。

共同形态:非工具/非文章的新路由页 = 搜索引擎不可见。 habits Hub 当初只是因为有人手工补了硬编码才幸免。

🔴 run 12 的验证是假绿

run 12 日志写「5 个子 sitemap 全部收录」—— 验的是本地 dist/__sitemap__/*.xml(Nuxt 模块产物,确实包含 apple-watch),但那个产物线上 404、根本不被服务。

可复用教训:验证必须打到线上实际被服务的那个产物,不是本地构建目录里同名的东西。这与 run 12 自己记的「只跑 web build 覆盖不到 docs 的 vuepress build」是同一类错误 —— 同一个错误连续两轮换个马甲重演。


2. 簇级模型(天花板 × 捕获率 × 杠杆)

2.1 体脂/体成分(KR 现金牛)— 稳,不动

ko/body-fat 90d 276 点击 / 7,461 曝光 / 3.7% / pos 6.0(5 天 +27 点击)

  • 天花板:曝光反推 ~3.5k/月(KE 的 KR 国别量不可用)
  • 捕获率:~92 点击/月 ÷ 3.5k ≈ 2.6%(run7 为 1.7%,在改善)
  • 位置-CTR 基准:pos 6 → 基准 ~5%,实际 3.7%(低 26%)。run7 已判定为 SERP-feature 限制而非标题缺陷,本轮维持。
  • 主杠杆仍是位置前推(pos 6→3 ≈ 2.2×),非 CTR 微调。

2.2 JP 体成分(ja/ffmi)— 第二引擎,增速全站第一

90d 73 点击 / 3,255 曝光 / 2.2% / pos 8.6(5 天 +17 点击 / +802 曝光)

  • 位置-CTR 基准:pos 8.6 → ~2.5%,实际 2.2% = 达标。杠杆在位置不在标题(与 body-fat 同结论)。
  • 站内对照(ja/stress pos 4.2 → CTR 15.1%)推 pos~4 约 6–7×,推 pos6 约 2.5×。
  • ⚠️ 08-09 改标题的功劳判不了:CTR 2.3%→2.2% 几乎没动,涨的全是曝光/覆盖面。这更像自然爬坡而非标题在赢点击。 词级验收 08-30。

2.3 🟢 注意力 / schulte-table — 本轮最硬的新机会(三源交叉印证)

证据源读数
KE 全球量schulte table 40,500/月,competition 0.01
Bing AI 引用页zh/schulte-table 55 次(run 12 时仅 7 次,8 天约 7×)
Bing grounding query1到25找数字的专注力游戏 12次 100% share · 25个数字打乱的专注力训练 10次 83.33% · 舒尔特表测试 4次 100%
Vercel 真实流量zh-TW/schulte-table 36 访客 = 全站第 3 页
GSC不在 90d top-10 页(<21 点击/90d)→ Google 捕获率 <0.05%
  • 100% citation share 意味着这些问题上我们基本是唯一来源 —— 份额已无上行空间,增量只能来自提问量。
  • 渠道错配重演:AI 引 zh/,真实流量落 zh-TW/,Google 排的是 zh-TW/stroop。同一簇三条渠道命中三个不同 locale 页。
  • 诚实边界(下注前的阻塞项):本轮没拿到 schulte 页在 GSC 的曝光/位置(GSC 只渲染 top-10 行,rows-per-page 与 URL 过滤参数均不生效)→ 判不了是「Google 没判定我们相关」还是「位置太靠后」。这两种情况的对策完全相反,补到数据前不投入。

2.4 Vitals / blood-oxygen — 从「零数据」转正

  • ja/blood-oxygen 30 次 AI 引用;grounding 血中酸素濃度正常値一覧 10次 @10.53%
  • 天花板:blood oxygen level normal 22,200(拉丁词,可信);spo2 正常値 返 135,000 —— 疑似 KE 词根塌缩(与 ffmi 計算=40,500 同病),不可信,不引用
  • Google 捕获 ≈ 0。数据仍太薄,观察不动,但 config 里「尚无数据」的标注应更新。

2.5 心理簇 — 健康

ja/stress 61/403/15.1%/pos 4.2(CTR 远超 pos4 基准 ~9%);AI 引用 154 次居全站第一(+15)。PSS 词族 grounding 继续涨(pss ストレス尺度 36→42、perceived stress scale 12→18)。anxiety/depression/dass 仍未进 GSC top-10。

2.6 Apple Watch 专题页 — 词在季节性回落

KE 全球 apple watch body battery 2,400(comp 0.04),但趋势 3月 5,400 → 6/7月 880。run 11 记的 590 是 US 口径,量级口径需更正。→ 该页的接词确定性低于立项时的判断,别把它当高确定性赌注;它的主要价值仍是站内唯一的 App 安装入口。


3. 🔴 AI 引用(GEO)结构变化

总量:3 个月 682 次引用 / 日均被引用页面 6 个(run 11:07-18~08-07 为 521 次)→ 8 天新增 ~161,日均 ~20(此前 ~25),总量微降。

关键结构变化 —— 老词冻结、新词接棒:

Grounding Queryrun 11本轮Δ
stroop测试1081080
壓力知覺量表25250
腰高比18180
apple watch心情检测app15150
pss ストレス尺度3642+6
perceived stress scale1218+6
focus test—15新
1到25找数字的专注力游戏—12 (100%)新
血中酸素濃度正常値一覧—10新
25个数字打乱的专注力训练—10 (83%)新
舒尔特表测试—4 (100%)新

→ run 12 自我证伪的「stroop 引用份额已近上限」被进一步坐实:8 天零新增。增长完全来自 schulte / focus / blood-oxygen 三条新线。

被引用页 top(48 条,3 个月):ja/stress 154(+15)· zh/stroop 124(+6)· zh/schulte-table 55(新) · zh/ 首页 40 · zh-TW/stress 36 · ja/blood-oxygen 30(新) · zh/wellbeing 22 · EN/burnout 21 · EN/focus 15 · zh-TW/whtr 14 · zh-TW/adhd 14 · ja/exercise-intensity 13

语言分布(top 25):zh ~276 · ja ~217 · zh-TW ~73 · en ~52 · ko 0

✅ run 12 悬案结案:ko 的 AI 空白不是收录问题

run 12 留问「是 Copilot 韩语覆盖弱,还是我们的 ko 页检索不到」。本轮用 Bing URL 检查实测 ko/tools/body-fat-calculator/:

已成功编制索引 —— 该 URL 可以在必应上显示

→ ko 页在 Bing 索引内、完全可被检索。零引用的原因在 Copilot 韩语侧或韩语提问量,不在我们这边 → 不可控,不投入。 此项从待办移除。

副产品:Bing 同时报该页 缺少 Meta Language 标记 警告(1 处)。全站 5 语言均可一行补齐,成本近零,但对引用量有无影响完全未经验证 —— 列为低成本/低确定性备选,不作为本轮主张。


4. 转化漏斗 —— 首次可测(08-09 埋点上线后第一次读数)

事件访客总次数口径
tool_calculate18625022.2% 的站点访客真的算了一次
tool_cta_click13317.0% 的计算者点了下游 CTA
challenge_arrival59PK 链接落地
challenge_complete12
challenge_share14
  • ✅ 预测 #4(08-05,挂账两轮)判定成立:三个 PK 事件计数均 ≥1,埋点通道确认可用。但量极小(每周 4 次分享),PK 作为传播通道目前基本不成立,不加投。
  • 🔴 跳出率 84% 与 22.2% 真实使用率并存 → bounce 对工具站是坏指标(单页会话即计跳出,而用户在页内算完就走恰恰是成功)。此后参与度改用 tool_calculate 覆盖率,不再拿 bounce 说事。
  • ⚠️ run 11 埋点验收项只完成一半:「覆盖多少 slug」未取到 —— Vercel 事件属性下钻没打开。下轮补。

5. ✅ 警报解除:全站 403 是取数工具失效,不是事故

开局 curl 全站 403 + x-vercel-mitigated: challenge(含 robots.txt / sitemap.xml / *.vercel.app),Googlebot 与 bingbot UA 同样被挡。Vercel Firewall 面板实读:

项状态
Custom Rules0
Bot ProtectionOff / Inactive
Attack Mode未开启
IP Blocking / System Bypass无

→ 挑战来自 Vercel 平台自动 DDoS 系统缓解(过去 1 小时 DDoS Mitigation 151 次)。过去 1 小时:Allowed 541 / Denied 133 / Challenged 18 —— 绝大多数流量正常放行,curl 属于那 18 个。Firewall 的 Top User Agents 里 Googlebot 14 次在列,GSC 数据正常增长 → 爬虫无恙。

教训:curl 对 moodji.net 已永久失效(07-18 尚可用),此后线上复核一律走浏览器。危险之处在于 curl 拿回的 403 挑战页长得就像「页面挂了」,极易误判成事故 —— 本轮开局差点按 P0 事故写。


6. 可证伪预测(写死,含失败含义)

#验收日预测失败说明什么
108-25基线已实测(见 §1:4 条中仅 EN /app/ 已收录)。sitemap 修复 + 本轮 3 条催收录后,/ko/app/、/apple-watch/body-battery/、/ko/apple-watch/body-battery/ 至少 2 条转为「已编入索引」问题不在发现渠道,而在页面本身(质量/重复内容/薄内容判定)→ 需重审页面而非管线
208-30ja/ffmi pos ≤7.5 且「筋肉量」词族出现在 GSC 28d 查询表08-09 标题改动无效,ffmi 增长纯自然爬坡 → 停止把该 JP 标题模式复制到其他 locale
308-29补到 GSC 页面级数据后,zh/ 或 zh-TW/schulte-table 90d 曝光 ≥300若 <100,schulte 需求确实不在 Google(只在 AI/直接)→ Google 侧永久不投入
408-22tool_cta_click / tool_calculate 比值 ≥10%(本轮 31/250 = 12.4%)骤降则本轮读数是埋点上线首周的新鲜度假象,漏斗基线要重设

7. 行动计划 P0→P4

P0 收录/健康

  • ✅ 已执行:IndexNow 手工补推 10 个 apple-watch URL(5 locale × hub/专题页),HTTP 200 受理
  • ✅ 已执行:GSC「请求编入索引」3 个未收录 URL(/ko/app/、/apple-watch/body-battery/、/ko/apple-watch/body-battery/),均返回「已将网址添加到优先抓取队列」,未触发配额上限
  • 🔧 已改好待批(需 build + push):web/scripts/generate-sitemap.esm.js 补 /app/ + /apple-watch/ + /apple-watch/body-battery/ × 5 locale。本地实跑验证通过:15 个新 URL 全部正确生成(不含 docs 时 295 → 生产约 452)
  • 📋 待批(代码改动):scripts/indexnow-ping.mjs 增加 web/pages/**/*.vue 变更检测,堵住「新路由页从不 ping」的结构盲区

P0 旁支:GSC「未找到 (404)」验证失败(本轮撞见,未列入行动)

GSC 网页索引编制报告有一条 未找到 (404) 验证失败(开始 6/24、失败 7/1,99 待定 / 33 失败)。抽样实测两类:

  • /en/tools/tdee-calculator/ → 已 301 到 /tools/tdee-calculator/,正常 —— GSC 那批是 6 月抓取的旧数据,vercel.json 的 /en/:path(.*) 重定向已生效
  • /docs/en/zh-TW/guide/handbook/data_n_status.html → 真 404,locale 嵌套 locale 的畸形路径(疑似 docs 语言切换器拼接 bug)

→ 前者已自愈,后者属 docs 站。用户 08-10 已定「docs 不再投入」,故不立项,仅记录。危害有限(404 是正常状态码,不传递负信号)。

P1 CTR —— 本轮为空,且这是数据结论不是遗漏

主要页面 CTR 对照位置基准全部达标或超标:ja/stress 15.1%@pos4.2 · zh-TW/stroop 19.4%@6.2 · ja/focus 12.4%@6.5 · 首页 6.4%@5.1 · EN steps-goal 3.0%@9.9 · EN focus 1.7%@13.6 · ja/ffmi 2.2%@8.6。唯一低于基准的 ko/body-fat(3.7%@6.0)已判定受 SERP feature 压制。标题层面全站无可做之事。

P2 市场/流量

  • Google 份额回升至 68%,KR 仍是 Google 现金牛
  • ko 的 AI 空白结案为不可控,不投入(§3)

P3 内容/关键词

  • schulte 簇是唯一有三源交叉印证的机会,但被预测 #3 阻塞 —— 补到 GSC 页面级数据前不下注
  • 不新建工具(run 10 结论仍有效:新工具量递减)

P4 监控

08-22 埋点比值 · 08-25 收录 · 08-29 schulte 曝光 · 08-30 ffmi 词族 · 每轮 Bing AI Performance


8. 数据缺口(诚实标注)

缺口影响
GSC 只渲染 top-10 行;rows-per-page 点击与 URL 过滤参数(&query=)均不生效,chips 显示 查询:undefinedschulte / blood-oxygen / apple-watch 的页面级与词级数据全部未取到 —— 直接阻塞预测 #3
Vercel 事件属性下钻未打开tool_calculate 的 slug 覆盖度未知,run 11 验收项只完成一半
KE 的 CJK / JP 量再次复现不可信(舒尔特/血氧中日词返 0;spo2 正常値 疑似词根塌缩返 135,000)CJK 天花板一律用 GSC 曝光反推,不引 KE
curl 对本站永久失效(Vercel 自动缓解)线上复核必须走浏览器
Vercel Analytics CN 36% 含自测污染;7 天样本国家占比方向可信,绝对值别当真
GSC URL 检查深链 404,未取到 Google 侧对新页的收录判定预测 #1 的基线未建立,验收时只能看结果不能看变化量
browser-harness 在 GSC/Bing 重型 SPA 上多次崩连接(no close frame received),每次断连 Chrome 重弹授权取数中断 3 次,与 run 8 记录同源