首先,什么是站点地图?
站点地图是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