10

我正在运行一个允许用户创建子域的站点。我想通过站点地图将这些用户子域提交给搜索引擎。但是,根据站点地图协议(和 Google 网站管理员工具),单个站点地图只能包含来自单个主机的 URL。

最好的方法是什么?

目前我有以下结构:

  1. 位于 example.com/sitemap-index.xml 的站点地图索引列出了每个子域的站点地图(但位于同一主机上)。
  2. 每个子域都有自己的站点地图,位于 example.com/sitemap-subdomain.xml(这样站点地图索引仅包含来自单个主机的 URL)。
  3. 子域的站点地图仅包含来自子域的 URL,即 subdomain.example.com/*
  4. 每个子域都有 subdomain.example.com/robots.txt 文件:

--

User-agent: *
Allow: /

Sitemap: http://example.com/sitemap-subdomain.xml

--

我认为这种方法符合站点地图协议,但是,Google 网站管理员工具会为子域站点地图提供错误:“URL 不允许。此 url 不允许用于此位置的站点地图。”

我还检查了其他网站是如何做到的。例如,Eventbrite 生成的站点地图包含来自多个子域的 URL(例如,参见http://www.eventbrite.com/events01.xml.gz)。但是,这不符合站点地图协议。

您推荐什么方法用于站点地图?

4

3 回答 3

7

我最近一直在努力解决这个问题,终于让它工作了。有关更多详细信息,请参阅此线程:

http://www.google.com/support/forum/p/Webmasters/thread?tid=53c3e4b3ab8d9503&hl=en&fid=53c3e4b3ab8d9503000497bd04ba63cf

概括:

  • 使用DNS 验证一举验证您的网站及其所有子域
  • 使您所有子域上的 robots.txt 指向您 www 域上的主站点地图
  • 您可能需要等待几天才能让 Google 更新您所有子域上的 robots.txt 缓存副本。在那之前它仍然会显示错误。
于 2010-12-19T05:57:11.957 回答
2

是的,子域限制在 sitemaps.org 规范中,但是,谷歌已经设置了一些例外:

  1. 验证您的 Google 网站管理员工具帐户中的所有子域 http://www.google.com/support/webmasters/bin/answer.py?answer=75712 通过 Google 网站管理员工具交叉提交站点地图 XML - 如果通过您的根目录提交域 - 不会为 Google 抛出错误

  2. 在子域的 robots.txt 中,您可以指向其他域上的站点地图 XML。不会出现交叉提交错误 - 对于 Google

于 2010-10-07T13:16:00.630 回答
1

如果您有一个允许用户在您的站点内创建子域的网站,您最好通过创建单个站点地图来为每个子域创建和提交站点地图来简化流程。这包括您所有子域站点的站点地图 URL,并将此站点地图保存到一个位置。但是,要做到这一点,必须在网站管理员工具中验证所有网站。您可以将一个站点地图定义为:

http://example.com/sitemap.xml

在此文档树下为所有子域 URL 定义所有子域站点地图。

您可以定义多个站点地图文件,每个站点地图最多 50,000 个 URL 和 10 兆字节的文件大小。可以使用 gzip 压缩站点地图以减少带宽。因此,以这种方式定义站点地图没有任何问题。

于 2013-01-23T06:17:02.700 回答