我需要为网站生成可能包含大量用户贡献内容的站点地图。我已经阅读了这个教程:https://laravel-news.com/2016/09/laravel-sitemap/它给出了这样的例子:
public function podcasts()
{
$podcast = Podcast::active()->orderBy('updated_at', 'desc')->get();
return response()->view('sitemap.podcasts', [
'podcasts' => $podcast,
])->header('Content-Type', 'text/xml');
}
我不喜欢的是它会立即从数据库中获取所有播客,如果你有100万条记录,这将减慢每一个时间,每次webspider请求站点地图时都会调用此函数。
如果您的网站变得非常大,那么sitemap是否应包含所有数据库记录,如果有500,000多个,或者只是最后50000,这是一个站点地图文件的最大限制。为什么我要包含所有百万篇博文并将其拆分为多个站点地图如果谷歌已经抓取它们,因为我更新了我的站点地图规则,因此没有必要每次访问站点地图以获取所有数据库记录,旧帖子将无法获取再次爬行,所以我也可以获得最新的50,000?