Missing page title in Vue
The <title> is the single strongest on-page ranking signal and the clickable headline in every search result. With none, Google shows your raw URL and browser tabs show a fragment of the address. AI scaffolds generate the app body but leave the document <head> alone, so the title never gets set for real routes.
Symptoms
How VibeCheck catches it
In your widget · Problems
Missing page title
To your coding agent · MCP
agent › get_detected_issues
→ { detector: "seo", issue: "Missing page title", threshold: "document.title is empty" }
The same string in your widget and in your agent’s context — no screenshot, no copy-paste.
Root causes
The fix for Vue
Set the title reactively with @unhead/vue’s useHead (built into Nuxt).
<script setup lang="ts">
import { useHead } from '@unhead/vue'
useHead({ title: 'Pricing — Acme' })
</script>Steps
- Decide a unique, keyword-led title for the route
- Set it via your framework’s head/metadata mechanism
- Verify it appears in the browser tab and in view-source
FAQ
- How long should a page title be?
- Aim for 30–60 characters. Google truncates around 60, so keep the important keywords first and the brand name last.
- Should every page have a different title?
- Yes. Duplicate titles across routes confuse search engines about which page to rank. Give each route a title that reflects its unique content.
- Where should the brand name go?
- At the end, after a separator: “Pricing — Acme”. Front-load the page-specific keywords because the end is what gets truncated.