Uenishi.Web

大阪に生息しているプログラマーのブログ

TwitterのOGP画像が表示されない問題

OGPで定期的に色々躓いていて、特にTwitterがある時期から画像表示されんな…

と思っていたら、鬼のような凡ミスが原因だったので書き記しておきます。

現象

TwitterのOGPが表示されない…

画像が読み込まれない場合はページを更新してみてください。

見た感じmetaタグも問題なさそうだし、TwitterのCard ValidatorもINFOになっている…

画像が読み込まれない場合はページを更新してみてください。

画像が読み込まれない場合はページを更新してみてください。

なんでや…

なんでなんや……

時間を見つけては悩み、忘れていました。

ある日突然、冷静になって、もう一度見返してみました(そしてChatGPTにもいろいろ質問した)

画像が読み込まれない場合はページを更新してみてください。

画像が読み込まれない場合はページを更新してみてください。

お分かりいただけただろうか

https://www.uenishi.blog//images/blog-og-image.jpg

「uenishi.blog//image」

スラッシュ2個入っとるやん…

Facebookのシェアデバッガー見に行ったらちゃんと書いていた

画像が読み込まれない場合はページを更新してみてください。

308が返る

改めて、https://www.uenishi.blog//images/blog-og-image.jpgを叩いてNetworkを見てみると、以下のような結果が返っていました。

画像が読み込まれない場合はページを更新してみてください。

画像が読み込まれない場合はページを更新してみてください。

The HyperText Transfer Protocol (HTTP) 308 Permanent Redirect リダイレクトステータスコードは、リクエストされたリソースが Location ヘッダーで示された URL へ完全に移動したことを示します。ブラウザーはこのページにリダイレクトし、検索エンジンはリソースへのリンクを更新します (「SEO 用語」では、「リンクジュース」が新しい URL に送られたと言われます)。

正しいURL(https://www.uenishi.blog/images/blog-og-image.jpg)だと304になる。

画像が読み込まれない場合はページを更新してみてください。

画像が読み込まれない場合はページを更新してみてください。

HTTP 304 Not Modified クライアントリダイレクトレスポンスコードは、リクエストされたリソースを再送する必要がないことを示します。これはキャッシュされたリソースへの暗黙のリダイレクトです。これは、GET や HEAD リクエストのようなリクエストメソッドが safe である場合、またはリクエストが条件付きで If-None-Match もしくは If-Modified-Since ヘッダーを使用しているときに発生します。

metaタグにある画像のURLを読みに行った際、308が返ってきていたせいで画像として認識できておらず、結果としてツイートに画像が表示されなくなっていた感じかと思われます。

twitter:imageにあるURLを https://www.uenishi.blog/images/blog-og-image.jpg とすることで、無事解決しました。めでたしめでたし……

画像が読み込まれない場合はページを更新してみてください。

こんなしょーもない凡ミスに時間溶かしすぎたと思いつつ、勉強になったなぁと思うこととします。