クッキー

前にも書きましたがSeesaaブログのテンプレートが新デザインに移行された2017年前後から最近まで、パソコンにほぼほぼ触っていませんでした。

持っているSeesaaブログは旧デザインシステムに移行し損なったままの、新デザインシステム難民なのです。

旧デザインシステムだけどレスポンシブだしスマホ版のカスタマイズは制約多い。

それだったらスマホアクセスは強制的にデスクトップ版にリダイレクトしてしまえ、というのが今回のトピックです。

デスクトップ版に誘導すべきユーザー

新デザインシステムが導入されたときに旧デザインシステムから移行できたユーザーの方々はスマホ版のテンプレートをそのまま使っていてもよいと思います。広告はそんなに多くないですし。

  • アフィリエイターである
  • 旧デザインシステムのブログアドレスは変えたくない
  • 使っているテンプレートはレスポンシブ
  • モバイルテンプレートは広告が多くて嫌

などなど。

広告が気にならないならそのままで良いですし、長年放置したブログで Google のインデックスが消えてなくなってるような場合は、いっそのことアカウント作って新デザインシステムでブログを引っ越した方が良いかもしれません。

自分のアフィリエイト広告を気にしてたり、デスクトップ版とモバイル版の両方を管理するのはやっぱり面倒だというユーザーの方々向けです。

誘導するいくつかのパターン

ここで紹介するバージョンは有無も言わせずシレっとデスクトップ版にリダイレクトするパターンです。

ただあまりユーザーフレンドリーじゃないし、Cookieを操作するのでプライバシー上あまりよくないですね。

なので他のパターンとしてモーダルで了解を得るスクリプトも実装できています。初めて訪問したサイトで画面下からニョキっと出てくるあのパターンです。

デスクトップ版に強制リダイレクト

本題です。

旧デザインシステムの「デザイン」から「スマートフォン」ー「コンテンツ」と進みます。

Seesaaブログ スマートフォンコンテンツデザイン

フッターに[自由形式]を追加して下記のコードを貼り付けます。

図の中の[jQueryRedirect]のパーツがそれです。

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script> $(document).ready(function(){ const isMobile = ((navigator.userAgent.indexOf('iPhone') > 0 && navigator.userAgent.indexOf('iPad') === -1) || navigator.userAgent.indexOf('iPod') > 0 || navigator.userAgent.indexOf('Android') > 0); const urlParams = new URLSearchParams(window.location.search); const hasFromSp = urlParams.has('from_sp'); // URLに 'from_sp' パラメータがあるか確認 const hasForcePCCookie = document.cookie.indexOf('force_pc=1') !== -1; // 以下の3つの条件が全て満たされた場合のみ強制リダイレクトを実行する // 1. モバイル端末からのアクセスである // 2. PC版表示強制クッキー (force_pc=1) が設定されていない // 3. URLに 'from_sp' パラメータがない(=このスクリプトによるリダイレクトがまだ行われていない) if (isMobile && !hasForcePCCookie && !hasFromSp) { document.cookie = 'force_pc=1; max-age=157680000; path=/'; // PC版表示を強制するクッキーを設定 document.cookie = 'force_sp=0; max-age=157680000; path=/'; // モバイル版表示を強制するクッキーを無効化 if (navigator.cookieEnabled) { // 強制リダイレクトを実行 // 現在のURLに 'from_sp' パラメータを追加してリダイレクトします。 // これにより、リダイレクト後のページ読み込み時には 'hasFromSp' が true になり、 // 上記のif文の条件を満たさなくなるため、無限ループを防ぐことができます。 setTimeout(function(){ let newUrl = window.location.href; // URLにクエリパラメータが既に存在するかで分岐 if (newUrl.indexOf('?') === -1) { newUrl += '?from_sp'; } else { newUrl += '&from_sp'; } window.location.href = newUrl; }, 100); // 100ms の短い遅延を設定し、クッキーが確実に設定されるようにします } } // 上記の条件に合致しない場合(例:既にPC版クッキーが設定されている、またはリダイレクト済みの場合)は // このスクリプトは何も処理を行いません。 }); </script>

デスクトップ版への強制リダイレクトのフローは以下の通り。

スクリプトを実行する前提として、

1.モバイル端末からのアクセスをUser-Agentで確認、
2.モバイル端末にデスクトップ版でアクセスするcookieがない、
3.「https://ブログアドレス?from_sp」のURLでアクセスされたのではない、

の3点をチェックします。要はスマホから初めてアクセスされた、かつ cookie が削除されているか期限切れであることを確認しています。

ちなみに?from_spはほぼ人為的でない限り付加されません。検索エンジンには ?from_spのパラメータは Canonical で弾かれるのでインデックスされませんから。

条件が満たされるとまず、次回以降デスクトップ版テンプレートにアクセスするように cookie の書き込みを実行します。

cookieを書き換えたらデスクトップ版に強制リダイレクトします。

カスタマイズと検証

Seesaaブログのスマホ版はカスタマイズの制約も多いし、cookieをいじくるので検証も正直面倒くさいです。

カスタマイズ

スマートフォン版のコンテンツで何らかのJavaScriptを実行しているのが確実なら先頭行にあるjQueryライブラリは不要です。わからなければそのままで。

コメントも不要なんで削除してください。まあリダイレクトしちゃうし、モバイル版テンプレートはパソコンでSDKとか入れないと見えませんから、そのままコピペでも。

リダイレクトの遅延は検証した結果、短いに越したことはないというのが結論。

10秒とか5秒とか試したけど、モバイル版の広告と干渉するのか正常に稼働しませんでした。

なのでベストエフォートで遅延100msです。スマホ版のスクリプト実行を制御することができないので、リダイレクトの実行が早いかSeesaa広告が早いかのぶっちゃけ運任せです。

実はこのスクリプトより先に cookie を受け入れるモーダル表示バージョンを作っていたんだけど何故か無限ループ。

デスクトップ版テンプレートにはいろいろなコードを書いているんでコードが干渉してたり、ましてや暗号化していたりしているのでわかんなくなっちゃったんです、自分のブログの仕組みが。

なので無理くり強制リダイレクトバージョンをまず採用しています。

検証

もしかするとモバイル端末で初めてこのブログを訪問された方はリダイレクトされてデスクトップ版のレスポンシブテンプレートを見ているはずです。

少なくとも興味を持って読んでいただいているSeesaaユーザーの方であれば見分けがつくかと。

それで検証なんですがスマホで使っているブラウザの cookieをいったん削除しないと。それが結構手間です。

ブラウザの「設定」画面などに「プライバシーとセキュリティ」(Chromeの場合)的なメニューから「閲覧履歴データを削除」などで cookie を削除してください。

いちど検証してしまうと cookie を書き換えるので検証ごとにやります。

毎回cookie削除が面倒なら Chrome アドオンの lighthouseで確認する方法もありかと思います。

リダイレクトは100%は成功しない

デスクトップ版で開くcookieを持っていない初回はスマートフォン版テンプレートで開きます。

直後、遅延最短のスクリプトが実行されるのですが、タイミングによってはスマホ版のオーバーレイ広告(画面いっぱい黒い半透過レイヤーのポップアップ広告)のスクリプトに妨げられて実行が止まります。

その場合でも記事リンクなどいずれかのリンクがクリックされればデスクトップ版にリダイレクトされるはずです。なんか動きがちょっと変だったな程度の不信感の手前で済むはずです、たぶん。

自己責任で

新デザインシステムでも動作は確認済みです。

当時、新しいアカウントで新デザインシステムのブログも検証用に1つだけ作って持っていたので、それで検証しました。

新デザインのスマートフォン版はSeesaa広告の量が少なくてスマートですよね。

だからといってブログのアドレスを変えてまでも新デザインシステムに移植するのは面倒くさい。

レスポンシブの新デザインでもスマートフォン版のカスタマイズには制約ありますし、せっかくのレスポンシブなんだからデスクトップ版をそのまま使いたい。

そういう意味では新旧デザインどちらもデスクトップ版へのリダイレクトは有効かもしれません。

但しリダイレクトするのはSEO的にはデメリットもあると思うので導入は自己責任でお願いします。

この記事へのコメント

6件

お久しぶりです。再開されたのですね!


SuperSimple_V1.341
をダウンロード&利用させていただいていた者です。

こちらの記事にある

フッターに[自由形式]を追加して[jQueryRedirect]のパーツを追加するというのを
やってみましたがうまくリダイレクトしてくれません。(何度もループ)

以前いただいた スーパー超シンプルSeesaaテンプレート ではスマホのコンテンツはすべて削除して
ヘッダーに自由形式のコンテンツを追加してその中に<script>と「このブログは〜」の文言を追加してます。
そのヘッダーにある自由形式のコンテンツは残してフッターに今回のjQueryRedirectを別途追加するのでしょうか?


https://supersimple-template.seesaa.net/ こちらのサイトはスーパー超シンプルSeesaaテンプレートで作成されていますが、モーダルで了解を得るスクリプト?(青バックに文言)が出て
それを押すとうまくリダイレクトされていますね。

こちらは以前の仕様のまま[jQueryRedirect]のパーツを追加しただけなのでしょうか?それとも
他にどこかイジる必要があるのでしょうか?
こちらのテンプレートが気に入っていたので、旧から新に移行しませんでした。
ループをすることなく変遷させるようにしたいです。お力をお貸しいただけないでしょうか。
キャッシュ at
jQueryRedirectのみ残して試してみたらループの現象はなくなりました。
iphoneで起こりがちなのですが、切り替わるときに下方の

ログイン/PC版を見る

の画面で止まってしまい、PC版を見るを押すとうまくPCサイトに飛べます。(自動できりかわったりりタップが必要だったりします)

こちらの仕様はPC版を見るという貴サイトのような青バックの文言は出ないのでしょうか?(文言ぽいものは何も出ません)


少なくともループ現象がなくなりなんとかなりそうでうれしいです!
キャッシュ at
アドセンスから警告(多分seesaaで出る広告関係で)が来たのでいろいろ試してみましたがうまくいかないので他に移ることにしました。
こちらのブログもアドセンスを貼られているようですが、他のアドセンスでないバナー広告と重なったりしてるようです。(警戒したほうがよいと思います)
ひとまずご連絡まで。長い間お世話になりありがとうございました。
キャッシュ at
キャッシュさん
お久しぶりです!

ボクのSeesaaブログも軒並み数日前にAdSenseからの警告が来て停止と解除を繰り返していました。
結論から言うと何もせず気が付かないうちに警告は解除されて配信が再開していました。


お世話になっているSeesaaには申し訳ないのですが、旧テンプレは広告との戦いで、独自ドメインでWordPressが一番安心な感じがしてます。
10年近くほっぽってたので独自ドメインのWordPressも消えてなくなってしまったので、また仕切りなおしかなと思ってます。

お互いに頑張りましょう。

ループの件は後ほど返信します。
echo at
おなじタイミングでアドセンスの警告がきていたということはseesaaは狙われているかもですね。
https://info.seesaa.net/article/516844145.htmlこのようなお知らせもseesaaから出ておりやはり広告を表示させないようにしながらの運営はむずかしいのかなと思いました。
キャッシュ at
はじめまして。
昔々にSeesaaブログのスマホ版をPC版にリダイレクトするように設定していましたが、リダイレクトされなくなりだいぶ経っていました。
検索でこちらの記事を見つけて試してみたら自分のスマホでは成功しました。
ありがとうございます。
じぇ〜まま at
コメントをどうぞ
お名前:[必須入力]

メールアドレス:

ホームページアドレス:

コメント:[必須入力]