GoogleサーチコンソールとGoogle アナリティクス
Google Search Consoleとは
Search ConsoleとはWebサイトの検索結果の状況とそれに付随する情報(Webサイトの改善案・被リンク数・キーワードなど)やGoogleが認識しているページ数、Googleクローラーのクロール状況が把握できるツールです。
Search Consoleを導入する事で、どういった検索ワードでそのサイトに来たか、Googleクローラーを呼び寄せたり(Fetch as Google)など、いわば「サイトへの流入前のユーザーのデータ」がわかります。
そう言ったデータを元にサイトを改善して、サイトの集客を増やしたり、クリック数を増やしたりしていきます。
https://www.google.com/webmasters/tools/home?hl=ja
サイトマップの作成
基本的にはサーチコンソールを入れればgoogleのクローラーはほぼ全てのページをクロールしてくれます。ただ、ページの作りや品質によってはクロールされない場合があります。
・サイトのサイズが非常に大きい。
・サイトにどこからも リンクされていない、または適切にリンクされていない コンテンツ ページのアーカイブが大量にある。
・サイトが新しく、外部からのリンクが少ない。
その場合、サイトマップを作成する事でGoogleクローラーにどんなページがあるのかを通知する事が出来ます。
最終更新日:lastmodの自動取得
「する」を選択すると、更新したページのURLを優先的にクロールしてくれます。
サイトの更新頻度
普段の更新頻度を選びましょう。たとえばサイトの更新が週に一度であれば「一週間ごと」です。これによってクロールの頻度が変わる可能性があるので、自分のサイトに合わせて適切な選択をしましょう。
優先度の自動設定
サイト内のページの優先順位を、自動で設定するかどうかの選択です。「する」を選択すると、トップページは1.0、下層ページはそれより小さい値が、サイトマップに自動で記載されます。値は0.1~1.0まであり、大きいほど優先度が高いということになります。
フォーム-ラジオボタンが選ばれた状態でページ遷移させる
今回のフォームは、商品紹介ページに「商品A」「商品B」「商品C」の3つのコンテンツがあり、それぞれの購入ボタンをクリックして申し込みページに遷移した時、それぞれの商品のラジオボタンにチェックがはいっている状態にしたい。
申し込みページ以降は基本的には前回のフォームと一緒ですが、セキュリティやリダイレクトなど細かい機能を付けていきます。
今回の ポイント
- 「購入ボタン」をクリックしてページ遷移した時にJavaScriptの「location.hash 」を使って、選んだ商品のラジオボタンがcheckedの設定になっているようにする
- 確認、完了ページにアクセス出来ないように申し込みページに戻るリダイレクトを設定
- 文字列を入力する項目にはプログラムを入れられないようにセキュリティをかける
商品紹介ページ「item.html」
商品紹介ページにボタンを設置
リダイレクトの設定
issetを使う事で変数がセットされているか確認する事が出来ます。
あたまに「!」を付ける事で逆の意味になるので、以下の記述で「$_POST['name']」に値がセットされていなかったら、という意味になります。
入力画面に戻るボタン
確認画面に入力画面に戻るボタンを設置
文字列を入力する項目にセキュリティ
pushStateとajaxを使ってSEOに強い無限スクロールページを作成する
SEOに適した無限スクロールの導入
FacebookやTwitter、Pinterestなどのソーシャルメディアサイトが使っている事で一躍有名になった無限スクロール(英: Infinite Scrolling)ですが、今でもシングルページを利用したウェブサイト、特にコンテンツの量が豊富なギャラリー的なサイトではよく見かけます。
しかし、よく見られるjQueryを使ったシンプルな無限スクロールはコンテンツをすべて1つのHTMLファイル上に記述しておいて、スクロールするたびに「display:block」と「display:none」を使って表示させていく、というものです。人が見る分にはこの形でも良いでしょうが、Googlebot に対してとなると話が変わってきます。
ご自身のサイトのニュース フィードやピンボードで、ユーザーの利便性を考えて無限スクロール(英語)を使用している方もいらっしゃるでしょう。しかし、Googlebot に対してとなると話が変わってきます。無限スクロールでは、クローラーがユーザーの行動(スクロールやボタンを押してさらにアイテムを読み込むなど)を常にエミュレートできるとは限らないため、フィードやギャラリー内のすべてのアイテムにアクセスできないことがあります。クローラーがアクセスできないコンテンツは、検索結果に表示されることもないでしょう。
無限スクロール ページからリンクされている個別のアイテムを検索エンジンがクロールできるようにするには、無限スクロールを分割した一連のページ群を生成するようにしましょう。
pushStateによるブラウザの履歴の更新
pushStateとは?
pushStateとは、HTML5でサポートされるAPIです。
ページを遷移せずHTML(の一部)を変えた場合でもブラウザに履歴を残し、また一意のURLを割り当てることが可能です。
HTMLの中身が変わってもAjaxはページを遷移しないのでURLが同じままです(#以下が入れ替わるだけで一意のURLとして処理しない)。
ブラウザの戻るボタンを押しても前のコンテンツを再び表示させることはできません。本当に前のページに戻ってしまいます。なのでGoogleは、クロール・インデックスできるように特殊な仕様をサポートしてくれたわけです。しかしpushStateを使えば、Ajaxで変化させたそれぞれのコンテンツに対してユニークなURLを割り当てられるのです。
つまり検索エンジンにとってクロール・インデックスしやすくなります。
JavaScriptが切れている状態でも手動でページ遷移出来るような設定も取り入れ、検索エンジンとの相性を考慮した無限スクロールにカスタマイズしましょう。
さらに簡易的なリダイレクト機能を使って、下層ページから入った時にトップページに戻るよう設定しましょう。
以上の内容を踏まえて、今回は検索エンジンが処理しやすい無限スクロールを作っていきましょう。
今回のポイント
今回の注意点
- パスは全てルートパス
- タイトルは必ずページ毎に設定する
- トップページに「トップに戻るボタン」を設置
- footerは最後のページに設置
※特にページのタイトルの最適化は非常に大事です。通常の無限スクロールは1枚のhtmlファイルに無数のコンテンツが記述されていますが、今回のようにhtmlファイルを細分化する事で、コンテンツに応じたより細かいタイトルやURLの設定が可能になります。
API
APIとは「Application Programming Interface(アプリケーション・プログラミング・インターフェイス)」の略語であり、「ある1つの機能に特化したプログラムで共有可能なもの」や「ソフトウェアの機能を共有する仕組み」のことです。よく使う機能がAPIとして用意されていれば、わざわざ一からプログラムを組む必要はありません。必要に応じてAPIを利用し、効率的に開発を進められます。
SPA(Single Page Application)
ブラウザによるページ遷移を行うことなく、単一のWebページでコンテンツの切り替えを行うことで、ユーザーのUXが向上します。JavaScriptフレームワーク(Angular、Vue.js、Reactなど)で作成される事が多いです。
デモページ
felica29.starfree.jp
新しいcssを使ってみる
ユーザーのアンケート結果からその年のCSSの流行りや動向がわかるThe State of CSS 2020というサイトの中で、今後さらに利用頻度が増していくであろう、新しいプロパティをいくつか試してみましょう。
ただ、新しいプロパティはブラウザごとに対応状況が違うので、必ずcan I use 等で対応状況を確認しましょう。
backdrop-filter
backdrop-filterは要素の背景をぼかす事が出来ます。filterプロパティと似ていますが、filterは適用した要素自体がボケますが、backdrop-filterは適用した要素の背後の領域の色味やぼけ具合が変化します。なので、基本的にはRBGAとセットで使う事がほとんどです。
scroll-snap
scroll-snapを使うと、画面をスクロールしたときに特定の画面領域で止まるように制御できます。縦スクロールだけでなく横スクロールにも対応しています。