Laravelium/laravel-sitemapを使う
インストール方法は以下
https://github.com/Laravelium/laravel-sitemap
サイトマップを分割する
サイトマップに関する設定はconfig/sitemap.php
でもできる。
今回は個別に設定するのでコンフィグファイルはいじらない。
※use_limit_size
はfalseのままにする。trueにするとURLが全件出力されないし、ファイル分割もされない。
public static function toXml($data){
$sitemap = \App::make('sitemap');
$sitemap->model->setMaxSize(1000); // 1xmlあたりのURL数
foreach ($data as $d) {
$sitemap->add(
$d->url,
$d->last_modified
$d->priority,
$d->frequency,
);
}
$sitemap->store('xml', 'sample_sitemap', '/tmp');
//** 出力結果例 **//
// sample_sitemap.xml <= サイトマップインデックス
// sample_sitemap_0.xml
// sample_sitemap_1.xml
}
設定するだけで分割されるので便利。
しかもサイトマップ(子)をまとめるサイトマップインデックス(親)も作成してくれるので、ファイル数が多くなってもサイトマップインデックス(親)だけSearch Consoleに登録すれば良い。便利。