如何使用Laravel快速生成站点地图

易阳云
2023-12-01

首先,什么是站点地图?

站点地图是xml文件,其中包含有关网站页面的结构化数据。 每个页面都有一个与此条目相似的条目:

  < url >
    < loc > https://startupnamecheck.com </ loc >
    < lastmod > 2020-03-06T20:31:03+00:00 </ lastmod >
    < priority > 0.9 </ priority >
    < changefreq > monthly </ changefreq >
  </ url >

网站地图有什么用处?

站点地图是搜索引擎的帮助者,可以发现网站上的所有相关页面和内容。 虽然也有图片的站点地图,但此处的重点仅在于网页。

如何生成站点地图?

可以通过多种方式创建站点地图。 如果您使用的是Laravel之类的框架, 可以随时或在发布或更新内容时创建它们。

经过一些实验并在GitHub上检查了几种解决方案后,我没有找到想要的解决方案:

  • 实际网站的简单永久性搜寻器。
  • 它考虑了noindex机器人标签以及规范,当然也考虑了article:modified_time标签。
  • 就像Google一样,忽略JavaScript。 这使它的运行速度比执行无头浏览器(仅访问纯HTML5 / CSS3页面)要快得多。

我的动态站点地图解决方案

如前所述,经过一些研究,我没有发现自己的想法。 因此,作为一名开发人员,我选择构建自己的解决方案。 它在很大程度上依赖于PHP Spider ,这是PHP的爬虫程序包。 除此之外,该软件包还使用一些正则表达式来识别网站上最有趣的部分。 其他值,例如` priority可以通过网站的深度(嵌套级别)来猜测。 也可以在GitHub 仓库上的Laravel-Sitemaps上找到更多详细信息。

我如何获得这个包裹?

该软件包是使用composer分发的,可以使用以下方式安装:

composer require bringyourownideas/laravel-sitemap

这将自动配置所需的Laravel ServiceProvider。 如果您选择退出软件包发现,则可以使用以下方法手动安装它:

php artisan vendor:publish --provider= "BringYourOwnIdeas\LaravelSitemap\SitemapServiceProvider"

如何使用包装?

该软件包注册了一个名为` generate:sitemap sitemap`的artisan命令。 这将触发您的网站的爬网,并在公共目录中写出站点地图。 为了方便起见,可以将其添加到部署步骤中。

定期更新站点地图

如果您想定期运行` sitemap.xml更新,则可以在` schedule函数的` app/Console/Kernel.php添加新行:

/**
 * 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上提出问题 。 要保持最新状态,请订阅我的新闻通讯 。 在有关Laravel Sitemap Generator的BYOI文章中也可以找到更多信息。 感谢您的阅读-希望您喜欢Sitemap搜寻器:)

先前发布在https://peterthaleikis.com/posts/how-to-generate-a-laravel-sitemap-dynamically/

From: https://hackernoon.com/how-to-generate-sitemaps-using-laravel-on-the-fly-al7w3yhv

 类似资料: