[{"data":1,"prerenderedAt":574},["ShallowReactive",2],{"$fy3K-qL5giD65KDm2JcE7PMpCqzybdbkb__YRC7YSuTA":3,"$fc3Wdf5mibs6awOtfPkoiwVbv1rH8nV0KqeQLWZrtTwI":56},{"title":4,"description":5,"date":6,"category":7,"readTime":8,"tags":9,"content":20,"_excerpt":21,"_faqs":22,"id":53,"_path":54,"_format":55},"沙盒期 GitHub Pages 提速收录:用 Google Indexing API 24 小时强制收录新文章","新站卡在 Google 沙盒期、提交文章半个月不收录怎么办？本文用真实经历演示如何用 Google Indexing API + Node.js 一键脚本批量推送 sitemap 文章 URL，走官方加急通道 24 小时内让 Googlebot 抓取收录，含 GCP 建项目到 Service Account 授权的完整链路，适用静态博客与低权重新站。","2026-07-05","工具教程","10 分钟",[10,11,12,13,14,15,16,17,18,19],"Google Indexing API","GitHub Pages","沙盒期","强制收录","sitemap","SEO","Google Search Console","Service Account","googleapis","站长工具","\u003Ch1>沙盒期 GitHub Pages 提速收录:用 Google Indexing API 24 小时强制收录新文章\u003C\u002Fh1>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>核心结论\u003C\u002Fstrong>:GitHub Pages 新站在 Google 沙盒期内,在 Search Console 点&quot;请求编入索引&quot;往往要排队半个月才轮得到。\u003Cstrong>用 Google 官方给新闻站用的 Indexing API,配合 Node.js 一键脚本批量推送 sitemap 中的所有文章 URL,可以直接走&quot;特快加急通道&quot;,24 小时内强制 Googlebot 来抓取,绕过域名低信任度限制\u003C\u002Fstrong>。前提条件:你有一个 GCP 项目 + 一个 Service Account 凭证(JSON)、把该 Service Account 加为 Search Console 站点所有者。本文给出从 GCP 申请到 Node.js 脚本跑通、再到 sitemap 自动同步增量推送的完整链路,\u003Cstrong>适用所有静态博客、独立开发站、刚上线的低权重新站\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>3 分钟摘要\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>沙盒期 = Google 对新域名\u002F低权重域名的&quot;观察期&quot;,普通收录通道排队要 2-4 周\u003C\u002Fli>\n\u003Cli>Indexing API 是 Google 官方给新闻站用的快速收录接口,\u003Cstrong>任何类型站点都能用\u003C\u002Fstrong>(Google 文档明确说明)\u003C\u002Fli>\n\u003Cli>5 步走通:GCP 建项目 → 开 Indexing API → 建 Service Account → Search Console 授权 → Node.js 脚本批量推送\u003C\u002Fli>\n\u003Cli>配合 \u003Ccode>sitemap.xml\u003C\u002Fcode> 自动同步,只推送&quot;新增\u002F修改过&quot;的 URL,\u003Cstrong>一天 200 次的 publish 配额不浪费\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>实测新站文章 24 小时内出现在 Google 搜索结果,沙盒期直接被 Indexing API 绕过\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>事故背景\u003C\u002Fstrong>:个人博客 \u003Ca href=\"https:\u002F\u002Fapppss.com\">apppss.com\u003C\u002Fa> 部署到 GitHub Pages 第一个月,在 Google Search Console 提交了好几篇技术文章,看着&quot;已发现 → 已抓取 → 已编入索引&quot;卡在第一步两周没动;手动点&quot;请求编入索引&quot;也被排到半个月后。折腾过主动外链(reddit\u002FV2EX\u002F掘金)、sitemap 重新提交、robots.txt 调整,效果都一般。\u003Cstrong>直到用 Indexing API 把所有文章一次性 publish 过去,24 小时内全部出现在搜索结果\u003C\u002Fstrong>。本文把这条最快路径完整记录下来。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>一、问题背景:为什么 GitHub Pages 新站会被&quot;沙盒&quot;\u003C\u002Fh2>\n\u003Ch3>1.1 沙盒期的真实表现\u003C\u002Fh3>\n\u003Cp>新域名上线 GitHub Pages 后 1-3 个月,Google 搜索表现通常是这样:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>阶段\u003C\u002Fth>\n\u003Cth>现象\u003C\u002Fth>\n\u003Cth>耗时\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Cstrong>发现期\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>Search Console 显示&quot;已发现&quot;,但 Googlebot 不来抓\u003C\u002Ftd>\n\u003Ctd>1-2 周\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>抓取期\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>抓了,但只抓首页、不抓内页\u003C\u002Ftd>\n\u003Ctd>1-3 周\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>索引期\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>抓了内页,但搜索结果查不到\u003C\u002Ftd>\n\u003Ctd>2-4 周\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>排名期\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>终于有收录,但排名在第 5 页之后\u003C\u002Ftd>\n\u003Ctd>不定\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>手动点&quot;请求编入索引&quot;在沙盒期基本无效\u003C\u002Fstrong> — Google 把它降级为低优先级,排队很长。\u003C\u002Fp>\n\u003Ch3>1.2 沙盒期的根因\u003C\u002Fh3>\n\u003Cp>Google 对\u003Cstrong>新域名 + 低权重 + 大量新内容\u003C\u002Fstrong>的站点有天然的&quot;观察期&quot;:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>域名年龄 &lt; 6 个月 → 信任度低\u003C\u002Fli>\n\u003Cli>外链少 → 抓取预算(Crawl Budget)被分得很低\u003C\u002Fli>\n\u003Cli>内容质量未验证 → 索引优先级低\u003C\u002Fli>\n\u003Cli>主机 IP(尤其是 GitHub Pages 共享 IP) → 被批量识别为&quot;低质量站&quot;\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>常规 SEO 优化(优质内容、外链、sitemap)对沙盒期帮助有限,Google 不会因为你有 sitemap 就破例加速。\u003Cstrong>真正能绕过沙盒期的,只有 Google 官方的&quot;特快通道&quot; — Indexing API\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Ch3>1.3 三个常见的&quot;伪解法&quot;\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>伪解法\u003C\u002Fth>\n\u003Cth>实际效果\u003C\u002Fth>\n\u003Cth>为什么没用\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>在 GSC 反复点&quot;请求编入索引&quot;\u003C\u002Ftd>\n\u003Ctd>队列被合并,不加速\u003C\u002Ftd>\n\u003Ctd>沙盒期被降权,无法插队\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>重新提交 sitemap.xml\u003C\u002Ftd>\n\u003Ctd>GSC 显示&quot;已处理&quot;,但索引不动\u003C\u002Ftd>\n\u003Ctd>抓取预算没增加\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>各大平台发外链引流\u003C\u002Ftd>\n\u003Ctd>带来真实流量,但不加速索引\u003C\u002Ftd>\n\u003Ctd>Googlebot 抓取优先级不变\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>\u003Cstrong>只有 Indexing API 能直接要求 Googlebot 24 小时内来抓\u003C\u002Fstrong>。下面开始走通完整流程。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>二、原理:Indexing API 是什么\u003C\u002Fh2>\n\u003Ch3>2.1 一句话定义\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Indexing API\u003C\u002Fstrong> 是 Google 官方在 2018 年开放的接口,最初给新闻站点(&quot;JobPosting&quot; 和 &quot;BroadcastEvent&quot; 结构化数据)用来\u003Cstrong>秒级推送新内容到 Google 索引\u003C\u002Fstrong>。\u003Cstrong>2024 年后 Google 文档明确:任何类型的网站都可以用,不再局限于新闻站\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Ch3>2.2 与&quot;请求编入索引&quot;的区别\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>维度\u003C\u002Fth>\n\u003Cth>Search Console 请求编入索引\u003C\u002Fth>\n\u003Cth>Indexing API\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>配额\u003C\u002Ftd>\n\u003Ctd>每天 5-10 次(隐式)\u003C\u002Ftd>\n\u003Ctd>每天 200 次 publish\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>优先级\u003C\u002Ftd>\n\u003Ctd>普通队列\u003C\u002Ftd>\n\u003Ctd>特快通道(24h)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>调用方\u003C\u002Ftd>\n\u003Ctd>人工(网页点)\u003C\u002Ftd>\n\u003Ctd>程序化(脚本批量)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>适用对象\u003C\u002Ftd>\n\u003Ctd>单个 URL\u003C\u002Ftd>\n\u003Ctd>任何 URL,推荐 sitemap 批量\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>鉴权\u003C\u002Ftd>\n\u003Ctd>GSC 登录态\u003C\u002Ftd>\n\u003Ctd>Service Account JSON\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch3>2.3 API 接口规范\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>端点\u003C\u002Fstrong>:\u003Ccode>https:\u002F\u002Findexing.googleapis.com\u002Fv3\u002FurlNotifications:publish\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>请求体\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-json\">{\n  &quot;url&quot;: &quot;https:\u002F\u002Fapppss.com\u002Fwriting\u002Fxxx\u002F&quot;,\n  &quot;type&quot;: &quot;URL_UPDATED&quot;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>type 字段说明\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>URL_UPDATED\u003C\u002Fcode>:新增或修改(强推,本文使用)\u003C\u002Fli>\n\u003Cli>\u003Ccode>URL_DELETED\u003C\u002Fcode>:已删除(从索引移除)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>响应\u003C\u002Fstrong>:HTTP 200 + \u003Ccode>urlNotificationMetadata.latestUpdate.notifyTime\u003C\u002Fcode>(Google 登记时间)。\u003C\u002Fp>\n\u003Ch3>2.4 配额与限制\u003C\u002Fh3>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>限制项\u003C\u002Fth>\n\u003Cth>数值\u003C\u002Fth>\n\u003Cth>备注\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>每天 publish 配额\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>200 次\u002FService Account\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>超出返回 429\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>QPS(每秒请求)\u003C\u002Ftd>\n\u003Ctd>建议 ≤ 1\u003C\u002Ftd>\n\u003Ctd>太快会被限流\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>URL 必须是公开可访问\u003C\u002Ftd>\n\u003Ctd>是\u003C\u002Ftd>\n\u003Ctd>HTTP 200 才有效\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>沙盒期新站能用吗?\u003C\u002Ftd>\n\u003Ctd>\u003Cstrong>可以,且必须\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>沙盒期绕过的核心手段\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>个人博客能用吗?\u003C\u002Ftd>\n\u003Ctd>可以\u003C\u002Ftd>\n\u003Ctd>Google 文档明确&quot;任何类型&quot;\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Chr>\n\u003Ch2>三、前置准备:5 步搞定 GCP + Service Account\u003C\u002Fh2>\n\u003Ch3>第一步:创建 GCP 项目 + 启用 Indexing API\u003C\u002Fh3>\n\u003Col>\n\u003Cli>打开 \u003Ca href=\"https:\u002F\u002Fconsole.cloud.google.com\u002F\">Google Cloud Console\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>顶部下拉 → \u003Cstrong>新建项目\u003C\u002Fstrong> → 命名如 \u003Ccode>blog-indexer\u003C\u002Fcode> → 创建\u003C\u002Fli>\n\u003Cli>左侧菜单 → \u003Cstrong>APIs &amp; Services\u003C\u002Fstrong> → \u003Cstrong>Library\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>搜索 \u003Ccode>Indexing API\u003C\u002Fcode> → 点击 → \u003Cstrong>Enable\u003C\u002Fstrong>(启用)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cblockquote>\n\u003Cp>⚠️ \u003Cstrong>注意\u003C\u002Fstrong>:Indexing API 不在 Library 顶部,需要搜索。启用后等 1-2 分钟生效。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>第二步:创建 Service Account 并下载 JSON\u003C\u002Fh3>\n\u003Col>\n\u003Cli>左侧菜单 → \u003Cstrong>IAM &amp; Admin\u003C\u002Fstrong> → \u003Cstrong>Service Accounts\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>顶部 \u003Cstrong>Create Service Account\u003C\u002Fstrong>:\u003Cul>\n\u003Cli>Service account name:\u003Ccode>blog-indexer\u003C\u002Fcode>(任意)\u003C\u002Fli>\n\u003Cli>Service account ID:自动生成\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Grant this service account access to project\u003C\u002Fstrong>:跳过(选 No role)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Grant users access to this service account\u003C\u002Fstrong>:跳过\u003C\u002Fli>\n\u003Cli>点击刚创建的 Service Account → \u003Cstrong>Keys\u003C\u002Fstrong> 标签 → \u003Cstrong>Add Key\u003C\u002Fstrong> → \u003Cstrong>Create new key\u003C\u002Fstrong> → 选 \u003Cstrong>JSON\u003C\u002Fstrong> → 下载\u003C\u002Fli>\n\u003Cli>\u003Cstrong>重命名\u003C\u002Fstrong> 为 \u003Ccode>service-account.json\u003C\u002Fcode>,放到项目里的 \u003Ccode>blogseo\u002F\u003C\u002Fcode> 目录(请勿提交到 Git)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>第三步:把 Service Account 加为 Search Console 所有者\u003C\u002Fh3>\n\u003Col>\n\u003Cli>打开 \u003Ca href=\"https:\u002F\u002Fsearch.google.com\u002Fsearch-console\">Google Search Console\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>选择你的站点资源(\u003Ccode>apppss.com\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>左侧 \u003Cstrong>Settings\u003C\u002Fstrong> → \u003Cstrong>Users and permissions\u003C\u002Fstrong> → \u003Cstrong>Add user\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>把 Service Account 的邮箱填进去(在 \u003Ccode>service-account.json\u003C\u002Fcode> 的 \u003Ccode>client_email\u003C\u002Fcode> 字段,形如 \u003Ccode>blog-indexer@xxx.iam.gserviceaccount.com\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>权限选 \u003Cstrong>Owner\u003C\u002Fstrong>(Full)\u003C\u002Fli>\n\u003Cli>等 1-2 分钟生效\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cblockquote>\n\u003Cp>📌 \u003Cstrong>这一步最常被忽略\u003C\u002Fstrong> — 没在 GSC 加 Service Account,API 调用会返回 403 \u003Ccode>Permission denied\u003C\u002Fcode>。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3>第四步:验证 API 启用成功\u003C\u002Fh3>\n\u003Cp>在本地跑一个最小化测试:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">mkdir -p blogseo\ncd blogseo\nnpm init -y\nnpm install googleapis\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>创建 \u003Ccode>test.js\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-javascript\">import { google } from &#39;googleapis&#39;;\nimport { readFileSync } from &#39;fs&#39;;\n\nconst auth = new google.auth.GoogleAuth({\n  keyFile: &#39;.\u002Fservice-account.json&#39;,\n  scopes: [&#39;https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Findexing&#39;],\n});\n\nconst indexing = google.indexing({ version: &#39;v3&#39;, auth: await auth.getClient() });\n\nconst res = await indexing.urlNotifications.publish({\n  requestBody: {\n    url: &#39;https:\u002F\u002Fapppss.com\u002F&#39;,\n    type: &#39;URL_UPDATED&#39;,\n  },\n});\nconsole.log(&#39;状态:&#39;, res.status, &#39;时间:&#39;, res.data.urlNotificationMetadata?.latestUpdate?.notifyTime);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>跑 \u003Ccode>node test.js\u003C\u002Fcode>,看到 状态: 200 即配置成功。\u003C\u002Fp>\n\u003Ch3>第五步:把 service-account.json 加入 .gitignore\u003C\u002Fh3>\n\u003Cp>编辑项目根目录的 \u003Ccode>.gitignore\u003C\u002Fcode>,追加:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-gitignore\"># Google Service Account 凭证(请勿提交)\nblogseo\u002Fservice-account.json\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>并把 \u003Ccode>blogseo\u002Fservice-account.json\u003C\u002Fcode> 从 Git 历史中清理(用 \u003Ccode>git rm --cached\u003C\u002Fcode>)。\u003C\u002Fp>\n\u003Chr>\n\u003Ch2>四、核心代码:从 sitemap 自动同步增量推送\u003C\u002Fh2>\n\u003Ch3>4.1 设计思路\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>数据源\u003C\u002Fstrong>:线上 \u003Ccode>https:\u002F\u002Fapppss.com\u002Fsitemap.xml\u003C\u002Fcode>(部署后由 Nuxt 自动生成)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>状态文件\u003C\u002Fstrong>:\u003Ccode>blogseo\u002Fstate.json\u003C\u002Fcode>,记录每个 URL 上次推送的 \u003Ccode>lastmod\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>差量推送\u003C\u002Fstrong>:对比 sitemap 的 \u003Ccode>&lt;lastmod&gt;\u003C\u002Fcode> 与 state 中记录,只推&quot;新增&quot;或&quot;修改过&quot;的 URL\u003C\u002Fli>\n\u003Cli>\u003Cstrong>每条成功立即落盘\u003C\u002Fstrong>:中途崩溃也不会重提已成功的\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>4.2 完整脚本 \u003Ccode>blogseo\u002Fpush.js\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-javascript\">import { google } from &#39;googleapis&#39;;\nimport { dirname, join } from &#39;path&#39;;\nimport { fileURLToPath } from &#39;url&#39;;\nimport { readFile, writeFile } from &#39;fs\u002Fpromises&#39;;\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\nconst jsonKeyPath = join(__dirname, &#39;.\u002Fservice-account.json&#39;);\nconst stateFilePath = join(__dirname, &#39;.\u002Fstate.json&#39;);\n\nconst SITEMAP_URL = process.argv[2] || &#39;https:\u002F\u002Fapppss.com\u002Fsitemap.xml&#39;;\nconst FORCE = process.argv.includes(&#39;--force&#39;);\nconst PUSH_ALL = process.argv.includes(&#39;--all&#39;);\n\n\u002F\u002F 从 sitemap.xml 提取 [{ loc, lastmod }]\nfunction extractEntries(xml) {\n  const entries = [];\n  for (const m of xml.matchAll(\u002F&lt;url&gt;([\\s\\S]*?)&lt;\\\u002Furl&gt;\u002Fg)) {\n    const loc = m[1].match(\u002F&lt;loc&gt;\\s*([^&lt;]+?)\\s*&lt;\\\u002Floc&gt;\u002F)?.[1].trim();\n    const lastmod = m[1].match(\u002F&lt;lastmod&gt;\\s*([^&lt;]+?)\\s*&lt;\\\u002Flastmod&gt;\u002F)?.[1].trim() || &#39;&#39;;\n    if (loc) entries.push({ loc, lastmod });\n  }\n  return entries;\n}\n\nasync function loadState() {\n  try { return JSON.parse(await readFile(stateFilePath, &#39;utf-8&#39;)); }\n  catch (e) { if (e.code === &#39;ENOENT&#39;) return {}; throw e; }\n}\nasync function saveState(s) {\n  await writeFile(stateFilePath, JSON.stringify(s, null, 2) + &#39;\\n&#39;, &#39;utf-8&#39;);\n}\n\nfunction diff(entries, state) {\n  const todo = [], skipped = [];\n  for (const e of entries) {\n    if (!FORCE &amp;&amp; state[e.loc]?.lastmod === e.lastmod) {\n      skipped.push(e);\n    } else {\n      todo.push(e);\n    }\n  }\n  return { todo, skipped };\n}\n\nconst auth = new google.auth.GoogleAuth({\n  keyFile: jsonKeyPath,\n  scopes: [&#39;https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Findexing&#39;],\n});\n\nasync function main() {\n  let entries = extractEntries(await (await fetch(SITEMAP_URL)).text());\n  if (!PUSH_ALL) entries = entries.filter(e =&gt; e.loc.includes(&#39;\u002Fwriting\u002F&#39;));\n  console.log(`📋 解析到 ${entries.length} 个 URL${PUSH_ALL ? &#39;(含静态页)&#39; : &#39;(仅文章)&#39;}`);\n\n  const state = await loadState();\n  const { todo, skipped } = diff(entries, state);\n  console.log(`🆕 待推送: ${todo.length} | ⏭️  跳过: ${skipped.length}${FORCE ? &#39; [FORCE]&#39; : &#39;&#39;}`);\n\n  if (todo.length === 0) return console.log(&#39;\\n✨ 没有需要推送的 URL&#39;);\n\n  const client = await auth.getClient();\n  const indexing = google.indexing({ version: &#39;v3&#39;, auth: client });\n\n  for (const e of todo) {\n    console.log(`正在提交: ${e.loc} (lastmod=${e.lastmod})`);\n    const res = await indexing.urlNotifications.publish({\n      requestBody: { url: e.loc, type: &#39;URL_UPDATED&#39; },\n    });\n    const notifyTime = res.data.urlNotificationMetadata?.latestUpdate?.notifyTime || new Date().toISOString();\n    console.log(`✅ 状态 ${res.status} | notifyTime=${notifyTime}`);\n    state[e.loc] = { lastmod: e.lastmod, submittedAt: new Date().toISOString(), notifyTime };\n    await saveState(state);\n  }\n  console.log(&#39;\\n🏁 全部提交完毕&#39;);\n}\n\nmain().catch(e =&gt; console.error(&#39;❌&#39;, e.response?.data || e.message));\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>4.3 常用命令\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-bash\"># 1) 默认:增量推送线上 sitemap 的所有文章\nnode blogseo\u002Fpush.js\n\n# 2) 推本地预览(先 npm run dev)\nnode blogseo\u002Fpush.js http:\u002F\u002Flocalhost:3000\u002Fsitemap.xml\n\n# 3) 强制全量(忽略 state.json,例如重新激活一批老文章)\nnode blogseo\u002Fpush.js --force\n\n# 4) 包括首页 \u002F about 等静态页\nnode blogseo\u002Fpush.js --all\n\n# 5) 组合\nnode blogseo\u002Fpush.js http:\u002F\u002Flocalhost:3000\u002Fsitemap.xml --force --all\n\n# 6) 清空状态全量推\nrm blogseo\u002Fstate.json &amp;&amp; node blogseo\u002Fpush.js\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>4.4 输出示例\u003C\u002Fh3>\n\u003Cpre>\u003Ccode class=\"language-text\">📋 解析到 12 个 URL(仅文章)\n🆕 待推送: 2 | ⏭️  跳过: 10\n正在提交: https:\u002F\u002Fapppss.com\u002Fwriting\u002Ffoo\u002F (lastmod=2026-07-05)\n✅ 状态 200 | notifyTime=2026-07-05T10:00:01Z\n正在提交: https:\u002F\u002Fapppss.com\u002Fwriting\u002Fbar\u002F (lastmod=2026-07-05)\n✅ 状态 200 | notifyTime=2026-07-05T10:00:02Z\n🏁 全部提交完毕\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Chr>\n\u003Ch2>五、避坑指南:6 个常见错误\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>错误\u003C\u002Fth>\n\u003Cth>现象\u003C\u002Fth>\n\u003Cth>解决方法\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Cstrong>GSC 没加 Service Account\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>403 Permission denied\u003C\u002Ftd>\n\u003Ctd>Search Console → Settings → Users → Add Owner\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>API 没启用\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>403 Indexing API has not been used in project\u003C\u002Ftd>\n\u003Ctd>GCP → Library → 搜 Indexing API → Enable\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>JSON 路径错误\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>ENOENT 找不到 service-account.json\u003C\u002Ftd>\n\u003Ctd>用 \u003Ccode>__dirname\u003C\u002Fcode> 拼绝对路径,不要写相对\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>URL 没带斜杠\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>404,Google 不会处理\u003C\u002Ftd>\n\u003Ctd>确保 \u003Ccode>https:\u002F\u002Fxxx.com\u002Fwriting\u002Fyyy\u002F\u003C\u002Fcode> 末尾有 \u003Ccode>\u002F\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>一天超过 200 次\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>429 Rate Limit\u003C\u002Ftd>\n\u003Ctd>用 state.json 做增量,不要全量重提\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>推送了没收录\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd>GSC 显示已处理但搜索没结果\u003C\u002Ftd>\n\u003Ctd>等 24-72 小时,Indexing API 只是&quot;加急&quot;不保证秒收录\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Chr>\n\u003Ch2>六、关键点回顾\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>关键点\u003C\u002Fth>\n\u003Cth>错误做法\u003C\u002Fth>\n\u003Cth>正确做法\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>API 启用\u003C\u002Ftd>\n\u003Ctd>跳过 Library 启用步骤\u003C\u002Ftd>\n\u003Ctd>先在 GCP 搜 Indexing API 并 Enable\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>凭证存放\u003C\u002Ftd>\n\u003Ctd>把 JSON 提交到 GitHub\u003C\u002Ftd>\n\u003Ctd>放 \u003Ccode>blogseo\u002F\u003C\u002Fcode>,加进 \u003Ccode>.gitignore\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>GSC 授权\u003C\u002Ftd>\n\u003Ctd>只在 GCP 创建 Service Account\u003C\u002Ftd>\n\u003Ctd>同时在 Search Console 加为 Owner\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>URL 格式\u003C\u002Ftd>\n\u003Ctd>推送 \u003Ccode>https:\u002F\u002Fxxx.com\u002Fwriting\u002Ffoo\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>推送 \u003Ccode>https:\u002F\u002Fxxx.com\u002Fwriting\u002Ffoo\u002F\u003C\u002Fcode>(带斜杠)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>推送方式\u003C\u002Ftd>\n\u003Ctd>一次性全量推 100 个\u003C\u002Ftd>\n\u003Ctd>增量推送,只推新增\u002F修改过的\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>配额管理\u003C\u002Ftd>\n\u003Ctd>每天重提 200 次已推送的\u003C\u002Ftd>\n\u003Ctd>用 \u003Ccode>state.json\u003C\u002Fcode> 去重\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>沙盒期应对\u003C\u002Ftd>\n\u003Ctd>在 GSC 反复点&quot;请求编入索引&quot;\u003C\u002Ftd>\n\u003Ctd>直接 Indexing API 走特快通道\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>失败排查\u003C\u002Ftd>\n\u003Ctd>看到 429 就不管了\u003C\u002Ftd>\n\u003Ctd>检查 state.json,确认是新增才推\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Chr>\n\u003Ch2>七、写在最后\u003C\u002Fh2>\n\u003Cp>沙盒期不是诅咒,是 Google 对所有新站的&quot;面试期&quot;。常规 SEO 优化能帮你过面试,但\u003Cstrong>面试完不给你 Offer 时,Indexing API 就是那个能让你直接走特批的&quot;内推&quot;\u003C\u002Fstrong>。\u003C\u002Fp>\n\u003Cp>把这条自动化链路跑通之后,我再也没有手动去 GSC 点过&quot;请求编入索引&quot;。每天写完文章,部署完跑一次 \u003Ccode>node blogseo\u002Fpush.js\u003C\u002Fcode>,新文章 24 小时内稳定出现在搜索结果 — 沙盒期像从来没存在过一样。\u003C\u002Fp>\n\u003Cp>记住:\u003Cstrong>工具只是杠杆,真正决定你博客生死的,还是内容本身\u003C\u002Fstrong>。Indexing API 能帮你跑得更快,不能帮你写得更深。把它当作加速器,别当作替代品。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>写一篇能被快速收录的文章,只是开始;写一篇值得被收录的文章,才是目的。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Chr>\n\u003Ch2>常见问题 FAQ\u003C\u002Fh2>\n\u003Ch3>沙盒期 GitHub Pages 站多久能正常收录?\u003C\u002Fh3>\n\u003Cp>通常 3-6 个月。\u003Cstrong>用 Indexing API 后可以压缩到 24-72 小时\u003C\u002Fstrong>,但本质上是&quot;加急&quot;不是&quot;破除&quot;沙盒,沙盒的域名信任度积累仍需时间。\u003C\u002Fp>\n\u003Ch3>Google Indexing API 普通人能申请吗?\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>可以\u003C\u002Fstrong>,且 Google 官方文档明确说明&quot;任何公开内容网站都可以使用&quot;,不再局限于新闻站。流程是 GCP 建项目 + Service Account + 启用 API 即可,无需审核。\u003C\u002Fp>\n\u003Ch3>Indexing API 每天 200 次配额够用吗?\u003C\u002Fh3>\n\u003Cp>对个人博客完全够用。假设你一天写 5 篇文章、修改 3 篇老文章,共 8 次 publish。\u003Cstrong>用 state.json 做增量推送,200 次配额可以覆盖一个月\u003C\u002Fstrong>。即使做迁移要重提,一次也不会超过 50 个 URL。\u003C\u002Fp>\n\u003Ch3>Indexing API 推送后多久能在 Google 搜索到?\u003C\u002Fh3>\n\u003Cp>实测沙盒期新站:\u003Cstrong>24 小时内出现在搜索结果\u003C\u002Fstrong>(GSC 显示&quot;已编入索引&quot;)。但搜索排名仍然受沙盒信任度影响,关键词排名可能还在第 3-5 页,需要靠内容质量 + 外链慢慢爬。\u003C\u002Fp>\n\u003Ch3>Service Account 凭证安全吗?要不要担心泄露?\u003C\u002Fh3>\n\u003Cp>JSON 凭证只对 Indexing API 有效,无法登录 GCP、无法访问你的 GCP 项目资源。\u003Cstrong>仍然不要提交到 Git\u003C\u002Fstrong>,因为拿到凭证的人可以批量消耗你的 200 次\u002F天配额。丢失后直接在 GCP 删 Key 重建即可。\u003C\u002Fp>\n\u003Ch3>Indexing API 能推送 sitemap 吗?\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>不能直接推送 sitemap 文件\u003C\u002Fstrong>,只能推送一个个 URL。所以本文的核心就是:\u003Cstrong>自己写脚本从 sitemap.xml 里提取 URL 批量推送\u003C\u002Fstrong>。Google 自己的搜索爬虫负责抓 sitemap,你负责&quot;特快加急&quot;。\u003C\u002Fp>\n\u003Ch3>Vercel \u002F Netlify \u002F Cloudflare Pages 站能用 Indexing API 吗?\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>任何能被 Google 抓取的公开站点都能用\u003C\u002Fstrong>,平台不限。GitHub Pages、Vercel、Netlify、Cloudflare Pages、自建 VPS 都一样,Indexing API 走的是 Google 收录通道,和你的主机无关。\u003C\u002Fp>\n\u003Ch3>Indexing API 推送后被 Google 处罚怎么办?\u003C\u002Fh3>\n\u003Cp>正常使用\u003Cstrong>不会被处罚\u003C\u002Fstrong>。Indexing API 不属于&quot;快排黑帽&quot;,它是 Google 官方接口。处罚的常见原因是:批量推送大量低质重复内容、或恶意刷量。个人博客正常使用完全没问题。\u003C\u002Fp>\n\u003Ch3>GitHub Pages 自定义域名会影响 Indexing API 吗?\u003C\u002Fh3>\n\u003Cp>不影响。\u003Ccode>https:\u002F\u002Fapppss.com\u002F...\u003C\u002Fcode> 和 \u003Ccode>https:\u002F\u002Fxxx.github.io\u002Fxxx\u002F...\u003C\u002Fcode> 在 Google 看来是两个不同的 URL,推送哪个就索引哪个。\u003Cstrong>推荐统一推自定义域名的 URL\u003C\u002Fstrong>,因为这是用户最终访问的地址。\u003C\u002Fp>\n\u003Ch3>Indexing API 和 Search Console 的&quot;请求编入索引&quot;能同时用吗?\u003C\u002Fh3>\n\u003Cp>可以,但没必要。\u003Cstrong>Indexing API 已经包含了&quot;请求编入索引&quot;的功能,且更强更快\u003C\u002Fstrong>。同时用只会浪费 GSC 的配额。建议 Indexing API 跑脚本,Search Console 只看数据统计,不再点&quot;请求编入索引&quot;。\u003C\u002Fp>\n\u003Chr>\n\u003Cblockquote>\n\u003Cp>本文只做 Indexing API 沙盒期提速的实操分享,不构成 Google 官方推荐。请遵守 Google 搜索规范,合法合规使用 API 接口。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n","3 分钟摘要: 沙盒期 = Google 对新域名\u002F低权重域名的\"观察期\",普通收录通道排队要 2-4 周 Indexing API 是 Google 官方给新闻站用的快速收录接口,任何类型站点都能用(Google 文档明确说明) 5 步走通:GCP 建项目 → 开 Indexing API → 建",[23,26,29,32,35,38,41,44,47,50],{"question":24,"answer":25},"沙盒期 GitHub Pages 站多久能正常收录?","通常 3-6 个月。用 Indexing API 后可以压缩到 24-72 小时,但本质上是\"加急\"不是\"破除\"沙盒,沙盒的域名信任度积累仍需时间。",{"question":27,"answer":28},"Google Indexing API 普通人能申请吗?","可以,且 Google 官方文档明确说明\"任何公开内容网站都可以使用\",不再局限于新闻站。流程是 GCP 建项目 + Service Account + 启用 API 即可,无需审核。",{"question":30,"answer":31},"Indexing API 每天 200 次配额够用吗?","对个人博客完全够用。假设你一天写 5 篇文章、修改 3 篇老文章,共 8 次 publish。用 state.json 做增量推送,200 次配额可以覆盖一个月。即使做迁移要重提,一次也不会超过 50 个 URL。",{"question":33,"answer":34},"Indexing API 推送后多久能在 Google 搜索到?","实测沙盒期新站:24 小时内出现在搜索结果(GSC 显示\"已编入索引\")。但搜索排名仍然受沙盒信任度影响,关键词排名可能还在第 3-5 页,需要靠内容质量 + 外链慢慢爬。",{"question":36,"answer":37},"Service Account 凭证安全吗?要不要担心泄露?","JSON 凭证只对 Indexing API 有效,无法登录 GCP、无法访问你的 GCP 项目资源。仍然不要提交到 Git,因为拿到凭证的人可以批量消耗你的 200 次\u002F天配额。丢失后直接在 GCP 删 Key 重建即可。",{"question":39,"answer":40},"Indexing API 能推送 sitemap 吗?","不能直接推送 sitemap 文件,只能推送一个个 URL。所以本文的核心就是:自己写脚本从 sitemap.xml 里提取 URL 批量推送。Google 自己的搜索爬虫负责抓 sitemap,你负责\"特快加急\"。",{"question":42,"answer":43},"Vercel \u002F Netlify \u002F Cloudflare Pages 站能用 Indexing API 吗?","任何能被 Google 抓取的公开站点都能用,平台不限。GitHub Pages、Vercel、Netlify、Cloudflare Pages、自建 VPS 都一样,Indexing API 走的是 Google 收录通道,和你的主机无关。",{"question":45,"answer":46},"Indexing API 推送后被 Google 处罚怎么办?","正常使用不会被处罚。Indexing API 不属于\"快排黑帽\",它是 Google 官方接口。处罚的常见原因是:批量推送大量低质重复内容、或恶意刷量。个人博客正常使用完全没问题。",{"question":48,"answer":49},"GitHub Pages 自定义域名会影响 Indexing API 吗?","不影响。https:\u002F\u002Fapppss.com\u002F... 和 https:\u002F\u002Fxxx.github.io\u002Fxxx\u002F... 在 Google 看来是两个不同的 URL,推送哪个就索引哪个。推荐统一推自定义域名的 URL,因为这是用户最终访问的地址。",{"question":51,"answer":52},"Indexing API 和 Search Console 的\"请求编入索引\"能同时用吗?","可以,但没必要。Indexing API 已经包含了\"请求编入索引\"的功能,且更强更快。同时用只会浪费 GSC 的配额。建议 Indexing API 跑脚本,Search Console 只看数据统计,不再点\"请求编入索引\"。\n---\n> 本文只做 Indexing API 沙盒期提速的实操分享,不构成 Google 官方推荐。请遵守 Google 搜索规范,合法合规使用 API 接口。","google-indexing-api-fast-index","\u002Fwriting\u002Fgoogle-indexing-api-fast-index","md",[57,76,91,109,127,145,161,178,193,211,227,239,253,270,285,302,318,336,352,369,381,396,410,427,441,456,470,472,488,500,514,527,544,556,564],{"id":58,"title":59,"date":60,"category":61,"readTime":62,"tags":63,"_excerpt":74,"_path":75},"github-9-free-open-source-projects","GitHub 上 9 个免费到癫狂的开源神器：AI 配音 \u002F 音乐生成 \u002F 自托管密码 \u002F 跨屏互传","2026-09-16","网络工具","12 分钟",[64,65,66,67,68,69,70,71,72,73],"GitHub 开源","免费神器","自媒体副业","AI 配音","声音克隆","密码管理","量化交易","VoiceStudio","YuE","LocalSend","AI 配音 \u002F 音乐类（3 个）：VoiceStudio、YuE、VoxCPM——替代 ElevenLabs、Suno，做配音接单 \u002F 定制 BGM 情报 \u002F 交易类（3 个）：TradingAgents、Flowsint、RuView——替代 Bloomberg \u002F Wind \u002F Maltego ","\u002Fwriting\u002Fgithub-9-free-open-source-projects",{"id":77,"title":78,"date":60,"category":79,"readTime":80,"tags":81,"_excerpt":89,"_path":90},"vercel-deployment-blocked-commit-email-mismatch","Vercel 部署被拦截 Deployment Blocked：Git 提交邮箱与 Vercel 账号不匹配的修复方案","开发工具","6 分钟",[82,83,84,85,86,87,88],"Vercel","Git","部署失败","邮箱配置","Deployment Blocked","Hobby Plan","commit author","报错关键词：Deployment Blocked + commit author did not have contributing access + Hobby Plan does not support collaboration for private repositories 根因：Git ","\u002Fwriting\u002Fvercel-deployment-blocked-commit-email-mismatch",{"id":92,"title":93,"date":94,"category":95,"readTime":62,"tags":96,"_excerpt":107,"_path":108},"trustpilot-product-selection-method","Trustpilot 差评选品法：从独立站出海差评里挖掘百万美金机会（附 AI 筛选提示词）","2026-09-10","创业人生",[97,98,99,100,101,102,103,104,105,106],"独立站出海","Trustpilot","选品方法","跨境电商","差评挖掘","AI选品","Facebook广告","Google广告","独立站运营","赚美金","放弃跟爆品：榜单是公开的，你看到的别人也看到，卷到最后比的是资金量和供应链——新手赢不了 差评才是金矿：Trustpilot 上差评基本来自真实购买（没人给自己刷差评），差评多说明订单量大（需求被验证），评分低说明履约差（你的机会） AI 批量筛选：用 Claude\u002FCodex 跑提示词，筛选\"差评","\u002Fwriting\u002Ftrustpilot-product-selection-method",{"id":110,"title":111,"date":112,"category":95,"readTime":113,"tags":114,"_excerpt":125,"_path":126},"awesome-indie-indie-developer-resources-guide","独立开发者赚钱资源大全：awesome-indie 精选 60+ 社区、书籍、工具（GitHub 开源）","2026-09-09","14 分钟",[115,116,117,118,119,120,121,122,123,124],"独立开发者","awesome-indie","资源合集","IndieHackers","副业赚钱","微型创业","被动收入","自举创业","SaaS","开发者赚钱","awesome-indie 是 GitHub 上的独立开发者赚钱资源合集（作者 mezod），覆盖社区、新闻通讯、博客播客、案例研究、会议、书籍、工具、课程 8 大主题，与\"独立开发者如何赚钱\"强相关 社区类先收藏：IndieHackers、Hacker News、r\u002FSideProject、Meg","\u002Fwriting\u002Fawesome-indie-indie-developer-resources-guide",{"id":128,"title":129,"date":112,"category":130,"readTime":131,"tags":132,"_excerpt":143,"_path":144},"investment-most-important-cycle-reflexivity-wisdom","巴菲特芒格力荐的 2 本书 + 索罗斯反身理论：投资最重要的 3 件事（周期 × 认知 × 顺势而为）","交易心得","16 分钟",[133,134,135,136,137,138,139,140,141,142],"投资智慧","周期","霍华德马克思","巴菲特","芒格","索罗斯","反身性","价值投资","趋势投资","顺势而为","3 本经典合一：《投资最重要的事》（霍华德·马克思）+《周期》（霍华德·马克思）+ 索罗斯\"反身性理论\"——巴菲特、芒格都强力推荐 核心母题：万物皆有周期——经济周期、信贷周期、产能周期、房地产周期、情绪周期……周期是自然之道，不可对抗，只能顺从 书 1《投资最重要的事》核心：价值投资是底盘，技术分","\u002Fwriting\u002Finvestment-most-important-cycle-reflexivity-wisdom",{"id":146,"title":147,"date":112,"category":130,"readTime":148,"tags":149,"_excerpt":159,"_path":160},"tiandao-permanent-business-investment-logic","从《天道》看永久值得投资的生意：生存、刺激与繁衍的底层逻辑","15 分钟",[150,151,152,153,154,155,156,140,157,158],"天道","投资逻辑","强势文化","底层需求","基因","丁元英","生意经","消费行业","遥远的救世主","天道的定义：永不改变、永远正的法则确，是世界的底层系统；在《天道》里对应\"神即道，道法自然，如来\" 需求的源头是六感：视觉需求远大于听觉、嗅觉、味觉——人对\"还原真实世界\"的视觉追求永无止境（480p→8K），所以显示行业永远有成长性 黑色家电 vs 白色家电案例：人对温差（24℃ vs 24.1℃","\u002Fwriting\u002Ftiandao-permanent-business-investment-logic",{"id":162,"title":163,"date":164,"category":7,"readTime":148,"tags":165,"_excerpt":176,"_path":177},"payoneer-cross-border-payment-guide","Payoneer派安盈使用全教程：跨境电商与WooCommerce独立站收款提现避坑指南，附万里汇连连PingPong对比","2026-09-03",[166,167,168,169,170,171,172,173,174,175],"Payoneer","派安盈","跨境收款","WooCommerce独立站","PayPal提现","万里汇","连连国际","PingPong","Airwallex","Stripe","Payoneer 提供美\u002F欧\u002F英\u002F日\u002F港等地虚拟银行账户，是跨境电商收款的\"资金中枢\"，而非信用卡收单工具 平台卖家（亚马逊、TikTok Shop、Shopee 等）绑定 Payoneer 虚拟账户即可自动收款，这是它的主战场 WooCommerce 独立站有两种用法：达到企业主体和流水门槛可申请","\u002Fwriting\u002Fpayoneer-cross-border-payment-guide",{"id":179,"title":180,"date":181,"category":130,"readTime":148,"tags":182,"_excerpt":191,"_path":192},"eg-limit-up-cant-control-hand","乙二醇连续涨停我逆势做空浮亏120万，期货交易为什么管不住手，读懂损失厌恶才能跟上趋势","2026-09-02",[183,184,185,186,187,188,189,190],"乙二醇期货","管不住手","逆势做空","损失厌恶","处置效应","期货交易心理","趋势交易","仓位管理","美伊战争引爆原油市场，布伦特突破100美元，能化板块整体走强，乙二醇期货连续大涨后涨停至5800元上方 明知趋势向上，我却反手做空乙二醇，开盘即涨停，单笔浮亏120万 \"管不住手\"的根源是四个心理机制：损失厌恶、处置效应、沉没成本谬误、报复性交易 逆势单的本质不是\"做空\"，而是\"拒绝承认自己看错了\"","\u002Fwriting\u002Feg-limit-up-cant-control-hand",{"id":194,"title":195,"date":196,"category":130,"readTime":197,"tags":198,"_excerpt":209,"_path":210},"ancient-du-jing-15-wisdoms-futures-trading","《赌经》千年智慧 × 期货交易：15 大核心心法在现代金融交易中的应用","2026-09-01","18 分钟",[199,200,201,202,203,204,205,206,207,208],"期货交易","交易系统","交易心态","交易纪律","博弈论","资金管理","善赌者","风险控制","古代智慧","交易心法","千年博弈智慧的核心：\"天下万物都离不开博弈，人生无处不博弈\"——交易、转业、选择，本质都是下注 15 大心法的期货对应：(1) 天性 (2) 万物皆博 (3) 相济 (4) 养德 (5) 专一 (6) 休息与好习惯 (7) 静心 (8) 胜机 (9) 料情 (10) 善听 (11) 胜险 (12) ","\u002Fwriting\u002Fancient-du-jing-15-wisdoms-futures-trading",{"id":212,"title":213,"date":196,"category":95,"readTime":62,"tags":214,"_excerpt":225,"_path":226},"information-diet-munger-deep-thinking","每天写 600 字、拒绝短视频、读书走路：芒格的\"反碎片化\"哲学与 3 个实操方法",[215,216,217,218,219,220,221,222,223,224],"信息过载","碎片化","深度思考","查理芒格","注意力管理","个人成长","反碎片化","自我管理","信息减肥","写作","信息过载的本质是\"被动兴奋\"：你不是在\"获取信息\"，你是在被算法训练成\"刷下一条\"的条件反射机器 芒格的\"避免愚蠢\"哲学：\"反过来想，总是反过来想\"——聪明难学，愚蠢容易避免，关键是识别\"什么是会让自己变蠢的事\" 3 个反碎片化方法：(1) 信息减肥——限制信息源、少刷短视频；(2) 用输出取代输入","\u002Fwriting\u002Finformation-diet-munger-deep-thinking",{"id":228,"title":229,"date":230,"category":130,"readTime":113,"tags":231,"_excerpt":237,"_path":238},"futures-sell-art-trailing-stop-profit-take","期货交易\"会买的是徒弟，会卖的才是师傅\"：浮盈守不住的 4 个真相与 5 个系统化解决方案","2026-08-30",[199,232,233,234,201,200,190,202,235,236],"止盈","止损","移动止盈","浮盈","卖出策略","期货交易最隐蔽的失败模式：\"买对、趋势对，但赚不到钱甚至亏钱\"，90% 的交易者死在这里 浮盈 100w 变 70w 的 4 个真相：(1) 急速亏损来不及止损；(2) 高额手续费侵蚀利润；(3) 急速上涨拿不住提前下车；(4) 心理预期失衡导致操作变形 5 个系统化卖出解决方案：(1) 移动止盈（","\u002Fwriting\u002Ffutures-sell-art-trailing-stop-profit-take",{"id":240,"title":241,"date":242,"category":95,"readTime":148,"tags":243,"_excerpt":251,"_path":252},"starter-story-5-acquisition-cases","网站出海必看：Starter Story 上 5 个独立开发者获客案例，把第一批用户从哪来都告诉你了","2026-08-27",[244,245,246,247,248,15,249,123,250],"独立开发","网站出海","Starter Story","获客","Product Hunt","Build in Public","增长黑客","Starter Story 上 2933 个月入过万美金的小项目，连第一批用户从哪来都告诉你了。深度拆解 Papermark、AudioPen、Bank Statement Converter、ScreenshotOne、Chatbase 五个真实案例的获客路径。","\u002Fwriting\u002Fstarter-story-5-acquisition-cases",{"id":254,"title":255,"date":256,"category":95,"readTime":257,"tags":258,"_excerpt":268,"_path":269},"chinese-rest-shameness-burnout-recovery","中国人为什么不敢停下来：内卷时代的\"休息羞耻\"与 3 个破解方法","2026-08-25","11 分钟",[259,260,261,262,263,264,115,265,266,267],"内卷","休息羞耻","工作焦虑","牛马","停下来","自由职业","心理健康","自我成长","生活平衡","\"玩几天就心慌\"不是意志力问题，是长期被社会时钟驯化后的条件反射 中国式\"内卷\"的本质是横向比较陷阱：不是想赢，是怕输；不是想更富，是怕被落下 \"当牛马心里舒服\"是一种心理代偿机制：用忙碌掩盖存在焦虑，越忙越空虚 停下来\"感觉别人都跑掉了\"是社会比较 + 信息过载的双重错觉，真实世界没人那么关注你 ","\u002Fwriting\u002Fchinese-rest-shameness-burnout-recovery",{"id":271,"title":272,"date":273,"category":7,"readTime":62,"tags":274,"_excerpt":283,"_path":284},"top-10-free-platforms-indie-creators","独立开发者必收藏的 10 个免费平台：从代码托管到内容分发全覆盖","2026-08-13",[244,275,276,277,278,279,280,281,282,115],"免费工具","开源平台","创作者工具","效率工具","GitHub","Figma","F-Droid","Substack","GitHub 不只是代码托管，更是独立开发者的免费简历 + 团队协作 + CI\u002FCD 基础设施 Linux 让独立开发者彻底摆脱\"环境不一致\"的坑，是服务器、Web 项目、AI 训练的事实标准 Wikipedia + Internet Archive 是最被低估的\"研究前哨站\"，能解决 80% 的英","\u002Fwriting\u002Ftop-10-free-platforms-indie-creators",{"id":286,"title":287,"date":273,"category":288,"readTime":62,"tags":289,"_excerpt":300,"_path":301},"fde-quanshu-zongjie","FDE 前沿部署工程师从零入门指南 · 全书总结","技术教程",[290,291,292,293,294,295,296,297,298,299],"FDE","前沿部署工程师","Palantir","企业 AI","部署","范冰","AI 落地","OpenAI","Anthropic","Harvey","FDE · 全书总结 前沿部署工程师（FDE） 从零入门指南 范冰 著 · 基于公开仓库 14 个 Markdown 文件的完整梳理 原书框架参照《增长黑客》方法论体例 01 FDE 是什么？ 一句话定义： 前线部署工程师（Forward Deployed Engineer），是一个驻扎在客户现场、","\u002Fwriting\u002Ffde-quanshu-zongjie",{"id":303,"title":304,"date":305,"category":288,"readTime":131,"tags":306,"_excerpt":316,"_path":317},"90-day-organic-traffic-b2b-factory-seo","90 天靠自然流量做独立站：B2B 工厂 SEO 完整复盘（4 个致命问题 + 4 项整改 + 程序员视角深度补充）","2026-08-12",[307,308,309,100,310,311,312,313,314,315],"独立站","自然流量","B2B 工厂","外贸","SEO 优化","技术 SEO","外链建设","内容营销","谷歌排名","3 分钟摘要： 工厂独立站最常见的 4 个致命问题：关键词错位 \u002F 转化力为零 \u002F 技术 SEO 不到位 \u002F 外链权重为零 针对性 4 项整改：全站关键词重构 \u002F 全盘内容改写 \u002F 深度技术 SEO 修复 \u002F 高质量外链搭建 90 天执行时间表：第 1-30 天（技术修复 + 关键词重挖）\u002F 第 3","\u002Fwriting\u002F90-day-organic-traffic-b2b-factory-seo",{"id":319,"title":320,"date":321,"category":95,"readTime":322,"tags":323,"_excerpt":334,"_path":335},"ai-short-drama-industry-2026","AI 短剧 4 阶段生死局:3 个月一波,90% 承制公司要关,留下的只有 3 种人","2026-07-31","13 分钟",[324,325,326,327,328,329,330,331,332,333],"AI 短剧","短剧","创业复盘","行业分析","红果短剧","抖音短剧","内容创业","投流","出海","TikTok","3 分钟摘要: 4 阶段速览:解说漫剧(2024.6-9)→ 2D 黄金期(11-1 月)→ Seedance 仿真人(春节-4 月)→ 出海 TikTok(现在) 承制公司必死:长沙最大 200 人公司,一天入职 87 人,1 个月后关门,1 亿播放分账不到 10 万 闭门会真相:红果真人剧+AI","\u002Fwriting\u002Fai-short-drama-industry-2026",{"id":337,"title":338,"date":321,"category":95,"readTime":339,"tags":340,"_excerpt":350,"_path":351},"niche-product-overseas-thinking","国内做产品总想服务所有人,海外却专做 1% 小众市场,这是独立开发的真相","9 分钟",[244,341,342,343,344,345,346,347,348,349],"细分市场","小而美","海外产品","独立产品","niche","垂直产品","创业思维","产品哲学","Indiehacker","3 分钟摘要: 国内产品迷思:做一个工具,恨不得覆盖\"18-35 岁全人群\",功能堆到 50+,最后谁都不满意 海外独立开发者哲学:只服务一个明确小群体(Notion 用户\u002F播客主\u002FIndie Hacker),做深做透 1% 市场数学:全球 80 亿人 × 1% × 1% 转化 = 80 万付费用户","\u002Fwriting\u002Fniche-product-overseas-thinking",{"id":353,"title":354,"date":355,"category":7,"readTime":257,"tags":356,"_excerpt":367,"_path":368},"giffgaff-account-terminated-refund-guide","giffgaff 不到 1 月被封号？10 欧元余额退款攻略 + 英国保号卡使用避坑指南","2026-07-29",[357,358,359,360,361,362,363,364,365,366],"giffgaff","英国保号卡","海外手机号","余额退款","漫游政策","公平使用政策","eSIM","出国旅行","国际通信","账户管理","3 分钟摘要： giffgaff 封号邮件里写的 \"final position\" 指的是无法恢复号码和卡片使用权，不意味着可以扣押你的预付费余额 余额退款是常规操作——按 giffgaff 政策，账户终止时未消耗的预存资金应原路退回 提交 Ask an Agent 工单 申请退款，用对英文模板、态","\u002Fwriting\u002Fgiffgaff-account-terminated-refund-guide",{"id":370,"title":371,"date":355,"category":95,"readTime":322,"tags":372,"_excerpt":379,"_path":380},"smart-people-ultimate-arena-financial-markets","聪明人最后都会走向金融市场？10 年程序员的 5 点反驳 + 1 条血泪建议",[373,199,374,375,206,70,376,377,378,115],"金融市场","认知变现","独立思考","趋势跟踪","移动止损","心理博弈","3 分钟摘要： \"金融市场是世界上最公平的战场\"——部分对，但隐藏了 3 个不公平 \"认知变现速度最快\"——部分对，但 90% 的聪明人亏得比上班族还快 \"和全球最聪明的人博弈\"——部分对，但你以为的\"博弈\"是另一种\"被博弈\" \"最残酷的认知审判场\"——完全对，这是 5 点里最真实的一句 \"唯一能燃","\u002Fwriting\u002Fsmart-people-ultimate-arena-financial-markets",{"id":382,"title":383,"date":384,"category":95,"readTime":131,"tags":385,"_excerpt":394,"_path":395},"tiktok-shop-13-products-zero-orders","200 元 AI 跨境课复盘：13 个产品 0 订单，10 年程序员的跨境电商真实踩坑记录","2026-07-22",[100,386,387,388,115,389,390,391,392,393],"AI 跨境","TikTok 小店","避坑指南","副业变现","选品方法论","海外市场调研","供应链","真实复盘","3 分钟摘要： 课程里讲的\"4 大机会\"是真实的——AI 确实放大了小团队的跨境能力 但课程不会告诉你 90% 的卖家死在\"选品\"上——选错品 = 一切努力清零 13 个产品 0 订单的真实原因 = 我犯了跨境电商最经典的 3 个错：选品靠感觉、内容靠 AI 量产、流量靠自然等 跨境电商的隐藏成本是","\u002Fwriting\u002Ftiktok-shop-13-products-zero-orders",{"id":397,"title":398,"date":399,"category":95,"readTime":113,"tags":400,"_excerpt":408,"_path":409},"pieter-levels-one-person-saas","一人 + 一台电脑 + 500 万美金：从 Pieter Levels 看独立开发者的 6 环商业链路（实操玩法版）","2026-07-16",[401,115,402,403,404,405,406,407,344,389],"Pieter Levels","一人公司","海外商业","付费按钮","两周验证法","自动化系统","复购会员","3 分钟摘要： 一人公司不是\"小团队\"，是 \"单人 + 自动化系统\" 的商业形态——一个人 + 一台电脑 + 6 个产品环节 海外用户付费习惯跟国内完全不同：先看页面、再看价格、付款即交付，没有\"私聊逼单\"这一环 第一个核心方法 = \"先做付费按钮，不做大系统\"——24 小时内就能验证真假需求 第二","\u002Fwriting\u002Fpieter-levels-one-person-saas",{"id":411,"title":412,"date":399,"category":7,"readTime":413,"tags":414,"_excerpt":425,"_path":426},"workbuddy-110-office-prompts","WorkBuddy 不会用？110 条能直接干活的办公提示词库 + 5 段式黄金结构","22 分钟",[415,416,417,418,419,420,421,422,423,424],"WorkBuddy","提示词工程","AI 办公","智能办公","提示词库","工作流自动化","提示词模板","AI Agent","办公效率","萝卜哥","3 分钟摘要： 90% 的人用 WorkBuddy 失败的原因 = 只给\"愿望\"、不给\"任务\" 5 段式黄金结构 = 工作对象 + 可用材料 + 具体动作 + 交付物 + 检查规则 核心安全线 = 写入前先给预览（邮件、任务、自动化必须遵守） 11 类 110 条提示词完整覆盖：个人工作台 \u002F 会议","\u002Fwriting\u002Fworkbuddy-110-office-prompts",{"id":428,"title":429,"date":430,"category":288,"readTime":197,"tags":431,"_excerpt":439,"_path":440},"indie-dev-150-seo-strategies","独立开发者 150 个 SEO 策略速查手册：从 0 到 10 万流量的完整作战地图（关键词 \u002F 内容 \u002F 页面 \u002F 技术 \u002F 外链 \u002F AI \u002F 转化）","2026-07-15",[15,115,432,433,434,313,435,436,437,438],"关键词策略","内容策略","技术SEO","AI SEO","GEO","流量增长","转化优化","3 分钟摘要： SEO 7 大模块：关键词（找用户在哪）、内容（接住用户）、页面（让 Google 看得懂）、技术（让 Google 抓得到）、外链（让 Google 信得过）、AI SEO（让 ChatGPT \u002F Perplexity 引用你）、增长（把流量变收入） 关键词策略的核心 = 挖出 1","\u002Fwriting\u002Findie-dev-150-seo-strategies",{"id":442,"title":443,"date":430,"category":95,"readTime":257,"tags":444,"_excerpt":454,"_path":455},"zhongnian-beiye-bailand-fansi","失业 4 年、每天只想摆烂：一个 40 岁中年男人的复盘与自救",[445,446,447,448,449,450,451,452,220,453],"中年危机","摆烂","失业焦虑","副业","赚钱方法","底层逻辑","40岁","怀孕老婆","自我救赎","3 分钟摘要： 摆烂的本质是\"大脑拒绝再接收无效输入\"，不是意志力问题 失业 4 年 = 焦虑的真实来源不是\"没钱\"，是\"看不到确定的现金流\" 噪音型学习 = 看了 100 个博主的\"月入十万\"，一个底层闭环都没跑过 中年人不缺方法、缺打透一个方法的执行力 + 耐住 6-12 个月不冒头的耐心 摆烂","\u002Fwriting\u002Fzhongnian-beiye-bailand-fansi",{"id":457,"title":458,"date":6,"category":95,"readTime":257,"tags":459,"_excerpt":468,"_path":469},"chinese-seller-brand-mindset","中国独立站为什么做不出品牌:有网站不等于有品牌,从中美认知差到品牌资产构建",[307,460,100,461,462,463,464,465,466,467],"品牌建设","商标注册","品牌资产","Shopify","中国卖家","DTC 品牌","流量套利","美国市场","3 分钟摘要: 中美品牌第一差:中国卖家从\"货\"出发(本月 ROI),美国卖家从\"资产\"出发(三年后品牌值多少钱) 中国独立站的本质是\"换了皮的批发摊位\":有网站,没有品牌;有产品,没有资产;有订单,没有复购理由 美国卖家把商标、域名、社媒账号、品牌名统一视为 品牌资产,在卖爆之前就把这些\"产权\"占","\u002Fwriting\u002Fchinese-seller-brand-mindset",{"id":53,"title":4,"date":6,"category":7,"readTime":8,"tags":471,"_excerpt":21,"_path":54},[10,11,12,13,14,15,16,17,18,19],{"id":473,"title":474,"date":475,"category":95,"readTime":339,"tags":476,"_excerpt":486,"_path":487},"ai-music-creator-first-album","AI 让我成为音乐创作人：第一张专辑《未乱》与主打歌《鱼肚白》的诞生全流程","2026-06-18",[477,478,479,480,481,482,483,389,484,485],"AI 音乐","Suno","Udio","豆包","Gemini","音乐创作","独立创作","腾讯音乐","专辑发行","AI 把音乐创作的门槛从\"会乐器 + 懂乐理\"降到\"会写主题 + 会挑曲风\"，普通人也能成为音乐创作者 三步走完整路径：AI 写词 → AI 谱曲演唱 → 发行到平台 主流工具组合：豆包 \u002F Gemini（写词）+ Suno \u002F Udio \u002F 谱乐 AI（谱曲演唱） 主打歌《鱼肚白》从第一行歌词到腾","\u002Fwriting\u002Fai-music-creator-first-album",{"id":489,"title":490,"date":475,"category":95,"readTime":339,"tags":491,"_excerpt":498,"_path":499},"kalodata-market-research","如何用 Kalodata 做 TikTok 选品市场调研：10 分钟看懂一个赛道",[492,493,390,494,495,496,497,244,332,389],"Kalodata","TikTok 选品","市场调研","TikTok Shop","类目大盘","联盟达人","3 分钟摘要： 选品失败的 90% 原因不是产品不好，而是赛道没看清就开干 Kalodata 的「类目大盘」是最高效的市场调研入口，单页覆盖六个核心维度 优先选 增长中 + 盘子大 + 竞争分散 + 联盟达人驱动 + $10–30 主流价格带 + 新品占比高 的类目 价格带 $10–$30 是 Ti","\u002Fwriting\u002Fkalodata-market-research",{"id":501,"title":502,"date":475,"category":130,"readTime":339,"tags":503,"_excerpt":512,"_path":513},"kan-da-zuo-xiao-futures-trading","期货「看大做小」趋势交易法：从前辈点拨到实操悟道的完整路径（日线 + 30分钟 + RSI 临界点入场）",[199,504,505,189,506,507,508,509,510,511],"看大做小","多周期共振","日线","30分钟","5分钟","RSI指标","入场点","顺势交易","3 分钟摘要： 看大做小 = 大周期定方向 + 小周期找入场 + RSI 等临界点 周期组合按交易风格选：波段 = 日线 + 30分钟 \u002F 5分钟（本文重点） 大周期判方向三件套：均线排列、高低点结构、关键支撑阻力 小周期入场三件套：回调企稳、K 线反转形态、RSI 临界点 越是简单的事越难执行——","\u002Fwriting\u002Fkan-da-zuo-xiao-futures-trading",{"id":515,"title":516,"date":475,"category":130,"readTime":62,"tags":517,"_excerpt":525,"_path":526},"trading-for-a-living-book-summary","《以交易为生》核心思想精读：三重筛选 + 2% 风险 + 鳄鱼原则，三大支柱撑起一个交易者的底层操作系统",[518,519,520,521,204,522,200,376,523,524],"以交易为生","Alexander Elder","三重筛选","鳄鱼原则","交易心理","2% 风险","交易日志","交易是Mind（心理）+ Method（方法）+ Money（资金） 三位一体的职业，三者缺一不可 三重过滤筛选系统（Triple Screen） 是本书核心方法论：用周线定趋势 → 日线找回调 → 60 分钟找入场点 2% 风险原则：单笔交易最大亏损不超过账户总资金的 2% 6% 月度原则：单月累","\u002Fwriting\u002Ftrading-for-a-living-book-summary",{"id":528,"title":529,"date":530,"category":61,"readTime":8,"tags":531,"_excerpt":542,"_path":543},"cdn-anti-scan-vps-architecture","海外 VPS 的 CDN 加速与网站防探测架构（Cloudflare + nginx 反代 + WebSocket 后端完整方案）","2026-06-14",[532,533,534,535,536,537,538,539,540,541],"Cloudflare","nginx","反向代理","WebSocket","CDN 加速","网站防探测","VPS 安全","端口扫描","指纹识别","Origin 证书","3 分钟摘要： VPS 真实 IP 暴露后，会被扫描器 24\u002F7 探测，443 端口指纹泄露 用 Cloudflare CDN 隐藏真实 VPS IP（免费方案） 真实 WebSocket \u002F API 服务跑在 127.0.0.1 的非标准端口，永不对外暴露 nginx 终结 TLS + 转发 We","\u002Fwriting\u002Fcdn-anti-scan-vps-architecture",{"id":545,"title":546,"date":530,"category":7,"readTime":547,"tags":548,"_excerpt":554,"_path":555},"telegram-86-login-recovery","86 手机号无法登录 Telegram 终极解决方案：绕过付费验证码 + 旧设备验证找回账号","8 分钟",[549,550,551,552,553],"Telegram","86手机号","账号找回","二次验证","短信收费","3 分钟摘要： 86 号码 + 邮箱 + 二次验证密码 = 找回账号的三要素，缺一不可 用第三方客户端 Telega（绕过 Google Play 校验版本）登录，触发邮箱 + 2FA 通道 登录成功后再用官方 Telegram 登录、更新到最新版本 整个过程不需要原手机短信、不需要旧设备在线","\u002Fwriting\u002Ftelegram-86-login-recovery",{"id":557,"title":558,"date":559,"category":95,"readTime":547,"tags":560,"_excerpt":562,"_path":563},"indie-developer-journey","从零到一：我的独立开发之路","2026-05-15",[244,561,220],"创业","2023年初，我做出了一个重要决定：离开稳定的工作，成为一名独立开发者。这个决定并非一时冲动，而是经过深思熟虑的结果。","\u002Fwriting\u002Findie-developer-journey",{"id":565,"title":566,"date":567,"category":130,"readTime":568,"tags":569,"_excerpt":572,"_path":573},"futures-trading-seven-rules","期货交易的七条铁律：从亏损到稳定盈利的思考","2026-03-20","5 分钟",[199,130,570,233,376,571],"交易思维","心法","做期货这几年，踩过的坑、爆过的仓、熬过的夜，最终都沉淀成这七条心得。期货交易本质上不是预测行情，而是管理自己。以下每一条都是真金白银换来的，建议反复读、慢慢悟。","\u002Fwriting\u002Ffutures-trading-seven-rules",1789555368527]