Getting Your Vue Site Indexed · Nuxt SEO

[NuxtSEO](https://nuxtseo.com/ "Home")

- [Modules](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [Tools](https://nuxtseo.com/tools)
- [Pro](https://nuxtseo.com/pro)
- [Learn SEO](https://nuxtseo.com/learn-seo/nuxt) [Releases](https://nuxtseo.com/releases)

[1.4K](https://github.com/harlan-zw/nuxt-seo)

[Nuxt SEO on GitHub](https://github.com/harlan-zw/nuxt-seo)

Learn SEO

Master search optimization

Nuxt

 Vue

[SEO Checklist](https://nuxtseo.com/learn-seo/checklist) [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup) [Backlinks & Authority](https://nuxtseo.com/learn-seo/backlinks)

[Mastering Meta](https://nuxtseo.com/learn-seo/vue/mastering-meta)

- [Titles](https://nuxtseo.com/learn-seo/vue/mastering-meta/titles)
- [Meta Description](https://nuxtseo.com/learn-seo/vue/mastering-meta/descriptions)
- [Social Sharing](https://nuxtseo.com/learn-seo/vue/mastering-meta/social-sharing)
- [Schema.org](https://nuxtseo.com/learn-seo/vue/mastering-meta/schema-org)
- [Migrating vue-meta](https://nuxtseo.com/learn-seo/vue/mastering-meta/migrating-vue-meta)
- [Rich Results](https://nuxtseo.com/learn-seo/vue/mastering-meta/rich-results)
- [Image Alt Text](https://nuxtseo.com/learn-seo/vue/mastering-meta/alt-text)

[ Controlling Crawlers](https://nuxtseo.com/learn-seo/vue/controlling-crawlers)

- [Robots.txt](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/robots-txt)
- [Sitemaps](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/sitemaps)
- [Robot Meta Tag](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/meta-tags)
- [Canonical Link Tag](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/canonical-urls)
- [HTTP Redirects](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/redirects)
- [Duplicate Content](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/duplicate-content)
- [llms.txt](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/llms-txt)

[ SPA SEO](https://nuxtseo.com/learn-seo/vue/spa)

- [Prerendering](https://nuxtseo.com/learn-seo/vue/spa/prerendering)
- [Dynamic Rendering](https://nuxtseo.com/learn-seo/vue/spa/dynamic-rendering)
- [Hydration & SEO](https://nuxtseo.com/learn-seo/vue/spa/hydration)

[ Routes & Rendering](https://nuxtseo.com/learn-seo/vue/routes-and-rendering)

- [URL Structure](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/url-structure)
- [Pagination](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/pagination)
- [Trailing Slashes](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/trailing-slashes)
- [Query Parameters](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/query-parameters)
- [Hreflang & i18n](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/i18n)
- [404 Pages](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/404-pages)
- [Dynamic Routes](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/dynamic-routes)
- [Internal Linking](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/internal-linking)
- [Rendering Modes](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/rendering)
- [Programmatic SEO](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/programmatic-seo)
- [Security](https://nuxtseo.com/learn-seo/vue/routes-and-rendering/security)

[ SSR Frameworks](https://nuxtseo.com/learn-seo/vue/ssr-frameworks)

- [Nuxt vs Quasar](https://nuxtseo.com/learn-seo/vue/ssr-frameworks/nuxt-vs-quasar)
- [Custom Vite SSR](https://nuxtseo.com/learn-seo/vue/ssr-frameworks/vite-ssr)
- [VitePress SEO](https://nuxtseo.com/learn-seo/vue/ssr-frameworks/vitepress)

[ Launch & Listen](https://nuxtseo.com/learn-seo/vue/launch-and-listen)

- [Getting Indexed](https://nuxtseo.com/learn-seo/vue/launch-and-listen/going-live)
- [Google Search Console](https://nuxtseo.com/learn-seo/vue/launch-and-listen/search-console)
- [Core Web Vitals](https://nuxtseo.com/learn-seo/vue/launch-and-listen/core-web-vitals)
- [Indexing Issues](https://nuxtseo.com/learn-seo/vue/launch-and-listen/indexing-issues)
- [SEO Monitoring](https://nuxtseo.com/learn-seo/vue/launch-and-listen/seo-monitoring)
- [Site Migration](https://nuxtseo.com/learn-seo/vue/launch-and-listen/site-migration)
- [IndexNow](https://nuxtseo.com/learn-seo/vue/launch-and-listen/indexnow)
- [Debugging](https://nuxtseo.com/learn-seo/vue/launch-and-listen/debugging)
- [AI Search Optimization](https://nuxtseo.com/learn-seo/vue/launch-and-listen/ai-optimized-content)

1. [Learn SEO for Vue](https://nuxtseo.com/learn-seo)
2.
3. [Launch And Listen](https://nuxtseo.com/learn-seo/vue/launch-and-listen)
4.
5. [Going Live](https://nuxtseo.com/learn-seo/vue/launch-and-listen/going-live)

# Getting Your Vue Site Indexed

How to get your Vue site crawled and indexed for the first time by Google.

[![Harlan Wilton](https://avatars.githubusercontent.com/u/5326365?v=4)Harlan Wilton](https://x.com/harlan-zw)6 mins read Published Oct 25, 2024 Updated Jan 29, 2026

What you'll learn

- Set up Google Search Console and submit sitemap before launch
- Request indexing for homepage and critical pages (10 requests/day limit)
- Check Core Web Vitals scores. INP ≤200ms, LCP ≤2.5s, CLS ≤0.1

Deployed your Vue site to production? Two steps remain: get Google to crawl it, then get Google to index it.

## [SSR vs SPA: The Indexing Reality](#ssr-vs-spa-the-indexing-reality)

If your Vue app is a Single Page Application (SPA), [Google needs to execute JavaScript](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics) to see your content. This delays indexing, sometimes by weeks.

**For faster, more reliable indexing:**

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

If staying with SPA, use [dynamic rendering](https://nuxtseo.com/learn-seo/vue/spa/dynamic-rendering) or a service like Prerender.io. Test your pages with Google's URL Inspection tool to verify content is visible.

## [Canonical URL Configuration](#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.

**Solutions:**

1. **Server-level redirect** (preferred): 301 redirect all non-canonical URLs
2. **Canonical tags**: Tell Google which version is authoritative

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

const route = useRoute()

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

See [Canonical URLs guide](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/canonical-urls) for implementation details.

## [Set Up Google Search Console](#set-up-google-search-console)

You need [Google Search Console](https://nuxtseo.com/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](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/sitemaps) at **Indexing > Sitemaps**

For Vue apps, generate a sitemap using:

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

## [Request Indexing](#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**

You get [~10 requests per day](https://support.google.com/webmasters/answer/9012289). Use them for homepage and critical pages.

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

For Bing, Yandex, and Naver, use [IndexNow](https://nuxtseo.com/learn-seo/vue/launch-and-listen/indexnow) to notify them immediately when content changes. While Google doesn't support IndexNow in 2026, keeping other engines updated helps build overall site authority.

## [Core Web Vitals Check](#core-web-vitals-check)

[Google uses Core Web Vitals](https://developers.google.com/search/docs/appearance/core-web-vitals) as a ranking signal. Check your scores before launch:

| Metric | Good | Poor |
| --- | --- | --- |
| INP (Interaction to Next Paint) | ≤200ms | >500ms |
| LCP (Largest Contentful Paint) | ≤2.5s | >4s |
| CLS (Cumulative Layout Shift) | ≤0.1 | >0.25 |

Lab data (Lighthouse) isn't enough. You need field data (Real User Monitoring) to pass Core Web Vitals in 2026. Tools like Pingdom, Datadog, or DebugBear track actual user experiences, which Google uses for ranking.

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](https://nuxtseo.com/learn-seo/vue/launch-and-listen/core-web-vitals) for optimization techniques.

## [Lighthouse SEO Audit](#lighthouse-seo-audit)

Run Lighthouse on your key pages. Focus on the **SEO** and **Accessibility** categories. they catch issues Google cares about:

- Missing [meta descriptions](https://nuxtseo.com/learn-seo/vue/mastering-meta/descriptions)
- Images without [alt text](https://nuxtseo.com/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](#build-initial-backlinks)

New sites have zero authority. Google is skeptical of them. For new domains, starting 6 to 8 weeks before launch can significantly improve initial indexing speed. See the [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup) guide. Signal legitimacy with a few quality backlinks:

- Share on Twitter/X, [LinkedIn](https://linkedin.com), Reddit (relevant subreddits)
- 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](#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 [Mastering Meta](https://nuxtseo.com/learn-seo/vue/mastering-meta) guides

**SPA content not indexed:**

- Google may not execute JavaScript properly
- Use [URL Inspection](https://support.google.com/webmasters/answer/9012289) to see rendered HTML
- Consider SSR or [prerendering](https://nuxtseo.com/learn-seo/vue/spa/prerendering)
- See [Indexing Issues](https://nuxtseo.com/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](https://nuxtseo.com/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](https://nuxtseo.com/learn-seo/vue/launch-and-listen/indexing-issues)

## [After Launch](#after-launch)

1. Check [Search Console](https://nuxtseo.com/learn-seo/vue/launch-and-listen/search-console) weekly for errors
2. Monitor [Core Web Vitals](https://nuxtseo.com/learn-seo/vue/launch-and-listen/core-web-vitals) in field data
3. Track organic traffic with [SEO Monitoring tools](https://nuxtseo.com/learn-seo/vue/launch-and-listen/seo-monitoring)
4. Keep publishing content and building backlinks

SEO is a long game. Most sites take 3-6 months to see meaningful organic traffic. Don't panic if rankings don't appear immediately.

## [Using Nuxt?](#using-nuxt)

Nuxt SEO handles sitemap generation, robots.txt, OG images, and many SEO tasks automatically.

Pre-Launch SEO Checklist

- Set up Google Search Console and verify ownership
- Generate and submit XML sitemap
- Verify meta tags appear in View Source (not just DevTools)
- Check canonical URLs point to preferred domain version
- Run Lighthouse SEO and accessibility audits
- Test Core Web Vitals (INP, LCP, CLS) with PageSpeed Insights
- Request indexing for homepage and key pages
- Build initial backlinks from social and directories

[Learn more about going live with Nuxt →](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/going-live)

[The 2026 SEO Checklist for Nuxt & Vue Pre-launch setup, post-launch verification, and ongoing monitoring. Interactive checklist with links to every guide.](https://nuxtseo.com/learn-seo/checklist)

---

[Launch & Listen Deploy your Vue site to production and monitor its indexing status in search engines.](https://nuxtseo.com/learn-seo/vue/launch-and-listen) [Google Search Console Verify ownership, submit sitemaps, and monitor indexing status using Google Search Console.](https://nuxtseo.com/learn-seo/vue/launch-and-listen/search-console)

On this page

- [SSR vs SPA: The Indexing Reality](#ssr-vs-spa-the-indexing-reality)
- [Canonical URL Configuration](#canonical-url-configuration)
- [Set Up Google Search Console](#set-up-google-search-console)
- [Request Indexing](#request-indexing)
- [Core Web Vitals Check](#core-web-vitals-check)
- [Lighthouse SEO Audit](#lighthouse-seo-audit)
- [Build Initial Backlinks](#build-initial-backlinks)
- [Common Vue-Specific Issues](#common-vue-specific-issues)
- [After Launch](#after-launch)
- [Using Nuxt?](#using-nuxt)

[GitHub](https://github.com/harlan-zw/nuxt-seo) [ Discord](https://discord.com/invite/275MBUBvgP)

### [NuxtSEO](https://nuxtseo.com/ "Home")

- [Getting Started](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [MCP](https://nuxtseo.com/docs/nuxt-seo/guides/mcp)

Modules

- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)

### [NuxtSEO Pro](https://nuxtseo.com/pro "Home")

- [Getting Started](https://nuxtseo.com/pro)
- [Dashboard](https://nuxtseo.com/pro/dashboard)
- [Pro MCP](https://nuxtseo.com/docs/nuxt-seo-pro/mcp/installation)

### [Learn SEO](https://nuxtseo.com/learn-seo "Learn SEO")

Nuxt

- [Mastering Meta](https://nuxtseo.com/learn-seo/nuxt/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers)
- [Launch & Listen](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen)
- [Routes & Rendering](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering)
- [Staying Secure](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/security)

Vue

- [Vue SEO Guide](https://nuxtseo.com/learn-seo/vue)
- [Mastering Meta](https://nuxtseo.com/learn-seo/vue/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/vue/controlling-crawlers)
- [SPA SEO](https://nuxtseo.com/learn-seo/vue/spa)
- [SSR Frameworks](https://nuxtseo.com/learn-seo/vue/ssr-frameworks)
- [SEO Checklist](https://nuxtseo.com/learn-seo/checklist)
- [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup)
- [Backlinks & Authority](https://nuxtseo.com/learn-seo/backlinks)

### [Tools](https://nuxtseo.com/tools "SEO Tools")

- [Social Share Debugger](https://nuxtseo.com/tools/social-share-debugger)
- [Robots.txt Generator](https://nuxtseo.com/tools/robots-txt-generator)
- [Meta Tag Checker](https://nuxtseo.com/tools/meta-tag-checker)
- [HTML to Markdown](https://nuxtseo.com/tools/html-to-markdown)
- [XML Sitemap Validator](https://nuxtseo.com/tools/xml-sitemap-validator)
- [Schema.org Validator](https://nuxtseo.com/tools/schema-validator)
- [Keyword Idea Generator](https://nuxtseo.com/tools/keyword-generator)
- [Keyword Research](https://nuxtseo.com/tools/keyword-research)
- [SERP Analyzer](https://nuxtseo.com/tools/serp-analyzer)
- [Domain Rankings](https://nuxtseo.com/tools/domain-rankings)

Copyright © 2023-2026 Harlan Wilton - [MIT License](https://github.com/harlan-zw/nuxt-seo/blob/main/license) · [mdream](https://mdream.dev)