08

使用Google Sitemaps 生成器生成Sitemap详解

Google Sitemaps 生成器是一个 Python 脚本,可以使用 Sitemaps 协议为您的网站创建 Sitemaps。此脚本可以通过网址列表、Web 服务器目录或通过访问日志创建 Sitemaps。要使用此脚本:

  • 您需要连接到您的 Web 服务器,并在其上运行脚本。
  • 您的 Web 服务器需安装 Python 2.2 或更高版本。
  • 您需要知道启动 Python 的命令。(该命令通常为 python,但可能会因安装不同而异。例如,如果 Web 服务器安装了两种版本的 Python,命令 python 可调用较早的版本,而命令 python2 则可调用较晚的版本。)
  • 您需要知道指向贵网站的目录路径。如果您的 Web 服务器托管一个网站,路径可能是 var/www/html 等。如果您拥有一个托管多个网站的虚拟服务器,路径可能是 home/virtual/site1/fst/var/www/html 等。
  • 您需要能够将文件上传到自己的 Web 服务器(例如,使用 FTP)。
  • 如果您要根据访问日志生成一个网址列表,则需要了解用于这些日志的编码,以及指向它们的完整路径。

若有任何疑问,请与您的 Web 托管公司核洽。

现在,您可以开始了。以下是所需操作的概述。

  1. 下载 Sitemaps 生成器程序文件。将这些文件解压缩到本地目录。
  2. 使用提供的 example_config.xml 文件作为模板,为您的网站创建配置文件。根据需要为网站修改此文件,然后保存。
  3. 将必要的文件上传到您的 Web 服务器。
  4. 运行 sitemap_gen.py
  5. 在您的 Google 网站管理员工具帐户中添加生成的 Sitemap。
  6. 设置递归脚本。(可选)

如果您无法使用 Sitemap 生成器,可以用其他格式(如简单的纯文本文件),将 Sitemap 添加到您的 Google 网站管理员工具帐户。您还可以在此处找到支持 Google Sitemaps 的第三方程序链接。

1. 下载 Sitemaps 生成器程序文件

以下位置的 Sitemaps 生成器文件,适用 ZIP 和 GZ 存档格式:

http://sourceforge.net/project/showfiles.php?group_id=137793&package_id=153422

下载此存档后,将其解压缩到一个本地目录。找到以下文件:

  • README —包含关于此工具的最新信息
  • sitemap_gen.py —生成 Sitemaps 的 Python 脚本。
  • example_config.xml —模板配置文件,将用其指定网站的配置。
  • example_urllist.txt —如果想根据自己指定的一组网址创建 Sitemaps,则可以使用此模板网址列表。

2a。创建配置文件

此部分提供了创建配置文件的分步说明。还提供了可用选项的完整参考。如果您正在创建移动 Sitemaps,请参阅其他移动指南

要为自己的网站创建一个配置文件,您需要了解以下信息:

  • 网站的基准网址(如 http://www.example.com/)。请确保包括了协议(如 http://)。例如,http://www.google.com 是有效的基准网址,而 www.google.com 就不是。
  • 指向要保存 Sitemaps 的位置的 Web 服务器路径。通常,由于 Sitemaps 不能包含较高级别目录(来自 Sitemaps 的位置)中的网址,这是指向基本网址的路径。当您运行 Google Sitemaps 生成器时,它会创建 Sitemaps 并将其放在您指定的位置。
  • 您希望的 Sitemaps 生成器用来创建 Sitemaps 的方法。您可以任意组合各种方法。可以使用以下方法:

  1.  
    • URL —在配置文件的这一部分列出单个网址,并提供关于所有网址的信息。通常,您要使用此方法与另一方法结合,手动提供其他方法无法提供的附加网址。
    • 网址列表 —将配置文件指向包含网址列表的文本文件。如果文本文件已经存在或您使用脚本生成网址列表,则可以使用此方法。
    • 目录路径 —为网站指定目录路径及这些路径的相应网址。Sitemaps 生成器将以这些目录的内容为基础创建网址的列表。如果网站由静态 HTML 文件构成,您可能需要使用此方法。
    • 访问日志 —指向日志文件的路径。Sitemaps 生成器将以包含在日志中的网址为基础创建网址的列表。如果网站由动态页面构成,则可能需要使用此方法。
    • Sitemap — 指向您使用 Sitemaps 生成器创建的现有 Sitemaps。Sitemaps 生成器将创建一个 Sitemaps 文件,其中包含每个 Sitemaps 中都包含的网址。如果您已经创建了几个较小的 Sitemaps 并想将它们组合为一个较大的 Sitemaps 文件,则可以使用此方法。

根据下列操作创建配置文件

  1. 在文本编辑器中打开 example_config.xml 文件。将其另存为新文件(如 config.xmlmysite_config.xml)。
  2. 找到网站定义部分:
    <site  base_url="http://www.example.com/"  store_into="/var/www/docroot/sitemap.xml.gz" verbose="1">

  3. 更改贵网站上网址的 base_url 值。
  4. store_into 值更改为您 Web 服务器上用于保存 Sitemaps 的路径,以及您希望为该 Sitemaps 文件使用的文件名。通常,这是指向基本网址的路径;因为 Google 只能接受与包含 Sitemaps 目录同级或其子目录中的网址。您可以指定该目录中的相关路径,并通过它上传脚本或您 Web 服务器根目录的完整路径。如果您将脚本上传到自己的基本网址目录,则可以仅指定文件名。
  5. 找到以 ** MODIFY or DELETE ** 开头的生成方法部分。每一部分对应一种生成 Sitemaps 的方法。
  6. 删除您不想使用的方法对应的部分。
  7. 对于您要使用的方法,请按照以下说明操作。URL

    找到以下部分:

    <!-- ** MODIFY or DELETE **  "url" nodes specify individual URLs to include in the map. <br>  Required attributes:  href - the URL  Optional attributes:  lastmod - timestamp of last modification (ISO8601 format)  changefreq - how often content at this URL is usually updated priority - value 0.0 to 1.0 of relative importance in your site  -->   <url href="http://www.example.com/stats?q=name" />  <url  href="http://www.example.com/stats?q=age"  lastmod="2004-11-14T01:00:00-07:00"  changefreq="yearly"  priority="0.3" />

    此部分举出两个示例:第一个示例仅包括必要属性,而第二个示例则包括必要属性和可选属性。

    请对每个要包含的网址都使用此格式。changefreq 属性将使 Google 大致了解网址的更新频率。这有助于 Google 了解为获取新内容而访问网页的频率。priority 属性使 Google 了解有关此页面相较网站上其他页面的相对重要性的信息。此属性不会对 Google 怎样比较您的页面与其他网站的页面产生影响,仅有助于 Google 了解网站的哪个页面您认为最重要。

    网址列表

    找到以下部分:

    <!-- ** MODIFY or DELETE ** "urllist" nodes name text files with lists of URLs.  An example file "example_urllist.txt" is provided.   Required attributes:  path - path to the file   Optional attributes:  encoding - encoding of the file if not US-ASCII  -->  <urllist path="example_urllist.txt" encoding="UTF-8" />

    使用此格式指向包含您网址列表的文本文件的路径和名称。您可以使用提供的 example_urllist.txt 文件作为该文本文件的模板。您可以指定您 Web 服务器的相关路径或完整路径。例如,如果 Sitemaps 生成器和 urlist.txt 文件位于相同的路径下,您可以仅指定 .txt 文件的文件名;如果您创建使用非 UTF-8 编码的文本文件,则可以使用 encoding 属性指定这一编码。如果您有多个 .txt 文件,则可以使用通配符。例如:

    <urllist path="example_urllist*.txt" encoding="UTF-8" />

    对于每个包含在文本文件中的网址,可以指定最后修改日期、更改频率和优先级。请参阅 “URLlist 文本文件参考”部分以获取有关此文件结构的完整信息。

    目录路径

    找到以下部分:

    <!-- ** MODIFY or DELETE **  "directory" nodes tell the script to walk the file system and  include all files and directories in the Sitemap.  Required attributes: path - path to begin walking from  url - URL equivalent of that path   Optional attributes: default_file - name of the index or default file for directory URLs  -->   <directory  path="/var/www/icons"    url="http://www.example.com/images/" />
    <directory
    path="/var/www/docroot"
    url="http://www.example.com/"
    default_file="index.html"
    />

    这一部分列举了两个示例。如果您的所有网页都包含在某个路径的子目录中,您只需提供一个条目。不过,如果有多个路径指向贵网站的网页,请针对每个提供一个条目。

    请记住,所有网址都要以您在第三步中指定的基本网址开头。例如, example_config.xml 文件中的两个示例都包含以 http://www.example.com/ 开头的网址。所以,两个网址都有效。

    将示例项替换为您的网站的项。许多网站仅有一个指向基准网址的项。请确保 path 值为 Web 服务器上目录的完整路径。请确保 url 值是完整网址,如果需要还请包括协议(例如 http)并以斜线跟随。

    可以使用 default_file 参数指定服务器将其用作目录默认页面的文件名。上例中,/var/www/docroot 将解析为 http://www.example.com/index.html。而无须指定。但如果指定,则 Sitemaps 生成器将包括对每个子目录只映射一次(而不是同时列出目录网址和文件名网址)的页面,并将使用文件(而不是目录)的最后修改日期提取该页的 lastmod 属性。

    访问日志

    找到以下部分:

    <!-- ** MODIFY or DELETE ** "accesslog" nodes tell the script to scan webserver log files to extract URLs on your site.  Both Common Logfile Format (Apache's default  logfile) and Extended Logfile Format (IIS's default logfile) can be read. 				 Required attributes:  path - path to the file Optional attributes:  encoding - encoding of the file if not US-ASCII   --> <accesslog path="/etc/httpd/logs/access.log" encoding="UTF-8" /> <accesslog path="/etc/httpd/logs/access.log.0" encoding="UTF-8" /> <accesslog path="/etc/httpd/logs/access.log.1.gz" encoding="UTF-8" />

    此部分列举了三个示例。您应该替换这些条目,并为每个日志文件提供一个条目。请确保 path 值是 Web 服务器上的完整路径和文件名。如果日志文件不是采用 US-ASCII 或 UTF-8 编码,使用可选的 encoding 属性指定此编码。无需列出所有日志文件,您可以使用通配符。例如,在上例中,您可以提供以下条目(包括全部三种日志文件):

    <accesslog path="/etc/httpd/logs/access.log*" encoding="UTF-8" />

    Sitemaps 生成器根据每个网址的访问频率,为从日志中找到的网址分配优先级。例如,被访问过 100 次的网址将得到一个比被访问过两次的网址更高的优先级。实际的优先级分配是相对的,取决于每个网址与网站中其他网址比较的结果。

    sitemap

    找到以下部分:

    <!-- ** MODIFY or DELETE **
    "sitemap" nodes tell the script to scan other Sitemap files. This can be useful to aggregate the results of multiple runs of this script into a single Sitemap.  Required attributes: path - path to the file --> <sitemap path="/var/www/docroot/subpath/sitemap.xml" />

    此部分列举了一个示例:您应该替换该条目,并为您希望包括的每个 Sitemaps 提供一个条目。请确保路径值是 Web 服务器上的完整路径和文件名。您可以列出 gzip 压缩的 Sitemaps,只要其扩展名为 .gz。无需列出所有 Sitemaps,您可以使用通配符。例如,以下条目将会包括以 “sitemap” 一词开头且扩展名为 .xml 的所有 Sitemaps。

    <sitemap path="/var/www/docroot/subpath/sitemap*.xml" />

    Sitemaps 生成器会提取所有网址以及针对您所列全部 Sitemaps 的每个网址列出的可选数据,并使用这些信息创建一个 Sitemaps 文件。目前,我们不能保证此方法会适用于除 Sitemaps 生成器以外的工具所创建的 Sitemaps。

  8. 找到过滤器定义部分:
    <!-- ********************************************************          FILTERS 				 Filters specify wild-card patterns that the script compares against all URLs it finds. Filters can be used to exclude certain URLs from your Sitemap, for instance if you have hidden content that you hope the search engines don't find.  Filters can be either type="wildcard", which means standard path wildcards (* and ?) are used to compare against URLs,  or type="regexp", which means regular expressions are used to compare.  Filters are applied in the order specified in this file. An action="drop" filter causes exclusion of matching URLs. An action="pass" filter causes inclusion of matching URLs, shortcutting any other later filters that might also match. If no filter at all matches a URL, the URL will be included. Together you can build up fairly complex rules.  The default action is "drop". The default type is "wildcard".  You can MODIFY or DELETE these entries as appropriate for your site. However, unlike above, the example entries in this section are not contrived and may be useful to you as they are. ********************************************************* -->  <!-- Exclude URLs that end with a '~' (IE: emacs backup files) --> <filter action="drop" type="wildcard" pattern="*~" />  <!-- Exclude URLs within UNIX-style hidden files or directories --> <filter action="drop" type="regexp" pattern="/\.[^/]*" />

    您可以使用过滤将特定网址排除在生成的 Sitemaps 之外。您可以通过以下操作创建一个更简洁的列表,以减少重复列表的数量,或防止特定网址进入索引。请注意,如果使用 robots.txt 文件防止网址进入索引,则即使将网址包含在 Sitemaps 中,Google 也不会搜索它们并为它们编制索引。

    可以使用任意或所有的过滤方法。如果需要,可以删除不需要的项并创建其他项。下面是用法示例。

    <filter action="drop" type="wildcard" pattern="*.jpg" />

    此过滤器将排除以 .jpg 结尾的网址。如果所有的网站图片都嵌入在 HTML 页面中,且不应作为独立网址访问,则您可能需要使用类似的过滤器。

    <filter action="pass" type="wildcard" pattern="*.htm*" /> <filter action="drop" type="wildcard" pattern="*" />

    此过滤器会接受所有 .htm* 文件,但排除任何其他文件。

  9. 对网站进行完更改后,保存此文件。

配置文件语法参考

以下是配置文件语法的完整说明。所有标记都以一个代码示例开头,后面跟着一个属性说明。

site
配置文件开头处所需的标记。

<site base_url="http://www.example.com/" store_into="/var/www/html/sitemap.xml.gz" verbose="1" supress_search_engine_notify="1" default_encoding="UTF-8">

base_url
必填 网站的基准 HTTP 路径 – 只有以此基准开头的网址才能包括到 Sitemaps 中。
store_into
必填 所需输出文件的 Web 服务器路径。脚本将创建此文件 – 运行脚本前无需创建此文件。
verbose
可选 输入一个 0-3 之间数字,较高的数字对应较高的调试信息
suppress_search_engine_notify
可选 为进行测试,通过输入“1”停用搜索引擎通知
default_encoding
可选 指定应用于文件系统路径和网址的字符编码。

url
可选标记,您可以使用此标记列出贵网站的所有网址。

<url href="http://www.example.com/stats?q=age"  lastmod="2004-11-14T01:00:00-07:00"  changefreq="yearly"  priority="0.3" />
href
必填 网站的基准 HTTP 路径 – 只有以此基准开头的网址才能包括到 Sitemaps 中。
lastmod
可选 W3C Datetime 格式 (YYYY-MM-DDThh:mm:ss+00:00)表示的网址最后修改时间。您可以省略时间部分。例如:
  ”2005-02-21T18:00:15+00:00″
  ”2005-02-21″
changefreq
可选 网址可能发生更改的频率。这被视为提示而非命令。值应该是“always”、“hourly”、“daily”、“weekly”、“monthly”、“yearly”或“never”的其中之一。
priority
可选 此网页相对于同一网站的其他网页的优先级。优先级值在 0.0 和 1.0 之间,0.0 是最低优先级,1.0 是最高优先级。优先级可以影响搜索引擎查找贵网站上的网址的顺序。由于优先级是相对的,只用于在您自己网页间的选择,您网页的优先级不会与其他网站的网页的优先级相比较。

urllist
可选标记,可以使用此标记指向包含贵网站内一个网址列表的文本文件。

<urllist path="/var/www/html/urllist.txt" encoding="UTF-8" />
path
必填 .txt 文件的路径和文件名。您可以指定相关路径或完整路径。
encoding
可选 文件的编码(如果不是 UTF-8 编码)。

urllist.txt 是文本文件,它包含要映射的网址的列表。还可以包括每个网址的可选属性。属性在网址的同一行输入,并以单个空格分隔。例如:

http://www.example.com/abc/something http://www.example.com/abc/xyy.pdf lastmod=2001-12-31T14:05:06+00:00 http://www.example.com/abc/def?x=12&y=23 changefreq=weekly priority=0.3
lastmod
可选 W3C Datetime 格式 (YYYY-MM-DDThh:mm:ss+00:00) 表示的网址最后修改时间。您可以省略时间部分。例如:

  ”2005-02-21T18:00:15+00:00″
  ”2005-02-21″

changefreq
可选 网址可能发生更改的频率。这被视为提示而不是命令。值应该是“always”、“hourly”、“daily””、“weekly”、“monthly”、“yearly”或“never”中的一个。
priority
可选 此网页相对于同一网站的其他网页的优先级。优先级值在 0.0 和 1.0 之间,0.0 是最低优先级,1.0 是最高优先级。优先级可以影响搜索引擎查找贵网站上的网址的顺序。由于优先级是相对的,只用于在您自己网页间的选择,您网页的优先级不会与其他网站的网页的优先级相比较。

directory
可选标记,您可以使用此标记在贵网站中指定目录,这样 Sitemaps 生成器就可以为这些目录中的文件的网址创建一个网址列表。

-->   <directory  path="/var/www/icons"    url="http://www.example.com/images/" />
<directory
path="/var/www/docroot"
url="http://www.example.com/"
default_file="index.html"
/>
path
必填 指定初始路径。Sitemap 生成器会遍历此目录和所有子目录。.
url
必填 创建对应路径值的网址。
default_file
可选 指定服务器上目录的默认文件。

accesslog
可选标记,您可以使用此标记指定 IIS 和 Apache 样式访问日志的路径和文件名,这样 Sitemaps 生成器就可以自动从中挑选网址。

<accesslog path="/etc/httpd/logs/access-0.log" encoding="UTF-8"/>
path
必填 指定此文件的路径。
encoding
可选 如果不是 UTF-8 编码,指定文件的编码。

sitemap
可选标记,您可以使用此标记指定您使用 Sitemaps 生成器创建的现有 Sitemaps 的路径和文件名。Sitemaps 生成器将创建一个 Sitemaps 文件,其中包含每个 Sitemaps 中都包含的网址。

<sitemap path="/var/www/docroot/subpath/sitemap.xml" />
path
必填 指定此 Sitemaps 文件的路径。

filter
可用于生成包含或排除特定文件的规则的可选标签。过滤器将按照其在 config.xml 文件中出现的顺序起作用。不管过滤器项和输入项(如 url、urllist、directory 或者 accesslog)怎样混杂在一起也不会有其他影响 – 因为 Sitemaps 生成器添加到 Sitemaps 的全部网址都会先与每个过滤器(规则)进行比较。如果所有过滤器与某个网址都不匹配,则默认情况下会将该网址包含在 Sitemaps 中。

<filter action="drop" type="wildcard" pattern="*/internal/*" />
action
可选 过滤器应采取的操作。有效值为:

  • drop – 排除匹配的网址。这是默认操作,所以如果未指定操作,生成器将认定 “drop”。
  • pass – 包括匹配的网址。
type
可选 过滤类型。有效值为:

  • wildcard – 标准路径通配符(?和 *)用于比较网址。这是默认类型,所以如果未指定类型,生成器将采用“wildcard”。
  • regexp – 已使用正则表达式。
pattern
必填 指定匹配依据的格式。

编码

配置文件引用的文件(无论网址列表还是 Web 服务器日志)都可以使用默认的 UTF-8 以外的编码。可以在影响 Sitemaps 生成器如何读取文件的 config.xml 中指定替代编码。某些常用编码为:

  • encoding=”utf-8″ 是设想的默认值
  • encoding=”ascii”是 UTF-8 的一个子集,所以无需指定它
  • encoding=”iso-8859-1” 常用于许多西欧国家语言

2b。创建移动配置文件的详细信息。

为移动 Sitemaps 创建配置文件的方式与为非移动 Sitemaps 创建的方式相同。然而,您需要为每种标记语言创建单独的配置文件,并为每个配置文件分别运行 Sitemaps 生成器,从而为每个配置文件创建单独的 Sitemaps 文件。

每一个配置文件都需要:

  • store_into指定不同的文件名。
  • 使用过滤器指定要为标记语言排除或添加的网址。请记住,每一个 Sitemaps 文件都应包括只使用一种标记语言的网址。也就是说,如果这些网址支持多个标记语言,那么多个 Sitemaps 可能包括相同的网址。

过滤示例

以下是您如何使用基于扩展名的过滤器来生成使用不同标记语言的移动 Sitemaps 的一些示例。所使用的特定过滤(方式)应该以网站中使用的标记语言类型以及如何指定每种类型为基础。如果以其他方式实施网站的细节部分,(例如,可能将不同标记语言的网址组织在不同的文件夹中)则应该根据网站实施的具体情况进行过滤。请记住,过滤器是按照您在配置文件中所列的顺序应用的。因此,您应列出的第一个过滤器是一种“pass”操作,用于指定要包括在 Sitemaps 中的网址。

为 WML (WAP 1.2) 内容创建一个 Sitemaps 文件:

<filter action="pass" type="wildcard" pattern="*.wml" /> <filter action="drop" type="wildcard" pattern="*.*" />

为 XHTML mobile profile (WAP 2.0) 内容创建 Sitemaps:

<filter action="pass" type="wildcard" pattern="*.xhtml" /> <filter action="drop" type="wildcard" pattern="*.*" />
3. 将文件上传到 Web 服务器

您应该将以下文件上传到 Web 服务器上可以从命令行访问的位置:

  • config.xml —这是您刚才使用 example_config.xml 创建的配置文件。
  • sitemap_gen.py —这是生成 Sitemaps 的 Python 脚本。
  • urllist.txt —此文件是可选的;只在使用文本文件方法生成 Sitemaps 时,您才需要提供它。

用来上传这些文件的方法取决于您的环境。常用方法包括 FTP 和 SCP。有关详细信息,请与 Web 服务提供商联系。

4. 运行 Sitemaps 生成器脚本 (sitemap_gen.py)

要运行 Sitemap 生成器,需要连接到 Web 服务器。连接方法取决于您的环境。例如,您通常可以使用 SSH 访问基于 UNIX 的服务器。有关连接 Web 服务器和运行脚本的详细信息,请咨询您的 Web 服务提供商。

将文件复制到 Web 服务器后,就需要运行 Sitemaps 生成器脚本。连接到 Web 服务器并运行以下命令(用配置文件的路径和文件名替换 <path/config.xml>;如果已将此文件上传到与 Python 脚本相同的位置,则不需要路径):

python sitemap_gen.py --config=<path/config.xml>

例如,基于 UNIX 的命令行可能与此类似:

Python 命令

基于 MS-DOS 的命令 Shell 可能与此类似:

Python 命令

提示:如果您正在测试自己的配置,并且还不准备提交 Sitemaps,以下语法可以避免 Sitemaps 与 Google 接触:

$ python sitemap_gen.py --config=config.xml – 测试中

命令提示符中包含申请状态:

Reading configuration file: /path/config.xml 	Opened URLLIST "/path/urllist.txt" 	Walking DIRECTORY "/var/www/html/dir" 	Walking DIRECTORY "/var/www/html/dir2" 	Opened ACCESSLOG "/etc/httpd/logs/access-0.log" 	Sorting and normalizing collected URLs. 	Writing Sitemap file "/path/sitemap.xml.gz" with 1092 URLs 	Notifying search engines. 	Notifying www.google.com 	Count of file extensions on URLs: 		208  .html 		574  .jpg 		... 		Number of errors: 0 		Number of warnings: 0

如果输出的内容没有这么多,请记得配置文件中的 verbose 设置将影响屏幕上显示的信息量。此示例表示 verbose 设置为“1”的情况。

还将返回文件中的所有错误。例如,如果 url= 属性未设置为目录项,则脚本将输出以下内容:

[ERROR] Directory entries must have both "path" and "url" attributes 	Number of errors: 1

改正 config.xml 文件中的所有错误并重新运行脚本。如果未出现任何错误,Sitemaps 生成器将在配置文件指定的位置创建一个新 sitemap.xml.gz 文件。

5. 将您的 Sitemaps 提交至 Google

Sitemaps 生成器会在配置文件中指定的位置创建一个 sitemap.xml.gz 文件。此文件创建成功后,请确保可以通过网络浏览器访问。然后,将其添加到您的 Google Sitemaps 帐户。这样就能够使 Google 向您提供有用的状态信息和统计信息。如果 Google 报告您的 Sitemap 存在问题,您可以改正问题并重新提交。您只需手动添加一次 Sitemap。此后,便可以使用 HTTP 请求通知 Google 有关 Sitemap 的更改(也可以通过 Google 网站管理员工具帐户重新提交)。

6. 设置递归脚本

我们建议设置 Sitemaps 生成器,使其运行频率与您的内容更改频率相同,最高频率为每小时一次。

使用 UNIX Web 服务器的网站管理员可以考虑将其设置为计划作业

使用其他平台的网站管理员应该与其系统管理员联系以获取配置递归脚本的帮助。还可以受益于 Google 网上论坛的 Google Sitemaps 论坛中同行的建议。

您可以使用 HTTP 申请来通知 Google 关于您 Sitemap 的更改。不过,在 Google 网站管理员工具帐户中手动添加 Sitemap之后,请确保使用您的 Google 帐户登录 Google 网站管理员工具

疑难解答

此部分我们讨论使用 Sitemaps 生成器时发现的常见问题,以及遇到其中之一时可以采取的措施。

Web 可以访问

问题:Sitemaps 将返回以下错误和警告:

[ERROR] When attempting to access your generated Sitemap at the following URL: 	http://www.example.com/sitemap.xml.gz 	we failed to read it.  Please verify the store_into path you specified in 	your configuration file is web-accessible.  Consult the FAQ for more 	information. 	[WARNING] Proceeding to notify with an unverifiable URL.

这是为什么?Sitemaps 生成器创建了您指定的文件,然后尝试使用 HTTP 检索它(与搜索引擎要做的一样),却失败了。它会继续检索并通知搜索引擎,但会输出错误和警告,通知您搜索引擎搜索不到您的 Sitemaps。

Sitemaps 生成器将在 config.xml 文件中 store_into 属性指定的路径创建 Sitemaps 文件。然后,Sitemaps 生成器用 base_url 属性生成此文件的网址,并向搜索引擎报告此网址。例如,如果将配置设置为:

<site base_url="http://www.example.com/" 	      store_into="/var/www/html/sitemap.xml.gz">

Sitemaps 生成器会通知搜索引擎在以下位置查找您的 Sitemaps:

http://www.example.com/sitemap.xml.gz

文件要能通过此网址访问。如果文件无法使用此网址检索,则搜索引擎将无法查找 Sitemaps。

可以采取的措施:您需要验证自己的 config.xml 为 Sitemaps 指定了正确的 base_url 和 store_into 路径。您还需要确认,Web 浏览器可以从 base_url 中检索出 Sitemaps 文件。如果在路径或网址中发现错误,则您可能需要重新运行 Sitemaps 生成器,或只将 Sitemaps 文件移到正确的位置并通过其网站手动通知搜索引擎。

XML 支持

问题:Sitemaps 生成器会报告以下错误:

Some installs of Python 2.2 do not include complete support for XML.  	Please try upgrading your version of Python and re-running the script.

这是为什么?消息提到,某些平台有 Python 版(用于编写 Sitemaps 生成器的语言),这一版本不支持处理 XML 文件所需的库。此脚本需要完整的 XML 支持才能运行。

可以采取的措施:尝试将 Python 的已安装版本升级为较新的版本。为此可能需要与系统管理员联系。

注意,这只影响 Sitemaps 生成器,不会影响整个 Sitemaps。如果您有的创建 Sitemaps 其他方法或工具,可以放心使用,并将您的 Sitemaps 提交到搜索引擎。

.gz 或 .zip 中的所有附加文件是什么?

提取 sitemap_gen.py 脚本时,可能将看到文件比我们以上提到的多出很多。完整的文件列表类似于此:

AUTHORS 	ChangeLog 	COPYING 	example_config.xml 	example_urllist.txt 	PKG-INFO 	README 	setup.py 	sitemap_gen.py 	test_sitemap_gen.py

附加文件通常是有关包装和许可条款的信息。欢迎您通览这些文件。

test_sitemap_gen.py 则是例外,这是想为此开源项目做出贡献的开发人员会觉得很有用的单元测试脚本。如果想要使用 Sitemaps 生成器而不修改任何源代码(几乎所有人都这么想),可能就不需要此测试脚本。

如果您对为此项目提供帮助感兴趣,请访问 http://sourceforge.net/projects/goog-sitemapgen。您还可以在此处找到一些指向支持 Google Sitemaps 的第三方程序的链接。 非 ASCII 字符

问题:您网站的域名或其中所含网址中包含非 ASCII 字符。

通常,非 ASCII 网址在进行百分号换码之前应使用 UTF-8 编码。然而,一些 Web 服务器只有当网址使用非 UTF-8 编码的情况下才能正确回应。您 Sitemaps 本身的网址及其中包含的所有网址都应编码,以便它们所在的 Web 服务器识别。在 site 定义部分内,使用可选的 default_encoding 属性指定您的 Web 服务器所用的编码。如果您不使用此标记,并且您的 Web 服务器使用非 UTF-8 编码,那么我们就无法知道应该使用哪种编码。

如果您的网址包含非 ASCII 字符,建议您使用 Python 2.3 或更高版本运行 Sitemaps 生成器。这一版本的 Python 增加了对非 ASCII 的支持。如果您的域名中包含非 ASCII 字符,则应使用 Python 2.3 或更新版本,因为在此以前的版本中尚未增加 Internationalizing Domain Names in Applications (IDNA) 支持。没有 IDNA 支持,Sitemap 生成器无法正确编码非 ASCII 域名。

关于作者
孙波, 携程旅行网, Senior Manager
资深互联网民工,供职携程旅行网,网络市场部高级经理,曾就职于阿里巴巴、5173等。产品、市场、BI、站长,这么个圈子,基本都混过。业余关注TMT投资领域。

1 条评论了已经

发表评论

名字(必须)
邮箱(不会被公布)(必须)
网址

字体为 粗体 是必填项目,邮箱地址 永远不会 公布。

允许部分 HTML 代码:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URLs(网站链接)必须完整有效 (比如: http://www.sunbo.name),所有标签都必须完整的关闭。

超出部分系统将会自动分段及换行。

请保证评论内容是与日志或 Blog 内容相关的,灌水、攻击性或不恰当的评论 可能 会被编辑或删除。