Nuxt 和 i18n:Google 显示混合语言结果
Nuxt and i18n: Google showing mixed language results
我用 Nuxt 做了一个网站。
该站点有 2 种语言:意大利语(默认)和英语。
我安装了 nuxt-i18n 并对其进行了配置,一切似乎都运行良好(尤其是在使用开发工具查看代码时,html lang、rel=alternate 等等......)。
但问题是:当我用 google(意大利语)搜索网站时,SERP 中的网站片段是英文的。
这是我的代码:
['nuxt-i18n', {
seo: false,
baseUrl: 'https://www.leconturbanti.it',
locales: [
{
name: 'Italiano',
code: 'it',
iso: 'it-IT',
file: 'it-IT.js'
},
{
name: 'English',
code: 'en',
iso: 'en-US',
file: 'en-US.js'
},
],
pages: {
'contatti/index': {
it: '/contatti',
en: '/contact-us'
},
'illustrazioni-collezione/index': {
it: '/illustrazioni-collezione',
en: '/illustrations-capsule'
}
},
langDir: 'lang/',
parsePages: false,
defaultLocale: 'it',
lazy: true
}]
我设置 seo: false
以获得更好的性能,如文档中所述,并在默认布局中合并数据:
head(){
return{
script:[
{type: `text/javascript`, innerHTML: this.$t('policy.cookieId')},
{src: `//cdn.iubenda.com/cs/iubenda_cs.js`, charset: `UTF-8`, type: `text/javascript`}
],
__dangerouslyDisableSanitizers: ['script'],
...this.$nuxtI18nSeo()
}
},
我还在 head()
中为每个带有 $t
的页面设置元标记。例如,在家里:
head(){
return{
title: this.$t('seo.home.title'),
meta: [
{ hid: 'description', name: 'description', content: this.$t('seo.home.description')},
{ hid: 'og:title', property: 'og:title', content: this.$t('seo.home.title') },
{ hid: 'og:url', property: 'og:url', content: this.$t('seo.home.url') },
{ hid: 'twitter:title', property: 'twitter:title', content: this.$t('seo.home.title') },
{ hid: 'og:description', property: 'og:description', content: this.$t('seo.home.description') },
{ hid: 'twitter:description', property: 'twitter:description', content: this.$t('seo.home.description') },
]
}
},
我不明白我做错了什么。我已经在 Search Console 中添加了网站。如需参观考察,url为:www.leconturbanti.it
如果您需要我的更多代码才能回答,请询问。
谢谢。
发现此问题来自 nuxt-i18n
本身。
问题是 Google 爬虫将回退到页面的英文版本,如果您有其他默认语言环境,这就不好了。
More here.
目前,在问题解决之前,我使用的解决方法是禁用自动检测语言以避免使用 detectBrowserLanguage: false
重定向。
我用 Nuxt 做了一个网站。
该站点有 2 种语言:意大利语(默认)和英语。 我安装了 nuxt-i18n 并对其进行了配置,一切似乎都运行良好(尤其是在使用开发工具查看代码时,html lang、rel=alternate 等等......)。
但问题是:当我用 google(意大利语)搜索网站时,SERP 中的网站片段是英文的。
这是我的代码:
['nuxt-i18n', {
seo: false,
baseUrl: 'https://www.leconturbanti.it',
locales: [
{
name: 'Italiano',
code: 'it',
iso: 'it-IT',
file: 'it-IT.js'
},
{
name: 'English',
code: 'en',
iso: 'en-US',
file: 'en-US.js'
},
],
pages: {
'contatti/index': {
it: '/contatti',
en: '/contact-us'
},
'illustrazioni-collezione/index': {
it: '/illustrazioni-collezione',
en: '/illustrations-capsule'
}
},
langDir: 'lang/',
parsePages: false,
defaultLocale: 'it',
lazy: true
}]
我设置 seo: false
以获得更好的性能,如文档中所述,并在默认布局中合并数据:
head(){
return{
script:[
{type: `text/javascript`, innerHTML: this.$t('policy.cookieId')},
{src: `//cdn.iubenda.com/cs/iubenda_cs.js`, charset: `UTF-8`, type: `text/javascript`}
],
__dangerouslyDisableSanitizers: ['script'],
...this.$nuxtI18nSeo()
}
},
我还在 head()
中为每个带有 $t
的页面设置元标记。例如,在家里:
head(){
return{
title: this.$t('seo.home.title'),
meta: [
{ hid: 'description', name: 'description', content: this.$t('seo.home.description')},
{ hid: 'og:title', property: 'og:title', content: this.$t('seo.home.title') },
{ hid: 'og:url', property: 'og:url', content: this.$t('seo.home.url') },
{ hid: 'twitter:title', property: 'twitter:title', content: this.$t('seo.home.title') },
{ hid: 'og:description', property: 'og:description', content: this.$t('seo.home.description') },
{ hid: 'twitter:description', property: 'twitter:description', content: this.$t('seo.home.description') },
]
}
},
我不明白我做错了什么。我已经在 Search Console 中添加了网站。如需参观考察,url为:www.leconturbanti.it
如果您需要我的更多代码才能回答,请询问。 谢谢。
发现此问题来自 nuxt-i18n
本身。
问题是 Google 爬虫将回退到页面的英文版本,如果您有其他默认语言环境,这就不好了。
More here.
目前,在问题解决之前,我使用的解决方法是禁用自动检测语言以避免使用 detectBrowserLanguage: false
重定向。