[扩展推荐] Laravel-sitemap —— 生成搜索引擎友好的 Sitemap
首先,什么是网站地图( sitemap)?
站点地图是包含有关网站所有页面的结构化数据的xml文件, 每个页面都有一条跟这个相似的数据:
<url>
<loc>https://startupnamecheck.com</loc>
<lastmod>2020-03-06T20:31:03+00:00</lastmod>
<priority>0.9</priority>
<changefreq>monthly</changefreq>
</url>
网站地图(sitemap)有什么用处?
站点地图对 SEO 有所帮助,可以让搜索引擎发现网站上的所有相关页面和内容。 虽然也有图像的站点地图,但此处的重点仅在于网页。
怎样生成网站地图(sitemap)?
可以通过多种方式创建站点地图。 如果您使用诸如 Laravel 之类的框架,则可以在发布或更新内容时再即时创建它们。
经过一些实验并在 GitHub
上检查了几种解决方案后,我没有找到想要的解决方案:
- 简单、永久性的网站爬虫。
- 它考虑了爬虫机器人的
noindex
标签以及规范,还兼顾了article:modified_time
标签. - 像 Google 一样忽略 JavaScript 。 这使它的运行速度比仅访问纯HTML5 / CSS3页面要快得多
我的解决方案
如上所述,经过一些研究,我没有发现适合我的解决方案。 因此,作为一个开发人员的内心, 我选择建立自己的解决方案。它严重依赖于PHP Spider,这是PHP的爬虫扩展包。 除此之外,该软件包还使用一些正则表达式来识别网站中最有趣的部分。 其他值(例如“优先级”)可以通过网站的深度(嵌套级别)来预测。 更多细节也可以在 Laravel-Sitemaps 的 GitHub 仓库中找到。
怎么安装?
该扩展包使用 composer 分发,可以使用如下命令安装:
composer require bringyourownideas/laravel-sitemap
它会自动配置所需的 Laravel ServiceProvider
。 您也可以使用以下方法手动安装它:
php artisan vendor:publish --provider="BringYourOwnIdeas\LaravelSitemap\SitemapServiceProvider"
怎么使用?
扩展包会注册了一个名为 generate:sitemap
的 artisan
命令。 这会触发您的网站爬虫并生成站点地图。 为了方便起见,您可以将其添加到部署步骤中。
定期更新
如果您想定期更新 sitemap.xml
,则可以在 app/Console/Kernel.php
文件中的 schedule
函数中添加一行定时任务:
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->command('generate:sitemap')->daily();
// ...or with a defined time...
$schedule->command('generate:sitemap')->daily()->at('02:50');
}
总结 & 反馈
如果遇到问题,您可以在 GitHub 上提 issues,想要获取最新消息可以订阅我的即时通讯账号。详细信息也可以在 BYOI 文章中找到 Laravel Sitemap Generator.
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
不是generate:sitemap ,而是 sitemap:generate