Laravel 8: Seo Friendly Instagram like Username URL 系统

Laravel 8: Seo Friendly Instagram like Username URL system

我最近在为一个项目处理用户名,想制作一个用户名紧挨着域名的系统,例如 Instagram.com/{username}、Facebook.com/{username} 或甚至 Twitter.com/{username}.

我的路线:

Route::get('{username}', [HomeController::class, 'index'])->name('dashboard');

这绝对没问题。但我无法理解 SEO 将如何检测这种动态的 URL,就像我们可以看到 Facebook 和 Instagram 用户名有时会显示在 google 和 bing 上一样。这是这样做的正确方法吗?还是我做错了?最近有人建议这样的 URL 应该完成 301,现在我很困惑在这种情况下我们如何为这样的 URL 做 301?

你做的很好,但我不明白关于 301 重定向的部分。

您对爬网引擎未发现未公开的 URL 的担忧是有道理的。事实上,除非您有一个外部 link 指向它,否则 Google 机器人不太可能会抓取 yourwebsite.tld/{username}

要解决此问题,您有两种选择:

  • 在索引页面上有 links 指向您希望机器人发现的新页面(有机索引)。

  • 或者,正确的解决方法是在您网站的根目录创建一个 sitemap 以帮助搜索引擎发现您的网站页面。

Laravel 有许多不同的方法来创建 sitemap.xml。由于您的用户模型是动态的,因此您会希望您的站点地图也是动态的。您可以自己构建此功能,也可以下载现有包以节省时间。我个人喜欢 spatie/laravel-sitemap,但任何类似的软件包都可以。