Laravel 8:类似于用户名 URL 系统的搜索引擎友好 Instagram
Posted
技术标签:
【中文标题】Laravel 8:类似于用户名 URL 系统的搜索引擎友好 Instagram【英文标题】:Laravel 8: Seo Friendly Instagram like Username URL system 【发布时间】:2021-08-08 04:11:39 【问题描述】:我最近在一个项目的用户名上工作,并想在域名旁边创建一个用户名系统,例如 Instagram.com/username、Facebook.com/username 甚至 Twitter.com/用户名。
我的路线:
Route::get('username', [HomeController::class, 'index'])->name('dashboard');
这绝对没问题。但我无法理解 SEO 将如何检测这样的动态 URL,例如我们可以看到 Facebook 和 Instagram 用户名有时会显示在 google 和 bing 上。这是正确的方法吗?还是我错了?最近有人建议应该对此类 URL 进行 301,现在我很困惑在这种情况下我们如何为此类 URL 执行 301?
【问题讨论】:
对于 SEO 问题,您应该在 webmasters.stackexchange.com/questions 上提问 您需要添加opengraph 【参考方案1】:你做的很好,但我不明白关于 301 重定向的部分。
您对抓取引擎未发现未公开网址的担忧是有道理的。事实上,除非您有指向它的外部链接,否则 Google Bot 不太可能抓取 yourwebsite.tld/username
。
要解决此问题,您有两种选择:
索引页面上有指向您希望机器人发现的新页面的链接(有机索引)。
或者,正确的解决方案是在您网站的根目录创建一个sitemap,以帮助搜索引擎发现您的网站页面。
使用 Laravel,有许多不同的方法可以创建 sitemap.xml
。由于您的用户模型是动态的,您将希望您的站点地图也是动态的。您可以自己构建此功能,也可以下载现有包以节省时间。我个人喜欢spatie/laravel-sitemap,但任何类似的软件包都可以完成这项工作。
【讨论】:
感谢您的回复。我们还有一些用于索引页面的包吗?我曾经考虑过站点地图,但是从安全角度来看,这两种方法是否安全,因为我们最终会将所有用户名都扔到站点地图或对其进行索引? @HardikSisodia 站点地图应该只包含公共数据。私有数据是私有的,不应公开索引或访问。您的用户名是公开数据还是私有数据?没有“索引包”之类的东西,因为那没有意义。你想达到什么目的? 我的用户名将像 Facebook、Instagram 或任何此类网站一样使用。实际上我对 SEO 和站点地图有点陌生,也许这就是我问这个的原因。我只是想让我的 URL SEO 友好,用户的用户名可以被搜索引擎或网络爬虫抓取。 insta 和 FB 是否将站点地图用于用户名,这些用户名会被抓取并出现在 google 上? @HardikSisodia 是的,每个网站都使用站点地图进行 SEO。这是 Instagram 的站点地图文件:ig.com/sitemap.xml 想想看,如果你不告诉他们去哪里看,Google 或 Bing 怎么能发现 url?您必须向他们提供 URL 列表。就这么简单。 ig.com 似乎是一个不同的域,但我确实明白了这个概念,非常感谢你让我理解它。以上是关于Laravel 8:类似于用户名 URL 系统的搜索引擎友好 Instagram的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8 Gate 基于数据库工匠迁移错误中的级别
Laravel Eloquent - 使用连接选择列文本类似于其他表中的列文本