# Gsc Indexing

> Build sitemap-based Google Search Console indexing queues, inspect URLs, request indexing until quota is hit, and update Google Sheets trackers across one or many verified properties.

- Skill: `dreamers-laboratory/gsc-indexing` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add dreamers-laboratory/gsc-indexing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dreamers-laboratory/gsc-indexing/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: dreamers-laboratory (https://skillmd.com/u/dreamers-laboratory)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/dreamers-laboratory/gsc-indexing

---


# Search Console Indexing

## Overview

Use this skill when continuing Google Search Console URL Inspection and indexing work for one property or a portfolio of properties. It keeps the workflow conservative but persistent: collect canonical trailing-slash sitemap URLs, skip already processed rows, identify fix-required cases, request indexing only when appropriate, and keep processing eligible URLs until GSC quota is hit or the queue is exhausted.

## Tracker

Ask the user which Google Sheet serves as the tracker for the run, and treat that sheet as the standing work log for queue rows, statuses, proof, and summaries.

## Required Rules

- Do not modify Search Console settings, site code, DNS, robots.txt, sitemaps, or CMS content.
- Every URL inspected or submitted must use the canonical trailing-slash form unless the user explicitly overrides that rule.
- Do not re-submit rows already marked `Indexing requested`, `Skipped`, `Already indexed`, `Fix required`, or `Intentional noindex`.
- Treat the Google Sheet as the only durable work log. Do not create local proof files, session reports, Markdown summaries, or `/tmp` tracking artifacts; write status, proof, and summaries into the tracker sheet only.
- Continue inspecting and requesting eligible URLs across the queue until either all eligible rows are resolved or GSC reports `Quota Exceeded`; do not stop after an arbitrary daily count or per-site batch size.
- Stop immediately when GSC reports `Quota Exceeded`; record that URL as `Quota Exceeded - not submitted` and make it the next resume point.
- Properties the user identifies as staging or intentionally noindexed are not indexing targets unless the user explicitly overrides.
- If inspection shows a site-side blocker such as noindex, robots block, redirect/canonical mismatch, soft 404, unauthorized, server error, or unavailable page, mark `Fix required` instead of requesting indexing.

## Workflow

1. Read `references/gsc-indexing-workflow.md` for the full checklist.
2. For multi-site work, build or refresh the queue with `scripts/collect_sitemaps.mjs` using stdout, then write the resulting queue into the Google Sheet.
3. Read the tracking Google Sheet before touching GSC. Use connector reads when available; use Chrome for UI edits when Drive/Sheets write scopes are unavailable.
4. Confirm 24 hours have passed since the last logged quota/throttle before submitting more request-indexing actions.
5. Use the Chrome skill for authenticated Search Console and Google Sheets UI work.
6. In GSC, select the correct property for the URL's site before each site queue.
7. Inspect each queued URL continuously until quota is hit or no eligible queued URLs remain:
   - `URL is on Google`: mark `Skipped` with note `Already indexed`.
   - Fix-required blocker: mark `Fix required` with the exact issue.
   - Otherwise click `Request Indexing`, wait for the dialog, and record the exact result.
   - `Quota Exceeded`: stop the whole run.
8. Return the complete updated table and a session summary, not only today's appended rows.

## Queue Columns

For portfolio work, use a sheet tab such as `All Sites Sitemap` with these columns:

`site | url | source_sitemap | canonical_trailing_slash | gsc_coverage_status | action | notes | last_checked`

For single-site daily indexing logs, keep the user's requested columns unless they specify otherwise:

`url | coverage_status | submission_result | notes`

## Script

Use the sitemap collector to create a deterministic queue:

```bash
node scripts/collect_sitemaps.mjs \
  --sites example.com,example.org \
  --exclude-host staging.example.com
```

The script fetches `https://<site>/sitemap.xml`, reads `robots.txt` sitemap directives, follows sitemap indexes recursively, deduplicates URLs, normalizes trailing slashes, and emits TSV rows to stdout when no output path is provided. Paste or import those rows into the Google Sheet; do not leave local queue files behind.

