相对网站地图的URL可以在robots.txt中使用吗?

220
在 robots.txt 文件中,我可以写以下相对 URL 来指向网站地图文件吗?
sitemap: /sitemap.ashx

我需要使用完整(绝对)URL路径来指定站点地图文件吗?例如:

sitemap: http://subdomain.domain.com/sitemap.ashx

为什么我要这样想:

  • 我拥有一个新的博客服务www.domain.com,允许用户在accountname.domain.com上博客。
  • 使用通配符,所有子域名(账户)都指向“blog.domain.com”。

在blog.domain.com中,我放置了robots.txt文件以便搜索引擎找到网站地图。 但是,由于使用了通配符,所有用户帐户共享相同的robots.txt文件。因此我不能使用第二种替代方法。 目前我无法对txt文件进行URL重写。(我猜IIS的后续版本可以处理这个问题?)

3个回答

345
根据官方的 sitemaps.org 上的文档,需要使用完整的 URL:

您可以使用 robots.txt 文件指定 Sitemap 的位置。只需添加以下包括完整 URL的行即可:

Sitemap: http://www.example.com/sitemap.xml

39
请注意 @unor 的示例中 Sitemap 是大写的。这很重要,因为 Robots.txt 区分大小写。 - BodgeIT
24
在讨论“案例”方面,robotstxt.org 指定文件名为 robots.txt,小写字母 r,不要大写。 - khargoosh
如果网站正在加载https,则Sitemap URL中提到的是http。这样可以吗?还是我们必须根据协议放置Sitemap URL? - Shams
4
@Shams:您网站地图中列出的 URL 必须使用与网站地图文件相同的协议和主机。如果您的网站同时支持 httphttps,则应该只提供一个带有规范变体的网站地图(参见 http://stackoverflow.com/a/34835383/1591669)。 - unor
我正在使用服务器端包含(Server Side Includes)来克服这个限制。在robots.txt中启用它,然后使用#echo命令输出HTTP_HOST - undefined

7

Google爬虫并不够智能,无法爬取相对URL,因此建议使用绝对URL以获得更好的可爬性和索引性。

因此,您不能使用这种变体。

> sitemap: /sitemap.xml

建议的语法是

Sitemap: https://www.yourdomain.com/sitemap.xml

注意:

  • 不要忘记将“sitemap”首字母大写
  • 不要忘记在“Sitemap:”后面加上空格

-5

非常好的技术和逻辑问题,我亲爱的朋友。 在 robots.txt 文件中,您不能使用站点地图的相对 URL,您需要使用完整的站点地图 URL。

最好使用 "sitemap: https://www.example.com/sitemap_index.xml"。

在上述 URL 中,冒号后面要留空格。 我也支持 Deepak。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接