Index of every page on this site: llms.txt

How to Get Your Vue Site Indexed

Check your Vue site’s responses, submit discovery signals, and interpret indexing and field performance without guarantees.
Harlan Wilton6 mins read Published Updated
What you'll learn
  • SSR or prerendering gets your content into the initial HTML; a pure client-side SPA waits on Google's render queue with no published timeline
  • Submit your sitemap in Search Console, then request indexing for your homepage and other critical pages
  • Google's Core Web Vitals ranking signal comes from real-user CrUX data, not your Lighthouse score; good field INP is at or below 200ms at p75, assessed separately for mobile and desktop

Deployed your Vue site to production? You have three goals: get Google to crawl it, get Google to index it, and get LLMs to cite it.

SSR vs SPA: The Indexing Reality

If your Vue app is a Single Page Application, Google needs to execute JavaScript to see your content. Google processes pages in three phases (crawling, rendering, indexing) and publishes no timing guarantee for the render queue. Initial HTML exposes content before JavaScript execution. Server-rendered pages can still enter Google’s rendering queue.

To make content available in the initial response:

If you're staying with a client-rendered SPA, use dynamic rendering as a stopgap, not a long-term fix; Google itself calls it "a workaround and not a long-term solution." Test your pages with Google's URL Inspection tool to confirm your content is visible to Googlebot.

Canonical URL Configuration

If hosts serve equivalent content, choose the preferred canonical version and align your signals.

Example: www.example.com and example.com both serve your app, but only example.com should appear in Google.

For equivalent host variants, a server-level 301 redirect from every non-canonical URL is preferred, since it removes the duplicate entirely. If you can't redirect, a canonical tag expresses your preferred equivalent version; Google can choose another:

This setup excerpt requires installed Unhead and Vue Router plugins. It intentionally uses the path only; decide separately which query parameters change content. Run it inside a component’s setup:

import { useHead } from '@unhead/vue'
import { useRoute } from 'vue-router'

const route = useRoute()

useHead({
  link: [
    { rel: 'canonical', href: () => `https://example.com${route.path}` }
  ]
})

See the canonical URLs guide for implementation details.

Set Up Google Search Console

You need Google Search Console to monitor indexing. Set it up before launch:

  1. Visit search.google.com/search-console
  2. Add your property (domain property recommended)
  3. Use DNS for a Domain property; follow an offered method for a URL-prefix property
  4. Submit your sitemap at Indexing > Sitemaps

For Vue apps, generate a sitemap using:

  • A static file in public/
  • Build-time generation with vite-plugin-sitemap
  • Server-side generation if you're using SSR

Google also rolled out a dedicated Generative AI performance report in Search Console in June 2026, separate from the classic Performance report. It shows impressions, pages, countries, and devices across AI Overviews, AI Mode, and Discover's generative surfaces, without click or CTR data yet, and its global rollout completed August 31, 2026. UI availability does not establish a separate Search Analytics API export.

Request Indexing

After sitemap submission, request indexing for important pages.

Manual method:

  1. Open URL Inspection in Search Console
  2. Enter your URL
  3. Click Request Indexing

Use requests for infrequent, important updates. Google enforces limits, and a request does not guarantee crawling or indexing.

For many ordinary pages, use crawlable links and a sitemap. Google’s Indexing API only supports JobPosting or livestream VideoObject containing BroadcastEvent. Third-party tools do not remove this restriction.

For Bing, Yandex, and Naver, use IndexNow to notify them the moment content changes. Google still doesn't support IndexNow, but notification does not guarantee crawling, indexing, or a Copilot citation; Bing's own AI Performance dashboard, launched February 2026, tracks how often your pages get cited.

Core Web Vitals Check

Google treats Core Web Vitals alongside other ranking signals. Good metrics do not guarantee a ranking. Assess each field metric’s p75 separately for mobile and desktop. Check your scores before launch:

MetricGoodPoor
INP (Interaction to Next Paint)≤200ms>500ms
LCP (Largest Contentful Paint)≤2.5s>4s
CLS (Cumulative Layout Shift)≤0.1>0.25
Google's Core Web Vitals ranking signal comes from CrUX (Chrome UX Report): real Chrome users, aggregated over a rolling window, not your Lighthouse score. Own RUM uses its configured collection scope and reporting window. CrUX aggregates over a rolling 28-day window; compare those scopes before interpreting a difference.

The bar is beatable but not universal: per the 2025 Web Almanac, 48% of measured mobile origins passed all three metrics in July 2025, and LCP is the one that fails most often. Use PageSpeed Insights for lab diagnostics and available field data. Field results require sufficient qualifying visits; check URL versus origin scope. Don't chase perfect scores; fix red flags and move on.

See Core Web Vitals for Vue for optimization techniques.

Lighthouse SEO Audit

Run Lighthouse on your key pages and focus on the SEO and Accessibility categories, for basic technical and accessibility checks:

Use Unlighthouse to audit your entire site in bulk.

Useful links help readers discover a new site; a new domain does not establish an indexing diagnosis. See the Pre-Launch Warmup guide for building authority ahead of launch. Share useful work where it fits the audience:

  • Share on Twitter/X, LinkedIn, and relevant Reddit communities
  • Submit to industry directories
  • Write guest posts on established sites
  • Build open-source tools that get linked

Build useful, relevant links. No fixed link count guarantees indexing or ranking.

Common Vue-Specific Issues

Meta tags not updating on navigation

  • Use @unhead/vue with reactive values
  • Compare initial tags in View Page Source with the rendered head during route navigation
  • Check the Mastering Meta guides

SPA content not indexed

Slow Time to First Byte (TTFB)

  • Optimize server response time
  • Use a CDN for static assets
  • Consider static hosting for SPA builds
  • Check Core Web Vitals for LCP fixes

Pages "Crawled - currently not indexed"

  • Inspect reported response, crawl access, and selected canonical
  • Review the content without treating the status as a specific quality or authority diagnosis
  • See Debugging Indexing Issues

After Launch

  1. Check Search Console weekly for errors
  2. Watch the Generative AI performance report for AI impressions, not citation counts
  3. Monitor Core Web Vitals in field data
  4. Track organic traffic with SEO monitoring tools
  5. Keep publishing content and building backlinks

Checklist

Checklist
  • Set up Google Search Console and verify ownership
  • Generate and submit your XML sitemap
  • When tags need initial HTML, verify View Source; otherwise compare successful rendered output
  • Check canonical URLs point to the preferred domain version
  • Run Lighthouse SEO and accessibility audits
  • Test Core Web Vitals (INP, LCP, CLS) with PageSpeed Insights
  • Request indexing for the homepage and key pages
  • Build initial backlinks from social channels and directories

Nuxt SEO provides sitemap, robots, and OG-image integrations. Configure them for the app and verify the generated output. Learn more about going live with Nuxt →

Was this page helpful?