【PHP】検索エンジンにサイトの更新を反映させるためにping通信でsitemap.xmlをGoogleに通知する方法

サイトマップの更新をGoogleに通知する方法

新しく記事を書いたときなど、サイトのコンテンツを検索エンジンに反映させたいのであれば、Googleなどの検索エンジンに更新を通知をする必要があります。

XML形式でサイトマップを用意したあと、ping通信を使って検索エンジンに通知するんですね。

この記事では例としてPHPを使ったGoogleにサイトマップを通知する方法をまとめました。
WordPressサイトでも役立てていただけると思います。

目次

ping通信を使ったGoogleへの通知

ping通信とは、もともとネットワーク診断プログラムの一種です。
所定のプロトコル(決まりごと)に沿って、正しくネットワークと接続できているかを確認できます。

この仕組みを使い、Googleなどの検索システムへXML形式サイトマップの更新を通知することも可能です。

具体的には、下記のURLへGETリクエストを送信すればよいです。

https://www.google.com/ping?sitemap=サイトマップURL

たとえば、サイトマップを以下のURLで用意したとします。
https://sample.com/sitemap.xml

その場合、通知するためのURLは以下です。

https://www.google.com/ping?sitemap=https://sample.com/sitemap.xml

試しにブラウザで用意したURLにアクセスしてみます。

送信されたサイトマップを受信しました

Googleからサイトマップがクロール対象として登録されたことがわかります。

PHPを使ってサイトマップの更新を通知する

先ほどは直接ブラウザにURLを入れてGoogleに通知しましたが、今度はPHPを使ってプログラム側からGoogleに通知をしてみます。

GETリクエストを送信する必要があるので、cURLを使ってみましょう。

最終的に作られたコードは以下です。

//curlセッションを開始する
$ch = curl_init();

//通信時のオプションを設定する
$url = "https://www.google.com/ping?sitemap=サイトマップURL";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, TRUE);

//データを送信する
$data = curl_exec($ch);

//curlセッションを終了する
curl_close($ch);

//結果を出力
echo $data;

結果としてSitemap Notification Receivedと表示されれば通知完了です。

cURLのオプションとして設定したものを詳しく見ていきます。

CURLOPT_URL

$url = "https://www.google.com/ping?sitemap=サイトマップURL";
curl_setopt($ch, CURLOPT_URL, $url);

ping通信でサイトマップ通知を受け取ってくれるURLを指定しています。

もちろんサイトマップURLの部分は実際のURLに合わせて書き換えてください。

CURLOPT_CONNECTTIMEOUT

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);

cURLで接続したときにタイムアウトするまでの時間を2秒で設定しています。

CURLOPT_FOLLOWLOCATION

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

サーバーがHTTPヘッダの一部としてリダイレクト先を指定してきたら遷移するようにしています。

CURLOPT_RETURNTRANSFER

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_exec()の戻り値が文字列となるようにしています。

CURLOPT_HEADER

curl_setopt($ch, CURLOPT_HEADER, TRUE);

HTTPヘッダの中身も出力するようにしています。

まとめ

サイトマップをGoogleに通知して新しいコンテンツを検索結果にのせてもらうようにするコードは、意外と簡単であることがわかったと思います。

pingなどという少しわかりにくい概念が登場してはいるのですが、PHPのコード自体はシンプルなのでぜひWordPressサイトの更新通知などにも生かしていってください。

サイトマップの更新をGoogleに通知する方法

この記事が気に入ったら
いいね または フォローしてね!

SHARE
  • URLをコピーしました!

コメント

コメントする

目次