ユーザーからのページリクエストの方法に、GETメソッドとPOSTメソッドというものがあります。
耳なじみのない言葉かもしれませんが、サイト内検索やお問い合わせフォームなどではよく問題になるポイントです。
ここではGETメソッドとPOSTメソッドについて、SEO上注意しておく点についてご紹介します。
GETメソッドとは
GETメソッドとは、HTTP通信でブラウザにファイルをリクエストする方法の1つで、リクエストするファイルの追加情報がURLパラメータとして付与される通信方式です。
この方式では、基本的に同じURLを再度リクエストすれば、以前と同じ結果を再現することができます。
たとえば物件検索サイトなどで、条件に合った物件を探したい場合を想定してみてください。
このようなサイトでは、物件の検索プログラムに間取りや家賃などの条件を指定して送信することが可能です。
次のような検索ボックスで行うことが多いでしょう。
そのような場合に、URLパラメータとして条件を指定するのがGETメソッドです。
GETメソッドで動く検索ボックスの場合、以下のようにURLパラメータ(?マーク以降の部分)がついたURLに遷移します。
https://example.com/search.php?madori=2ldk&yachin=80000
GETメソッドでは、サイト上の「検索」ボタンを押しても、ブラウザにURLを直接入力しても、基本的には同じ結果を表示することができます。
ちなみにGoogle検索も基本的にGETメソッドが用いられています。
https://www.google.com/search?q=get+post+seo
POSTメソッドとは
POSTメソッドとは、GETメソッドとは異なり、リクエスト内容をHTTP通信のbody部に含めることで、URLにその内容が表れない通信方式です。
代わりに、リクエストボディ内に内容が含まれているため、URLを直接入力するだけでは同じ通信を再現することはできません。
物件検索サイトを例にすると、POSTメソッドで通信される場合には、間取りや家賃がどのような条件であっても遷移先のURLは一律のものとなります。
https://example.com/search.php
しかし、通信内容がURLに表れないだけで、HTTPのリクエストボディの中には含まれています。
リクエストボディ内では別途、以下のような内容が通信されています。(※Chrome Dev Toolなどで確認可能)
POSTメソッドでの通信は、リクエストボディ内に情報を追加するために<button>タグなどを介して行われます。
<a>タグではURLの情報しかないため不足してしまうのです。
GETメソッドとPOSTメソッドの違い
GETメソッドとPOSTメソッドは上記で説明した通り、HTTP通信方法の違いです。
ユーザーがページをリクエストする際のHTTPに関して基本をおさらいしておきましょう。
HTTPというのは、クライアント(データ受信)とサーバー(データ送信)で情報のやりとりをする際に使われるルール(プロトコル)です。
データのやりとりは「リクエスト」→「解析処理」→「レスポンス」という流れで行われます。
GETやPOSTというのはリクエストの通信方式の話です。
GETとPOSTの最もわかりやすい違いは、URLに表れます。
検索ボックスなどの送信機能がGETメソッドにて機能する場合、遷移先ページのURLには以下のように、検索条件に応じたパラメータが付与されます。
https://example.com/search.php?madori=2ldk&yachin=80000
一方、POSTで機能する場合はどんな条件を付与したとしても、一律のURLに遷移します。
https://example.com/search.php
しかし両者とも、この物件検索プログラムには特定の検索条件を指定しています。
GETメソッドでは、URLパラメータに表れますが、POSTメソッドでは別途HTTPのリクエストボディ内にて条件を指定しているため、URLパラメータは付与されません。
GETメソッド |
---|
リクエスト内容がURLパラメータに表れる |
POSTメソッド |
リクエスト内容がURLに表れず、リクエストボディに含まれる |
GETメソッドでは、送信内容がURLパラメータに含まれていますので、同じURLに再度アクセスすると同じ内容が再現できます。
しかし、POSTメソッドでは送信内容がURLからはわからずリクエストボディに含まれていますので、URLだけでは同じ内容が再現できません。
フォーム入力中のページを再読み込みしてしまうと、入力した内容が失われてしまったり、ページを適切に表示できなかったりするのはそのためです。
GETメソッドとPOSTメソッドのSEO面からの使い分け
結論から言うと、GoogleにインデックスさせたいページではGETメソッドを使い、その必要がなければどちらでもかまいません。
さきの例でいうと、間取りが2LDKで家賃8万円の物件を一覧表示したページに、検索から直接流入させたい場合はGETメソッドを使います。
Googleはページをインデックスさせるために、URLに対して直接クロール・アクセスを行います。
その際にPOSTメソッドにて表示されることを前提にしているURLにアクセスすると、リクエストボディを含めることができませんので、適切なページを表示することができません。
そのため、SEO目的であれば、URLに直接アクセスすれば意図した内容を表示できる、GETメソッドが用いられるのです。
一方、検索エンジンに表示させる必要がなければGET,POSTどちらを使用してもかまいません。
POSTメソッドはGETメソッドのように送信内容がURLに表れてしまうことがデメリットになるような場合によく使われます。
たとえばお問い合わせページから受け付けページの遷移のように、個人情報やIDパスワードを入力するようなケースです。
このような場合にもしGETメソッドを使ってしまうと、URLから送信した内容が丸見えになってしまいます。
https://example.com/thanks.php?id=sakurasaku&password=password
問い合わせ送信の際に、URLからID/パスワードや名前・住所・問い合わせ内容などプライベート情報が読み取れてしまうのは好ましくありません。
Googleに問い合わせ完了ページをインデックスさせる必要もありませんので、POSTメソッドを使うのが適切です。
なお、GETメソッドで表示させていたとしても、遷移の際に<button>タグを使用している場合はGooglebotはクロールを行うことができず、結果としてインデックスされない可能性があります。
GETかPOSTかで悩むような場面では、多くの場合<button>タグが使用されるかと思いますので、クローラビリティ(Googleがページをたどることができるか)の問題が付随してきます。
そのため、ページをインデックスさせたい場合は<button>タグを使用しない(置き換える)か、追加で別途<a>タグによるリンクを設置するなどにより、クローラビリティを確保します。
また、URLパラメータを使用するため、重複ページなどの問題が起きやすくなりますので、最適化のためにはクロールやインデックス制御に考慮が必要です。
参考:URLパラメータを用いる際のSEO上の注意点
https://www.sakurasaku-marketing.co.jp/labo/blogs/url-parameters
自社サイトの現状が気になる方は無料相談会へお申し込みを!
・WEBサイトの集客数を増やしていきたい
・うちのサイトってSEOが考慮できているか不安
・リニューアルを機にSEOを万全にしたい
こんなお悩みをお持ちであれば是非無料相談会へお申込みください!
弊社のコンサルタントがサイト運営上のお悩みや疑問点にお答えします。
関連記事
ブログ一覧あっ!と思ったら
サクラサクに
ご相談ください
まずは無料相談へのお申し込みがおすすめです。ベテランコンサルタントが直接対応いたします。
ねぎお社長の
無料登録する
SEOメールマガジン (無料)資料ダウンロードはこちら
ダウンロードする
最適なプランをご提案します。WEBマーケティングに関する
サクラサクに相談する
ご相談はこちら
SEO・記事制作なら、
サクラサクにお任せください!