Farbox实现Sitemap

  |   13 |   etc |   SEO

之前一直在用https://pro-sitemaps.com
但总要一段时间就去手动点一下很烦,不优雅。最后找到了这个
https://gist.github.com/lostsnow/5e941f5ba5701cdd4aec

其中可以把名字设置为sitemap.xml.jade

可以看下我这里的成品https://ted423.bitcron.com/sitemap.xml

我改了点代码

doctype xml

set_content_type('text/xml')
date_format = "%Y-%m-%dT%H:%M:%S+00:00"
posts = get_data(type="post", status=['public', 'secret'], limit=300)

//
    This is a XML sitemap file. Which is supported by many search engines like Google.
    You can find more information about XML sitemap on `http://sitemaps.org`.

urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
    url
        loc= "https://" + site.domain
        lastmod
            {{ posts[0].date.format(date_format) }}
        changefreq monthly
        priority 1.0

    if has('posts')
        url
            loc= "https://" + site.domain + "/archive"
            lastmod
                {{ posts[0].date.format(date_format) }}
            changefreq monthly

    if site.tags
        url
            loc= "https://" + site.domain + "/tags"
            lastmod
                {{ posts[0].date.format(date_format) }}
            changefreq monthly

    for category in categories
        url
            loc= "https://" + site.domain + "/categories/" + category.path
            lastmod
                {{ posts[0].date.format(date_format) }}
            changefreq monthly

    about = get_doc('about.md') or get_doc('about.txt')
    if about
        url
            loc= "https://" + site.domain + "/about"
            lastmod
                {{ about.date.format(date_format) }}
            changefreq monthly
            priority 1.0

    for post in posts
        url
            loc= "https://" + site.domain + post.url
            lastmod
                {{ post.date.format(date_format) }}
            changefreq always
            priority 1.0

    for tag in site.tags
        url
            loc= "https://" + site.domain + "/tag/" + tag[0]
            lastmod
                {{ posts[0].date.format(date_format) }}
            changefreq monthly

sitemap标准
http://www.sitemaps.org/zh_TW/protocol.html

XML 标记定义

属性 说明
<urlset> 需求条件 压缩档案与参照最新的通讯协定标准。
<url> 需求条件 每个 URL 项目的母层标记。剩余的标记是此标记的子阶层。
<loc> 需求条件 网页的 URL。
这个 URL 必须以通讯协定开头 (例如 http) 并以尾端的斜线结束 (如果您的网页伺服器有此需求)。
此值必须少于 2,048 个字元。
<lastmod> 选用 档案的最后修改日期。此日期应该采用 W3C 日期时间格式。
必要的话,此格式允许您略过时间的部分,并使用 YYYY-MM-DD。
请注意,此标记与伺服器可传回的 If-Modified-Since (304) 标头不同,
且搜寻引擎可能会以不同的方式使用这两种来源的资讯。
<changefreq> 选用 网页可能变更的频率。此值会提供一般的资讯给搜寻引擎,与检索网页的频率不完全相关。
有效值如下:
  • always
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • never
"always" 值应该用来描述会随着每次存取而变更的文件。"never" 值应该用来描述已封存的 URL。
请注意,此标记的值会当做提示而非指令。
<priority> 选用 此 URL 的优先顺序是相对于您网站上的其他 URL。有效值的范围为 0.0 到 1.0。
此值不会影响您的网页与其他网站网页的比较,而只是让搜寻引擎知道您认为哪些网页对检索器来说最为重要。
网页的预设优先顺序为 0.5。
请注意,您指定给网页的优先顺序,并不会影响您的 URL 在搜寻引擎之结果网页上的排名。
但搜寻引擎可能会使用此资讯在同一个网站上的 URL 间做选择
同时请注意,将您网站中所有的 URL 都指定为高优先顺序并没有任何助益。
因为优先顺序是相对性的,只会用来在您网站上的 URL 之间做选取。
Comments
Write a Comment