WordPressのFaceBookとかのプラグインでOGPがおかしいときに確認すること
WordPressで自分のサイトや他人のサイトを管理している際、FacebookとかのプラグインでシェアのOGPがおかしい、又は表示されないとか言う人がいる。
過去に結構な数の同じような質疑をもらったので、そういうことで悩む人もいるんじゃないだろうか。
自分はSNSをまったくやっておらず、忘れがちになりそうなのでそれも考慮して書いておく。
FaceBookのプラグインは単独で動くやつや、SEO対策系プラグインに機能として含まれていたりいろいろあるけど、そういう系の全プラグイン共通のこととして見てもらってもいいと思う。
サイトのOGPの表示がおかしかったり、表示されない要因は主に以下の3つとなる。順を追って確認しよう。
- プラグインのSNS関係の設定ができていない。
- Facebookの方にOGPのキャッシュが残っている
- OGPとして設定しているURLに問題がある
1.のケース
もう「せっかくプラグイン入れたんだからきちんと設定してよ」の一言。
よくいらっしゃるのが、SNS関係の設定をきちんとやったつもりになっていること(実際はできてないんだけどね)。
特にSEO対策系のプラグインのSNSの機能が入ってるプラグインで特に見受けられる。過去会社に務めていたときも、今でもあるパターンの第一がコレ。
単純にして一番質の悪いパターン。本人は設定したつもりになっているのでまずこの部分を疑わない。
結果原因が絶対に特定できず、マト外れな場所ばかりをいじって余計におかしくなる。挙句、プラグインの不具合だとかで片付ける。そうなるともう救いようがない。
WordPressの公式でプラグインのマニュアルはちゃんと読んでね。そして、きちんと設定は確認しましょう。
2.のケース
1.のパターンみたいな極々単純なところではなく、Facebookの方に問題があるケース。この話はネット界隈でも有名なのでよくハマるパターンじゃないだろうか。
正確にはFacebookそのものには罪はないが、FaceBookのキャッシュという時々困ったちゃんとなるシステムが引き起こす問題である。
このキャッシュはブラウザのキャッシュとはまた別物だ。
Web魚拓とかGoogleのサイトプレビューとかと同じような感じで、Facebook側が自分の腹の中に、OGPをもとにしたキャッシュを作るのでそれが原因で起こるパターンだ。
これの解決は「Facebookデバッガー」を使うことで行うことができる。
試しにシェアデバッガーのタブをアクティブにした状態で、シェアを行うURLを入力してキャッシュの内容を確認してみよう。自ずと答えは出るはずだ。
もちろん、キャッシュをクリアして最新の状態にすることが可能。
3のケース
通常、WordPressはデフォルトでパーマリンクのURLが投稿名となる設定になっている。3のケースは少し特殊でこれに起因する問題だ。
少し話が逸れるけど、普通に単独でブログに使う分にはこのURLはあまり問題ではなかったりする。
「URLは海外の人が見たときに~」とかはよく聞くけど、そもそもWordPressを使うときの共用サーバーの代表格であるさくらさん・ロリポさん・Xさんあたりは海外のアクセスを大規模規制しているので、別に気にする必要はない。
まぁ確かにマルチバイト含ませないに越したことはないし、サイトを自分で後で見返すときはその方が管理が楽だけど。共用サーバーでしか運用したことのない人がこの話を持ち出すと・・・ちょっとね。
で、まぁ単独のブログのURLとしてはあまり問題ではないんだけど・・・ないんだけどね・・・。
シェアすることになると、この「デフォルトのURLが投稿名」であることがちょっとした問題になってくる。
具体的に言うとマルチバイト文字関連と文字コードの問題だ。
そこで確認することは以下。
- URLに全角英数字やそれに相当するものが入っていないかを確認する。
- プラグインでシェアボタンを設置する当該のテンプレートの文字コードがUTF-8となっていることを確認する。
上記のような文字列関係の解釈についてを疑う。
これらに該当する場合は以下のようなことが起こっている可能性がある。
- 全角半角に共通して持っている文字列がURLに入っていると、URLがハッシュ化されるときにプラグイン側が正常に読み出せない可能性。
全角英数字はもちろんのこと、全角スペースとか記号とかの特殊な文字も対象となる。 - 文字コードはWordPressがサポートしているものがUTF-8なので、テンプレートがShift_JISとかになっていると文字化けしたものがハッシュ化されている可能性がある。
マルチバイトを含まないファイルはUTF-8かShift_JISかをエディタが判別できないため、保存時にきちんと指定しないとShift_JISになることが大いに考えられる。
文字コードが原因の場合は別にテンプレートファイルの文字コードを変えれば済む話だけどね。
全角半角の文字列の問題が疑われる場合はこれはもうURLを変えるしか方法はなくなってくる。
悪あがきに試すことは「WP Multibyte Patch」の有効化。確認して無効化されていたら有効化。
それがダメなら、ここで初めて別のプラグインを検討すること。
こうして、3つの点を書いたけど、実際のところでは1.と2.で大概は落ち着くことが多々。
3のパターンは過去のケースで1度しか遭遇したことがないので、もしかしたら当該環境に「WP Multibyte Patch」が入ってなかったのかもなぁとか思ったので一応その旨も書いておいた。