Team-SKY30 サイトのPVを増やそう計画

SNSで正規化したURLをシェアしてもらう方法

公開日:

こんにちは、チームSKYの児島です。

現在、AdSense Japanで開催されている、AdSense Big Challengeにて、SNSからの流入を増やすミッションに取組中です。

今日は、PC向けサイトとスマートフォン向けサイトを別々のURLで用意した際に起こる、SNSでのURL分散の対策をご紹介します。

このページの目次

SNSでURLが分散してしまうデメリット

PCサイトとスマホサイトを別々のURLで用意した場合、デバイスのユーザーエージェント(以下※UA)を判別して、相互にリダイレクトをかけるか、もしくは「rel=canonicalアノテーション」でURLを正規化することが推奨されています。

この方法で、Gooleには正規化したURLを伝えることが出来ますが、facebook等のSNSでユーザーがURLを直接シェアした場合、混乱を招く可能性があります。

スマホユーザーがPCサイトのURLを踏んでしまったり、またその逆もあるでしょう。
相互にリダイレクトが設定してあれば、ユーザー混乱はある程度解消できますが、事情により「rel=canonicalアノテーション」で正規化しているような場合は、ユーザーを意図したページに運ぶことが出来ません。

またSEO的な観点からも、なるべく正規化したURLの方にリンクをまとめておきたいところです。

さらに、シェアされるURLが異なると、「いいね」の数が分散されて正しく表示されない等の弊害が生じます。シェアしたURLがさらにシェアされていく事を考えると、少しもったいないですよね。

SNSでURLが分散してしまうデメリットまとめると
・ユーザーを意図したページに運ぶことが出来ない可能性がある。
・正規化したURLにリンクが集まらない。
・「いいね」数が分散されてしまう。

これらを解消するために、実際に私がやっている対策を紹介します。

OGPにシェアしたいURLを仕込む

方法は、非常に簡単です。
OGPにシェアしたいURLを仕込みます。
OGPとは、<head>~</head>に記述して、SNSに「このページは、こんな内容です」ということを伝えるための仕様です。

URLを伝えるには次のように記述します。

<META property="og:url" content="URL">

上記ソースコード「URL」の部分に正規化し(シェアしてもらいたい)URLを記述します。

全ページ一括で埋め込むには

方法は簡単とは言え、膨大なページがある場合、全ページのURLを変えて記述していくのは大変な手間になります。

そこで、phpを用いて一括(全ページ共通)で書いてしまう方法を紹介します。

例1 スマホサイトが、サブディレクトリの場合

PCサイト: http://www.team-sky.com/
spサイト: http://www.team-sky.com/sp/

PCサイト: http://www.team-sky.com/contents/1.html
spサイト: http://www.team-sky.com/sp/contents/1.html

このような場合、スマホサイトのURLから「sp/」を取り除いてあげれば、そのまま正規化したURLになりますので、次のように記述します。

<?php 
$page_url = $_SERVER["HTTP_HOST"]. $_SERVER["REQUEST_URI"];
$regular_url = str_replace('/sp/', '/', $page_url);
$share_url = "http://$regular_url";
?>
<META property="og:url" content="<?php echo $share_url ?>">

1行目
$_SERVER グローバル変数を用いて、現在のページのURLを取得します。
2行目
str_replace(); 関数を用いて、「sp/」の文字例をURLから削除します。
3行目
URLに「http://」を付与します。

これで、このようなURLが↓
http://www.team-sky.com/sp/contents/1.html
このように変換されます↓
http://www.team-sky.com/contents/1.html

6行目上記で出来たURLをOGPにセットします!

次にスマホサイトが、サブドメインの場合です。
例2

PCサイト: http://www.team-sky.com/
spサイト: http://sp.team-sky.com/

PCサイト: http://www.team-sky.com/contents/1.html
spサイト: http://sp.team-sky.com/contents/1.html

このような場合、スマホサイトのURL「sp」を「www」に置き換えれば、そのまま正規化したURLになりますので、次のように記述します。

<?php
$page_url = $_SERVER["HTTP_HOST"]. $_SERVER["REQUEST_URI"];
$regular_url = str_replace('sp', 'www', $page_url);
$share_url = "http://$regular_url";
?>
<META property="og:url" content="<?php echo $share_url ?>">

試してみよう!

さて、実際どのような挙動になるか試してみたいですよね?
下にダミーページを用意しました。
http://www.team-sky.com/snstest/ogurljikkendayoyoyoyoyo.html

ヘンテコなURLをしています。
このURLをFacebookなりでシェアしてみてください。
面白いことが起こります!
というかそのために書いたのですが・・・

キャプチャ画像です。
Facebook
FBの投稿フォームにこのヘンテコなURLが入っています。
が、下のタイトルや、記事の内容はこの記事ページのものになっています。

つまり、
http://www.team-sky.com/snstest/ogurljikkendayoyoyoyoyo.html
この辺なURLのページをシェアすると、この記事ページをシェアしたことになるのです。

これで、「rel=canonicalアノテーション」で正規化したを、SNSでも標準化してあげることが出来ます。
この方法は、コードを少し改変すれば、パラメータ付URLのページ等でも使う事が可能ですので、そちらの方もまた機会があれば書いてみます。


タグ


執筆者


新着記事

2017.12.04 Mon

収益性が40%向上したアクティブビュー改善の施策!


2017.12.04 Mon

アクティブビュー率向上施策 ゲーム攻略サイトはアクティブビュー率との相性がめちゃ悪い!


2017.11.28 Tue

AdSense広告の視認率を高めると収益性が向上する?


2017.11.14 Tue

【Team-SKY30の取り組み】アクティブビュー(視認率)向上の施策


2017.02.20 Mon

【告知】宮崎智之氏をゲスト講師にお招きして「第15回ゲームライターコミュニティセミナー」を開催します


2016.09.20 Tue

グローバル(多言語)サイトのURLってサブドメイン?サブディレクトリ?


2016.07.09 Sat

wordpressでループの途中に簡単に広告を入れる方法


2016.07.09 Sat

【旬?】最近やっているモバイル対策


2016.05.05 Thu

1か月PVアップトライアル!結果報告


2016.04.23 Sat

1か月PVアップトライアル!2016年4月13~20日の施策




にほんブログ村 ブログブログ ブログアクセスアップへ