---
title: "Set Up Google Search Console for Your Vue Site · Nuxt SEO"
canonical_url: "https://nuxtseo.com/learn-seo/vue/launch-and-listen/search-console"
last_updated: "2026-07-16T12:00:00.000Z"
meta:
  author: "Harlan Wilton"
  description: "Verify your Vue SPA in Google Search Console, submit your sitemap, and catch indexing problems that JavaScript rendering can hide."
  "og:description": "Verify your Vue SPA in Google Search Console, submit your sitemap, and catch indexing problems that JavaScript rendering can hide."
  "og:title": "Set Up Google Search Console for Your Vue Site · Nuxt SEO"
---

Nuxt SEO on GitHub

# **Set Up Google Search Console for Your Vue Site**

Verify your Vue SPA in Google Search Console, submit your sitemap, and catch indexing problems that JavaScript rendering can hide.

[Harlan Wilton](https://x.com/harlan-zw)10 mins read Published **Dec 17, 2025** Updated **Jul 16, 2026**

**What you'll learn**

- Use the Domain property, not URL-prefix, for complete tracking across subdomains
- DNS verification is the most reliable method; don't delete the TXT record after verification
- Submit your sitemap immediately after verification and check status in 24-48 hours
- Google counts an AI Overview as a single ranking position, so high impressions with low clicks there is normal

[**~~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 it: without Search Console, indexing problems go unnoticed until traffic already dropped.

## 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 the 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

Google needs proof you own the site. Pick one method and don't remove it: Google [**~~checks verification periodically~~**](https://support.google.com/webmasters/answer/9008080), and a removed record or file can silently drop you back to unverified.

### 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. [**~~Domain property verification covers every subdomain and protocol together~~**](https://support.google.com/webmasters/answer/9008080), so switching between `**www**` and non-`**www**` URLs doesn't require re-verifying.

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

### HTML Meta Tag

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

app.vue

```ts
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) to confirm. [**~~SPA sites need SSR or prerendering~~**](https://developers.google.com/search/docs/crawling-indexing/javascript/javascript-seo-basics) for this to work, since Google's verifier fetches the raw HTML response rather than rendering it.

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

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

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 method needs no code changes if analytics is already installed; see Google's [**~~verification methods overview~~**](https://support.google.com/webmasters/answer/9008080) for the full list.

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

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

### Performance Report

Shows search data for both traditional search and AI features, retaining 16 months of history:

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

**AI Overviews:** if your URL appears in an AI Overview, it counts as a regular organic impression. Google [**~~counts an AI Overview as a single ranking position~~**](https://support.google.com/webmasters/answer/7042828): every link inside the block shares that same position, and it only counts as an impression once it's scrolled or expanded into view.

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: they rank well but have poor titles or descriptions. Fix the meta tags and watch CTR climb. [**~~Ahrefs' analysis of AI Overviews~~**](https://ahrefs.com/blog/the-great-decoupling/) found a 34.5% average CTR reduction on queries where one appears, so a low-CTR page might be losing clicks to an AI Overview rather than to a weak title.

The Performance report's UI [**~~caps results at 1,000 rows~~**](https://support.google.com/webmasters/answer/12919797) per query. [**~~Nuxt SEO Pro~~**](https://nuxtseo.com/pro) pulls your full query and indexing history and monitors it continuously across every site you manage.

**AI-Powered Configuration (Experimental):** [**~~Rolled out in December 2025~~**](https://developers.google.com/search/blog/2025/12/ai-powered-configuration) and still expanding to more properties, this tool lets you filter the Performance report with natural language. Example: *"Show me all pages that got AI Overview impressions on mobile last week"* configures the correct filters automatically.

### 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". Check this report for sudden drops in the Indexed count; they usually point to a crawl or content-quality problem worth investigating.

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

[**~~Formerly the Shopping tab listings report~~**](https://searchengineland.com/google-search-console-updates-its-merchant-opportunities-report-454123), renamed and expanded in 2025. If you sell products, this report matters. 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, such as 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

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. Google enforces a daily quota but has never published the exact number; save requests for new or updated critical pages.

The rendered screenshot is gold for debugging SPA issues: a blank page or a stuck loading spinner means Google couldn't execute your JavaScript properly.

## Common Actions

### Request Indexing

After publishing new content:

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

Google [**~~says crawling can take a few days to a few weeks~~**](https://developers.google.com/search/docs/crawling-indexing/ask-google-to-recrawl); requesting indexing doesn't guarantee it or speed it up, and Google still evaluates quality before indexing.

### 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 a 404/410 status or add a `**noindex**` meta tag, then request removal.

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

**Page Indexing report looks frozen:**

Google's reporting pipeline fell about two weeks behind for roughly a month between November and December 2025; [**~~Search Engine Land covered the delay~~**](https://searchengineland.com/google-search-console-index-coverage-report-delayed-465464) and the [**~~fix that followed~~**](https://searchengineland.com/google-fixed-month-long-delay-with-page-indexing-report-466419). Google confirmed crawling and indexing kept working the whole time, only the report lagged. If a report ever looks stale again, trust URL Inspection on individual pages over the aggregate.

**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)
- Weak E-E-A-T signals

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.

## Bing Webmaster Tools

[**~~Bing Webmaster Tools~~**](https://www.bing.com/webmasters) serves a similar purpose to Google Search Console for Bing, Yahoo, and DuckDuckGo search. Setup takes about 2 minutes because you can import your existing Google Search Console configuration directly.

Bing holds [**~~roughly 10-15% of US desktop search~~**](https://gs.statcounter.com/search-engine-market-share/desktop/united-states-of-america) depending on the month, and powers DuckDuckGo results. For B2B sites where users are on corporate desktops, that share is significant. Bing also [**~~captures the large majority of console search queries~~**](https://gs.statcounter.com/search-engine-market-share/console/united-states-of-america), since it's the default engine on Xbox.

Bing Webmaster Tools is also the gateway to [**~~IndexNow~~**](https://nuxtseo.com/learn-seo/vue/launch-and-listen/indexnow), which pushes instant indexing notifications to Bing, Yandex, Seznam, and Naver instead of waiting for them to recrawl your sitemap.

[**~~Bing Webmaster Tools shipped an AI Performance report~~**](https://searchengineland.com/bing-webmaster-tools-ai-performance-report-468751) in February 2026, showing how often your content gets cited in Microsoft Copilot and Bing's AI summaries: total citations, cited pages, and the queries that triggered them. Google Search Console shows AI Overview impressions but no citation counts, so pairing the two gives a fuller picture of your AI visibility.

## Checklist

**Checklist**

- Search Console property verified, ideally the Domain property via DNS
- Verification tag or file confirmed present in raw HTML source, not just after hydration
- Sitemap submitted and showing a "Success" status
- Critical pages checked with URL Inspection after publishing
- Performance report checked for AI Overview impressions
- Bing Webmaster Tools set up alongside Google Search Console

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

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

---

### **Related **

[**Going Live**](https://nuxtseo.com/learn-seo/vue/launch-and-listen/going-live)

[**XML Sitemaps**](https://nuxtseo.com/learn-seo/vue/controlling-crawlers/sitemaps)

[**Getting Indexed** Submit your sitemap, request indexing, and fix Core Web Vitals so Google finds and ranks your Vue site fast.](https://nuxtseo.com/learn-seo/vue/launch-and-listen/going-live) [**Core Web Vitals** Fix LCP, INP, and CLS in a Vue app with SSR over pure CSR, debouncing, and main-thread yielding, plus the RUM setup that catches regressions.](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)
- [Bing Webmaster Tools](#bing-webmaster-tools)
- [Checklist](#checklist)