# Missing page title in Svelte

> How to fix missing page title in Svelte — with the exact fix and copy-paste code.

_Category: Search visibility · Detector `seo` · Check `title-missing` · Severity: warning_

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.

## The fix for Svelte

Put a `<title>` inside `<svelte:head>` on the page component; it is set per route.

```svelte
<svelte:head>
  <title>Pricing — Acme</title>
</svelte:head>
```

### Steps

1. Decide a unique, keyword-led title for the route
2. Set it via your framework’s head/metadata mechanism
3. Verify it appears in the browser tab and in view-source

## How VibeCheck detects it

The `seo` detector flags this live in the browser and reports it to the widget's Problems list — and to your coding agent over MCP.

- **Issue string:** `Missing page title`
- **Threshold:** document.title is empty

## 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.

See the general, framework-agnostic fix: https://vibecheck.wcgw.fun/fix/missing-page-title.md

---

Fix guide from VibeCheck — https://vibecheck.wcgw.fun/fix/missing-page-title. Full site index for LLMs: https://vibecheck.wcgw.fun/llms.txt
