Google Search Console 用起来之前,必须先证明域名是你的。上周我一下午验证了三个 Astro 站点的自定义域名,最快的路径是 Cloudflare 的 DNS TXT 验证,过程中有几个容易踩的坑值得记下来。
这不是完整教程,Google 和 Cloudflare 都有分步文档。下面只写实际卡住的地方,以及第一天控制台里真实显示的内容。
DNS TXT 还是 HTML 文件?
Search Console 提供四种验证方式。对于部署到 Cloudflare Pages 的 Astro 静态站点:
HTML 文件:下载文件,放进 public/,提交代码,推送,等部署。
HTML 元标签:修改 head 布局组件,提交代码,推送,等部署。
DNS TXT 记录:在 Cloudflare DNS 里添加一条记录,不需要部署。
Google Analytics 或 Search Console 标签:需要先接入 GA4。
对静态站点来说,DNS TXT 明显更快。不用触发构建,不用等 Cloudflare Pages 的持续集成,也不用改任何源文件。TXT 记录几分钟内传播完成,Cloudflare 显示"Active"后,Search Console 一两分钟内就能确认。
有个细节起初让我困惑:DNS TXT 验证证明的是根域名所有权,不是某个具体路径。根域名验证自动覆盖所有子域名,包括 www。这比 HTML 文件方式覆盖范围更广——后者只验证文件放置的确切 URL。
在 Cloudflare 里添加记录
路径是 dash.cloudflare.com → [你的域名] → DNS → Records → Add record。记录类型选 TXT,名称填 @(根域名),内容是 Search Console 提供的字符串,格式类似 google-site-verification=xxxxx。
Cloudflare 默认 TTL 是"Auto",即 300 秒。保存后记录几乎立即在仪表板显示为"Active"。我在点击 Search Console 的"验证"前,先用 dig TXT yourdomain.com 确认每条记录都已生效。这不是必须的,但能避免在传播延迟上浪费验证次数。
这是按域名操作的。三个站点各需要独立的 Search Console 属性和独立的 TXT 记录,没有批量流程,逐个处理即可。
提交 @astrojs/sitemap 生成的站点地图
验证完成后提交站点地图。使用 @astrojs/sitemap 的 Astro 站点,小规模输出是 /sitemap-0.xml 文件加上引用它的 /sitemap-index.xml。
提交索引文件,不要提交分片:https://yourdomain.com/sitemap-index.xml。Search Console 会跟随索引发现分片。直接提交分片 URL 也能工作,但如果站点超过单文件限制(5 万个 URL)需要手动添加每个新分片,索引提交能自动处理。
如果 Search Console 显示"无法获取",通常是因为文件还没部署到生产环境,或者 robots.txt 意外屏蔽了路径。Astro 的 sitemap 集成默认会更新 robots.txt,但值得双重确认。
热门跟贴