facebookでシェアした記事にogp:imageを設定しているのにアイキャッチ画像が表示されない場合
別サイトですが、URLをペーストした際に、OGP画像が正しく表示されるURLがあったり、表示されないURLがあったりして困っていました。
幸いアイキャッチ画像を手元に残していたので、画像を追加して事なきを得ましたが、
これはこれでめんどくさい!
画像が手元になかったら、わざわざ表示して保存しないといけない!
という事象に陥ってました。
ググったところ、原因らしきことを書いているサイトを発見しました。
というか、公式のデベロッパーサイトに書いてありました・・・w
画像をプリキャッシュする
コンテンツが初めてシェアされる際、Facebookクローラーがシェア対象のURLからメタデータをスクレイピングし、キャッシュします。クローラーは、画像を少なくとも1回確認してからでなければ、レンダリングできません。つまり、コンテンツを最初にシェアする人は、表示される画像を確認できません。
出典:https://developers.facebook.com/docs/sharing/best-practices#precaching
よーは、「facebook側が初めてアクセスするサイトについては、キャッシュを持っていないから表示されない」そーいうことでした。ある意味納得ですね。
で、どーすればいいのか?が問題ですね
解決方法
1. シェアデバッガーを使用して画像をプリキャッシュする
URLデバッガーでURLを実行し、ページのメタデータを事前に取得します。この操作は、一部のコンテンツの画像を更新した場合も行ってください。2. og:image:widthおよびog:image:height Open Graphタグを使用する
とのことですが、ウチのサイトは画像のタテヨコサイズはそれぞれ変わるので非現実です。
で、わたしは、URLデバッガーで一度キャッシュするようにしました。
手間は手間なんですけど、画像を再指定したり、保存したりすることに比べたら楽です。