<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Discovery · XB 现场笔记</title><link>https://www.xbcatm.com/zh/tags/discovery/</link><description>基于 HTTP、DNS、TLS、Caddy、SSH、发布与恢复的可复现运维现场笔记。</description><generator>Hugo</generator><language>zh-CN</language><atom:link href="https://www.xbcatm.com/zh/tags/discovery/index.xml" rel="self" type="application/rss+xml"/><item><title>robots.txt 与 sitemap 回答不同的问题</title><link>https://www.xbcatm.com/zh/notes/robots.txt-and-sitemaps-answer-different-questions/</link><pubDate>Sat, 22 Aug 2026 00:00:00 +0000</pubDate><guid>https://www.xbcatm.com/zh/notes/robots.txt-and-sitemaps-answer-different-questions/</guid><description>把爬虫偏好、URL 发现与访问控制分开。</description><content:encoded>&lt;p&gt;两个小文件常被当成安全边界使用，但它们不是。&lt;code&gt;robots.txt&lt;/code&gt; 描述爬虫偏好，sitemap 则给搜索系统一份属于该站点的 URL 清单。&lt;/p&gt;
&lt;h3 id="robotstxt-能做什么不能做什么"&gt;robots.txt 能做什么、不能做什么&lt;/h3&gt;
&lt;p&gt;规则发布于源站根路径 &lt;code&gt;/robots.txt&lt;/code&gt;，由配合的爬虫读取。它不会保护私有目录、不会从网络上移除 URL，也不能替代认证。不应公开的路由需要服务器授权或网络边界。&lt;/p&gt;
&lt;p&gt;让文件保持平实，并测试它的实际位置：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;User-agent: *
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Disallow:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Sitemap: https://www.example.test/sitemap.xml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;文件应为 UTF-8。如果部署会重定向它，请核验你想要的爬虫行为，而不是假设每个客户端都遵循同一条链。&lt;/p&gt;
&lt;h3 id="sitemap-增加了什么"&gt;sitemap 增加了什么&lt;/h3&gt;
&lt;p&gt;sitemap 是一份清单，而不是权限列表。使用单一主机的绝对 URL、正确做 XML 转义，并且只列出你准备发布的规范页面。不要因为某个 URL 存在于构建目录就把它列出。&lt;/p&gt;
&lt;p&gt;协议允许每个 sitemap 文件最多 50,000 个 URL 与 50 MB。小站不需要 index 文件；一份普通 sitemap 更容易检视。把它的 XML 校验通过，并像普通页面一样通过同一 HTTPS 边缘请求它。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsS https://www.example.test/robots.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -fsS https://www.example.test/sitemap.xml &lt;span class="p"&gt;|&lt;/span&gt; xmllint --noout -
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果未安装 &lt;code&gt;xmllint&lt;/code&gt;，请在发布它的同一个 CI 环境里解析该 XML。重要的是检查要在文件被替换到边缘之前运行。&lt;/p&gt;
&lt;h2 id="来源"&gt;来源&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.rfc-editor.org/rfc/rfc9309.html"&gt;RFC 9309 — Robots Exclusion Protocol&lt;/a&gt;，robots 规则、文件位置与 user-agent 匹配，已核验 2026-08-22。&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.sitemaps.org/protocol.html"&gt;Sitemaps Protocol&lt;/a&gt;，sitemap XML 结构与发现，已核验 2026-08-22。&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item></channel></rss>