Index of every page on this site: llms.txt

Vue SEO Guide

Meta tags, crawler control, rendering strategy, and Core Web Vitals for Vue apps, with a dedicated guide for each piece and where to start.
Harlan Wilton7 mins read Published Updated
What you'll learn
  • Check content, metadata, discovery links, and direct responses. Rendering mode alone does not guarantee indexing
  • Good field INP is 200ms or less, and good LCP is 2.5s or less at the 75th percentile
  • Unhead supports head management in Vue apps. Choose rendering, routing, and hosting integrations for your actual content

Vue applications can serve static content, render on the server, generate pages at build time, or create views in the browser. Google can render JavaScript. Content that depends on the app still needs successful execution and available resources.

This guide covers meta tags, crawler control, rendering strategy, and monitoring for Vue applications. Start with a representative page and verify its actual output, rather than treating SSR as a universal indexing fix.

AI products use different crawler, retrieval, and search systems. Do not assume they all share a JavaScript limitation. For Google's AI features, existing SEO practices still apply; Google does not require extra AI files or special schema, and does not guarantee inclusion.

Choose a rendering mode that meets your content and freshness needs. Then check metadata, crawler access, and field Core Web Vitals. Google uses Core Web Vitals in ranking systems, but good scores do not guarantee top rankings.

Content Sections

New to Vue SEO? Start with Mastering Meta. It covers titles, descriptions, and the entity graph with Unhead.

Need a quick audit? Use the SEO Checklist to check INP, AI bot access, and schema validation.

Mastering Meta

Provide metadata that describes your pages. Search presentation and AI inclusion depend on each system.

GuideWhat You'll Learn
TitlesBrand patterns and title templates
DescriptionsWriting descriptions that earn the click
Social SharingOG image generation and Twitter Cards
Schema.orgStructured data for entities and rich results
Rich ResultsMerchant listings and article snippets

Controlling Crawlers

Manage how search engines and LLMs discover and access your content.

GuideWhat You'll Learn
robots.txtManaging User-agent: GPTBot and standard crawlers
SitemapsXML sitemaps for dynamic content
Meta Tagsnoindex strategies for thin content
Canonical URLsPreventing duplicate content issues

SPA SEO

Single page apps are viable for SEO, but need specific handling for crawlers and rendering.

GuideWhat You'll Learn
PrerenderingGenerating static HTML at build time
Dynamic RenderingWhy it's a workaround, not a fix
HydrationInspecting hydration mismatches and initial state

SSR Frameworks

SSR and static generation can expose public content in initial HTML. Choose an integration that fits your routing and data needs.

GuideWhat You'll Learn
NuxtComparing Nuxt and Quasar
Vite SSRCustom SSR implementations
VitePressBuilt for documentation and blogs

Routes & Rendering

Plan URL identities, discovery paths, and the content in each response.

GuideWhat You'll Learn
URL StructureClean, semantic URL patterns
PaginationHandling deep paginated content
i18nhreflang implementation for global reach
Rendering ModesISR vs SSR vs SSG trade-offs

Launch & Listen

Deploy, verify, and monitor your search performance.

GuideWhat You'll Learn
Core Web VitalsOptimizing INP and LCP
Search ConsoleMonitoring indexing and clicks
Indexing IssuesDebugging "Crawled - currently not indexed"

A Vue SEO Setup

Install Unhead and its Vue plugin before calling its composables. This component-setup excerpt supplies static metadata; it does not configure routing or serve a page:

<script setup lang="ts">
import { useSeoMeta } from '@unhead/vue'

useSeoMeta({
  title: 'Vue SEO Guide',
  description: 'Meta tags, crawler control, rendering strategy, and Core Web Vitals for Vue apps.',
  ogTitle: 'Vue SEO Guide',
  twitterCard: 'summary_large_image',
})
</script>

Nuxt uses the same head-management foundation. Installed and configured SEO modules can add sitemaps, robots rules, structured data, and OG images. See the Nuxt SEO guide if you're starting a new project.

Common Mistakes to Avoid

  • Blocking CSS/JS in robots.txt: Google renders your page with headless Chrome and needs those assets to do it.
  • Ignoring layout shift: reserve space for images and dynamic content. A loading component alone does not guarantee stable layout.
  • Lazy-loading the LCP image: avoid delaying the image that drives LCP. Measure discovery and loading priority on the actual page.
  • Discarding meaningful URL differences: use canonicals for duplicate or near-identical content. Keep query values that identify distinct content.

External Resources

Was this page helpful?