<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Game Site Academy</title><description>从 0 到 1 教会你使用 ai 工具快速搭建游戏网站。覆盖需求寻找、网站搭建、自动运维、营销增长的整个流程。</description><link>https://freeourdays.com/</link><item><title>用 AI 从 0 到 1 搭建游戏网站：实战指南</title><link>https://freeourdays.com/posts/ai-game-website-guide/</link><guid isPermaLink="true">https://freeourdays.com/posts/ai-game-website-guide/</guid><description>一份面向独立开发者的 AI 游戏网站搭建指南，覆盖需求研究、技术选型、开发上线、SEO 与持续运营。</description><pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;用 AI 搭建游戏网站，真正困难的部分通常不是生成代码，而是找到值得做的需求，并把网站变成一个能够被搜索引擎发现、被玩家持续使用的产品。&lt;/p&gt;
&lt;p&gt;这篇指南给出一条从需求研究到上线增长的完整路线。你可以从一个小型游戏工具、资料站或攻略站开始，在真实用户反馈中逐步扩展。&lt;/p&gt;
&lt;h2&gt;第一步：从玩家的搜索需求开始&lt;/h2&gt;
&lt;p&gt;不要先决定技术栈。先确认玩家正在寻找什么，以及现有结果为什么没有很好地解决问题。&lt;/p&gt;
&lt;p&gt;可以从以下来源收集需求：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Google、Bing 或百度的搜索联想与相关搜索；&lt;/li&gt;
&lt;li&gt;Reddit、Discord、贴吧、Steam 社区中的重复提问；&lt;/li&gt;
&lt;li&gt;竞品网站的高流量页面、评论和功能缺口；&lt;/li&gt;
&lt;li&gt;新游戏上线、版本更新或赛季变化带来的时效需求。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;优先选择目标清晰、结果可验证的主题，例如“某游戏配装计算器”“地图资源位置查询”或“角色升级材料清单”。这类页面比宽泛的游戏资讯更容易满足明确搜索意图。&lt;/p&gt;
&lt;h2&gt;第二步：定义最小可用版本&lt;/h2&gt;
&lt;p&gt;把第一版限制在一个核心任务内。一个合格的最小版本通常只需要：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;一个能直接回答问题的主页面；&lt;/li&gt;
&lt;li&gt;清晰的输入、输出或内容导航；&lt;/li&gt;
&lt;li&gt;可分享、可被索引的独立 URL；&lt;/li&gt;
&lt;li&gt;基础分析事件，用于判断用户是否完成任务。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;在让 AI 写代码前，先写清楚页面目标、数据来源、边界情况和验收标准。上下文越具体，生成结果越稳定。&lt;/p&gt;
&lt;h2&gt;第三步：选择适合 SEO 的技术方案&lt;/h2&gt;
&lt;p&gt;游戏网站通常包含大量内容页或工具页，首屏速度和可抓取性很重要。Astro、Next.js 等支持服务端渲染或静态生成的框架都可以胜任。&lt;/p&gt;
&lt;p&gt;技术选型时重点检查：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;核心内容是否直接存在于返回的 HTML 中；&lt;/li&gt;
&lt;li&gt;每个页面能否设置独立的标题、描述和 canonical；&lt;/li&gt;
&lt;li&gt;是否能自动生成 sitemap、RSS 和结构化数据；&lt;/li&gt;
&lt;li&gt;图片是否支持响应式尺寸、现代格式和懒加载；&lt;/li&gt;
&lt;li&gt;部署平台是否提供 CDN、缓存和 HTTPS。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;不要为了“技术先进”引入大量客户端 JavaScript。对内容型页面来说，更少的脚本通常意味着更快的加载速度和更稳定的抓取结果。&lt;/p&gt;
&lt;h2&gt;第四步：让 AI 参与开发，而不是替代判断&lt;/h2&gt;
&lt;p&gt;AI 很适合处理明确、可验证的开发任务，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;根据数据结构生成页面和组件；&lt;/li&gt;
&lt;li&gt;编写解析、校验与转换脚本；&lt;/li&gt;
&lt;li&gt;补充测试用例和边界条件；&lt;/li&gt;
&lt;li&gt;分析构建错误、性能问题和可访问性问题；&lt;/li&gt;
&lt;li&gt;批量生成遵循同一模板的基础元数据。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;每完成一个模块，都要运行类型检查、测试和生产构建。对 AI 生成的外部链接、统计数据和游戏机制说明进行人工核验，避免错误内容损害用户信任。&lt;/p&gt;
&lt;h2&gt;第五步：上线前完成技术 SEO&lt;/h2&gt;
&lt;p&gt;至少确认以下项目：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个可索引页面只有一个描述主题的 H1；&lt;/li&gt;
&lt;li&gt;title 与 meta description 唯一，并符合页面搜索意图；&lt;/li&gt;
&lt;li&gt;canonical 使用正式 HTTPS 域名；&lt;/li&gt;
&lt;li&gt;robots.txt 没有误拦重要页面，并指向 sitemap；&lt;/li&gt;
&lt;li&gt;登录、账户、订单和错误页设置 &lt;code&gt;noindex&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;文章页包含准确的发布时间、更新时间和 BlogPosting 数据；&lt;/li&gt;
&lt;li&gt;站内链接使用有意义的锚文本，不依赖 JavaScript 才能访问；&lt;/li&gt;
&lt;li&gt;移动端没有横向滚动，图片预留尺寸，核心内容加载迅速。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上线后，把 sitemap 提交到 Google Search Console 和 Bing Webmaster Tools，并观察抓取、收录、查询词和核心网页指标。&lt;/p&gt;
&lt;h2&gt;第六步：用真实数据持续迭代&lt;/h2&gt;
&lt;p&gt;第一版上线只是开始。每周查看用户通过哪些查询进入网站、在哪些页面离开，以及哪些功能被反复使用。&lt;/p&gt;
&lt;p&gt;后续改进可以围绕三类信号展开：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;有展示、点击率低&lt;/strong&gt;：优化标题和描述，使价值更明确；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;有访问、完成率低&lt;/strong&gt;：简化交互，补充说明和示例；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;有需求、覆盖不足&lt;/strong&gt;：扩展相关工具、攻略和内部链接，形成主题集群。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;推荐的执行顺序&lt;/h2&gt;
&lt;p&gt;如果你准备今天开始，可以按下面的顺序推进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;选择一个具体游戏和一个高频问题；&lt;/li&gt;
&lt;li&gt;分析现有搜索结果，写出差异化方案；&lt;/li&gt;
&lt;li&gt;在一周内完成可用的核心页面；&lt;/li&gt;
&lt;li&gt;补齐元数据、结构化数据、sitemap 和分析；&lt;/li&gt;
&lt;li&gt;上线并收集两到四周的真实数据；&lt;/li&gt;
&lt;li&gt;根据数据决定扩展内容，还是改进核心工具。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;一个小而完整的网站，比一个功能很多但无法解决明确问题的项目更有机会获得自然流量。先完成闭环，再逐步扩大主题和功能范围。&lt;/p&gt;</content:encoded></item><item><title>AI 时代还要不要学 SEO？</title><link>https://freeourdays.com/posts/does-seo-still-matter-2026/</link><guid isPermaLink="true">https://freeourdays.com/posts/does-seo-still-matter-2026/</guid><description>AI 搜索改变了流量入口，但没有改变「能不能被收录」这件事。先讲清楚哪些该学、哪些可以先不管。</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;有人在一位 SEO 从业者的资源推荐帖下面问了这么一句：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;总有一种观点认为 SEO 会随着 AI 慢慢没落，所以现在不用再去花很大精力去学了，或者用 AI vibeseo 就够了。好奇专业人士对这个问题怎么看？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;提问的是 X 用户 &lt;a href=&quot;https://x.com/RevaHuai&quot; rel=&quot;nofollow noreferrer&quot; target=&quot;_blank&quot;&gt;@RevaHuai&lt;/a&gt;，2026 年 8 月。这个疑虑得先解决，不然后面十一章你没有理由读下去。&lt;/p&gt;
&lt;p&gt;讲道理是没用的，这种问题只能拿数据回答。2026 年 8 月 25 日，我们挑了三个真实的游戏搜索问题在 Google 上跑了一遍，把「AI 概览引用了谁」和「自然结果第一页站着谁」一条条记下来，再去对 Google 官方文档的原话。结果在下面。&lt;/p&gt;
&lt;h2&gt;先看一个事实：AI 的回答是从哪来的&lt;/h2&gt;
&lt;p&gt;先说两个词。&lt;strong&gt;AI 概览&lt;/strong&gt;是搜索结果最上面那段由 AI 生成的答案，中文界面叫「AI 概览」，英文界面叫 AI Overviews；它后面会挂几个来源链接，那就是「被引用」。&lt;strong&gt;自然结果&lt;/strong&gt;指广告以外的那些正常结果条目。&lt;/p&gt;
&lt;p&gt;测试条件写在这里，你可以自己复现：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;时间 2026-08-25，桌面版 Chrome，Google 中文界面（网址带 &lt;code&gt;hl=zh-CN&lt;/code&gt;）；&lt;/li&gt;
&lt;li&gt;网址末尾加上 &lt;code&gt;&amp;#x26;pws=0&lt;/code&gt;。这个参数让这次搜索尽量不参考你的个人搜索历史，不加的话你看到的结果会被自己的浏览习惯带偏；&lt;/li&gt;
&lt;li&gt;AI 概览的来源列表默认只露两三个，必须点开「全部显示」再统计，否则会漏；&lt;/li&gt;
&lt;li&gt;自然结果统计第一页的全部条目；&lt;/li&gt;
&lt;li&gt;按域名去重。&lt;code&gt;a.9game.cn&lt;/code&gt; 和 &lt;code&gt;9game.cn&lt;/code&gt; 算同一个站。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;三个问题分别对应游戏站最常见的三种页型：经验判断类（攻略加点）、事实数据类（材料清单）、操作步骤类（兑换码）。&lt;/p&gt;
&lt;img src=&quot;https://img.freeourdays.com/posts/does-seo-still-matter-2026/ai-overview-elden-ring.c6bdfc7e155a7327.webp&quot; alt=&quot;Google 中文搜索「艾尔登法环 法师 怎么加点」的 AI 概览：左侧是分属性的加点建议，正文里挂着「知乎专栏」的引用角标，右侧来源卡片是知乎专栏的一篇升级思路文章&quot; width=&quot;1100&quot; height=&quot;455&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;p&gt;三条查询的结果：&lt;/p&gt;

























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;查询&lt;/th&gt;&lt;th&gt;AI 概览引用的站&lt;/th&gt;&lt;th&gt;也在第一页&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;艾尔登法环 法师 怎么加点&lt;/td&gt;&lt;td&gt;知乎专栏、Bilibili、游民星空、游侠网、篝火营地&lt;/td&gt;&lt;td&gt;5 / 5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;原神 武器突破材料 怎么获得&lt;/td&gt;&lt;td&gt;原神官网、网易（cg.163.com）、biligame wiki、3DM、游民星空、9game&lt;/td&gt;&lt;td&gt;6 / 6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;崩坏星穹铁道 兑换码 怎么兑换&lt;/td&gt;&lt;td&gt;星穹铁道官网、Bilibili、知乎专栏、游民星空、YouTube&lt;/td&gt;&lt;td&gt;3 / 5&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;对照用的自然结果第一页，原始记录如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;艾尔登法环 法师 怎么加点
  游民星空 / YouTube / Bilibili / 知乎专栏 / 9game / 游侠网 / 篝火营地
原神 武器突破材料 怎么获得
  游民星空 / biligame wiki / 网易 / Fandom / 3DM / 17173 / 原神官网 / 9game
崩坏星穹铁道 兑换码 怎么兑换
  Bilibili / 星穹铁道官网 / 知乎专栏 / 17173 / HoYoLAB / 新浪
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;16 个被引用的站，14 个同时出现在同一条查询的自然结果第一页。&lt;/strong&gt; 漏掉的两个是第三条查询里的游民星空和 YouTube。&lt;/p&gt;
&lt;p&gt;这批数据有几个坑，得先说清楚，不然你拿去当结论会栽。&lt;/p&gt;
&lt;p&gt;样本只有三条，这是一次快照，不是统计结论——别拿 14 比 16 当什么行业比例。漏掉的那两个也不算「小站的后门」：游民星空和 YouTube 都是超大站，它们进 AI 概览靠的是别的东西。&lt;/p&gt;
&lt;p&gt;还有一点更麻烦。AI 概览是现场生成的，不是查表查出来的固定答案。同一天把星穹铁道那条重跑了一次，来源清单和第一次就不完全一样。所以你今天照着搜，数字大概对不上上面这张表。&lt;/p&gt;
&lt;p&gt;那条兑换码查询还暴露了另一件事：&lt;/p&gt;
&lt;img src=&quot;https://img.freeourdays.com/posts/does-seo-still-matter-2026/ai-overview-star-rail-codes.53ad32be62a08941.webp&quot; alt=&quot;Google 中文搜索「崩坏星穹铁道 兑换码 怎么兑换」的 AI 概览，右侧来源列表展开后前两条都是《崩坏：星穹铁道》官方网站，第三条是知乎专栏&quot; width=&quot;1100&quot; height=&quot;525&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;p&gt;前两个引用位都是官方站。这类「怎么操作」的问题，最权威的答案本来就在官方页面上，小站想插进去很难。&lt;strong&gt;同一个游戏，不同类型的问题，AI 引用谁的规律完全不同&lt;/strong&gt;——加点那种要靠玩家经验的问题，被引用的是知乎、Bilibili、攻略站；兑换码这种有官方口径的问题，官方站直接占位。你自己站上的页面属于哪一类，值得先想清楚。&lt;/p&gt;
&lt;p&gt;现在把这批数据和官方口径对一下。Google 搜索中心那篇讲 AI 功能的文档（最后更新 2025-12-10）写得非常直白：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;There are no additional requirements to appear in AI Overviews or AI Mode, nor other special optimizations necessary.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;同一页还有两句更要紧的话，转的人却很少。一句是「You don&apos;t need to create new machine readable files, AI text files, or markup to appear in these features」——不用给 AI 专门建文件，也不用额外加 schema.org 结构化数据。另一句划了条硬门槛：想作为来源链接出现，「a page must be indexed and eligible to be shown in Google Search with a snippet」，页面得先被收录，而且允许显示摘要。原文见 &lt;a href=&quot;https://developers.google.com/search/docs/appearance/ai-features&quot; rel=&quot;nofollow noreferrer&quot; target=&quot;_blank&quot;&gt;Google Search Central: AI features and your website&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;官方说没有特殊优化，实测说引用几乎都来自第一页。&lt;strong&gt;两边拼起来的结论是：想被 AI 引用，前提仍然是先排进第一页；「AI 优化」不是一件独立的事，它是原来那件事的下游。&lt;/strong&gt; 注意这是我们的推断，不是 Google 的原话——它没这么说过，我们也拿不出大样本证明它在所有词上都成立。&lt;/p&gt;
&lt;h2&gt;变的是入口，没变的是「能不能被收录」&lt;/h2&gt;
&lt;p&gt;再补两个词。&lt;strong&gt;抓取&lt;/strong&gt;是爬虫程序访问你的页面、把内容读走；&lt;strong&gt;索引&lt;/strong&gt;是 Google 把读到的内容存进自己的库里，没进库的页面根本不会出现在任何结果里，AI 概览也一样。&lt;/p&gt;
&lt;img src=&quot;https://img.freeourdays.com/posts/does-seo-still-matter-2026/search-funnel.6441b9245afdf130.webp&quot; alt=&quot;四层漏斗结构图，从宽到窄依次是：1 被抓取、2 被收录、3 排进目标词的第一页、4 被 AI 概览引用；底部标注 2026-08-25 实测，16 个被引用的站里 14 个也在第一页&quot; width=&quot;1200&quot; height=&quot;1200&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;p&gt;第 4 层是新接在这条链子末端的一环，不是把前面三层替换掉。你没被抓到，就不会被收录；没被收录，就排不进第一页；排不进第一页，被引用的概率就低到可以忽略。AI 只动了最后一环的形态，没动前面三环的规则。&lt;/p&gt;
&lt;p&gt;这也是为什么本系列没有单独开一章讲「怎么讨好 AI」。第十二章会讲 AI 搜索时代确实不一样的那部分，但前面十章讲的抓取、收录、选词、意图、标题、内链，在有 AI 概览和没有 AI 概览的世界里是同一套东西。&lt;/p&gt;
&lt;h2&gt;那流量到底掉没掉&lt;/h2&gt;
&lt;p&gt;这里有个必须摊开讲的矛盾，因为两边都是有署名的公开材料，结论相反。&lt;/p&gt;
&lt;p&gt;先看不利的那一边。Pew Research Center 的 Athena Chapekis 和 Anna Lieb 在 2025 年 7 月 22 日发过一份研究，最扎眼的是一组对照：结果页出现 AI 摘要时，用户点传统搜索结果链接的比例是 &lt;strong&gt;8%&lt;/strong&gt;；没有摘要时是 &lt;strong&gt;15%&lt;/strong&gt;，差不多是前者的两倍。至于摘要里挂着的那几个来源链接，点击率只有 1%。&lt;/p&gt;
&lt;p&gt;还有一个数字更能说明状态：看完带 AI 摘要的页面就直接结束整段浏览的占 26%，没摘要时是 16%。答案拿到手，人就走了。&lt;/p&gt;
&lt;p&gt;这份研究的底子是真实浏览数据，不是问卷——900 位美国成年人（KnowledgePanel Digital 成员）2025 年 3 月 1 日至 31 日的实际访问记录，共 68,879 次 Google 搜索，其中 12,593 次带 AI 摘要，结果页在 4 月 7 日至 17 日抓取。样本里只有 18% 的搜索出现了摘要，中位长度 67 个词，88% 引用了三个及以上来源。（&lt;a href=&quot;https://www.pewresearch.org/short-reads/2025/07/22/google-users-are-less-likely-to-click-on-links-when-an-ai-summary-appears-in-the-results/&quot; rel=&quot;nofollow noreferrer&quot; target=&quot;_blank&quot;&gt;原文&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;Google 搜索负责人 Liz Reid 在 2025 年 8 月 6 日的官方博客里说的是另一回事：从 Google 搜索流向网站的总自然点击量「relatively stable year-over-year」，而且平均点击质量在上升，送出去的「优质点击」比一年前略多——优质点击的定义是用户不会很快点返回。她同时点名批评外部报告「flawed methodologies」。（&lt;a href=&quot;https://blog.google/products/search/ai-search-driving-more-queries-higher-quality-clicks/&quot; rel=&quot;nofollow noreferrer&quot; target=&quot;_blank&quot;&gt;原文&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这两个数字可以同时成立，因为它们量的不是一回事。&lt;/strong&gt; Pew 量的是「单次搜索的点击率」，Google 量的是「总点击量」。分母不同：只要总搜索次数变多了，单次点击率下降的同时总点击量完全可以持平。这个解释也是我们推的，不是谁公布的结论——两家都没给出对方需要的那个分母。&lt;/p&gt;
&lt;p&gt;顺便说一句立场：市面上那种「AI 让 SEO 死了」的说法，通常是拿单次点击率当总量在讲；而「AI 对流量毫无影响」的说法，来源是当事人自己发的博客。两边都不该照抄。&lt;/p&gt;
&lt;p&gt;Google 那篇博客里还有一句它自己承认的话，被引用得远不如前半段多：用户行为的变化「resulting in decreased traffic to some sites and increased traffic to others」，正在增加的是论坛、视频、播客、帖子这类有「authentic voices and first-hand perspectives」的内容，以及深度评测、原创观点、第一人称分析。&lt;/p&gt;
&lt;p&gt;这句对纯搬运的攻略站是坏消息。你把官方公告和别人的攻略改写一遍拼成页面，AI 概览做的是同一件事，而且做得比你快。&lt;/p&gt;
&lt;h2&gt;游戏站受影响最小的那部分&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;工具页和实时数据页。&lt;/strong&gt; 这两类最难被抢走。&lt;/p&gt;
&lt;p&gt;配装计算器、伤害模拟器、抽卡概率计算，AI 概览可以替你把玩法总结成一段话，但它没法替用户算一次配装。用户要的是输入自己那套数值、拿到自己那个结果，这个动作只能发生在你的页面上。&lt;/p&gt;
&lt;p&gt;实时数据是另一种护城河：当前版本活动、兑换码有效期、限时商店轮换。AI 生成的答案有滞后风险，而这类问题一旦答错，用户当场就发现了。&lt;/p&gt;
&lt;p&gt;这条是推理，没有实测数据支撑，来路是「AI 概览引用的全是文字内容」这个观察。你可以自己验一下：把你站上工具页的目标问题拿去搜，看有没有 AI 概览。没有，这个位置暂时还是你的。&lt;/p&gt;
&lt;h2&gt;零点击对小站到底是好事还是坏事&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;零点击搜索&lt;/strong&gt;指用户搜完在结果页就拿到答案，一个链接都没点。&lt;/p&gt;
&lt;p&gt;对已经有流量的站，Pew 那两个数字确实是坏消息：8% 对 15%。&lt;/p&gt;
&lt;p&gt;但如果你的站是上个月刚上线的，情况不一样——你现在不是从 15% 掉到 8%，你现在是 0。你要抢的不是「保住原有流量」，是「先出现在第一页」。这个动作 AI 一点没改。&lt;/p&gt;
&lt;p&gt;代价也要说清楚。如果你整站的内容就是一句话能答完的事实——「某角色什么时候上线」「某材料周几刷」——那 AI 概览确实会把你吃掉，这类页面别当主力。用它们做入口可以，指望它们撑住整站流量不行。&lt;/p&gt;
&lt;h2&gt;结论：哪些该学，哪些可以先不管&lt;/h2&gt;
&lt;p&gt;该学的，就是 Google 那份文档自己列的清单：robots.txt 不要拦住爬虫（主机层也别拦）、内链让每个页面都能被走到、重要内容放在 HTML 文本里而不是靠 JavaScript 生成、结构化数据和页面上看得见的内容对得上、把站验证到 Search Console 里。这些正好是本系列第 6 到 11 章要讲的东西。&lt;/p&gt;
&lt;p&gt;可以先不管的：给 AI 准备的专用文件。Google 明确写了不需要新建 machine readable files 或 AI text files，也不需要额外的 schema.org 标记。现在有人卖 &lt;strong&gt;GEO&lt;/strong&gt;（Generative Engine Optimization，针对生成式引擎的优化）服务，如果你打算掏钱，建议先问一句：官方文档说「没有额外要求，也不需要特殊优化」，你优化的是什么。&lt;/p&gt;
&lt;p&gt;至于「用 AI vibeseo 就够了」——AI 可以帮你写 title、批量查重复内容、解释 Search Console 里的报告。它替不掉的是判断：哪个词你这种站能做、哪个页面该拆、第一页站着的是谁。这些判断需要你看得懂盘面，而看懂盘面就是这个系列后面十一章的内容。&lt;/p&gt;
&lt;h2&gt;动手清单&lt;/h2&gt;
&lt;p&gt;挑三个问题，分别对应你站上三种不同页型（比如一个攻略类、一个数据类、一个操作类），然后：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开无痕窗口，在 Google 搜第一个问题；&lt;/li&gt;
&lt;li&gt;在地址栏的网址末尾加上 &lt;code&gt;&amp;#x26;pws=0&lt;/code&gt;，回车重新加载；&lt;/li&gt;
&lt;li&gt;如果出现了 AI 概览，点开来源列表的「全部显示」，把所有域名抄下来；&lt;/li&gt;
&lt;li&gt;往下滚到自然结果，把第一页所有条目的域名抄下来；&lt;/li&gt;
&lt;li&gt;数一下：AI 概览引用的这些站，有几个也在第一页；&lt;/li&gt;
&lt;li&gt;剩下不在第一页的，逐个看一眼是大站还是和你体量相近的小站；&lt;/li&gt;
&lt;li&gt;另外两个问题重复一遍。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;每个问题填一份记录：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;查询：
页型：攻略 / 数据 / 操作 / 工具
出现 AI 概览：是 / 否
AI 概览引用的域名：
自然结果第一页的域名：
引用里来自第一页的：__ / __
不在第一页的那些是大站还是小站：
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;手抄嫌慢的话，在搜索结果页按 F12 打开控制台，粘贴这段运行（中文界面用；英文界面把 &lt;code&gt;AI 概览&lt;/code&gt; 换成 &lt;code&gt;AI Overview&lt;/code&gt;、&lt;code&gt;网页搜索结果&lt;/code&gt; 换成 &lt;code&gt;Web results&lt;/code&gt;）：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-js&quot;&gt;(() =&gt; {
  const leaf = (text) =&gt;
    [...document.querySelectorAll(&quot;div,span,h1,h2,h3&quot;)].find(
      (el) =&gt; el.textContent.trim() === text &amp;#x26;&amp;#x26; el.children.length === 0,
    );
  const aio = leaf(&quot;AI 概览&quot;);
  const web = leaf(&quot;网页搜索结果&quot;);
  if (!aio || !web) return &quot;没找到 AI 概览，或者页面还没加载完&quot;;

  const AFTER = Node.DOCUMENT_POSITION_FOLLOWING;
  const BEFORE = Node.DOCUMENT_POSITION_PRECEDING;
  const host = (a) =&gt; new URL(a.href).hostname.replace(/^www\./, &quot;&quot;);
  const links = [...document.querySelectorAll(&apos;a[href^=&quot;http&quot;]&apos;)]
    .filter((a) =&gt; a.getBoundingClientRect().height &gt; 0)
    .filter((a) =&gt; !/google\.com$/.test(host(a)));

  const uniq = (list) =&gt; [...new Set(list.map(host))];
  return {
    AI概览引用: uniq(
      links.filter(
        (a) =&gt;
          aio.compareDocumentPosition(a) &amp;#x26; AFTER &amp;#x26;&amp;#x26;
          web.compareDocumentPosition(a) &amp;#x26; BEFORE,
      ),
    ),
    自然结果第一页: uniq(links.filter((a) =&gt; web.compareDocumentPosition(a) &amp;#x26; AFTER)),
  };
})();
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;它的原理就是用「AI 概览」和「网页搜索结果」这两个标题当分界线，按文档顺序把中间的链接归给 AI 概览、后面的归给自然结果。运行前记得先点开「全部显示」，并往下滚到页面底部让结果全部加载出来。&lt;/p&gt;
&lt;h2&gt;怎么验证做对了&lt;/h2&gt;
&lt;p&gt;三份记录填完，逐条对一下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每一行都是具体域名，不是「几个大站」这种概括。写不出域名说明没真看；&lt;/li&gt;
&lt;li&gt;你能说出三个查询各自的重叠数字，比如 5/5、6/6、3/5；&lt;/li&gt;
&lt;li&gt;不在第一页的引用来源，你判断过它是超大站还是小站。如果全是超大站，那这个位置目前不是你能靠「优化 AI」抢到的；&lt;/li&gt;
&lt;li&gt;三个查询里如果有一个连 AI 概览都没出现，也要记下来。那说明这个词还没被 AI 概览覆盖，对你是好消息，不是数据缺失。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;填完这张表，你手上就有了自己站的第一份真实盘面——不是别人的行业报告，是你的词、你的对手。下一章往回退一步，讲搜索引擎拿到你的页面之后到底干了什么，以及这一路上哪些环节是你插得上手的。&lt;/p&gt;</content:encoded></item><item><title>SEO 是什么：搜索引擎其实只做三件事</title><link>https://freeourdays.com/posts/how-search-engines-work/</link><guid isPermaLink="true">https://freeourdays.com/posts/how-search-engines-work/</guid><description>SEO 是什么？说到底就是抓取、索引、排名三件事。用大白话讲完，你就知道自己能控制哪三件事。</description><pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;先说结论：&lt;strong&gt;SEO 是什么？就是让搜索引擎在做那三件事的时候，每一件都别在你这儿卡住。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;三件事是抓取、索引、排名。它们是先后关系，不是并列关系。第 3 件做得再漂亮，前两件不成立，那就什么都不会发生。&lt;/p&gt;
&lt;p&gt;这一章我们拿本站自己开刀。域名 &lt;code&gt;freeourdays.com&lt;/code&gt;，2026 年 9 月 1 日实测，全部命令你可以照抄去跑你自己的站。查出来的东西有点难看——一个早就删掉的页面还留在 Google 的索引里，一个页面被收了两遍，索引里存的标题还是改版前那一版，&lt;a href=&quot;/posts/does-seo-still-matter-2026/&quot;&gt;上一章&lt;/a&gt;发出去 7 天也没进去。这些都留在下面，因为一个只有好消息的例子教不了你任何东西。&lt;/p&gt;
&lt;img src=&quot;https://img.freeourdays.com/posts/how-search-engines-work/three-jobs.299906284a3e81d2.webp&quot; alt=&quot;左右对照图：左列是搜索引擎做的三件事——抓取（爬虫把你的 HTML 整个下载走，它不执行你的 JS）、索引（决定这一页值不值得存进库里，抓到不等于收录）、排名（同一个词把谁放在前面，这一层才是竞争）；右列是你能控制的三件事——让它进得来、让它值得存、让它挑你；底部一行写着顺序不能跳&quot; width=&quot;1200&quot; height=&quot;1360&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;h2&gt;抓取：爬虫怎么找到你的页面&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;爬虫&lt;/strong&gt;是搜索引擎派出来的程序，它干的事和你按 Ctrl+U 看网页源代码几乎一样：请求一个网址，把返回的 HTML 存下来，从里面挑出链接，再去请求下一个。Google 的那只叫 Googlebot。&lt;/p&gt;
&lt;p&gt;它怎么知道你的站存在？三条路：别人的页面链到了你、你自己提交的 sitemap、以及站内已抓到的页面里的链接。&lt;strong&gt;sitemap&lt;/strong&gt; 就是你自己列的一份网址清单，放在站上一个固定地址，等于主动递给搜索引擎一句「我有这些页」。&lt;/p&gt;
&lt;p&gt;先验证第一件事：爬虫来的时候，看到的和你在浏览器里看到的是同一个东西吗？&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 假装自己是 Googlebot 抓一次，只看 HTML 有多大
curl -s -A &quot;Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)&quot; \
  https://freeourdays.com/posts/does-seo-still-matter-2026/ | wc -c

# 再用普通浏览器的身份抓一次，对比
curl -s -A &quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36&quot; \
  https://freeourdays.com/posts/does-seo-still-matter-2026/ | wc -c
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;-A&lt;/code&gt; 后面那一长串叫 &lt;strong&gt;User-Agent&lt;/strong&gt;，是浏览器和爬虫访问网站时自报的身份。改掉它，服务器就以为来的是 Googlebot。&lt;/p&gt;
&lt;p&gt;本站两次都是 141734 字节，一模一样。这是好事：说明服务器没有对爬虫另眼相待，正文实实在在写在 HTML 里。&lt;/p&gt;
&lt;p&gt;把网址换成你自己的页面跑一遍。如果第一条命令的数字明显小于第二条，或者小得离谱（比如只有两三千字节），你的正文很可能是靠 JavaScript 在浏览器里现拼出来的。Googlebot 会渲染 JavaScript，但那是排在后面的另一道工序，不保证时机，也不保证每次都做。第 9 章会专门拆这个坑。&lt;/p&gt;
&lt;p&gt;顺手再确认一件事——你有没有亲手把爬虫拦在门外。&lt;strong&gt;&lt;code&gt;robots.txt&lt;/code&gt;&lt;/strong&gt; 是放在网站根目录的一个纯文本文件，爬虫进门先读它，看哪些路径准进、哪些不准：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -s https://freeourdays.com/robots.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;本站返回的是：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;User-agent: *
Allow: /
Disallow: /api/

Sitemap: https://freeourdays.com/sitemap-index.xml
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Allow: /&lt;/code&gt; 是全站放行，&lt;code&gt;Disallow: /api/&lt;/code&gt; 只挡住接口路径——那些地址返回的是 JSON，收录了对谁都没用。真正要命的写法是 &lt;code&gt;Disallow: /&lt;/code&gt;，少一个 &lt;code&gt;api&lt;/code&gt; 就从「挡住接口」变成「谢绝参观」，而这行经常是从别人的模板里抄来的。第 6 章会把这个文件逐行讲清楚。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这里有个细节值得单独说。&lt;/strong&gt; 抓取搬走的只是文字，你在图里画了什么它一概不知。上一章那两张 AI 概览截图里有整整一屏的站名和数据，爬虫从图片文件里一个字也读不到。所以那一章的正文里另外用表格把同样的内容又写了一遍：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 截图里出现的站名，正文里到底有没有对应的文字
curl -s -A &quot;Googlebot&quot; https://freeourdays.com/posts/does-seo-still-matter-2026/ \
  | grep -o &quot;知乎专栏&quot; | wc -l
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;结果是 7 次。这不是巧合，是写的时候刻意做的：&lt;strong&gt;截图只负责证明「这事真发生过」，它里面的每个数字都必须同时以文字形式出现在页面上。&lt;/strong&gt; 图里的字、视频里的话、canvas 画出来的表格，对抓取这一步来说都等于不存在。&lt;/p&gt;
&lt;p&gt;alt 是个例外，它是 HTML 文本，爬虫读得到。所以 alt 要写清图里在发生什么，而不是填个「示意图」交差。&lt;/p&gt;
&lt;h2&gt;索引：被抓到 ≠ 被收录&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;索引&lt;/strong&gt;是搜索引擎的库。抓取只是把你的页面下载走了，接下来它要判断这一页值不值得存进库里——存了，你才有资格参与排名；没存，你在搜索结果里就是不存在。&lt;/p&gt;
&lt;p&gt;Google 自己把这两步分得很开。它那份《Google Search Essentials》里有一句话，位置很不显眼，但说得毫不含糊：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It&apos;s important to note that just because a page meets all of these requirements and best practices, doesn&apos;t mean that Google will crawl, index, or serve its content.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;页面把每条技术要求和最佳实践都满足了，也不代表 Google 会抓取它、收录它、把它拿出来给人看。原文见 &lt;a href=&quot;https://developers.google.com/search/docs/essentials&quot; rel=&quot;nofollow noreferrer&quot; target=&quot;_blank&quot;&gt;Google Search Essentials&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;「不代表」这三个字要当真。看本站的实测：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 站上一共提交了几个网址（sitemap 是一整行 XML，所以按出现次数数，不能按行数数）
curl -s https://freeourdays.com/sitemap-0.xml | grep -o &quot;&amp;#x3C;loc&gt;&quot; | wc -l
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;答案是 10 个。（这是本章发布前的数字。本章上线后你跑同一条命令会拿到 11，多出来的就是你正在读的这一页；它此刻只是进了 sitemap，收不收还得看下面那一节。）这 10 个还不是全部——&lt;code&gt;/series/game-site-seo/&lt;/code&gt; 能正常打开，却根本没写进 sitemap，是本站 sitemap 生成时漏了系列页。第 6 章讲 sitemap 的时候会一起修。&lt;/p&gt;
&lt;p&gt;然后去 Google 搜 &lt;code&gt;site:freeourdays.com&lt;/code&gt;，数一数它真收了几个。&lt;/p&gt;
&lt;img src=&quot;https://img.freeourdays.com/posts/how-search-engines-work/site-query-freeourdays.22e71cf6a63b6ccd.webp&quot; alt=&quot;Google 搜索 site.com 的结果截图：顶部显示「找到约 640 条结果」，下面依次是 freeourdays.com 首页（标题为 AI 游戏网站搭建教程，摘要注明 7 天前）、两条网址都是 freeourdays.com/terms 的服务条款结果（一条标题为「服务条款| Game Site Academy」，另一条被接上了站名变成「服务条款| Game Site Academy - AI 游戏网站搭建教程」，摘要一字不差）、以及一条来自 nextjs.freeourdays.com 子域名的 Next.js 中文文档&quot; width=&quot;1400&quot; height=&quot;1186&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;p&gt;截图顶上写着「找到约 640 条结果」。别高兴——&lt;strong&gt;这个数字基本没有参考价值。&lt;/strong&gt; 640 里绝大多数不是这个站的页面，而是挂在同一个域名下的其他子域名：&lt;code&gt;nextjs.freeourdays.com&lt;/code&gt;、&lt;code&gt;skillsmanager.freeourdays.com&lt;/code&gt;、&lt;code&gt;pixverse.freeourdays.com&lt;/code&gt;、&lt;code&gt;moltbothub.freeourdays.com&lt;/code&gt;，那是另外几个项目。&lt;code&gt;site:&lt;/code&gt; 是按域名后缀匹配的，子域名一律算进来。&lt;/p&gt;
&lt;p&gt;这个数还会自己漂。同一天稍晚再查一次，它变成「约 649 条」，站上一个字都没动。&lt;/p&gt;
&lt;p&gt;把范围缩到主域名，真实的收录清单是这样：&lt;/p&gt;


















































&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;网址&lt;/th&gt;&lt;th&gt;在 sitemap 里&lt;/th&gt;&lt;th&gt;被收录&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;首页 &lt;code&gt;/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;是&lt;/td&gt;&lt;td&gt;是&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;/about/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;是&lt;/td&gt;&lt;td&gt;是&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;/posts/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;是&lt;/td&gt;&lt;td&gt;是&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;/terms/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;是&lt;/td&gt;&lt;td&gt;是（两条结果）&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;/posts/does-seo-still-matter-2026/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;是&lt;/td&gt;&lt;td&gt;&lt;strong&gt;否&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;/posts/ai-game-website-guide/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;是&lt;/td&gt;&lt;td&gt;&lt;strong&gt;否&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;/pricing/&lt;/code&gt; &lt;code&gt;/privacy/&lt;/code&gt; &lt;code&gt;/series/&lt;/code&gt; &lt;code&gt;/showcase/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;是（4 个）&lt;/td&gt;&lt;td&gt;&lt;strong&gt;否&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;/posts/producthunt-daily-2026-08-18/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;否，已删除&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;是&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;img src=&quot;https://img.freeourdays.com/posts/how-search-engines-work/indexed-vs-sitemap.ea15d6ff96597217.webp&quot; alt=&quot;两个集合的对照图：左边写「提交的 10 个网址」，来自 sitemap-0.xml；右边写「它真收了的 4 个网址」，是首页、about、posts、terms；下方两个警示框分别写着「索引里还有一个已经删掉的页」（/posts/producthunt-daily-2026-08-18/ 现在返回 404，但搜索结果里还在）和「同一个页面被收了两遍」（/terms 和 /terms/ 都返回 200，末尾多一条斜杠就是另一个网址）&quot; width=&quot;1200&quot; height=&quot;1173&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot;&gt;
&lt;p&gt;四处不对劲，一个一个说。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;上一章那篇文章发了 7 天，还没进索引。&lt;/strong&gt; &lt;code&gt;/posts/does-seo-still-matter-2026/&lt;/code&gt; 在 sitemap 里，能正常打开，HTML 里有 14 万字节的正文，但搜不到。这不是出了故障，这就是新站的常态——一个几乎没有外部链接的新域名，Google 不着急。第 6 章会讲多久没收录才算真的出问题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;一个已经删掉的页面还在索引里。&lt;/strong&gt; 那是 8 月做的一个 Product Hunt 日报页，后来撤掉了。现在访问它：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -s -o /dev/null -w &quot;%{http_code}\n&quot; \
  https://freeourdays.com/posts/producthunt-daily-2026-08-18/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;返回 404。页面早没了，索引里的记录还在，别人搜到它就会点进一个死链。&lt;strong&gt;索引不是你网站的镜子，它是一份有延迟、会出错、按它自己的节奏更新的副本。&lt;/strong&gt; 你删掉一个页面，Google 不会当场知道。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;索引里存的标题是旧的。&lt;/strong&gt; 同一次 &lt;code&gt;site:&lt;/code&gt; 查询返回的结果里，&lt;code&gt;/about/&lt;/code&gt; 那条的标题是「关于我 - 弗雷FREE」，&lt;code&gt;/posts/&lt;/code&gt; 那条是「文章| 弗雷FREE」。这个站早就改过名了。看现在的真实标题：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;for u in /about/ /posts/; do
  curl -s &quot;https://freeourdays.com$u&quot; | grep -o &quot;&amp;#x3C;title&gt;[^&amp;#x3C;]*&amp;#x3C;/title&gt;&quot;
done
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;出来的是 &lt;code&gt;关于 Game Site Academy | Game Site Academy&lt;/code&gt; 和 &lt;code&gt;AI 游戏网站搭建教程 | Game Site Academy&lt;/code&gt;。&lt;strong&gt;搜索结果里显示的标题，是 Googlebot 上次来的时候看到的那一版，不一定是你现在这一版。&lt;/strong&gt; 所以改完 title 别急着看排名有没有变，先确认 Google 已经重新抓过。&lt;/p&gt;
&lt;p&gt;这一步顺带露出另一个毛病：&lt;code&gt;/posts/&lt;/code&gt; 现在的 title 和首页一字不差，两个页面在抢同一个标题。第 7 章讲 title 的时候会把全站重复标题一次查干净。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;同一个页面被收录了两遍。&lt;/strong&gt; 这条最值得你现在就去查自己的站：&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# 同一个页面，网址末尾差一条斜杠
for u in /terms /terms/; do
  curl -s -o /dev/null -w &quot;$u → %{http_code}\n&quot; &quot;https://freeourdays.com$u&quot;
done
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;两个都返回 200。对搜索引擎来说，&lt;code&gt;/terms&lt;/code&gt; 和 &lt;code&gt;/terms/&lt;/code&gt; 是两个不同的网址，内容却一字不差。截图里那两条服务条款结果就是这么来的，标题还不一样：一条是「服务条款| Game Site Academy」，另一条被 Google 接上了站名，成了「服务条款| Game Site Academy - AI 游戏网站搭建教程」，下面的摘要则完全相同。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这条证据有个坑。&lt;/strong&gt; 同一天稍晚重搜一次，那两条只剩一条了——Google 会把同一个站的近似结果折叠起来，不同请求折叠得还不一样。所以别把搜索结果页当检测工具，上面那两行 curl 才是稳的：两个网址都返回 200 且内容相同，问题就客观存在，这一刻能不能在结果页看见它是另一回事。&lt;/p&gt;
&lt;p&gt;sitemap 里那 10 个网址，我们一个个试过，&lt;strong&gt;带斜杠和不带斜杠都返回 200，一个例外都没有&lt;/strong&gt;。这是本站实际存在的一个缺陷，第 9 章讲重复内容的时候会把它修掉，并且把过程写出来。&lt;/p&gt;
&lt;p&gt;先记住这个判断：&lt;strong&gt;页数多不等于收录多，收录多也不等于内容多。&lt;/strong&gt; 一份内容拆成两个网址，不会让你多一份曝光，只会让搜索引擎在两个几乎一样的页面之间反复犹豫。&lt;/p&gt;
&lt;h2&gt;排名：同一个词凭什么排你在前面&lt;/h2&gt;
&lt;p&gt;前两步是资格审查，这一步才是比赛。库里所有跟这个词有关的页面排成一队，谁在前面。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这一步的官方名字其实不叫排名，叫「呈现搜索结果」（Serving search results）。&lt;/strong&gt; 差别不是文字游戏。Google 那份《How Search Works》讲到这一步时补了一句：Search Console 说某个页面已收录、你却在搜索结果里找不到它，可能是内容跟查询不相关、质量不够，或者 robots 元标记禁止了呈现。&lt;strong&gt;「被收录」和「会被拿出来给人看」还是两件事&lt;/strong&gt;，这是第三层最容易被忽略的一半。（&lt;a href=&quot;https://developers.google.com/search/docs/fundamentals/how-search-works&quot; rel=&quot;nofollow noreferrer&quot; target=&quot;_blank&quot;&gt;Google 搜索中心：How Search Works&lt;/a&gt;）&lt;/p&gt;
&lt;p&gt;这里不打算罗列排名因素。官方在同一页上只说了这么多：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Relevancy is determined by hundreds of factors, which could include information such as the user&apos;s location, language, and device (desktop or phone).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;数百个因素，点名的只有三个：用户位置、语言、设备。&lt;strong&gt;Google 从来没有公布过完整清单。&lt;/strong&gt; 所以那些「SEO 排名因素 200 条」的文章，能对上官方口径的就是上面这一句，剩下的都是各家自己的推测和逆向观察——不是说没价值，但它和官方说法不是一回事，中文互联网上转来转去的版本往往连这个区别都不标。&lt;/p&gt;
&lt;p&gt;不看清单看什么？看第一页。排名是相对的——你不需要满足某个绝对标准，只需要比现在排第一页那几个更值得排。所以判断「我能不能排上去」的正确动作不是对着因素表打分，是去搜那个词，看第一页站着谁。&lt;/p&gt;
&lt;p&gt;拿这篇文章自己举例。它想排的词是「seo是什么」。我们在动笔前测过一批词的竞争度（用&lt;a href=&quot;https://seo.web.cafe/kd/&quot; rel=&quot;nofollow noreferrer&quot; target=&quot;_blank&quot;&gt;哥飞版关键词难度估算&lt;/a&gt;，地区参数 &lt;code&gt;gl=us&lt;/code&gt;，2026-08-25），&lt;code&gt;seo是什么&lt;/code&gt; 是 24.9 分，属于「容易」，工具估算进前十约需 30 个引用域。同一批里最容易的 &lt;code&gt;seo竞争度分析&lt;/code&gt; 只要 10 个；最难的 &lt;code&gt;网站测速工具&lt;/code&gt; 84.5 分、需要 530 个——那个词第一页全是各家测速工具的官网，新站去碰只是浪费时间。&lt;/p&gt;
&lt;p&gt;不是「我要做好 SEO」，是「这个词第一页那十个我能不能超过」。第 4 章会把这套判断拆成可执行的步骤。&lt;/p&gt;
&lt;p&gt;还有一条现在就能用：排名是按查询词逐个算的，&lt;strong&gt;你的站没有一个统一的「排名」&lt;/strong&gt;。同一个站，某个冷门长词可能排第 3，某个热词连前 100 都进不去。所以「我的网站排名怎么提升」问不出答案，「《原神》武器突破材料这个词我现在排第几」才问得出。&lt;/p&gt;
&lt;h2&gt;跟着一个游戏攻略页走完全程&lt;/h2&gt;
&lt;p&gt;假设你刚给自己的原神攻略站加了一页，讲某把新武器的突破材料要去哪刷。发布之后会发生什么：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;第一天，什么都没发生。&lt;/strong&gt; 页面在线上，Google 不知道它存在。你的站没有多少外部链接，Googlebot 不会没事就来转一圈。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;它得先听说这一页。&lt;/strong&gt; 三条路：sitemap 里出现了这个网址；站内某个已被抓到的页面链到了它；或者外站有人链了它。第三条最快，也最难安排。这就是第 8 章要专门讲内链的原因——内链不只是给读者的导航，它是爬虫在你站内的唯一路线图。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Googlebot 来抓。&lt;/strong&gt; 它请求这个网址，把返回的 HTML 存走。如果材料表格是靠 JavaScript 从接口拉回来渲染的，它这一趟看到的可能是个空壳。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;接着是收录判断。&lt;/strong&gt; 如果你站上已经有三个页面在讲同一把武器的同一批材料（总览页、单武器页、材料反查页，内容大段重合），Google 会挑一个，剩下的可能就不收了。本站 &lt;code&gt;/terms&lt;/code&gt; 和 &lt;code&gt;/terms/&lt;/code&gt; 是这个问题的极端版本——两个网址内容完全相同。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;最后才是排名。&lt;/strong&gt; 有人搜「某武器 突破材料」，你的页面和另外几十个排队。这时候起作用的是：你到底有没有回答这个问题，还是绕了三段废话才给出材料清单。&lt;/p&gt;
&lt;p&gt;整条链上，&lt;strong&gt;你能插手的地方比你想象的少，但每一处都有具体动作。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;这三件事分别对应你能控制的哪三件事&lt;/h2&gt;
&lt;p&gt;页面不来流量，先定位它卡在哪一层：&lt;/p&gt;





























&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;卡在哪&lt;/th&gt;&lt;th&gt;症状长什么样&lt;/th&gt;&lt;th&gt;你的动作&lt;/th&gt;&lt;th&gt;怎么算做到了&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;抓取&lt;/td&gt;&lt;td&gt;爬虫身份抓回来的 HTML 明显比浏览器小；或者 &lt;code&gt;robots.txt&lt;/code&gt; 里有 &lt;code&gt;Disallow: /&lt;/code&gt;&lt;/td&gt;&lt;td&gt;放开 &lt;code&gt;robots.txt&lt;/code&gt;，把网址写进 sitemap，正文写在 HTML 里&lt;/td&gt;&lt;td&gt;两个 User-Agent 抓回来的字节数一致，&lt;code&gt;grep&lt;/code&gt; 能在里面找到正文原句&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;索引&lt;/td&gt;&lt;td&gt;页面能打开、也在 sitemap 里，&lt;code&gt;site:&lt;/code&gt; 就是查不到&lt;/td&gt;&lt;td&gt;把重复网址收敛成一个，从已被收录的页面给它补内链，然后等&lt;/td&gt;&lt;td&gt;&lt;code&gt;site:&lt;/code&gt; 或 Search Console 的网址检查工具能看到它&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;呈现&lt;/td&gt;&lt;td&gt;已经收录了，可搜目标词翻十页也找不到你&lt;/td&gt;&lt;td&gt;换一个第一页打得过的词；一页只回答一个问题&lt;/td&gt;&lt;td&gt;拿目标词搜，能在前 100 名里找到自己&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;三行里最不由你说了算的是中间那行。抓取有明确的开关，排名有明确的对手，收录既没有开关也没有对手——你只能把理由给足，然后等。本站那篇发了 7 天还没收录的文章，此刻确实没有任何「操作」可做，第 6 章会讲什么时候该催、什么时候催了也是白费力气。&lt;/p&gt;
&lt;h2&gt;动手清单&lt;/h2&gt;
&lt;p&gt;给自己的站做一次收录盘点。先手动数两张单子，再用脚本把三项检查一次跑完。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;开无痕窗口搜 &lt;code&gt;site:你的域名&lt;/code&gt;，把结果里&lt;strong&gt;属于主域名&lt;/strong&gt;的网址全抄下来，子域名的不算。顶上那个「找到约 N 条」直接忽略；&lt;/li&gt;
&lt;li&gt;打开你的 sitemap，把里面的网址也抄下来。地址一般写在 &lt;code&gt;robots.txt&lt;/code&gt; 最后一行，常见的是 &lt;code&gt;/sitemap.xml&lt;/code&gt;，也可能是 &lt;code&gt;/sitemap-index.xml&lt;/code&gt; 套着几个子文件——那就先打开索引文件，找到真正列网址的那一个；&lt;/li&gt;
&lt;li&gt;两张单子对着看，标出三类：在 sitemap 里但没被收录的、被收录但不在 sitemap 里的、同一份内容出现两次的；&lt;/li&gt;
&lt;li&gt;第二类逐个 &lt;code&gt;curl&lt;/code&gt; 一下状态码。返回 404 的，就是留在索引里的死链；&lt;/li&gt;
&lt;li&gt;把下面这段存成 &lt;code&gt;check-index.sh&lt;/code&gt;，改掉头两行的 &lt;code&gt;SITE&lt;/code&gt; 和 sitemap 地址再跑。&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;SITE=&quot;freeourdays.com&quot;
BOT=&quot;Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)&quot;

# 一、sitemap 里列了哪些网址
curl -s &quot;https://$SITE/sitemap-0.xml&quot; \
  | grep -o &quot;&amp;#x3C;loc&gt;[^&amp;#x3C;]*&amp;#x3C;/loc&gt;&quot; | sed &quot;s/&amp;#x3C;[^&gt;]*&gt;//g&quot; &gt; urls.txt
echo &quot;sitemap 里有 $(grep -c . urls.txt) 个网址&quot;

# 二、每个网址两种写法各返回什么：带斜杠 / 不带斜杠
while read -r url; do
  bare=&quot;${url%/}&quot;
  printf &quot;%s %s   %s %s\n&quot; \
    &quot;$(curl -s -o /dev/null -w &quot;%{http_code}&quot; &quot;$url&quot;)&quot;  &quot;$url&quot; \
    &quot;$(curl -s -o /dev/null -w &quot;%{http_code}&quot; &quot;$bare&quot;)&quot; &quot;$bare&quot;
done &amp;#x3C; urls.txt

# 三、首页在两种身份下抓回来一样大吗
echo &quot;Googlebot: $(curl -s -A &quot;$BOT&quot; &quot;https://$SITE/&quot; | wc -c) 字节&quot;
echo &quot;浏览器:    $(curl -s &quot;https://$SITE/&quot; | wc -c) 字节&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;怎么验证做对了&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;你能报出两个数：sitemap 里几个网址，主域名实际被收录几个。报不出来就是没查；&lt;/li&gt;
&lt;li&gt;你手上有一份「被收录但站上已经没有了」的清单。它可以是空的，但必须是查过之后确认为空，不是猜的；&lt;/li&gt;
&lt;li&gt;第二项输出的每一行你都看过了。两个状态码都是 200 的行，就是你的重复网址清单，第 9 章要用；&lt;/li&gt;
&lt;li&gt;两个字节数你记下来了，差距在几百字节以内。差出一半以上的别等第 9 章，现在就去看页面源代码里有没有正文；&lt;/li&gt;
&lt;li&gt;如果 &lt;code&gt;site:&lt;/code&gt; 一条主域名的结果都没有，这也是结论，不是查询失败：整站还没进索引。第 6 章就是为这种情况写的。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下一章开始选词。在你还不知道玩家到底在搜什么之前，上面这三件事都无处可用——它们保证的是「你能被搜到」，不保证有人搜。第 3 章讲三个不花钱的办法：搜索联想、玩家社区里反复出现的提问、竞品站的导航，产出你的第一批 20 个候选词。&lt;/p&gt;</content:encoded></item></channel></rss>