本サイトはWordPressにCocoon(以前はその前身となるSimplecity2)というテンプレートを載せて運用していますが、TwitterでブログのURL貼っても画像出ないのが長年の謎だったのですが、どうやらrobots.txtの影響だったことが判明しました。
タイムラインで画像を表示するにはTwitterのお作法に則ってOGPなるものを設定する必要があるのですが、Cocoonの設定上はTwitterの設定を有効になっており、正直これ以上やることないんだよなぁ・・・、と諦めていたのですが、Card ValidatorというサイトでTwitterのカード表示が正しくできるか確認できるとのこと。
で、早速チェックにかけてみた結果、「robots.txtのせいで画像が取れないんですわ(意訳)」と言われて全てを悟りました。
管理画面をクローリングされても意味ないので wordpressのディレクトリ全体をDisallowしていたのですが、画像の置き場所がwordpress配下のuploadsディレクトリなため、画像が表示できなかったというのが真相のようです。
そこで画像のアップロード先だけrobots.txtで許可してあげた結果、無事Twitterに画像が表示されることとなりました。
User-Agent: * Allow: /wordpress/wp-content/uploads/ Disallow: /wordpress/
しかしTwitterって随分律儀なんですね。
クローリングしている訳じゃなくて単なる埋め込み画像なんだからrobots.txtに従う必要ないのでは?という気がしますが、仕組み的にユーザー(が使っているブラウザ)が直接画像を表示するのではなく、裏でTwitterが画像を取得してユーザに見せている以上、厳密に言えば確かにBotなのかもだけど、画像が出ないくらいならrobots.txtとか見ずみ来てくれてもエエんやで?、と思った次第です。




コメント