facebookのOGPのキャッシュはクリアできない、2015年3月9日時点では

facebookデバッガー

OGPを正しく設定しても正しいサムネイルが出ない場合。

2015年3月9日時点での情報です。もしかしたら、公開時には変わっているかもしれません。

ソーシャルメディアが勢力を伸ばす昨今、OGPの設定が集客に大きく影響することは必至です。しかし、その設定はどうも、facebook側で一旦キャッシュされてしまうと、それをクリアすることは難しいようです。

実際に私が体験した事例を、以下にまとめました。ご参考になれば幸いです。

追記:2015年4月6日 POSTで強引にキャッシュクリアするスクリプト書きました。今のところこちらで完全にクリアできます。どうぞ。

>>facebookデバッガーで消せないOGPキャッシュをクリアする方法

まずは結論、現状残念ですがこんな感じ

・facebookデバッガーを使うとキャッシュクリアできる。
>>できないケースがある。

・OGPが正しく表記されていても、正しく表記されないケースがある。
>>facebookのキャッシュがあると、正しいmeta情報も上書きされてしまう。

結論

・正しいOGPのmeta表記をする。
・誰よりも早く適切なキャッシュを貯める。
・不適切なキャッシュが溜まってしまったら諦めて、訂正記事をキャッシュする。

現状、これしかないようです。

facebookのキャッシュクリアの基本

facebook、OGPタグの設定

facebookでデベロッパー登録をして、facebookIDを調べ、それらととともに、以下のタグをヘッダに入れます。

<head prefix="og: http://ogp.me/ns#  article: http://ogp.me/ns/article#">

<meta property="fb:admins" content="FacebookID" />
<meta property="og:title" content="ページタイトル" />
<meta property="og:type" content="ページタイプ" />
<meta property="og:description" content="ページ説明" />
<meta property="og:url" content="ページURL" />
<meta property="og:image" content="イメージURL" />
<meta property="og:site_name" content="サイトタイトル" />

facebookのユーザーIDを知るのは簡単です。

http://www.facebook.com/ユーザー名、というURLを、お持ちの方でしたら、そのユーザー名を控えます。

そして、http://graph.facebook.com/ユーザー名 としてアクセスすれば、画面上にIDが表示されます。

不適切キャッシュクリアの基本

facebookでは、サムネイル画像などを高速に表示させるためにfacebook側でそれらをキャッシュ(一時蓄積)していることが知られています。

・POST送信によるクリア
・デバッガーによるクリア

の2通りのキャッシュクリア方法をfacebookでは提供してくれています。

POST形式でのクリア

こちらでPOST形式でのクリア方法を紹介してくれています。facebookにデータ送信してURLキャッシュをクリアしてもらう方法ですね。

>>FacebookのOGPデバッガーがログイン必須で自動キャッシュクリア不可になって困った | Web担当者Forum

いちおう私のほうでも作りましたので、よろしければどうぞ。GETでも出来る、というエントリーも見たのですが、挙動が違っていましたので、いちおう作りました。

>>POSTによるfacebookOGPキャッシュクリア

facebookデバッガーを使う方法

こちらがポピュラーだと思います。アクセスしますと、URLを入力する欄があり、「Fetch new scrape information」をクリックすると、新規にフェッチ(送信)してくれるというものです。

>>Debugger

左側のボタン「Show existing scrape information」は、現在キャッシュされている内容を確認するためのものです。

このデバッガーで、OGPが正しく表示されれば、metaタグとしてのOGP設定は合っていると言えます。

facebookキャッシュがクリアできない

私が遭遇した事例を紹介します。

・過去に書いた記事で、一度もシェアされたことがない記事を、facebookデバッガーで「Show existing scrape information」でチェック。
>>正しく表示される。つまり、OGPのタグは適切、ということがわかります。

一度もシェアされたことがないので、ここで表示されたものは、おそらくそのクリックで新たにアクセスされ、キャッシュされたものと思われます。

・「Fetch new scrape information」をクリック。
>>おかしいと表示される。

ここで、まさかのERROR表示。先には正しいと表示されたのに、ここで再度フェッチできない、ということは、その調べに行っている先が違う先だと伺えます。facebookがキャッシュ以外の内部的などこかを参照していることが伺えます。

実際のURL以外から新規データを取りに行く

つまり、キャッシュ以外に彼らがクロールしたデータがどこかにあって、フェッチ要請があったときに、そこから引用して、新規のキャッシュデータを作成する、という仕様が伺えます。

ですので、OGPのタグを正しいものにしても、いくらフェッチしても、その正しいURLには読みに行ってくれないので、キャッシュはクリアされども、正しいデータになるとは限らないわけです。

いいね!が50を超えるとそもそもクリアできない

これは仕様だそうです、正確には og:titleとog:type が変えられないそうです。多くの人がいいね!している情報を、後から変えるのは影響大きいよね、ということらしい。

うーん、多くの人が間違ってシェアしてしまったものを訂正は出来ないのだそうです・・・。つまり、前述のように新しいエントリーを書く他ないようです。

とりあえずOGPを正しく設定して新規エントリーで修正しまくる、というのが現状の解決方法になります。


フェイスブック 若き天才の野望 : デビッド カークパトリック, 滑川 海彦: Kindle

・ ・ ・ ・ ・

>>安っ!アマゾンで半額以下になっている食品タイムセール
セール特設ページを見る

↓↓↓無料のニュースレターを配信中です

お疲れ様です。