---
title: "How to Get Your Vue Site Indexed"
description: "Submit your sitemap, request indexing, and fix Core Web Vitals so Google finds and ranks your Vue site fast."
canonical_url: "https://nuxtseo.com/learn-seo/vue/launch-and-listen/going-live"
last_updated: "2026-07-16"
---

<key-takeaways>

- 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; INP under 200ms is the current bar

</key-takeaways>

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](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics) to see your content. Google processes pages in three phases (crawling, rendering, indexing) and publishes no timing guarantee for the render queue, only that a page "may stay on this queue for a few seconds, but it can take longer than that." A server-rendered page skips that wait entirely.

For faster, more reliable indexing:

- Use SSR with [Vite SSR](/learn-seo/vue/ssr-frameworks/vite-ssr) or [Nuxt](/learn-seo/vue/ssr-frameworks/nuxt-vs-quasar)
- [Pre-render critical pages](/learn-seo/vue/spa/prerendering) at build time
- Set meta tags before hydration using [Unhead](/learn-seo/vue/mastering-meta)

If you're staying with a client-rendered SPA, use [dynamic rendering](/learn-seo/vue/spa/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

Multiple domains or subdomains pointing to your site? Only one version should be indexed.

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

Two ways to fix it: 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 tells Google which version is authoritative:

```ts
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](/learn-seo/vue/controlling-crawlers/canonical-urls) for implementation details.

## Set Up Google Search Console

You need [Google Search Console](/learn-seo/vue/launch-and-listen/search-console) to monitor indexing. Set it up before launch:

1. Visit [search.google.com/search-console](https://search.google.com/search-console)
2. Add your property (domain property recommended)
3. Verify ownership via DNS, HTML file, or meta tag
4. Submit your [sitemap](/learn-seo/vue/controlling-crawlers/sitemaps) at **Indexing > Sitemaps**

For Vue apps, generate a sitemap using:

- A static file in `public/`
- Build-time generation with [vite-plugin-sitemap](https://github.com/jbaubree/vite-plugin-sitemap)
- Server-side generation if you're using SSR

Google also rolled out a dedicated [Generative AI performance report](https://developers.google.com/search/blog/2026/06/gen-ai-performance-reports) 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 it's still rolling out property by property.

## Request Indexing

After sitemap submission, request indexing for important pages.

**Manual method:**

1. Open [URL Inspection](https://support.google.com/webmasters/answer/9012289) in Search Console
2. Enter your URL
3. Click **Request Indexing**

Google doesn't publish an exact quota, but roughly 10-12 requests per day is the commonly observed cap. Use them for your homepage and other critical pages.

**Bulk method:** use [RequestIndexing](https://requestindexing.com/) by @harlan_zw to submit multiple URLs automatically.

<tip title="Automated Indexing">

For Bing, Yandex, and Naver, use [IndexNow](/learn-seo/vue/launch-and-listen/indexnow) to notify them the moment content changes. Google still doesn't support IndexNow, but faster Bing indexing helps content surface in Copilot; Bing's own [AI Performance dashboard](https://blogs.bing.com/webmaster/February-2026/Introducing-AI-Performance-in-Bing-Webmaster-Tools-Public-Preview), launched February 2026, tracks how often your pages get cited.

</tip>

## Core Web Vitals Check

Google treats [Core Web Vitals](https://developers.google.com/search/docs/appearance/core-web-vitals) as a page-experience signal that its ranking systems reward, mainly as a tiebreaker between similarly relevant pages. Check your scores before launch:

<table>
<thead>
  <tr>
    <th>
      Metric
    </th>
    
    <th>
      Good
    </th>
    
    <th>
      Poor
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      INP (Interaction to Next Paint)
    </td>
    
    <td>
      ≤200ms
    </td>
    
    <td>
      >500ms
    </td>
  </tr>
  
  <tr>
    <td>
      LCP (Largest Contentful Paint)
    </td>
    
    <td>
      ≤2.5s
    </td>
    
    <td>
      >4s
    </td>
  </tr>
  
  <tr>
    <td>
      CLS (Cumulative Layout Shift)
    </td>
    
    <td>
      ≤0.1
    </td>
    
    <td>
      >0.25
    </td>
  </tr>
</tbody>
</table>

<tip title="RUM for SEO">

Google's Core Web Vitals ranking signal comes from [CrUX](https://developer.chrome.com/docs/crux) (Chrome UX Report): real Chrome users, aggregated over a rolling window, not your Lighthouse score. Third-party RUM tools like Pingdom, Datadog, or DebugBear track your own real users so you can catch regressions before they show up in CrUX.

</tip>

The bar is beatable but not universal: per the [2025 Web Almanac](https://almanac.httparchive.org/en/2025/performance), only 48% of mobile origins pass all three metrics, and LCP is the one that fails most often. Use [PageSpeed Insights](https://pagespeed.web.dev/) to test. Don't chase perfect scores; fix red flags and move on.

See [Core Web Vitals for Vue](/learn-seo/vue/launch-and-listen/core-web-vitals) for optimization techniques.

## Lighthouse SEO Audit

Run Lighthouse on your key pages and focus on the SEO and Accessibility categories, which catch issues Google cares about:

- Missing [meta descriptions](/learn-seo/vue/mastering-meta/descriptions)
- Images without [alt text](/learn-seo/vue/mastering-meta/alt-text)
- Missing lang attribute
- Low contrast text
- Non-crawlable links

Use [Unlighthouse](https://unlighthouse.dev/) to audit your entire site in bulk.

## Build Initial Backlinks

New sites have zero authority, and Google is skeptical of them. See the [Pre-Launch Warmup](/learn-seo/pre-launch-warmup) guide for building authority ahead of launch. Signal legitimacy with a few quality backlinks:

- Share on Twitter/X, [LinkedIn](https://linkedin.com), and relevant Reddit communities
- Submit to industry directories
- Write guest posts on established sites
- Build open-source tools that get linked

Quality over quantity: one link from a respected site beats 100 from spam directories.

## Common Vue-Specific Issues

### Meta tags not updating on navigation

- Use `@unhead/vue` with reactive values
- Verify tags appear in **View Page Source** (not DevTools)
- Check the [Mastering Meta](/learn-seo/vue/mastering-meta) guides

### SPA content not indexed

- Google may not have rendered the JavaScript yet
- Use [URL Inspection](https://support.google.com/webmasters/answer/9012289) to see the rendered HTML
- Consider SSR or [prerendering](/learn-seo/vue/spa/prerendering)
- See [Indexing Issues](/learn-seo/vue/launch-and-listen/indexing-issues) for debugging

### 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](/learn-seo/vue/launch-and-listen/core-web-vitals) for LCP fixes

### Pages "Crawled - currently not indexed"

- Content may be too thin or duplicate
- Site may lack authority (needs backlinks)
- See [Debugging Indexing Issues](/learn-seo/vue/launch-and-listen/indexing-issues)

## After Launch

1. Check [Search Console](/learn-seo/vue/launch-and-listen/search-console) weekly for errors
2. Watch the Generative AI performance report for citation trends once it's available on your property
3. Monitor [Core Web Vitals](/learn-seo/vue/launch-and-listen/core-web-vitals) in field data
4. Track organic traffic with [SEO monitoring tools](/learn-seo/vue/launch-and-listen/seo-monitoring)
5. Keep publishing content and building backlinks

## Checklist

<checklist id="going-live-vue">

- Set up Google Search Console and verify ownership
- Generate and submit your XML sitemap
- Verify meta tags appear in View Source (not just DevTools)
- 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

</checklist>

Nuxt SEO handles sitemap generation, robots.txt, OG images, and many SEO tasks automatically. [Learn more about going live with Nuxt →](/learn-seo/nuxt/launch-and-listen/going-live)
