How to fix duplicate title on Nuxt.js
Give every page a unique, descriptive title tag that accurately reflects that page's specific content.
Steps for Nuxt.js
- Set a global default title template in `nuxt.config.ts` using the `app.head.titleTemplate` option (e.g. `'%s | My Store'`). This ensures every page that sets its own title automatically gets the store suffix appended, making every title unique by construction.
- Remove any hard-coded, shared `<title>` or `useHead({ title: '…' })` calls that are duplicated across pages — typically found in `app.vue`, `layouts/default.vue`, or shared composables.
- In every page component (`pages/index.vue`, `pages/products/[slug].vue`, `pages/categories/[slug].vue`, `pages/cart.vue`, etc.) call `useSeoMeta({ title: … })` (Nuxt 3) with a value derived from the page's own dynamic data (product name, category name, etc.) so the resulting title is unique to that page.
- For dynamic routes (e.g. `pages/products/[slug].vue`) fetch the resource first (via `useAsyncData` / `useFetch`), then pass the fetched entity's name into `useSeoMeta` so the title reflects real content rather than a generic placeholder.
- For the root page (`pages/index.vue`) pass an explicit `titleTemplate` override of `'%s'` (or a fully written-out string) so the homepage title does NOT get the suffix appended twice or left as a bare template string.
- Audit remaining pages (account, checkout, 404, search) and ensure each one calls `useSeoMeta({ title: … })` with a unique, human-readable string — never leaving the title undefined, empty, or identical to another page.
What is duplicate title?
The title tag is the line of text that appears as the clickable headline in Google search results and in your browser tab. When two or more pages on your store share the exact same title tag, search engines — and shoppers — cannot easily tell them apart. A duplicate title means at least one page is missing its own distinct identity, usually because a template has been applied without customisation, a CMS generated a fallback title, or pages were accidentally copied without updating their metadata.
Google uses the title tag as one of its primary signals to understand what a page is about. Duplicate titles confuse its crawlers, can cause the wrong page to rank (or neither page to rank well) for a given query, and split ranking authority between pages that should each stand on their own. For shoppers, identical titles in search results make it impossible to choose between two links — reducing click-through rates and, ultimately, revenue. Google may also silently rewrite a duplicate title to something generic, stripping away any keyword targeting you intended.
See the complete Duplicate title guide for every platform and the full background.
Not sure if your Nuxt.js store has this?
Run a free SEOLZ scan — we’ll find duplicate title and every other issue across your whole site.
Scan my site free