XMLサイトマップをサーチコンソールに登録すると、どのくらいSEO効果があるのか、疑問ですよね?
先日、大量にサイトマップを登録したので、結果を報告します。
#サイトマップが必要かどうか
次の場合にサイトマップが必要になることがあります。
- サイトのサイズが非常に大きい。
- サイトにどこからもリンクされていない、または適切にリンクされていないコンテンツ ページのアーカイブが大量にある。
- サイトが新しく、外部からのリンクが少ない。
- サイトに動画や画像などのリッチメディア コンテンツが多数含まれている、またはサイトが Google ニュースに表示されている。
自分のサイトは、2の「ページのアーカイブが大量にある」に該当するので、施策していこうと思います。
#サイトマップの作成
次の例は、1 つの URL の場所を指定するごく基本的な XML サイトマップです。
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://hoge.com/foo.html</loc>
<lastmod>2018-06-04</lastmod>
</url>
</urlset>
#動的に生成されるコンテンツのサイトマップ
自分のサイトは、動的に生成されるURLが非常に多いので、これを全て含めてサイトマップを生成しようと思います。
<?php
$mysqli = new mysqli('localhost', 'root', 'password', 'database');
$mysqli->set_charset("utf8");
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">';
$result = $mysqli->query("SELECT id, up FROM table"); //データベース等から、ページ情報を引っ張ってきてURLのところに貼る。何ページかをループで回す。
while ($row = $result->fetch_assoc()) {
$d = new DateTime($row["up"]);
$sitemap .= '
<url>
<loc>https://hoge.com/?id=' . $row["id"] . '</loc>
<lastmod>' . $d->format('Y-m-d\TH:i:s+00:00') . '</lastmod>
</url>';
}
$sitemap .= '
</urlset>';
file_put_contents($_SERVER["DOCUMENT_ROOT"].'/sitemap.xml', $sitemap); //これだとhttps://hoge.com/sitemap.xmlにサイトマップが置かれる
#生成と送信の自動化
最後にサイトマップの生成と送信の自動化を行います。
自動化はcronを使います。
$ crontab -e
30 04 * * * php /var/www/html/sitemap.php //先程、作ったphpファイル
40 04 * * * curl https://www.google.com/ping?sitemap=https://hoge.com/sitemap.xml //phpファイルで生成した、XMLファイルをGoogle Search Consoleに送信
#最後に
お疲れさまでした。
自分は、大量の動的URLをGoogle Search Consoleに送信することにより、検索パフォーマンスが3倍ぐらいになりました。
大量の動的URLがある方は、試しに施策してみるのも、良いかもしれません。
お世話になったサイトです。