问题:我如何在 Sitemaps 中表示网址?
对于所有 XML 文件,任何数据数值(包括网址)都应使用以下字符实体转义码:& 符号 (&)、单引号 (')、双引号 (")、小于 (<) 和大于 (>)。还应确保所有网址遵循 RFC-3986 URI 标准、RFC-3987 IRI 标准以及 XML 标准。如果您要使用脚本来生成网址,通常可以使用网址转义的方式将其转义为该脚本的一部分。并且您仍然需要对它们进行实体转义。例如,以下 Python 脚本实体转义 http://www.example.com/view?widget=3&count>2
以下是引用片段:
$ python
Python 2.2.2 (#1, Feb 24 2003, 19:13:11)
>>> import xml.sax.saxutils
>>> xml.sax.saxutils.escape(http://www.example.com/view?widget=3&count>2)
以上示例所得网址为:http://www.example.com/view?widget=3&count>2 问题:使用哪种字符编码方法生成 Sitemaps 文件有关系吗? 是的。您的 Sitemaps 文件应该使用 UTF-8 编码。
问题:如何指定时间?
对此协议中的 lastmod 时间戳以及所有其他日期和时间,请使用 W3C Datetime 编码。例如,2004-09-22T14:12:14+00:00。
此编码允许您省去 ISO8601 格式的时间部分,例如:2004-09-22 也是有效的。然而,如果您的网站频繁更改,则鼓励您使用时间部分,以便抓取工具可获取关于您网站的更全面的信息。
问题:如何计算 lastmod 日期?
对于静态文件,这是实际的文件更新日期。可以使用 UNIX 日期命令获取此日期:
以下是引用片段:
$ date --iso-8601=seconds -u -r /home/foo/www/bar.html
>> 2004-10-26T08:56:39+00:00
对于许多动态网址,您可以根据基本数据的更改时间或使用一些基于定期更新(如果可行的话)的近似值轻松地计算 lastmod 日期。使用一个近似日期或时间戳就可以帮助抓取工具避免抓取还未更改的网址。这将降低 Web 服务器的带宽和 CPU 要求。
问题:我将 Sitemaps 放在哪里?
强烈建议将 Sitemaps 放置在 HTML 服务器的根目录中,即,将其放置在 http://example.com/sitemap.xml.gz。
在某些情况下,您或许会希望在网站上针对不同的路径创建对应的 Sitemaps — 例如,如果在您的组织中,安全许可对应不同目录划分上传权限。
我们认为如果您有上传 http://example.com/path/sitemap.xml.gz 的许可,那么您也可以通过 http://example.com/path/ 报告元数据。
问题:我的 Sitemaps 可以有多大?
Sitemaps 在压缩时不应超过 10MB(10,485,760 字节),且最多可以包含 50,000 个网址。也就是说,如果您的网站包含的网址超过 50,000 个或 Sitemaps 大于 10MB,您需要创建多个 Sitemaps 文件,并使用 Sitemaps 索引文件。即使您的网站较小,但计划的网址数量超出 50,000 个或文件大小超过 10MB,也应使用 Sitemaps 索引文件。
问题:我的网站拥有数千万个网址;我可以采用某种方式只提交最近更改过的网址吗?
您可以在少数频繁更改的 Sitemaps 中列出已更新的网址,然后使用 Sitemaps 索引文件中的 lastmod 标记验证这些 Sitemaps 文件。随后,搜索引擎即可逐步抓取(只抓取)这些已更改的 Sitemaps。
问题:创建 Sitemaps 后会发生什么?
在创建 Sitemaps 后,您需要通知搜索引擎 Sitemaps 的位置。得到通知的搜索引擎就可以检索您的 Sitemaps 并使网址可以由抓取工具抓取。
&n