[扩展推荐] Laravel-sitemap —— 生成搜索引擎友好的 Sitemap

Laravel

首先,什么是网站地图( 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:sitemapartisan 命令。 这会触发您的网站爬虫并生成站点地图。 为了方便起见,您可以将其添加到部署步骤中。

定期更新

如果您想定期更新 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 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://dev.to/spekulatius1984/how-to-ge...

译文地址:https://learnku.com/laravel/t/42991

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

不是generate:sitemap ,而是 sitemap:generate

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!