ムーバブルタイプ(MT)は仕様上、1000件以上の記事出力に制限をかけている。問題になるのが「sitemap.xml」で、当サイトは3000件近い記事数があるので、普通にサイトマップをMT用のテンプレートで出力しようとすると「Can’t call method “execute” on an undefined value」というエラーが表示されてしまう。そこで対策としていくつかの案を試しているところである。
ある処理を行えば3000件の記事のURLが入ったサイトマップが出力できた。しかし、WEBブラウザで通常表示されないという問題もあり、ちゃんとグーグルがクロールしてくれるかどうかも心配である。今のところ、サイトマップを分割して複数作成し、ウェブマスターツールに複数のサイトマップを登録する方法で実施している。
シックス・アパート社のWEBサイトにはMT用のサイトマップテンプレートが紹介されている。
以下「http://www.movabletype.jp/documentation/appendices/sitemap.html」より引用
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.9">
<url>
<loc><$MTBlogURL encode_xml="1"$></loc>
</url>
<MTCategories>
<url>
<loc><$MTCategoryArchiveLink encode_xml="1"$></loc>
</url>
</MTCategories>
<MTIgnore>ブログ記事</MTIgnore>
<MTEntries lastn="0">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
</url>
</MTEntries>
<MTIgnore>ウェブページ</MTIgnore>
<MTPages lastn="0">
<url>
<loc><$MTPagePermalink encode_xml="1"$></loc>
<lastmod><$MTPageModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
</url>
</MTPages>
</urlset>
普通はこのままでOKである。
しかし、このままで使えるのはブログ記事数が999件以下(1000未満)のブログ。1000件以上の記事があるブログの場合は「Can’t call method “execute” on an undefined value」というエラーが表示される。これはMTが標準では1000件以上のループ処理を行わない仕様だからのようである。新バージョンのMT6でもそのループ制限は引き継がれているようだ。
対策としては、サイトマップを999件以下の記事に分割して複数出力する方法を試してみた。
参考にしたのは「MTの女王様」とし名高いタスクマザーの中野治美氏のブログである。中野治美氏のブログには以下の様な解決方法が記述されている。
<MTEntries lastn=”999″>
・・・
・・・
</MTEntries><MTEntries offset=”999″ lastn=”999″>
・・・
・・・
</MTEntries><MTEntries offset=”1998″ lastn=”999″>
・・・
・・・
</MTEntries>
なるほど。offsetとlastnの組み合わせによるエラー回避という方法である。
早速、この方法で試してみたところ約3000件のURLのサイトマップが作成できた。しかし、別の問題が発生した。作成したサイトマップ(sitemap.xml)をブラウザで確認しようとすると、行数が多すぎてクロームではうまく表示できない。たしかにソースとすれば軽く1万行を超えるので問題ありそうである。
幸い、グーグルウェブマスターツールには複数のサイトマップを登録することができる。そこで、上記のアイデアを使って、複数のサイトマップを作成しウェブマスターツールに登録するという案である。
今回作成したサイトマップは、とりあえず2つに分割した。最新記事999件は「sitemap.xml」、それ以降の記事は「sitemap_all.xml」というファイル名で出力するようにテンプレートを作成。標準的なサイトマップ名である「sitemap.xml」はグーグル以外の検索エンジン(BING)などでも読まれるのでエラーが起きにくいように配慮し、最新記事+カテゴリURLで構成するようにした。
▼「sitemap.xml」のテンプレート(サイトURL、カテゴリURL,ブログ記事の最新999件めまでのURL表示)
<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.google.com/schemas/sitemap/0.9″>
<url>
<loc><$MTBlogURL encode_xml=”1″$></loc>
</url>
<MTCategories>
<url>
<loc><$MTCategoryArchiveLink encode_xml=”1″$></loc>
</url>
</MTCategories><MTIgnore>ブログ記事</MTIgnore>
<MTEntries lastn=”999″>
<url>
<loc><$MTEntryPermalink encode_xml=”1″$></loc>
<lastmod><$MTEntryModifiedDate utc=”1″ format=”%Y-%m-%dT%H:%M:%SZ”$></lastmod>
</url>
</MTEntries><MTIgnore>ウェブページ</MTIgnore>
<MTPages lastn=”0″>
<url>
<loc><$MTPagePermalink encode_xml=”1″$></loc>
<lastmod><$MTPageModifiedDate format=”%Y-%m-%dT%H:%M:%S”$><$MTBlogTimezone$></lastmod>
</url>
</MTPages>
</urlset>
▼「sitemap_all.xml」のテンプレート(ブログ記事の1000件め以降~3996件までのURL表示)
<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.google.com/schemas/sitemap/0.9″><MTIgnore>ブログ記事1000以上分</MTIgnore>
<MTEntries offset=”999″ lastn=”999″>
<url>
<loc><$MTEntryPermalink encode_xml=”1″$></loc>
<lastmod><$MTEntryModifiedDate utc=”1″ format=”%Y-%m-%dT%H:%M:%SZ”$></lastmod>
</url>
</MTEntries><MTEntries offset=”1998″ lastn=”999″>
<url>
<loc><$MTEntryPermalink encode_xml=”1″$></loc>
<lastmod><$MTEntryModifiedDate utc=”1″ format=”%Y-%m-%dT%H:%M:%SZ”$></lastmod>
</url>
</MTEntries><MTEntries offset=”2997″ lastn=”999″>
<url>
<loc><$MTEntryPermalink encode_xml=”1″$></loc>
<lastmod><$MTEntryModifiedDate utc=”1″ format=”%Y-%m-%dT%H:%M:%SZ”$></lastmod>
</url>
</MTEntries><MTEntries offset=”3996″ lastn=”999″>
<url>
<loc><$MTEntryPermalink encode_xml=”1″$></loc>
<lastmod><$MTEntryModifiedDate utc=”1″ format=”%Y-%m-%dT%H:%M:%SZ”$></lastmod>
</url>
</MTEntries></urlset>
とりあえず、実験的にこの案で実施。うまくインデックスしてくれるかどうかの様子を見ることにした。
▼3つのサイトマップで登録しなおした直後のウェブマスターツールのサイトマップ登録のグラフ
9/15に着手したドメイン移転(サーバをニフティのココログからさくらインターネットに引っ越し)以降、グーグルボットの動きも盛んになっている。
URLの重複コンテンツ問題は閲覧上位の100ページは手動で修復した。しかしまだ完全に改善されていないので、今後も徐々に修正など手をかけていくことにする。
この記事を書いた遠田幹雄は中小企業診断士です
遠田幹雄は経営コンサルティング企業の株式会社ドモドモコーポレーション代表取締役。石川県かほく市に本社があり金沢市を中心とした北陸三県を主な活動エリアとする経営コンサルタントです。
小規模事業者や中小企業を対象として、経営戦略立案とその後の実行支援、商品開発、販路拡大、マーケティング、ブランド構築等に係る総合的なコンサルティング活動を展開しています。実際にはWEBマーケティングやIT系のご依頼が多いです。
民民での直接契約を中心としていますが、商工三団体などの支援機関が主催するセミナー講師を年間数十回担当したり、支援機関の専門家派遣や中小企業基盤整備機構の経営窓口相談に対応したりもしています。
保有資格:中小企業診断士、情報処理技術者など
会社概要およびプロフィールは株式会社ドモドモコーポレーションの会社案内にて紹介していますので興味ある方はご覧ください。
お問い合わせは電話ではなくお問い合わせフォームからメールにておねがいします。新規の電話番号からの電話は受信しないことにしていますのでご了承ください。
【反応していただけると喜びます(笑)】
記事内容が役にたったとか共感したとかで、なにか反応をしたいという場合はTwitterやフェイスブックなどのSNSで反応いただけるとうれしいです。
遠田幹雄が利用しているSNSは以下のとおりです。
facebook https://www.facebook.com/tohdamikio
ツイッター https://twitter.com/tohdamikio
LINE https://lin.ee/igN7saM
チャットワーク https://www.chatwork.com/tohda
また、投げ銭システムも用意しましたのでお気持ちがあればクレジット決済などでもお支払いいただけます。
※投げ銭はデジタルコンテンツ購入という通販のしくみにしました。
※投げ銭は100円からOKです。シャレですので笑ってください(笑)