一、💡 一句话理解
核心结论
搜索结果里找不到自己的网站,先不要急着改标题或堆关键词。先确认 Google 是否已经发现、抓取并收录页面;当前博客的 sitemap 把文章写成服务器 IP 地址而不是
blog.afyke.com,这是应优先修复的配置问题。
可以把 Google 想成图书馆:文章写得再好,如果还没被登记入库,读者按关键词也找不到它。
二、🧭 理论:Google 搜索到底在做什么
2.1 发现、抓取、收录、排名
把 Google 想成一个很大的图书馆。你写的 aTrust 文章是一册新书,想让读者搜到它,图书馆要按顺序完成下面 4 件事:
-
先知道这本书存在(发现 URL)
Google 必须先看到文章地址。首页里的文章链接、sitemap 和其他网站指向你的链接,都是在把“书的地址”告诉 Google。 -
把书拿来翻一翻(抓取页面)
Googlebot 会尝试打开这个地址,读取标题和正文。页面必须能正常打开、不能要求登录,也不能拦住 Googlebot。
例如浏览器访问文章时能看到内容,服务器返回 HTTP 200,才算“书能拿到手”。 -
把书登记进馆藏系统(收录内容)
Google 读完后,才决定是否把它录入自己的搜索库。设置了noindex的页面,相当于书上贴着“不要入库”的标签;Google 就不会把它放进搜索结果。 -
有人问“aTrust 隔离计划”时,把书排到前面还是后面(排名)
只有已经入库的文章,才有资格参与这一步。Google 会看文章是不是真的在解决这个问题、标题和正文是否清楚、其他人是否愿意引用它等。
用你的现象来判断
现在搜索
site:blog.afyke.com aTrust没有结果,等于“图书馆里还查不到你这个书架上的书”。所以先检查第 1、2、3 步:Google 有没有找到文章、能不能打开、有没有收录。等确认收录后,再讨论为什么别人的文章排在你前面。
最终原因仍要以 Search Console 的“网址检查”和“网页编入索引”报告为准:搜索页只能告诉你“有没有结果”,这两个报告才能告诉你“卡在哪一步”。
2.2 Googlebot 是什么
Googlebot 是 Google 派出的自动浏览网页的小机器人。它就像图书馆派来的“收书员”,会自动访问公开的网站。
对一篇文章来说,它主要做 3 件事:
- 找到文章地址:从首页链接、sitemap 或其他网站的链接中,发现你的文章。
- 打开并阅读文章:读取网页里的标题、正文和链接。
- 把结果交给 Google:让 Google 判断这篇文章能否进入搜索库。
Googlebot 打开你的文章
↓
确认页面能看、没有禁止收录
↓
Google 决定是否把文章登记进搜索库
↓
用户搜索关键词时,文章才有机会出现如果页面需要登录、打开报错、被 robots.txt 拦住,或设置了 noindex,Googlebot 就无法正常完成这项工作。
2.3 sitemap 是什么
先不用管 XML 是什么。你只要把 sitemap 理解成一张交给 Googlebot 的文章地址清单。
你的博客里有很多文章。Googlebot 不一定会自己走遍每一个页面,所以 Quartz 会生成一个叫 sitemap.xml 的文件,主动告诉它:
我的博客有这些文章,请按下面的地址去看:
https://blog.afyke.com/臭名昭著atrust隔离计划/1.臭名昭著atrust隔离计划
https://blog.afyke.com/臭名昭著atrust隔离计划/2.vpn原理与atrust隔离网络实践Googlebot 打开这张“地址清单”后,才知道应该去访问哪些文章:
Googlebot 先打开 sitemap.xml
↓
看到 aTrust 文章的地址
↓
按这个地址打开文章
↓
读取内容,交给 Google 判断是否收录你的问题正出在“地址写错了”
当前 sitemap 写的是
https://47.99.178.186/...,等于给 Googlebot 的清单上写了“请去服务器 IP 找文章”;但你真正想让它收录的是https://blog.afyke.com/...。这两个完整网址对 Google 来说不是同一个地址,因此需要把清单统一改成blog.afyke.com。
你不需要手工逐篇填写 sitemap。Quartz 会自动生成它;要做的是在 Quartz 配置中把网站正式地址设置为 blog.afyke.com,然后重新部署。sitemap 的作用只是帮助 Googlebot找到文章,不代表 Google 一定会收录,更不代表一定排在前面。
2.4 robots.txt 和 noindex 不一样
继续用“图书馆收书员”来理解:
robots.txt是大楼门口的告示牌:告诉 Googlebot “哪些房间可以进去,哪些先不要进去”。它管的是能不能进门看页面。noindex是放在某个房间里的纸条:Googlebot 已经进来并看到了页面,但纸条写着“这页不要登记进图书馆目录”。它管的是看完后能不能出现在 Google 搜索里。
robots.txt:Googlebot 能不能先走进这间房?
noindex:走进来以后,能不能把这页登记到 Google 搜索?用博客文章举例:
| 你的目的 | 应该怎么做 |
|---|---|
| 公开 aTrust 文章,并希望别人能搜到 | 不拦 Googlebot,也不要设置 noindex |
| 文章可以用链接直接打开,但不想让它出现在 Google | 允许 Googlebot 打开,再为该页设置 noindex |
| 公司内部接口文档不希望外人看到 | 不要发布到公网;或要求登录访问 |
最容易犯的错误
不要用
robots.txt来保护内部资料。它只是在门口写“请别进”,但任何人只要知道网址,仍可能直接打开页面;而且其他网站若链接了该地址,Google 仍可能知道这个地址存在。
对当前博客的最简单结论
想让 aTrust 文章被搜索到:允许 Googlebot 访问、不要设置
noindex,并在robots.txt中告诉它 sitemap 在哪里即可。
三、🔎 本次网站实际排查结果
3.1 观察到的现象
2026-09-07 检查时,下面的 Google 查询没有返回结果:
site:blog.afyke.com
site:blog.afyke.com aTrust
site:blog.afyke.com "aTrust隔离计划"同时,首页 https://blog.afyke.com/ 可以正常返回 HTTP 200,因此并非整个站点无法访问。
3.2 已确认:sitemap 使用了 IP 地址
打开 https://blog.afyke.com/sitemap.xml 后,aTrust 文章的条目是:
https://47.99.178.186/臭名昭著atrust隔离计划/1.臭名昭著atrust隔离计划但你希望用户和 Google 使用的地址是:
https://blog.afyke.com/臭名昭著atrust隔离计划/1.臭名昭著atrust隔离计划这表示 sitemap 指向的“正式地址”和博客域名不一致。Google 会按 sitemap 写出的完整地址抓取,而 Quartz 的 baseUrl 正是生成 sitemap 和 RSS 等绝对 URL 的配置来源。这个不一致会让 Google 发现与归一化页面的过程变得不可靠,是当前最优先修复项。
3.3 已确认:robots.txt 暂不存在
https://blog.afyke.com/robots.txt 当前返回 404。
这不会自动禁止收录,也不是当前问题的唯一证据;Google 仍可能通过站内链接或 Search Console 发现页面。不过,补上 robots.txt 并声明 sitemap,能让站点配置更完整。
3.4 仍待 Search Console 确认的事项
以下信息不能只凭 Google 搜索页面判断,需要在 Search Console 中查看:
- Google 是否已抓取过目标文章;
- 是否识别到
noindex、robots 限制、软 404 或其他排除原因; - Google 选择的规范网址(canonical URL)是什么;
- sitemap 提交后是否读取成功,以及有哪些 URL 被发现。
3.5 为什么 site: 还是查不到 aTrust 文章
如果你在 Google 搜索框输入:
site:blog.afyke.com "1.臭名昭著aTrust隔离计划"仍然没有结果,先把它理解成:Google 目前没有把这篇文章展示在这个查询的结果中。这不是“文章网址打不开”。实际文章地址可以正常打开,sitemap 中的地址也已经统一为 blog.afyke.com。
最常见的情况是:刚修正 baseUrl 后,Google 还没有重新读取 sitemap、抓取文章并完成收录。这个过程通常需要数天到数周;提交 sitemap 只是告诉 Google“这里有文章”,并不能让页面马上出现在搜索结果中。
site:只能作为辅助检查
site:查询不会保证列出所有已收录页面。因此“没有结果”不能单独当作最终结论;确认一篇指定文章是否能被收录,应该以 Search Console 的“网址检查”为准。
现在按下面步骤操作即可:
-
打开 Google Search Console,进入已验证的
blog.afyke.com资源。 -
在顶部“网址检查”中粘贴这篇文章的完整地址:
https://blog.afyke.com/臭名昭著atrust隔离计划/1.臭名昭著aTrust隔离计划 -
看检查结果:
- 显示“网址不在 Google 中”,但“可以编入索引”:点击一次“请求编入索引”,然后等待;
- 显示被
noindex、robots、软 404 或规范网址问题排除:按页面给出的原因修复; - 显示“网址已在 Google 中”:说明页面已经收录,
site:暂未显示不代表页面一定有问题。
-
在“站点地图”提交
https://blog.afyke.com/sitemap.xml;同一个文章 URL 不要连续反复点击“请求编入索引”,这不会让处理更快。
2026-09-07 的外部检查中,这个精确 site: 查询和 site:blog.afyke.com 都没有返回结果;同时文章 URL 返回 HTTP 200、sitemap 返回 HTTP 200,且 sitemap 中的 URL 已全部使用 https://blog.afyke.com/。因此当前最应做的是到 Search Console 发起一次具体 URL 的检查与收录请求,而不是继续修改关键词。
四、🚀 实践:从修复到验证
4.1 前置准备
本次需要的对象只有 3 个:
- Quartz 项目源码和部署权限;
blog.afyke.com的 Google Search Console 资源所有权;- 已经能公开访问的 HTTPS 博客。
建议先阅读 1.Quartz个人博客使用教程 了解“Markdown → Quartz 构建 → 静态网站”的发布流程;域名和 IP 的区别可参考 5.域名绑定。如果你使用 GitHub Actions 发布,部署过程见 3.使用 GitHub Actions 自动部署 Quartz 博客。
4.2 可以拿来干什么:快速判断问题在哪一层
| 动作 | 要解决的问题 | 正常结果 |
|---|---|---|
打开 https://blog.afyke.com/sitemap.xml | Google 被告知的 URL 是否正确 | 所有 <loc> 都以 https://blog.afyke.com/ 开头 |
| 打开文章的正式 URL | 页面是否能被访问 | 返回 HTTP 200,不要求登录 |
| Search Console 的“网址检查” | Google 实际怎么看这篇文章 | 可看到抓取、收录和规范网址状态 |
这比反复搜索关键词更有效:搜索页只能告诉你“结果有没有出现”,网址检查才能告诉你“为什么没有出现”。
4.3 完整实践:修正地址、部署、提交、验证
4.3.1 修改 Quartz 的 baseUrl
在 Quartz 官方项目中,配置位于 quartz.config.ts。找到 configuration 下的 baseUrl,改成正式域名:
configuration: {
// sitemap、RSS 等需要绝对 URL 的功能,会以此作为网站的正式地址。
// 只填域名;不要带 https://,也不要填服务器 IP。
baseUrl: "blog.afyke.com",
},以当前项目实际配置为准
如果你的项目不是
quartz.config.ts,而是其他配置文件,请在项目中搜索baseUrl或47.99.178.186后修改原有配置;不要为了照抄示例新建一个不会被构建程序读取的文件。
修改后按当前发布方式重新构建和部署。若使用现有 GitHub Actions 流程,推送后等待构建完成即可。
4.3.2 增加 robots.txt
在最终部署站点的根目录创建 robots.txt,内容如下:
# 允许通用搜索引擎抓取公开页面。
User-agent: *
Allow: /
# 告诉爬虫 sitemap 的正式地址。
Sitemap: https://blog.afyke.com/sitemap.xml部署后直接打开 https://blog.afyke.com/robots.txt,应能看到上述内容,并返回 HTTP 200。
4.3.3 验证生成结果
依次检查:
https://blog.afyke.com/sitemap.xml
https://blog.afyke.com/robots.txt
https://blog.afyke.com/臭名昭著atrust隔离计划/1.臭名昭著atrust隔离计划预期结果是:
- sitemap 的
<loc>不再包含47.99.178.186; robots.txt中的 sitemap 地址是blog.afyke.com;- 文章 URL 可直接打开,且地址栏始终保持
blog.afyke.com。
4.3.4 在 Search Console 请求收录
- 打开 Google Search Console,添加并验证
https://blog.afyke.com/。 - 在“站点地图”提交
https://blog.afyke.com/sitemap.xml。 - 在“网址检查”粘贴上面的文章正式 URL。
- 先查看检测结果;如果页面可被 Google 访问且没有阻止收录的规则,再选择“请求编入索引”。
- 数天后回到同一页面查看状态,不要连续反复提交同一个 URL。
Google 明确说明:请求重新抓取并不保证立即、甚至不保证一定进入搜索结果;处理可能需要数天到数周。
4.4 收录后,再优化关键词匹配
只有确认文章已收录后,才进入关键词优化。aTrust 这篇文章可以按下面方式改:
| 位置 | 建议 |
|---|---|
| 标题 | 写清问题和方案,例如“macOS aTrust 隔离计划:Docker 与 Clash Tun 共存方案” |
| 开头 | 用两三句话讲清“谁遇到什么问题,本文能解决什么” |
| 小标题 | 使用真实读者会搜的词,如“aTrust 与 Clash Tun 冲突”“Docker 隔离 aTrust” |
| 正文 | 自然说明原理、操作条件和验证结果;不要机械重复关键词 |
| 内部链接 | 保留首页、分类页到文章页的普通链接,帮助用户和爬虫发现文章 |
关键词优化的目标是“让 Google 和读者理解文章主题”,不是把同一个词尽可能多地塞进页面。
五、🛡️ 发布前必须确认的安全边界
先处理内部资料,再扩大收录
当前首页的公开目录中出现了“公司项目”“对外接口文档”等内容。若这些属于工作内部资料,应先从公网构建产物中移除或设为不发布,再提交 Google 收录。收录后删除,仍可能存在搜索缓存、转存或访问记录风险。
Quartz 官方支持通过 draft: true、发布过滤器或 ignorePatterns 排除不应公开的 Markdown 内容。注意:若 Git 仓库本身公开,仅让 Quartz 不生成页面并不能保护仓库中的原始文件。
六、📌 快速回顾
- 先收录,后排名:
site:查询没有结果时,先解决发现、抓取和收录。 - 一个站点只用一个正式域名:sitemap、页面地址和 Search Console 都应使用
blog.afyke.com,不要混用 IP。 - Search Console 是最终诊断工具:它能显示 Google 抓取和排除的具体原因。
- sitemap 是提示,不是保证:修复、提交后仍要等待 Google 抓取与评估。
- 公开前先筛掉内部资料:robots.txt 不是权限控制,也不是保密措施。
记忆句
先统一 URL,再提交 sitemap;先确认收录,再优化关键词。
七、📚 官方资料
- Quartz Configuration:
baseUrl用于 sitemap、RSS 等绝对地址,填写已部署的正式域名。 - Google Search 技术要求:页面需可被 Googlebot 访问、返回 HTTP 200,并具备可索引内容。
- Google:创建并提交 sitemap:sitemap 应使用完整绝对 URL,Google 会按列出的 URL 抓取。
- Google:请求重新抓取 URL:可通过网址检查请求抓取,但收录不保证即时完成。
- Google:robots.txt 简介:robots.txt 主要管理抓取,不是阻止页面进入搜索结果或保护敏感内容的手段。
- Quartz Private Pages:通过过滤器和
ignorePatterns控制哪些内容不参与发布。