Laravel sitemap.xmlを作る
大規模なsitemap.xmlを作る
sitemap.xmlは1つのファイルに5万件という制約があります。
その件数を超えるようなサイトはsitemap.xmlを分割する必要があり、今回その対応が必要でした。
Laravelでsitemap.xmlを作るのにはlaravelium/sitemapを使うのが便利です。
Laravelのバージョンごとに使うバージョンが異なるので正しいバージョンをインストールします。
sitemap index
sitemap indexファイルを作り、sitemap.xmlを分割します。
公式ドキュメントにサンプルがあるので合わせて参考にしてください。
下記のようにルーティングを設定します。
別にURLに.xmlが必要なわけではないので、/sitemap
をindexファイルとし、/sitemap/xxx
をタイプ別にsitemapを生成するように分割します。
1 | Route::get('sitemap/{type?}', 'SitemapController@index'); |
以下にControllerを載せています。
$typeがnullのときはインデックスを表示し、$typeが指定されたときは、タイプ別のsitemapを表示するようにすれば適切に分割できます。
1 |
|