はてなブログからWordPressに移行後にブログカードが表示されない問題への対応

はてなブログからWordPressに移行してからアクセス解析を見ていると、今まではてなブログではあまり見なかった現象が起き始めました。

はてなブログ時代に言及してもらったサイトからの流入が増えてPV数は増えたのにやけにAdSenseのRPMが悪化したのです。

はてなブログからWordPressに移行してこの問題に気づいている方がどの程度いるかわかりませんが、少なくともかなりな大問題なので大差行く方法もまとめましたので知っておいて損はないと思います。

リンクを貼ってくれているページからの流入が増加

Analyticsのアクセス解析を眺めていると、このブログをはてなブログ時代に言及(ブログカード)を貼ってくれているブログからのアクセスが明らかに増えました

最初はありがたいなぁ~と思っていました。(その後どうもその挙動がおかしいのに気づきました。)

PV数が増加

WordPressに移行したおかげか、https化したことなのか、このブログのリンクを貼ってくれているブログからの流入かわかりませんが、WordPressに移行後はPVは減少せず微増しました。

この時点でも最初はよかった~と思っていました。

AdSenseのRPMが悪化

PV数が増えて収益が良くなったかと思いきや、全く逆で悪化していました。特に1PVあたりの単価の指標となる1000PVあたりの収益を示すRPMの値が最悪なまでに…

最初はドメインにsが付いたことで最適な広告が表示されるまで時間がかかるかなと思っていましたが、調べてみるとどうやらもっと違うところに問題があるようです。

ブログカードが表示されないページがある

このブログカードは第三者が貼ってくれているブログカードのことを意味します。

通常はてなブログではリンクを貼るとこのブログカードが表示されます。

しかし参照元のページを見てみると上のような表示なり、ブログカードが表示されずこのブログ自体が表示されていました。

わかりやすく言うと小さなウィンドウ内にこのブログが表示されているような状態です。

ですので、意図的に新しいウインドウなどで開かない限り記事が見れないのです。

これによって実際は私のブログにアクセスしていないのに、アクセスされたことになり1PVとしてカウントされPV数は増加。しかし当然広告などは表示されないためAdSenseのPV単価が悪化したわけです。

この原因を調べるのにはかなり時間がかかりました。

ソースコードを眺めているとある事に気付きました。

はてなブログではてなブログのリンクを貼ると

src=”https://www.haneda-airport-server.com/embed/2016/12/22/120300″ frameborder=”0scrolling=”no“></iframe><cite class=”hatena-citation“>

このようなソースコード。

そしてはてなブログ外のリンクを貼ると

src=”//hatenablog-parts.com/embed?url=はてなブログ外のURL” frameborder=”0scrolling=”no“></iframe><cite class=”hatena-citation“>

このようなソースコード。

しかしこの仕様がどうも2017年の6月前後に変更になったようで、仕様変更以降はどうもはてなブログのリンクを貼っても

src=”//hatenablog-parts.com/embed?url=すべてのURL” frameborder=”0scrolling=”no“></iframe><cite class=”hatena-citation“>

このように処理するように変わっていました。

このブログがWordPressに移行後もきちんとブログカードが表示されるブログは、2017年6月前後以降に言及してもらったブログでした。

それ以前のブログは完全にアウトでした。

対策は2つ

  1. リンクの貼り直しをお願いする
  2. こちらで転送する

言及して頂いたブログにリンクの貼り直しをお願いできれば良いのですが、なにせ他人のブログ。そう簡単に出来るわけもなく数も多く不可能です。

出来る手段はアクセスがあった場合こちらで転送すること

すべてのブログのリンクを転送するのは大変ですが、ありがたいことにはてなブログでは言及の一覧を見ることができます。

つまりこの6月以前に言及された記事が対象になります。

対策方法

まずは、WordPressにRedirectionsというプラグインをインストールします。このプラグインはリダイレクトの転送設定が行えます。

このプラグインをインストールし有効化します。

設定画面で下記のように設定します。

Source URL /embed/(.*)$

Target URL  http://hatenablog-parts.com/embed?url=https://www.haneda-airport-server.com/entry/$1

と入力しRegex にチェックを入れこの転送ルールを追加します。

すると今までの表示から

このようにきちんとブログカードが表示されるようになります。そしてブログカードを表示しているだけなのでPV数も正常になりました。

この現象に気づいているブロガーさんがどの程度いるかわかりませんが、この解決に至るまでかなり悩みました。

みなさんも2017年6月以前にブロクカード形式で言及された記事があってWordPressに移行される場合はご注意ください

もう一つのブログカード問題

このブログカードの問題はまだ根が深かったようです。

WordPressの記事を書く画面にURLを直接コピペするとembedを利用したブログカードが自動で表示される仕様になっています。

しかし、このブログカードが全く機能せずただURLがそのまま表示されるだけの状態になっていました。

この問題の原因究明にもかなり苦労しました。

結論から言うとはてなブログのURLを引き継ぐためにEnhanced Custom Permalinksというプラグインが原因でした。

もとともはてなブログのデフォルトのURL以下のようになっています。

https://www.haneda-airport-server.com/entry/2016/09/15/081244

しかしこれをWordPressにインストールするとスラッシュが抜けて

https://www.haneda-airport-server.com/entry/20160915081244

このように変更されてしまいます。そこでURLにスラッシュを追加するためEnhanced Custom Permalinksというプラグインを利用していました。

このプラグインが原因でブログカードの機能が働かないことがわかりました。

対策

この場合の対応策は、WordPressにインストールした時点でスラッシュが消えたURLを正規URLとしてそのまま使用し、スラッシュありでアクセスのあったものはリダイレクトで正規URLに転送することです。

そうすれば、プラグインを利用してわざわざスラッシュを手打ちする時間と手間もかかりません。また、リダイレクト処理するのでリンク切れや評価の低下にもならずに済みます。

さきほども使用したRedirectionsというプラグインを利用してリダイレクトします。

設定画面で下記のように設定します。

Source URL /entry/([0-9]{4})/([0-9]{2})/([0-9]{2})/([0-9]{6})

Target URL  https://www.haneda-airport-server.com/entry/$1$2$3$4

と入力しRegex にチェックを入れこの転送ルールを追加します。

これは /entry/2017/10/30/123456 というリクエストが来た場合に

https://www.haneda-airport-server.com/20171030123456 に転送するということを意味します。

プラグインのEnhanced Custom Permalinksを削除すると手打ちで入力したスラッシュも消えるので自動的に正規URLが数字の羅列になり、スラッシュ有りからのアクセスがあってもスラッシュなしの正規URLに転送されて何事もなかったかのように表示されます。

今回のこの2件のブログカード問題の解決は本当に疲れました…

これではてなブログからの移行も、URLを手打ちで修正する必要が無くなりかなり楽になったのは事実です。

コメントを残す