站点地图带有索引和文本 URL 列表是否适用于跨子域?

问题描述

我的网站有两个子域:static.example.comwww.example.com。由于我的网络服务器的性质,我最好使用 static.example.com 提供静态内容(css、js 文件站点地图)。

我已将 Sitemap: https://static.example.com/sitemap.xml 放入 robots.txtwww.example.com。但是,我需要在不同的子目录下拥有多个站点地图索引,其中包含数十万到数百万个网址。

例如,我在主网站中有以下子目录:

www.example.com/articles
www.example.com/questions
www.example.com/videos
...

因此,我可以这样构建我的 sitemap.xml 吗:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
        <loc>https://static.example.com/sitemaps/article.xml</loc>
    </sitemap>
    <sitemap>
        <loc>https://static.example.com/sitemaps/question.xml</loc>
    </sitemap>
    <sitemap>
        <loc>https://static.example.com/sitemaps/video.xml</loc>
    </sitemap>
</sitemapindex>

然后例如在文章站点地图中:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
        <loc>https://static.example.com/sitemaps/article/1-10000.txt</loc>
        <lastmod>2021-04-22T19:50:00+00:00</lastmod>
    </sitemap>
    <sitemap>
        <loc>https://static.example.com/sitemaps/article/10001-20000.txt</loc>
        <lastmod>2021-04-22T19:50:00+00:00</lastmod>
    </sitemap>
</sitemapindex>

在每个 .txt 文件中,我将列出指向主网站的网址。例如

https://www.example.com/article/1
https://www.example.com/article/5
https://www.example.com/article/8
...

这个结构好吗?交叉提交解释 here 明确允许我将主站点地图放在不同的域下,对于 txt url 列表,它告诉我将它们放在最高级别的目录中。没有看到它提到在不同的子域下提供 url 列表或站点地图索引。

我可以通过这种方式提供站点地图和网址列表吗?

解决方法

默认情况下这是行不通的。 sitemaps protocol 声明(请参阅“站点地图文件位置 "):

请注意,这意味着站点地图中列出的所有网址都必须使用相同的协议(在本例中为 http)并与站点地图驻留在同一主机上。例如,如果站点地图位于 http://www.example.com/sitemap.xml,则它不能包含来自 http://subdomain.example.com 的 URL。

但是,有一些方法可以让它发挥作用。例如,对于 Google,只要所有子域都在 Search Console 中得到验证,它就会起作用(请参阅详细信息 here)。更一般地说,您需要编辑 robots.txt 文件以证明您拥有所有这些主机(即使它们只是子域)。您可以查看同一 sitemaps protocol 的“站点地图和交叉提交”部分以了解详细信息。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...