「Google リーダーのフィードキャッシュがとても削除しにくい」というのは聞いていたのですが、今回これを自分も経験してしまいました。そこで、インストール型 WordPress ブログでのキャッシュ削除方法を書いてみます。
データベースのバックアップをとってから作業してください。参考: Codex 日本語版「データベースのバックアップ」
症状
「一度フィード内に含まれ公開された投稿が Google リーダーのフィードとしてキャッシュされると、投稿をブログから削除しても Google リーダー側から削除されない」
やっても効き目がないこと
- 投稿を削除する → 現行のフィードからは消えても、Google リーダーキャッシュにはそのまま残る
- ブログの自動検出フィード URL を変更する → Google リーダー側ではサイトの URL をもとに古いキャッシュがやはり表示されてしまう
- Google リーダーで購読を中止し、再購読する → 同上
すべきこと
- 消したい投稿を実際に上書きする
- 一番簡単なのがこの方法です。これはインストール型 WordPress ブログに限らずどんなブログでも使える方法ですが、削除する代わりに投稿を完全に上書きしてしまうことでフィードが更新されます。
- Google リーダーが同一の投稿とみなす投稿で上書きする
- 上の方法と似ていますが、例えば「すでに投稿を削除してしまった」「他のドメインのフィードが混じってしまった」などといった場合には実際に上書きすることができないため、少し面倒な作業が必要です。
- リーダーから消したい投稿の GUID を発見します。まず、以下の http://example.com/feed という太字の部分を自分のフィード URL に変更してブラウザで開きます。
http://www.google.com/reader/atom/feed/http://example.com/feed?r=n&n=100 - このファイルで、消したい投稿の項目内の以下のような表記を探します。
<id gr:original-id="http://example.com/2010/12/01/100">
上記の場合 GUID は
http://example.com/2010/12/01/100になります(パーマリンクの設定によっては別形式の場合もあり)。 次に、新規投稿を作成して下書きとして保存します。この際、投稿編集画面の URL にある投稿 ID が次のステップで必要になります。

- データベースの wp_post テーブルで先ほど作成した下書きの guid を書き換えます。
guid にはステップ1で得た値を、ID にはステップ2で得た値を使います。UPDATE `wp_database`.`wp_posts` SET `guid` = 'http://example.com/2010/11/24/100' WHERE `wp_posts`.`ID` =122;
- Google Reader フォーラムの「deleted posts」検索結果
- Cleaning Cached Blog Entries in Google Reader – Or: How to Remove Unwanted Posts from Google Reader – Blogger.com で記事を Google Reader キャッシュから削除する方法。
こうすることで、新規記事が削除したい記事を上書きしてくれるはずです。
Google リーダーキャッシュから削除したい記事が複数ある場合、空の記事を作って公開した記事の GUID を何度も書き換える事も可能です。その場合、Google XML Sitemaps プラグインを有効化しておき、上記のステップ4を行った後フィードを再構築します(投稿の日付を書き換えて更新するだけでも OK)。Feedburner を使っている場合は手動で Ping を送れます。
皆さんにはそんな必要がないといいですが、万が一キャッシュを削除しなくてはいけなくなった時は試してみてください。
