WordPressの記事をGooブログ検索様にインデックスして頂く
Gooブログ検索様は、独特の価値観を持っておられ、標準のWordPressからのpingを受け付けて下さいません。
色々調べ、次の方法をとり、Gooブログ検索様にインデックスして戴ける様になりました。
短い間でしたが。一度、インデックスして戴ける様になり、その後、無視され続けています。
- プラグインWordPress Ping Optimizerの導入
- index.rdfの準備(.httpacess修正)
- index.rdfの準備(htmlヘッダへの追加)
- プラグインFeed Template Customizeの導入
- index.rdfの準備(feed-rdf.phpの修正)
なお、この方法にたどり着くまでに、次の記事を参考にさせていただきました。ありがとうございます。
手順
1. プラグインWordPress Ping Optimizerの導入
標準のWordPressは、新規に記事を公開した時だけではなく、記事を更新するたびにpingを送ってしまいます。次のプラグインを導入する事で、不要なPingを発生しなくなります。
マルチサイトのブログを運営されていらっしゃいます方は、プラグインインストール後は「ネットワークで有効」ではなく、個別のブログ毎に有効にされた方が安全と思われます。
ですが、やはりこのままではGooブログ検索様は受け付けて下さいません。
User AgentがWordPressだと、無視する様でございます。その為、WordPress Ping OptimizerのUser Agent名を書き換えさせていただきました。
次のページが参考になります。ありがとうございます。
WordPress Ping Optimizerを直接編集して、"WordPress"となっているUser Agentを書き換えます。WordPressを連想させない英数字の組み合わせだったら、何でも良いと思われます。この変更で、Gooブログ検索様にPingを受け入れていただく事ができました。
変更前
$client->useragent .= ' -- WordPress/'.$this->cbnetpo_wp_version;
http://blog.goo.ne.jp/XMLRPC could not be pinged. Error message: "transport error - HTTP status code was not 200"
変更後
$client->useragent .= ' -- MyAgent/'.$this->cbnetpo_wp_version;
http://blog.goo.ne.jp/XMLRPC was successfully pinged
ただし、プラグインのコードを直接書き換えさせていただいておりますので、プラグインが更新された際には、元の値に戻ってしまいます。再度、書き換えが必要でございます。
2. index.rdfの準備(.httpacess修正)
Gooブログ検索様がPingを受け取りあそばされますと、送らせていただいた内容にあわせて、index.rdfを見に来ていただけるようでございます。当ブログの場合、"https://oichinote.com/plus/index.rdf"を見に戴けた様です。Pingを送らせていただく前に、"http://oichinote.com/index.rdf"しか準備出来ていなかったので、うろたえてしまいました。
RewriteRule ^([_0-9a-zA-Z-]+/)?index\.rdf$ $1/feed/rdf [R=301,L]
当初、RewiteRuleが上手く行かず、悩んでいました。"R=301″を付ける事で、上手く転送される様になりました。意味的にも正しいと思われます。
3. index.rdfの準備(htmlヘッダへの追加)
Gooブログ検索様は、HTMLソース中のRSSフィードをご覧になられる様ですので、index.rdfへのリンクをご用意させていただきました。テーマ中のfunctions.phpにご記入いただければよろしいかと存じます。
function add_rdf_feed() {
echo ' <link rel="alternate" type="application/rss+xml" title="RDF » フィード" href="'.get_bloginfo('siteurl').'/index.rdf" />'."\n";
}
add_filter('wp_head', 'add_rdf_feed', 5);
4. プラグインFeed Template Customizeの導入
Gooブログ検索様は、RSSフィードのTime Zoneは必ず日本時間(UTC+9)である事を望まれていらっしゃる様です。こちらがうっかりUTCで送ってしまおう物なら、かたくなに日本時間とご理解される様です。
WordPressの中は、すべてUTCを想定して作られている様です。wp-setting.phpやテーマのfunctions.phpでdate_default_timezone_set( 'UTC+9’ );としてタイムゾーンを変えてしまうのは、よろしくない事なのだそうです。
今回、Gooブログ検索様専用の対応でございますので、RDFを作る部分だけに手を入れてしまえば良いのです。検索の末にたどり着いたのが、次のフォーラムでございます。
このフォーラムの中でご紹介されております、次のプラグインを利用させていただきました。
作者ご自身が、日本語でご解説して下さっています。ありがとうございます。
プラグインインストール後、「ネットワークで有効」にすれば大丈夫です。
5. index.rdfの準備(feed-rdf.phpの修正)
Feed Template Customizeで、Feedの出力形式を変更するためには、該当するFeed作成用のスクリプトを、テーマ内に置く必要がございます。今回の場合、feed-rdf.phpでしたので、標準のwp-includes/feed-rdf.phpをコピーして参りました。
UTCにしている部分をJST(+0900)で送らせていただきます。また、日本語で書かれている事を宣言させていただきました。変更内容は、次の通りでございます。
# diff -c ../../../wp-includes/feed-rdf.php feed-rdf.php
*** ../../../wp-includes/feed-rdf.php Sat Dec 20 17:31:50 2014
--- feed-rdf.php Sat Jan 10 15:44:19 2015
***************
*** 20,25 ****
--- 20,26 ----
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:admin="http://webns.net/mvcb/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
+ xml:lang="ja"
<?php
/**
* Fires at the end of the feed root to add namespaces.
***************
*** 33,39 ****
<title><?php bloginfo_rss('name'); wp_title_rss(); ?></title>
<link><?php bloginfo_rss('url') ?></link>
<description><?php bloginfo_rss('description') ?></description>
! <dc:date><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT'), false); ?></dc:date>
<sy:updatePeriod><?php
/** This filter is documented in wp-includes/feed-rss2.php */
echo apply_filters( 'rss_update_period', 'hourly' );
--- 34,41 ----
<title><?php bloginfo_rss('name'); wp_title_rss(); ?></title>
<link><?php bloginfo_rss('url') ?></link>
<description><?php bloginfo_rss('description') ?></description>
! <dc:date><?php echo mysql2date('Y-m-d\TH:i:s+09:00', get_lastpostmodified(), false); ?></dc:date>
! <dc:language>ja-jp</dc:language>
<sy:updatePeriod><?php
/** This filter is documented in wp-includes/feed-rss2.php */
echo apply_filters( 'rss_update_period', 'hourly' );
***************
*** 42,48 ****
/** This filter is documented in wp-includes/feed-rss2.php */
echo apply_filters( 'rss_update_frequency', '1' );
?></sy:updateFrequency>
! <sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<?php
/**
* Fires at the end of the RDF feed header.
--- 44,50 ----
/** This filter is documented in wp-includes/feed-rss2.php */
echo apply_filters( 'rss_update_frequency', '1' );
?></sy:updateFrequency>
! <sy:updateBase>2000-01-01T12:00+09:00</sy:updateBase>
<?php
/**
* Fires at the end of the RDF feed header.
***************
*** 63,69 ****
<item rdf:about="<?php the_permalink_rss() ?>">
<title><?php the_title_rss() ?></title>
<link><?php the_permalink_rss() ?></link>
! <dc:date><?php echo mysql2date('Y-m-d\TH:i:s\Z', $post->post_date_gmt, false); ?></dc:date>
<dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator>
<?php the_category_rss('rdf') ?>
<?php if (get_option('rss_use_excerpt')) : ?>
--- 65,71 ----
<item rdf:about="<?php the_permalink_rss() ?>">
<title><?php the_title_rss() ?></title>
<link><?php the_permalink_rss() ?></link>
! <dc:date><?php echo mysql2date('Y-m-d\TH:i:s+09:00', $post->post_date, false); ?></dc:date>
<dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator>
<?php the_category_rss('rdf') ?>
<?php if (get_option('rss_use_excerpt')) : ?>
結果として、この方法だけでは、Gooブログ検索様の期待通りにはできていなかった様です。Feedではなく、記事本体中の投稿時刻をJSTにしなければならなかった様です。ですが、WordPressの時間帯をUTC以外にすることは、WordPressのポリシーと相異入れる事は叶いません。投稿時刻がずれるのは、諦めるしかないのでした。
まとめ
そもそも、Gooブログ検索様がWordPressをお嫌いなのは、次の理由による物と思われます。
標準のWordPressのpingの挙動が、Gooブログ検索様のお気に触ったようでございます。
また、RSSのバージョン、タイムゾーン、文字コードにもこだわりを持っておられるようで、お気に召さないと、受け付けていただけないようでございます。
この様な制約を乗り越え、投稿時刻はずれている物の、Gooブログ検索様にインデックスして戴ける様になりました。しかしその後、Gooブログ検索様のお気に召さない事をしてしまったのか、インデックスしていただけなくなってしまいました。Pingは受け取っていただけている様なのにです。どうされたのでしょうか? 投稿時刻がずれていたのが、やはりお気に障りましたか?
…ったく、こんなわがままな仕様、止めてしまえ! って感じです。記事時刻をJSTしか受け付けないとか、WordPressは排除するとか。今、継続してブログを書かれている方のほとんどは、WordPressではないでしょうか? それを無視するとは、ブログ文化を認めていないのと同じだと思います。絶対数だと、Amebloの方が多いのでしょうかね。Amebloからの記事はインデックスされているようですので、数としては十分なのでしょうか?
私が記事をGoogleで検索すると、有益な情報はほとんどWordPressで記事を書かれている方の物がヒットします。Gooブログ検索なんて、意味がないって事ですね。二度とGooブログ検索に対応しようなんて、思わない。
ディスカッション
[…] プラスα空間 WordPressの記事をGooブログ検索様にインデックスして頂くhttps://oichinote.com/plus/2015/04/how-to-regist-to-goo-blog-index.htmlGooブログ検索様は、独特の価値観を持っておられ、標準 […]