seo - 多版本网络应用程序的 URL 方案

标签 seo internationalization url-rewriting friendly-url

我正在寻找用于具有多个版本的网络应用程序的最佳 URL 架构,即多种语言和供手机使用的简化版本 - 两个方面都可以结合使用,因此有一个英语常规版本和移动版本,德语普通版和移动版等。

目标(按重要性排序):

  • 用户友好性
  • 搜索引擎友好度
  • 易于开发

需要考虑的方面:

  • URL 应该是什么样的?
  • 用户应如何在版本之间导航?
  • 应该有多少逻辑来自动决定一个版本?

我将在下面描述我的概念,也许你们中的一些人有更好的想法。

最佳答案

我目前的想法:

  • 当新用户到达时,应用会根据 cookie(见下文)、Accept-Language: header 和用户代理字符串(用于识别移动浏览器)决定显示哪个版本,但不会在网址(无重定向)
  • 默认为非简体英文版
  • 有突出显示的图标(旗帜、程式化手机)可供选择其他版本
  • 当用户明确选择不同的版本时,这会同时反射(reflect)在更改后的 URL 和浏览器 cookie 中
  • “自动”版本的 URL 架构为/,语言版本为/en/、/de/等,简化版本为/mobile/,非简化版本为/normal/,以及组合其中,即/mobile/en/和/normal/de/
  • mod_rewrite 用于剥离这些 URL 前缀并将其转换为 GET 参数供应用解​​析
  • robots.txt 不允许/mobile/和/normal/

优点:

  • 不同的语言版本都被搜索引擎单独索引
  • Cookie 有帮助,但不是必需的
  • 人们很有可能会看到最适合他们的版本,而无需做出任何选择
  • 用户始终可以明确选择他想要的版本(这使得/normal/URL 成为必要)
  • 每个版本都有一个 URL,当传递给其他人时,该 URL 将准确显示该版本
  • /mobile/和/normal/被搜索引擎忽略;它们只会是重复的内容。

缺点:

  • 需要大量使用 mod_rewrite,我觉得它很神秘
  • 用户可以将他们当前的 URL 发送给某人,而该人在访问它时最终可能会看到不同的版本,这可能会造成混淆
  • /和/en/之间仍然存在重复内容 - 我不能在 robots.txt 中禁止/- 我应该相信搜索引擎不会因为同一域中的完全重复内容而惩罚我,还是禁止/en/并接受人们访问/通过搜索引擎可能看到的版本与他们在搜索引擎中找到的版本不同?

关于seo - 多版本网络应用程序的 URL 方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454229/

相关文章:

php - Zend Framework 中的简单重写

asp.net-mvc - ASP.NET MVC 每个 View 的静态内容路由策略

javascript - 限制 Google 自定义搜索引擎中的日期范围

seo - Nuxt 网站未被抓取

asp.net - ViewState、QueryStrings 及其对 SEO 的影响

Angular 本地化 : just switch language, 无需翻译

css - W3C 有效的 XHTML 和 CSS 代码、语义和可访问标记是否足以用于网站的一般搜索引擎优化?

grails - 在 grails 中将常量字符串引入 i18n 国际化文件的好方法

android - Android 中的可本地化 Assets

iis - 使用 web.config 文件在 IIS 中看似简单的重定向