具有大量动态子域的站点的站点地图

时间:2010-10-07 10:11:59

标签: search-engine sitemap robots.txt google-webmaster-tools

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

最好的方法是什么?

目前,我有以下结构:

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

    User-agent: *
    Allow: /
    
    Sitemap: http://example.com/sitemap-subdomain.xml
    

    -

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

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

    您建议使用站点地图的哪种方法?

3 个答案:

答案 0 :(得分:6)

我最近在努力解决这个问题并最终实现了它。有关更多详细信息,请参阅此主题:

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

要点:

  • 使用DNS verification一次性验证您的网站和所有它的子域名
  • 让所有子域上的robots.txt指向您www域上的主站点地图
  • 您可能需要等待几天才能让Google在所有子域上更新robot.txt的缓存副本。在此之前它仍会显示错误。

答案 1 :(得分:2)

是的,子域名限制在sitemaps.org规范中,但是,Google已经提出了一些例外情况:

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

  2. 在子域的robots.txt中,您可以指向其他域上的sitemaps XML。对于Google

  3. ,不会有交叉提交错误

答案 2 :(得分:1)

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

http://example.com/sitemap.xml

在此文档树下定义所有子域网址的所有子域站点地图。

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