Phize on the Web

XML形式(標準仕様)のサイトマップの作り方 - MODx

現在、XML形式のサイトマップとしては、sitemap.orgのフォーマットが標準的な仕様となっています。XML形式のサイトマップを作成・設置することによって、Google、Yahoo!を始めとした検索エンジンのクローラロボットなどにサイトの構造を的確に伝えることができるようになります。ここでは、オープンソースCMSのMODxでの、Dittoを使ったXML形式(標準仕様)のサイトマップの作り方を説明します。

ここで作成するリソースの名前は、例としてそれぞれ適当なリソース名を付けている。実際の運用においては、他のリソース名を付けても特に問題はない。

サイトマップ用テンプレートの作成

DittoでXML形式(標準仕様)のサイトマップを出力するためのテンプレートを作成します。

  1. 「Sitemap」という名前でテンプレートを作成する。(テンプレートの作成)
  2. 「テンプレート コード (html)」に次のコードをコピー&ペーストする。
    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    [*content*]
    </urlset>
  3. 「保存」をクリックしてテンプレートを保存する。

サイトマップ用チャンクの作成

DittoでXML形式(標準仕様)のサイトマップを出力するためのチャンクを作成します。

  1. 「SitemapTpl」という名前でチャンクを作成する。(チャンクの作成)
  2. チャンクに次のコードをコピー&ペーストする。
      <url>
        <loc>[+url+]</loc>
        <lastmod>[+editedon:date=`%Y-%m-%dT%H:%M:%S+09:00`+]</lastmod>
        <changefreq>weekly</changefreq>
        <priority>0.5</priority>
      </url>
  3. 「保存」をクリックしてテンプレートを保存する。

lastmod要素の内容には、汎用性や拡張性を重視してPHxのモディファイアを使用しているが、Dittoのプレースホルダである[+date+]を使用することもできる。その場合には、Dittoのスニペットコールに&dateFormat=`%Y-%m-%dT%H:%M:%S+09:00`を追加する。

サイトマップ用ドキュメントの作成

XML形式(標準仕様)のサイトマップ用にドキュメントを作成します。

  1. ドキュメントを作成する。
  2. 「全般」タブの「使用テンプレート」から「Sitemap」を選択する。
  3. 「ページ設定」タブの「コンテンツタイプ」から「application/xml」を選択する。
  4. 「内容」に次のコードをコピー&ペーストする。
    [[Ditto? &parents=`0` &showInMenuOnly=`1` &depth=`10` &display=`all` &sortBy=`menuindex` &sortDir=`ASC` &format=`html` &tpl=`サイトマップ用のチャンク名` &language=`english`]]
  5. 「保存」をクリックしてドキュメントを保存する。

コンテンツタイプ」に「application/xml」がない場合は、MODxマネージャの「ツール」→「MODx設定」→「サイト」タブの「カスタムコンテントタイプ」から追加する。application/xmlメディアタイプに未対応のユーザーエージェントにも配慮する場合は、「コンテンツタイプ」を「text/xml」に設定する。または、ユーザーエージェントによってメディアタイプを切り替えるためのphiXmlHeaderプラグインを導入する。

ここでのDittoのスニペットコールは、サイトマップとして出力するドキュメント全てに「メニューに表示」がチェックされていることを前提としている(&showInMenuOnly=`1`)。

作成したXML形式(標準仕様)のサイトマップをGoogle ウェブマスター ツールYahoo! Site Explorerなどから登録すれば、検索エンジンのクローラロボットがサイトマップをもとにWebサイトをクロールしてくれるようになります。

Copyright© 2006-2018 Phize on the Web All Rights Reserved.