WP3.0ネットワークでGoogle Sitemapを作成する

6月 29 2010

2010年6月29日リライト。

下記で紹介していた『XML Sitemap Feed』ですが、途中で上手く動作しなくなる不具合がありましたので、改めて、より確実な方法を追記します。

人気のプラグイン『Google (XML) Sitemaps Generator for WordPress』を使ったファミリーブログでの設置の仕方です。

参考サイト;Google XML Sitemaps and WordPress Multisite

http://blog.dembowski.net/2010/06/09/google-xml-sitemaps-and-wordpress-multisite/

まず、配布元から最新バージョンのプラグインファイルをダウンロードします。

WordPress公式サイト 『Google XML Sitemaps』

(1)プラグイン管理画面の警告メッセージを非表示にする

圧縮ファイルを解凍して、テキストエディタで sitemap.php を開きます。

51行目あたり『Check for 3.0 multisite~return;』の部分を下記のようにコメントアウトします。

google sitemap



(2)rewrite rule を追加する

次に.htaccessファイルを開いて、WordPressのrewrite ruleの上部に、新しいルールを追加します。
(下方に追記すると反映されないのでご注意ください)

[php]
RewriteRule ^sitemap.xml sitemap-%{SERVER_NAME}.xml [L]
RewriteRule ^sitemap.xml.gz sitemap-%{SERVER_NAME}.xml.gz [L]
[/php]



(3)Google Sitemap プラグインの設定

上記の作業が済んだら、プラグインファイルを wp-content/plugins をアップロードし、管理画面で有効化します。

「ネットワーク有効化」はNGです。

各ブログにおいて「有効化」および「設定」します。

有効化したら、プラグインの設定画面を開き、「サイトマップファイルの場所」で「手動設定」を選択し、「ファイル名を含むサイトマップファイルへの相対もしくは絶対パス」および「ファイル名を含む Sitemap ファイルへの完全な URL」を指定します。
このパスを間違うとサイトマップが正しく生成されませんので確実に。

google sitemap



(4)sitemap.xmlの存在確認

ネットワーク上の各ブログのsitemapは、blogs.dir/○/files/ に作成されます。

次のように生成されていれば成功です。

google sitemap

次にブラウザでも確認します。

設置したURLにアクセスし、次のようなsitemapが生成されていればOKです。

google sitemap

この作業を各ブログにおいて繰り返します。

「ネットワーク有効化」にするとサイトマップがきちんと生成されないのでご注意ください。



(5)ウェブマスターツールへの登録

Googleのウェブマスターツールから「サイト設定」→「サイトマップ」を開き、各ブログのサイトマップのURLを指定します。

google sitemap

読み込みがなされて、ステータスに緑のチェックが付けばOKです。

google sitemap



(6)robots.txtの作成

通常、プラグイン管理画面で、robots.txtを自動生成するにチェックが入っていますが、ネットワークで利用する場合は、このチェックをオフにして、手動で作成します。

google sitemap

テキストエディタで Sitemap: から始まるSitemapのURLを記述し、WordPressを設置しているトップディレクトリにアップロードします。
sitemap.xml と sitemap.xml.gz 両方記述しておくとベターです。

google sitemap


これで上手い具合に動作しています。

いずれプラグイン自身、ネットワーク機能に対応すると思いますが、それまでは手動で対応しかなさそうです。

少々面倒ですが、大事なポイントなので、設置する価値はあると思います。

以下は古くなった情報ですが、参考までに。


2010/06/16付。

新しい情報を追加しました。

WP3.0 ネットワーク機能で各ブログのGoogle Sitemapを作成する方法

旧い記事にも記したように、WP3.0のネットワーク機能でファミリーブログを構築すると、従来のプラグインで自動生成されていた各ブログのSitemapが生成されなくなります。

SEOにおいては、Sitemapが非常に重視されていますので、ぜひ作成されることをお勧めします。

現段階において、完璧に動作するプラグインは次の通りです。

XML Sitemap Feed http://wordpress.org/extend/plugins/xml-sitemap-feed/

配布先からプラグインのファイルをダウンロードしたら、普通に wp-contents / plugins にアップロードします。

その後『Network Activate』を有効にすれば、自動的に、各サイトにおいてSitemap.xmlが生成されるようになります。

子サイトでSitemapを生成したくない場合は、各サイトにおいてプラグインを有効化します。

『XML Sitemap Feed』の特徴は、従来のプラグインと異なり、サーバー上にxmlファイルを生成しないことです。

Sitemapが生成されたか否かは、ブラウザで、設置したURL / sitemap.xml にアクセスして確認します。

Google Sitemap

存在が確認できたら、Googleウェブマスターツールの『サイトマップ』にアクセスし、各SitemapのURLを送信します。

Google Sitemap

ステータスに緑のチェックが現れたら成功です。

Google Sitemap

あと、トップディレクトリにrobots.txtを設置して、Sitemapのアドレスを明記します。

Sitemap:の形でURLを記載します。

Google Sitemap



『XML Sitemap Feed』は、従来の人気プラグインのように、優先度を設定したり、カテゴリーやタグインデックスを排除したり、という細かな設定はできません。

単純に、記事のURLを通知するという程度のものなので、物足りない方もあるかもしれません。

しかし、現段階で、ウェブマスターツールにちゃんと認識されるSitemapを自動生成してくれるプラグインはこれ一つなので、とりあえずこちらを使って様子を見るといいと思います。

§ Google (XML) Sitemaps Generator を使う方法

こちらの記事は古い情報になります。
プラグイン本体のバージョンアップに伴い、下記の方法が通用しなくなったので、新しい情報を追加しました。
一応「こういう方法もあった」ということで参考にご覧下さい。
ただし、このプラグインも、将来的にはWP3.0のネットワーク機能に対応することが期待されますので、こちらの方が気に入っている方は新バージョンの公開を待たれてもいいかと思います。

WordPress3.0から備わったネットワーク機能ですが、サブディレクトリに子サイトを設置した場合、Googleなど検索エンジンにインデックスを送る XML Sitemap の作成が怪しくなります。

なぜなら、子サイトは各々独立したサイトでありながら、独自のXML Sitemapを自動生成しないため、ウェブマスターツールも上手く読み込んでくれないんですね。

そこで解決方を一つ。

人気のプラグイン、Google (XML) Sitemaps Generator for WordPressに手を加えて、子サイトが独自のXMLファイルを自動生成するよう調整します。

参考サイトはこちら Google Sitemaps on WordPress-MU

まず、sitemap-core.php をエディタで開き、functionの「GetXmlUrl」および「GetXmlPath」の2箇所を次のように書き換えます。

GetXmlUrl

[php]
function GetXmlUrl($forceAuto=false) {
if(!$forceAuto && $this->GetOption("b_location_mode")=="manual") {
return $this->GetOption("b_fileurl_manual");
} else {
return trailingslashit(get_bloginfo(‘siteurl’)) . ‘files/’ .
$this->GetOption("b_filename");
}
}
[/php]

GetXmlPath

[php]
function GetXmlPath($forceAuto=false) {
if(!$forceAuto && $this->GetOption("b_location_mode")=="manual") {
return $this->GetOption("b_filename_manual");
} else {
wp_mkdir_p(ABSPATH . UPLOADS);
return ABSPATH . UPLOADS . $this->GetOption("b_filename");
}
}
[/php]

すると、子サイトのアップロードフォルダーである「blogs.dir」→「files」内に、次のように自動生成されます。

sitemap xml

次に、ウェブマスターツールにアクセスして、xmlファイルの置き場所を絶対パスで指定します。

sitemap xml

これで緑のチェックが付けばOKです。

もともとMU用の手法なので、WP3.0のネットワーク機能でも万全なのかどうか分かりませんが、とりあえずXMLファイルを認識してもらえたので、一つの方法として試してみてください。

§ ワンポイント

プラグイン設定で、「サイトマップのURLを仮想robots.txtに追加」という項目がありますが、ネットワークで使う場合、これはチェックを外しておきましょう。

でないと、プラグインがまったく違うURLを自動生成して、検索ロボットに伝えてしまうからです。

sitemap xml

ですから、robots.txtの自動生成はオフにして、自分で作成するのが確実です。

ウェブマスターツールで認識されたアドレスを、「Sitemap:URL」という形で書きます。

sitemap xml

ご参考までに。

§ WordPress3.0ネットワーク機能に関するその他の記事

One response so far

コメントをどうぞ