• ..

NodeJS

    サイトマップを作る

    スキーマ

    スキーマ情報はwww.sitemaps.org/protocol.htmlに書かれいます。手書きでxmlを書くのは面倒くさいのでnodejsスクリプトで生成する感じにしてみる。

    2つのパッケージをインストール

    以下の2つをインストールします。

    yarn add xml prettify-xml

    xmlは木構造なオブジェクトをxmlにフォーマットしてくれて、prettify-xmlはxmlの整形パッケージです。

    サンプルコード

    簡単に書いてみました。

    const fs = require('fs');
    const path = requrie('path');
    const xml = require('xml');
    const prettifyXml = require('prettify-xml');
    
    const tree = {
      urlset: [
        {_attr: {xmlns: 'http://www.sitemaps.org/schemas/sitemap/0.9'}},
      ]
    };
    
    tree.urlset.push({
      url: [
        {loc: 'そのページのURL',
        {lastmod: 'いつ変更したか'},
        {changefreq: '更新頻度'},
        {priority: '優先度 0~1 例えば 0.5'},
      ]
    })
    // ...他すべてのページを`push`
    
    const sitemap = prettifyXml(xml(tree, {declaration: true}));
    fs.writeFileSync(path.join(__dirname, '相対パス/sitemap.xml'), sitemap);

    tree.urlset.push周りは色々リファクタして手間が少なくするようにするといいですね。
    ちなみにchangefreqは以下から適当なのを選びましょう。

    • always
    • hourly
    • daily
    • weekly
    • monthly
    • yearly
    • never

    lastmodchangefreqなどはは特に必須情報ではないようです。