Set Up Google Search Console for Your Vue Site · 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. [Search Console](https://nuxtseo.com/learn-seo/vue/launch-and-listen/search-console)

# Set Up Google Search Console for Your Vue Site

Verify ownership, submit sitemaps, and monitor indexing status using Google Search Console.

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

What you'll learn

- Use Domain property (not URL-prefix) for complete tracking across subdomains
- DNS verification is most reliable; don't delete the TXT record after verification
- Submit sitemap immediately after verification and check status in 24-48 hours

[Google Search Console](https://search.google.com/search-console) shows which pages Google indexed, what queries bring traffic, and what's broken. Every site needs this. without it you're blind to [80% of indexing issues](https://developers.google.com/search/docs/monitor-debug/search-console-start).

## [Create a Search Console Property](#create-a-search-console-property)

Visit [search.google.com/search-console](https://search.google.com/search-console) and add a property. You get two types:

**Domain property** (`example.com`):

- Includes all subdomains (`www`, `m`, `blog`)
- Covers both HTTP and HTTPS
- Requires DNS verification only

**URL-prefix property** (`https://example.com`):

- Single protocol and subdomain
- Multiple verification methods
- Better for subsections or testing

[Use Domain property](https://support.google.com/webmasters/answer/9008080) unless you only control a subdomain. It captures all traffic variations without managing separate properties.

## [Verification Methods](#verification-methods)

Google needs proof you own the site. Pick one method and don't remove it. Google [checks verification periodically](https://www.bluehost.com/blog/verify-website-ownership-google-search-console/).

### [DNS Verification (Recommended)](#dns-verification-recommended)

Add a TXT record to your domain's DNS settings. This is the only method for Domain properties and the most reliable overall.

**Steps:**

1. Google provides a TXT record like `google-site-verification=abc123xyz`
2. Add it to your DNS at your registrar (GoDaddy, Namecheap, [Cloudflare](https://cloudflare.com), etc.)
3. Click **Verify** in Search Console

DNS changes take up to 48 hours but verification works immediately once the record propagates. This method [eliminates re-verification](https://kinsta.com/blog/google-site-verification/) if you switch between `www` and non-`www` URLs.

Cloudflare DNS

Route 53 DNS

```
Type: TXT
Name: @
Content: google-site-verification=abc123xyz
TTL: Auto
```

```
Record type: TXT
Name: example.com
Value: "google-site-verification=abc123xyz"
TTL: 300
```

### [HTML Meta Tag](#html-meta-tag)

Add a `<meta>` tag to your site's homepage `<head>`. Works for URL-prefix properties.

app.vue

```
import { useHead } from '@unhead/vue'

useHead({
  meta: [
    { name: 'google-site-verification', content: 'abc123xyz' }
  ]
})
```

The tag must appear in the HTML source before hydration. check with **View Page Source** (not DevTools). [SPA sites need SSR or pre-rendering](https://www.seozoom.com/google-website-verification/) for this to work since Google checks the initial HTML response.

Common issue: If you use a layout component for the tag, make sure it renders on every page including the homepage.

### [HTML File Upload](#html-file-upload)

Upload `google-site-verification.html` to your site's root directory. Works for URL-prefix properties.

**Steps:**

1. Download the verification file from Search Console
2. Place it in your `public/` directory (Vite/Vue CLI) or static root
3. Verify it loads at `https://example.com/google-site-verification.html`
4. Click **Verify** in Search Console

Don't delete this file after verification. Google re-checks it.

### [Google Analytics](#google-analytics)

If you already use Google Analytics with the GA4 tracking code on your homepage, Search Console can verify via that tag.

**Requirements:**

- GA4 property set up
- Tracking code in `<head>` section
- You have "Edit" permission on the GA4 property

[This is the fastest method](https://medium.com/@makarenko.roman121/how-do-you-verify-a-site-in-google-search-console-e0d179eb4ce9) if you already have analytics. no code changes needed.

### [Google Tag Manager](#google-tag-manager)

Same concept as Google Analytics. If you have GTM installed and publishing, Search Console auto-detects it for verification.

**Requirements:**

- GTM container installed on homepage
- You have "Publish" permission on the container

## [Submit Your Sitemap](#submit-your-sitemap)

After verification, tell Google where to find your pages:

1. Navigate to **Sitemaps** under **Indexing**
2. Enter your sitemap URL: `https://example.com/sitemap.xml`
3. Click **Submit**

Status meanings:

- **Success**. sitemap parsed, URLs discovered
- **Couldn't fetch**. URL wrong or [blocked by robots.txt](https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap)
- **Pending**. processing in queue

Check back in 24-48 hours for discovered page counts. If Google found 0 URLs but your sitemap has URLs, your XML syntax is broken or the URLs return non-200 status codes.

You can [reference your sitemap in robots.txt](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/robots-txt) as an alternative submission method. Google auto-discovers it when crawling.

## [Key Reports Explained](#key-reports-explained)

### [Performance Report](#performance-report)

Shows the last 16 months of search data:

**Metrics:**

- **Impressions**. how many times your pages appeared in search results
- **Clicks**. how many users clicked through
- **CTR (Click-Through Rate)**. clicks ÷ impressions
- **Position**. average ranking position (lower is better)

**Note on AI Overviews**: If your URL appears in an AI Overview (like Gemini's summary), it counts as a regular organic impression. Google counts the AI Overview block as a single ranking position.

Filter by:

- **Queries**. what terms triggered your pages
- **Pages**. which URLs get the most traffic
- **Countries**. geographic breakdown
- **Devices**. mobile vs desktop vs tablet

Use this to find [low-CTR pages with high impressions](https://ahrefs.com/blog/google-search-console-ctr/). they rank well but have poor titles or descriptions. Fix the meta tags and watch CTR climb.

### [Page Indexing Report](#page-indexing-report)

Replaced the old Coverage report. Shows indexing status for all discovered URLs:

**Categories:**

- **Indexed**. pages in Google's index
- **Not indexed**. pages excluded or rejected
- **Crawled - currently not indexed**. pages Google saw but chose not to index

Click any category to see specific reasons like "Duplicate content", "Soft 404", or "Crawled but not indexed". The [June 2025 core update](https://searchengineland.com/google-june-2025-core-update-is-now-rolling-out-443764) aggressively deindexed low-quality pages. this report shows the damage.

Common issues for Vue sites:

- **Page not found (404)**. sitemap lists URLs that don't exist
- **Soft 404**. page returns 200 but contains "not found" content
- **Redirect**. sitemap lists old URLs that redirect to new ones
- **Blocked by robots.txt**. you accidentally blocked indexable pages

### [Merchant Opportunities Report](#merchant-opportunities-report)

_Formerly "Shopping tab listings"_. If you sell products, this report is critical. It shows:

- **Product snippets**: Issues with structured data for standard search results.
- **Merchant listings**: Eligibility for expanded experiences (Price drop, Shipping info).
- **Opportunities**: Recommendations to improve visibility (e.g., adding return policies).

You don't need a Merchant Center account to be eligible for basic merchant listings, valid `Product` structured data.

### [URL Inspection Tool](#url-inspection-tool)

Enter any URL to see:

- Whether it's indexed
- When Google last crawled it
- Rendered HTML (what Googlebot saw after executing JavaScript)
- Screenshot of the rendered page
- Coverage errors or warnings
- Mobile usability issues
- Structured data found

Click **Request Indexing** to ask Google to crawl the URL immediately. You get [~10 requests per day](https://support.google.com/webmasters/answer/9012289). use them for new or updated critical pages.

The rendered screenshot is gold for debugging SPA issues. if it's blank or shows loading spinners, Google couldn't execute your JavaScript properly.

## [Common Actions](#common-actions)

### [Request Indexing](#request-indexing)

After publishing new content:

1. Open **URL Inspection** tool
2. Enter the new URL
3. Click **Request Indexing**

[Google typically crawls within hours](https://developers.google.com/search/docs/monitor-debug/search-console-start) but sometimes takes days. Requesting indexing doesn't guarantee it. Google still evaluates quality.

### [Remove URLs Temporarily](#remove-urls-temporarily)

Need to hide a URL from search results quickly?

1. Navigate to **Removals** under **Indexing**
2. Click **New Request**
3. Enter the URL
4. Choose removal type

Removals last [approximately 6 months](https://support.google.com/webmasters/answer/9689846). For permanent removal, return 404/410 status or add `noindex` meta tag, then request removal.

### [Security Issues](#security-issues)

If Google detects malware or hacking, you'll see alerts in Search Console. Fix the issue first (remove malware, update plugins, patch vulnerabilities), then request a security review under **Security Issues**.

Ignore these warnings and Google may deindex your entire site to protect users.

## [Common Search Console Issues](#common-search-console-issues)

**"Index Coverage report delayed since Nov 2025":**

[This is a known bug](https://www.seroundtable.com/google-search-console-indexing-report-delayed-39045.html). Google confirmed it's a reporting issue only. actual crawling and indexing still work. Use the URL Inspection tool for real-time checks on individual pages.

**Sitemap shows "Discovered - currently not indexed":**

Google found the URLs but chose not to index them. Reasons include:

- Low quality content
- Duplicate content
- Thin content (under 300 words)
- E-E-A-T signals too weak ([June 2025 update issue](https://searchengineland.com/google-june-2025-core-update-is-now-rolling-out-443764))

Fix content quality issues before re-submitting. Don't spam "Request Indexing". it doesn't override quality filters.

**Verification suddenly fails:**

You accidentally removed the verification method. Common causes:

- Deleted DNS record during domain migration
- Removed meta tag when refactoring `<head>` tags
- Deleted HTML verification file during deploy
- Lost GTM/GA permissions

Re-verify using the original method.

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

If you're using Nuxt, check out the [Nuxt Search Console guide](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen/search-console) which covers automated sitemap generation, robots.txt, and OG images.

[Learn more about Search Console in Nuxt →](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen)

[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)

---

[Getting Indexed How to get your Vue site crawled and indexed for the first time by Google.](https://nuxtseo.com/learn-seo/vue/launch-and-listen/going-live) [Core Web Vitals Measure and optimize LCP, INP, and CLS in Vue apps to improve user experience and search rankings.](https://nuxtseo.com/learn-seo/vue/launch-and-listen/core-web-vitals)

On this page

- [Create a Search Console Property](#create-a-search-console-property)
- [Verification Methods](#verification-methods)
- [Submit Your Sitemap](#submit-your-sitemap)
- [Key Reports Explained](#key-reports-explained)
- [Common Actions](#common-actions)
- [Common Search Console Issues](#common-search-console-issues)
- [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 "Nuxt SEO Pro")

- [Getting Started](https://nuxtseo.com/pro)
- [Dashboard](https://nuxtseo.com/pro/dashboard)
- [Pro MCP](https://nuxtseo.com/pro/docs/getting-started/mcp-setup)

### [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)