How to Get Your Vue Site Indexed
- 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:
- Use SSR with Vite SSR or Nuxt
- Pre-render critical pages at build time
- Set meta tags before hydration using Unhead
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:
- Visit search.google.com/search-console
- Add your property (domain property recommended)
- Use DNS for a Domain property; follow an offered method for a URL-prefix property
- 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:
- Open URL Inspection in Search Console
- Enter your URL
- 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.
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:
| 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 |
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:
- Missing meta descriptions
- Images without alt text
- Missing lang attribute
- Low contrast text
- Non-crawlable links
Use Unlighthouse to audit your entire site in bulk.
Build Initial Backlinks
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/vuewith 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
- Google may not have rendered the JavaScript yet
- Inspect tested HTML from a successful URL Inspection live test; read stored indexing information separately
- Consider SSR or prerendering
- See 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 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
- Check Search Console weekly for errors
- Watch the Generative AI performance report for AI impressions, not citation counts
- Monitor Core Web Vitals in field data
- Track organic traffic with SEO monitoring tools
- Keep publishing content and building backlinks
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 →