PHP
Webページを更新した後に、手作業でサイトマップも更新するのはとても面倒ですよね?こんな面倒な作業をしたくない!という方は、こちらの方法を是非!試してください。今後、手作業でのサイトマップ更新が必要なくなります!
しかしながら、今回のサイトップ自動生成を実装するには1つだけ条件があります。それは新規(修正)で更新するWebページの拡張子が「.html」であることが条件です。「.php」でも問題ありませんが、この条件さえ満たしていれば、今後はサイトマップの更新が確実に楽になるはずです!
ディレクトリを理解する
まずは、更新するフォルダを把握する
ページを更新(新規追加)するファイルの拡張子 .htmlファイルを格納しているフォルダ名を「pages」とします。
この「pages」フォルダ内に、これから作る「sitemap.php」を入れてあげれば完成です!
つまり「pages」フォルダ内に存在している .htmlファイルを全て調べて、URLを抽出して、サイトマップを生成する。という仕組みです。単純ですね!
さくっと「sitemap.php」をコピペする
「pages」フォルダの中に「sitemap.php」を入れてください
サンプルとして「pages」フォルダの中に、更新(新規追加)ファイルである32876298145.html、43956856273.html〜といった.htmlファイル10ファイル格納しています。この同ディレクトリ内に「sitemap.php」を配置します。
続いて、下記のPHPコードをコピペしてファイル名を「sitemap.php」で保存する(●●●●●●.comを自分のサイトURLに変更する) → サーバにUPロードする。
<?php
/*
「pages」フォルダ内全ての .htmlのURLと生成日時を取得して
サイトマップを出力する
このURををGoogleに登録する
↓
https://●●●●●●.com/pages/sitemap.php
*/
// pagesディレクトリのパスを指定
$thisDirectory = './';
$sitePath = 'https://●●●●●●.com/pages/';
// サイトマップのヘッダーを出力
header("Content-Type: application/xml; charset=UTF-8");
echo '
';
// hogeディレクトリ内のファイル一覧を取得
$files = scandir($thisDirectory);
// ファイル一覧から.htmlファイルのURLとlastmodを出力
foreach ($files as $file) {
if (pathinfo($file, PATHINFO_EXTENSION) === 'html') {
$filePath = $file;
$lastModified = date("c", filemtime($filePath)); // ファイルの最終更新日時を取得
echo '
'. $sitePath . htmlspecialchars($filePath) . '
' . htmlspecialchars($lastModified) . '
1.0
';
}
}
// サイトマップのフッターを出力
echo '
';
?>
サイトマップが機能しているか確かめる
正常に動いているか確認しましょう!
必ずサーバにUPしたら、確認しておきましょう!
サーバにUPした後にブラウザで https://●●●●●●.com/pages/sitemap.php にアクセスしてみましょう。下記のように正常に表示されていたら成功です!
めちゃくちゃ簡単ですね!これで、いちいち手動でサイトマップを更新する作業がなくなるはずです!お試しください。
そして、このURLをGoolgeサーチコントロールに登録することでGoogleの検索エンジンロボットが見にきてくれるようになります。
Googleサーチコントロールに登録する
サイトマップを作ったら終わりではない
Googleサーチコントロール ⇒ 通称「サチコ」に登録することで、登録されたサイトマップのURLをGoogle検索ロボットに伝えることができます。
こちらの記事にまとめてあります。WordPressサイトを「サチコ」に登録後サイトマップxmlを送信するちなみに、こちらの記事ではWordPressでの登録方法ですが、基本的なやり方は同じです。また、登録するURLは「sitemap.xml」と「sitemap.php」でもどちらでも良いです。どちらでも、サイトマップのURLをGoogle検索ロボットに伝えることができます。よっぽど質の悪いWebページでなければ、ちゃんとインデックスされます。もしも、Webページに問題がある場合はGoogleからメールが来るので、速やかに修正しましょう。
sitemap.xmlの場合 ↓
sitemap.phpの場合 ↓
まとめ
- 手動でサイトマップの更新は面倒なので自動化しよう
- sitemap.phpをサーバにUPする
- サイトマップ生成を自動化したら勝手に更新される
- GoogleサーチコントロールにサイトマップURLの登録しておこう