我目前有一个在线应用程序,允许用户在多个不同的域名上创建个人页面,包括主要的域名。
用户网站可能如下所示:
如果我生成包含所有域名中所有用户网站的单个sitemap.xml,这样可以吗?所有域名的sitemap.xml都可以相同吗?
答案 0 :(得分:2)
根据sitemap.org,还允许在站点地图中映射多个域,sitemaps_cross_submits中对此进行了描述。为方便起见,我在这里详细说明。
要从单个主机提交多个主机的站点地图,您需要"证明"在Sitemap中为其提交网址的所有者的所有权。
参考这里的一个例子。我们假设您要为3位主机提交Sitemaps:
www.host1.com with Sitemap file sitemap-host1.xml
www.host2.com with Sitemap file sitemap-host2.xml
www.host3.com with Sitemap file sitemap-host3.xml
此外,您希望将所有三个Sitemap放在一个主机上:www.sitemaphost.com。因此,Sitemap网址将为:
http://www.sitemaphost.com/sitemap-host1.xml
http://www.sitemaphost.com/sitemap-host2.xml
http://www.sitemaphost.com/sitemap-host3.xml
默认情况下,这会导致交叉提交"错误,因为您尝试通过www.sitemaphost.com上托管的Sitemap提交www.host1.com的URL(对于其他两个主机也是如此)。避免错误的一种方法是证明您拥有(即有权修改文件)www.host1.com。您可以通过修改www.host1.com上的robots.txt文件指向www.sitemaphost.com上的站点地图来执行此操作。
在此示例中,http://www.host1.com/robots.txt处的robots.txt文件将包含" Sitemap:http://www.sitemaphost.com/sitemap-host1.xml"行。通过修改www.host1.com上的robots.txt文件并将其指向www.sitemaphost.com上的站点地图,您已经隐含地证明您拥有www.host1.com。换句话说,控制www.host1.com上的robots.txt文件的任何人都信任http://www.sitemaphost.com/sitemap-host1.xml上的Sitemap包含www.host1.com的网址。对于其他两个主机,可以重复相同的过程。
现在您可以在www.sitemaphost.com上提交站点地图。 当特定主机的robots.txt(例如http://www.host1.com/robots.txt)指向另一台主机上的Sitemap或Sitemap索引时;对于每个目标站点地图,例如http://www.sitemaphost.com/sitemap-host1.xml,预计所有URL都属于指向它的主机。这是因为,如前所述,Sitemap预计只有来自单个主机的URL。
答案 1 :(得分:2)
否。您无法将所有网站的所有网址都放在一个sitemap.xml文件中。每个域和子域都被视为一个不同的网站,因此每个域都必须有自己的sitemap.xml文件。
http://www.sitemaps.org/protocol.html
第一部分的最后一段此外,站点地图中的所有网址都必须来自单个主机,例如www.example.com 或 store.example.com。有关更多详细信息,请参阅站点地图文件位置
强调我的。 或是英语或,它是独占的:一个或另一个,而不是两者。
很明显,您无法在同一个sitemap.xml中拥有来自host1.example.com和host2.example.com的网址
此外,正如hyip的回答所指出的,sitemap.xml需要位于您网站的根目录中。请参阅此答案:http://www.sitemaps.org/faq.html#faq_sitemap_location
站点地图中列出的所有网址都必须与站点地图位于同一主机上。例如,如果站点地图位于http://www.example.com/sitemap.xml,则它不能包含来自http://subdomain.example.com的网址。如果站点地图位于http://www.example.com/myfolder/sitemap.xml,则不能包含来自http://www.example.com的网址。
您可以使用robots.txt来指明sitemap.xml文件的跨域位置,以指示sitemap.xml的位置。但是,这并不意味着您可以创建一个包含来自所有网站的URL的sitemap.xml。
请注意,使用良好的CMS,您应该可以为每个网站创建一个sitemap.xml。它可能会更容易,因为你肯定不会达到每个XML文件限制50,000个URL,而一个文件可能会...
答案 2 :(得分:1)
您可以使用以下方式之一:
http://host1.example.com/host1-example-sitemap.xml
http://host1.example.com/host2-example-sitemap.xml
http://host1.example.com/host1-example1-sitemap.xml
http://host1.example.com/host1-example-ch-sitemap.xml
有更多信息here。