帰ってきたNucleus

Googleサイトマップを作成する方法

Nucleus CMSでサイトマップを作成する方法を紹介します。サイトマップは主にGoogle Search Consoleに送信するために使用します。

Nucleus CMSのパッケージの中にはRSS配信のために「xml-rss2.php」や「atom.php」などXMLを出力するためのファイルが同梱されています。出力のフォーマットはスキンとテンプレートで設定されていますので、これらと同じ要領でサイトマップを作る事ができます。

テンプレートを作成

まずはテンプレート編集画面からアイテム一覧用のテンプレートを作成します。最低限、記事のURLだけあればサイトマップとして成立します。

テンプレート名(list/sitemap)アイテムの本体


	<%itemlink%>
	<%date(utc)%>

カスタムURLを使用していて、アイテムのURLにカテゴリーを含めたい場合は、


	<%categorylink%><%CustomURL(path)%>
	<%date(utc)%>

のように設定します。

スキンを作成

次にスキンを作成します。「一般設定」の「Content Type」の部分を「text/xml」にしてください。「メインの目次ページ」にサイトマップXMLの雛形とアイテムを一覧表示させるためのスキン変数を設定します。パラメータには先ほど設定したテンプレートの名前を入れます。アイテムの表示件数はしばらくは超えないくらい大きな数字を設定しておきます。

スキン名(sitemap)メインの目次ページ

<?xml version="1.0" encoding="UTF-8"?>

<%blog(list/sitemap,10000)%>

複数のブログで一つのサイトを構築している場合は「ShowBlogs」プラグインを使って一カ所にまとめます。

<?xml version="1.0" encoding="UTF-8"?>

<%ShowBlogs(list/sitemap,10000,all,0)%>

「sitemap.php」を作成

名前は何でもかまいませんが、PHPファイルをお好きな場所に作成してください。今回はルートディレクトリに「sitemap.php」という名前で作成します。「include」部分で、「config.php」のパスを指定してください。パスが合っていればどのディレクトでも動作します。「selectSkin」部分では先程作成したスキン名を入力してください。この2箇所を変更すればOKです。

<?php
$CONF = array();
include('./cms/config.php');
selectSkin('sitemap');
selector();
?>

以上でサイトマップが完成です。

「sitemap.php」を「sitemap.xml」に変更する

これで特に問題はないと思いますが、もしかしたら、「.php」ではなく「.xml」でないとダメ、という状況に陥る事があるかもしれません。ファイル名を「sitemap.xml」に変更してアクセスしてみてください。当然正しく表示されません。

「.htaccess」を使うと「.php」以外のファイルでPHPを動作させるようにする事ができますので、「.xml」のファイルでPHPが動作するよう設定します。

AddHandler application/x-httpd-php .xml

もしくは

AddType application/x-httpd-php .xml

これで「sitemap.xml」にアクセスするとサイトマップが表示されるようになります。動作しない場合はサーバーが許可していないという事になります。

どんな感じで表示されるかはこのサイトのサイトマップをご覧ください。