\n \u003C/template>\n \u003Ctemplate v-for=\"meta in metaTags\" :key=\"meta.id\">\n \u003CMeta\n :property=\"meta.property\"\n :content=\"meta.content\"\n :name=\"meta.name\"\n />\n \u003C/template>\n \u003C/Head>\n \u003CBody>\n \u003CAppHeader />\n \u003Cslot />\n \u003CAppFooter />\n \u003C/Body>\n \u003C/Html>\n\u003C/template>\n\n\u003Cstyle>\u003C/style>\n```\n\n4. Some page\n```vue\ndefinePageMeta({\n layout: \"default\",\n title: \"essay.meta.title\",\n description: \"essay.meta.description\",\n});\n```\n\n5. Example of translation file:\n```\nexport default {\n appHeader: {\n tools: \"Herramientas\",\n summary: {\n title: \"Resumidor\",\n description: \"Resume textos de forma automática.\",\n },\n....\n```\n\n\n\n### Describe the bug\n\nWhen using the current Nuxt i18n setup (translations inside i18n/locales/es.ts, i18n/locales/en.ts, etc.), translation keys appear in the \u003Chead> instead of resolved translations.\n\nFor example, Google is indexing essay.meta.title instead of the translated string because the SSR HTML is rendered before locale messages are available. The client later fetches /_i18n/es/messages.json, but if that request fails or is delayed, the \u003Ctitle> and \u003Cmeta> remain as raw keys. This is problematic for SEO since crawlers usually index the raw SSR HTML.\n\nWhen inspect with search console:\n\u003Cimg width=\"399\" height=\"76\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/9b9fcc11-0244-4eab-a624-1e60ac29d6e3\" />\n\u003Cimg width=\"400\" height=\"223\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/3f70c9a6-ec7e-4a20-9ec1-16dc62958297\" />\nIn google SERP\n\u003Cimg width=\"705\" height=\"151\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/ea3e3b89-9bcf-421d-96cc-5987aff8a64c\" />\n\n### Additional context\n\n#### Documentation issues\n\nIn older versions there was a lazy: true/false option. This no longer exists, but the migration path is unclear.\n\nIt’s not documented whether .ts files (with export default {}) behave the same as .json for SSR vs client-only loading.\n\nThe docs show how to use file/files, but don’t explain how to guarantee SSR has messages ready for SEO-critical content like \u003Chead>.\n\nRight now it’s unclear if the messages are truly lazy-loaded, or if something else prevents them from being available at SSR.\n\n### Logs\n\n```shell\n\n```",[3275,3276],{"name":3175,"color":3176},{"name":3190,"color":3191},3794,"SEO issue with SSR translations and unclear lazy-loading behavior","2025-10-07T14:52:13Z","https://github.com/nuxt-modules/i18n/issues/3794",0.70626426,{"description":3283,"labels":3284,"number":3290,"owner":3178,"repository":3179,"state":3216,"title":3291,"updated_at":3292,"url":3293,"score":3294},"### Describe the feature\n\n# Description\n\nCurrently, the `useLocaleHead` composable in the `nuxt3-i18n` module automatically generates various meta tags, including `og:url`, based on non-configurable logic. While this works for many use cases, it creates challenges when custom logic is required.\n\n## Use Case\n\nIn our project, we manually determine the `og:url` using project-specific logic. We set this custom `og:url` using the [useSeoMeta](https://nuxt.com/docs/api/composables/use-seo-meta) method. However, when using `useLocaleHead` with default properties, it adds a second `og:url` meta tag, which cannot be disabled or customized without affecting other tags.\n\nSetting `seo: false` in `useLocaleHead` disables all SEO-related meta tags, including `og:locale:alternate` tags and `og:locale` for the current page. This is problematic because we only want to disable the automatic generation of `og:url`, while retaining the other meta tags provided by `useLocaleHead`.\n\nThe relevant behavior can be seen in the following code snippet: \n\nhttps://github.com/nuxt-modules/i18n/blob/d239bdd3db8c9790e6d11dd3848213674c4590a3/src/runtime/routing/compatibles/head.ts#L63-L72\n\n## PR\n\nI’d be happy to contribute a pull request (PR) to implement this feature if the idea is welcomed.\n\n### Additional information\n\n- [x] Would you be willing to help implement this feature?\n- [ ] Could this feature be implemented as a module?\n\n### Final checks\n\n- [x] Read the [contribution guide](https://nuxt.com/docs/community/contribution) (The contribution guideline of nuxt-modules/i18n is compliant with Nuxt too).\n- [x] Check existing [discussions](https://github.com/nuxt-modules/i18n/discussions) and [issues](https://github.com/nuxt/nuxt/issues).",[3285,3288,3289],{"name":3286,"color":3287},"feature request","ffbb00",{"name":3190,"color":3191},{"name":3213,"color":3214},3277,"Feature Request: Add fine-grained control for `og:url` and other Open Graph meta tags in `useLocaleHead`","2025-06-08T01:44:39Z","https://github.com/nuxt-modules/i18n/issues/3277",0.708736,["Reactive",3296],{},["Set"],["ShallowReactive",3299],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fLLirLW3SyW7htEMp6n2_2uZlIglyqXAJgFELUURoV3s":-1},"/nuxt-modules/i18n/2779"]