サイトマップを作る

サイトマップを作って、Google Search Consoleに登録します。

目次

  1. サイトマップとは
  2. サイトマップの形式
  3. テキスト形式とXML形式の比較
  4. テキスト形式とXML形式のどちらを選択するか
  5. ファイル情報を収集する

サイトマップとは

サイトマップとは、検索エンジンにサイトのページなどのコンテンツの情報を伝えるものです。これによって、検索エンジンがそのサイトをクロールしやすくなります。

サイトマップの形式

Googleの場合はいくつかのサイトマップの形式をサポートしていますが、代表的なものはXMLとテキストだと思います。

テキスト形式

URLを1行ごとに1件ずつ指定したテキストファイルです。UTF-8エンコードで、ファイルの拡張子をtxtにします。

XML形式

XMLでコンテンツの情報を指定します。URL以外の情報を記述することができます。

書き方は、 sitemaps.org を参考にしてください。

テキスト形式とXML形式の比較

書式としてはテキスト形式の方が圧倒的に簡単です。ただ、XML形式でどういう情報が追加できるのか確認してみます。

属性

内容

urlset

必須

XMLサイトマップの基本になる属性です。 このタグで括られた中身がサイトマップになります。

url

必須

各URLごとに親となるタグです。ページごとにこのタグで括ります。

loc

必須

ページのURLを示すタグです。URLはhttpのようなプロトコルから始める必要があります。

lastmod

オプション

ページの更新日を示すタグです。YYYY-MM-DDという形式で書きます。

changefreq

オプション

更新の頻度を示すタグです。dailyやneverという形で書きます。

priority

オプション

サイト内でのこのURLの優先度を示すタグです。0.0から1.0の数値で指定します。

ただしGoogleのヘルプによると、Googleではpriority属性は使用していないとのことです。

静的サイトの場合は更新頻度はあまり有効ではないと思いますので、テキスト形式に対するXMLの優位なところは更新日を記載できるところですね。

テキスト形式とXML形式のどちらを選択するか

ページの更新もあまり頻繁に行わないので、とりあえず簡単に作れそうなテキスト形式にします。

更新したらサーチコンソールでインデックスの申請をすれば良いですし。

ファイル情報を収集する

当サイトは見ての通りPythonによるドキュメントツール(Sphinxとablog)を使用して作られています。

このツールは、PCのローカル環境で原稿ファイルからHTMLを出力する、いわゆる静的サイトジェネレータのようなものです。

ablogの場合は、ドキュメントルートディレクトリの中に _website というディレクトリを作ってそこにHTMLが出力されます。もっと具体的には、 _website/post というディレクトリに投稿ごとにサブディレクトリを作って、各ディレクトリにindex.htmlを配置します。

ということは、このディレクトリのファイルの一覧を取得して、プロトコルから始まるサイトのURLを付加して、sitemap.txtに書き出せば良いわけです。

というわけで、こんなスクリプトを作ってみました。

import os
import os.path
import re

# ファイル名を取得する
UrlLocEntry = []
for dirpath, dirname, filename in os.walk('.\\_website\\post'):
    for f in filename:
        UrlLocEntry.append(os.path.join(dirpath, f))

# ファイル名をURLに書き換える
UrlLocModifiedEntry = []
for entry in UrlLocEntry:
    replaced = re.sub('\\\\', '/', entry)
    replaced = re.sub('\./_website', 'ここは適当に書き換えてください', replaced)
    UrlLocModifiedEntry.append(replaced + '\n')

# sitemap.txtに出力する
with open('sitemap.txt', mode='wt', encoding='utf-8', newline='\n') as fo:
    fo.writelines(UrlLocModifiedEntry)

これを実行すると、sitemap.txtというファイルができあがります。

このsitemap.txtをサーバーにアップロードして、サーチコンソールに読んでもらえば良いわけです。

公開日

広告