素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

投稿日: 2019年10月23日
最終更新日:

【Node.js】npmモジュールの「sitemap-generator」でサイトマップの生成を自動化しよう【クローリング】

YouTubeも見てね♪

Anker PowerCor

created by Rinker
Anker
¥4,990 (2024/03/15 15:06:44時点 Amazon調べ-詳細)

旅行には必須の大容量モバイルバッテリー!

【最新機種】GoPro hero11 Black

created by Rinker
GoPro(ゴープロ)
¥62,000 (2024/03/15 19:06:06時点 Amazon調べ-詳細)

最新機種でVlogの思い出を撮影しよう!

[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット

created by Rinker
THE NORTH FACE(ザノースフェイス)
¥29,280 (2024/03/15 19:06:01時点 Amazon調べ-詳細)

防水暴風で耐久性抜群なので旅行で大活躍です!

モンスターエナジー 355ml×24本 [エナジードリンク]

created by Rinker
モンスター
¥4,748 (2024/03/15 19:03:48時点 Amazon調べ-詳細)

脳を活性化させるにはこれ!

ドラゴンクエスト メタリックモンスターズギャラリー メタルキング

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,250 (2024/03/15 19:03:48時点 Amazon調べ-詳細)

みんな大好き経験値の塊をデスクに常備しておこう!

MOFT X 【新型 ミニマム版】 iPhone対応 スマホスタンド

created by Rinker
MOFT
¥2,880 (2024/03/15 19:06:03時点 Amazon調べ-詳細)

Amazon一番人気のスマホスタンド!カード類も収納出来てかさ張らないのでオススメです!

サンディスク microSD 128GB

スマホからSwitchまで使える大容量MicroSDカード!

Sitemapを作りたい

静的サイトを作成している際に、複数ページにまたがる場合はSitemapを作成する必要があります。

サイトマップを使うと、ウェブマスターはサイト内のクロールされるページを検索エンジンに簡単に知らせることができます。 サイトマップは、最終アップロード日、通常の更新頻度、サイト内の他の URL との相対的な URL 優先度など、各 URL の詳細メタデータのほか、サイトの URL がリストされている簡単な形式の XML ファイルであるため、検索エンジンでより正確にサイトをクロールできます。
sitemaps.org – プロトコル

このサイトマップですが、URLが少ない場合は手作業で作っても良いかもしれませんが、ページ数が増えたり動的にページが生成される場合手動で管理するのは到底無理かつ無駄な作業といっても過言ではありません。

そこで、今回はsitemap-generatorを使って自動生成してみようと思います。

Generates a sitemap by crawling your site. Uses streams to efficiently write the sitemap to your drive and runs asynchronously to avoid blocking the thread. Is cappable of creating multiple sitemaps if threshold is reached. Respects robots.txt and meta tags.sitemap-generator – npm

手順

モジュールのインストール

まずは例のごとく、モジュールをyarnにてインストールします。

生成

まずはシンプルなsitemap.xmlを生成してみましょう。

実行用のsitemap.jsを用意してみます。

実行

node sitemap.jsを実行すると、以下のようなファイルが生成されると思います。

SitemapGeneratorを生成する際に指定したURLを自動クローリングしてサイトマップを生成しているようですね。

存在しないURLを指定するとエラー

存在しないURLを指定すると以下のようになります。

オプション

出力先の指定

sitemap.xmlはデフォルトでは実行ディレクトリに生成されます。

今回はpublic配下に出力するように変えてみようと思います。

オプションにfilepathを追加します。

確認

正しく出力先が変わっていることが確認出来ます。

最終更新日時の追加

sitemap.xml最終更新日も入れてみましょう。

オプションにlastModを追加します。

確認

こちらも正しくlastmodが追加されました。

ドキュメントによるとこの値は、http-equiv="Last-Modified"があればその値、なければ実行日が入るようです。

終わりに

Sitemapを作成する場合、手作業でやるのは大変なのでツールによる自動化はマストだと思います。

今回はGoogleが推奨するタグのみを出力してみましたが、他にも様々なオプションがありますので、興味のある方はぜひ試して見てください♪

CATEGORIES & TAGS

IT