vibecheck0.3.0
Search visibilityseotitle-defaulterror

Page title is a framework default in Vue

A title like “React App”, “Vite App”, or “Untitled” is the scaffold’s placeholder — shipping it signals to Google (and to any human) that the page is unfinished. Every search result and browser tab shows the generic string, and identical titles across your whole site collapse your pages into one indistinct blob. This is the most common title mistake in AI-built and starter-template projects.

Symptoms

  • Every tab and search result reads “React App” / “Vite App” / “My App”
  • All routes share one identical, generic title
  • The title clearly came from create-react-app, Vite, or a starter template

How VibeCheck catches it

In your widget · Problems

errorseoPage title is a framework default

To your coding agent · MCP

agent › get_detected_issues
{ detector: "seo", issue: "Page title is a framework default", threshold: "title matches a known placeholder (e.g. 'React App', 'Vite App', 'Untitled')" }

The same string in your widget and in your agent’s context — no screenshot, no copy-paste.

Root causes

  • The starter template’s default <title> in index.html was never changed
  • The app renders into <body> and no route ever overrides the placeholder
  • A copied boilerplate carried its original title through

The fix for Vue

Update index.html and set per-route titles with useHead.

ts
useHead({ title: 'Acme — Invoicing for freelancers' })

Steps

  1. Search the project for the placeholder string (e.g. “React App”)
  2. Replace the base template default with your real brand/home title
  3. Add unique per-route titles via your framework’s metadata mechanism

See the general, framework-agnostic fix →

FAQ

Which titles does VibeCheck treat as placeholders?
Common scaffold defaults: “untitled”, “document”, “app”, “my site”, “home”, “react app”, “create react app”, “vite app”, “vite + react”, and “next app”.
Why is this an error and not just a warning?
A placeholder title actively misrepresents the page to search engines and users on every route at once, so it is scored more severely than a merely missing one.