LoginSignup
0

More than 3 years have passed since last update.

Laravelでサイトマップを分割する

Posted at

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に登録すれば良い。便利。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0