SearchAnalysis.io: URL submission and indexing monitoring
SearchAnalysis.io is a Google-first platform for teams who need a tighter feedback loop between publishing and indexing. Connect Google Search Console, submit URLs via the Indexing API, and monitor URL Inspection results in one place.
Feature terms and definitions
These terms match how the product is implemented inside the dashboard and API. Understanding them makes the rest of this page (and the UI) unambiguous.
- Property (Site)
- A website you manage inside SearchAnalysis.io. Properties organize submissions, determine which OAuth token is used, and provide context for monitoring.
Related: Domain, URL, Ownership
- Google Search Console (GSC)
- Google’s official platform for verifying site ownership, reading sitemaps, and running URL Inspection. SearchAnalysis.io connects to GSC via OAuth.
Related: OAuth, GSC property URL, URL Inspection
- GSC Property URL
- The exact Search Console property identifier you select (for example, a Domain property like sc-domain:example.com, or a URL-prefix property like https://example.com/).
Related: Domain property, URL-prefix property
- OAuth connection
- A secure authorization grant that allows SearchAnalysis.io to call Google APIs on your behalf. Tokens are stored encrypted and scoped to a specific Property.
Related: Scopes, Encryption
- Indexing submission
- A request to Google’s Indexing API notifying Google about a URL update. This can speed up discovery for eligible content types, but indexing is never guaranteed.
Related: Google Indexing API, Engine status
- URL Inspection
- A Google Search Console API that returns what Google currently knows about a specific URL (verdict, coverage state, canonical, robots status, and more).
Related: Inspection verdict, Coverage state
- Submission
- A single URL you’ve imported or submitted for a Property. Submissions are tracked over time and can have multiple per-engine statuses.
Related: Batch, EngineStatus
- Engine status (EngineStatus)
- A per-search-engine status record for a Submission (for example, Google Indexing submission status and Google Search Console inspection status).
Related: PENDING, QUEUED, SUBMITTED, INDEXED, FAILED
- Batch
- A group of submissions created together (CSV upload, sitemap import, or GSC sitemap import). Batches help you track large operations as one unit.
- Credits
- Usage units that control how many URLs you can submit/import. Each URL consumed typically costs 1 credit (plans determine balances and resets).
Related: Plans, Rate limits
- Queue + worker
- Background processing that performs submissions and monitoring asynchronously (so the UI stays fast). Redis powers the queue; workers submit and re-check URLs.
Related: Redis, BullMQ
- Retry schedule
- When an inspection is not ready (or indexing is still pending), SearchAnalysis.io automatically schedules re-checks with backoff (minutes → hours → day).
Related: Monitoring attempts, nextRetryAt
How SearchAnalysis.io works (end-to-end)
SearchAnalysis.io is built around a single goal: reduce the time between “published” and “I know what Google thinks about this URL.” The product achieves this by combining URL intake, Google submission, and repeated inspection monitoring.
Full feature set
This section describes the product as it exists in the current codebase: what the UI exposes, what the API enforces, and what the background workers do.
Search engine integrations
SearchAnalysis.io is Google-first. The data model also includes engine slots for Bing, Yandex, and Seznam to support future multi-engine expansion.
| Engine | Status | What it does |
|---|---|---|
| Google Indexing API | Live | Submits URL notifications (background worker) and records submission outcome. |
| Google Search Console (URL Inspection) | Live | Runs inspections, stores verdict/coverage/robots/canonical details, and schedules re-checks. |
| Bing | Planned | Engine slot exists in the data model; integration is not yet shipped. |
| Yandex | Planned | Engine slot exists in the data model; integration is not yet shipped. |
| Seznam | Planned | Engine slot exists in the data model; integration is not yet shipped. |
URL intake (submission + import)
The Submit experience supports multiple ingestion paths so you can match your workflow—single URL, bulk paste, CSV, sitemap URL, or Search Console sitemap import.
- Single URL: submit one URL for a selected Property.
- Bulk list: paste many URLs at once; invalid URLs are rejected.
- CSV upload: upload a file with URLs; SearchAnalysis.io creates a batch and tracks status per URL.
- XML sitemap import:provide a sitemap URL; the system parses and imports discovered URLs.
- GSC sitemap import:choose from sitemaps discovered in your connected Search Console property.
Account, plans, and credits
Accounts are authenticated with Clerk. A database-backed user record tracks your plan tier and credits. Credits are deducted when you create submissions via any intake method.
- Live credits display in the dashboard header.
- Plan tiers exist in the data model (Free → Enterprise) to support future plan-based limits and reset schedules.
- Invite codes and waitlist tables exist to support controlled beta access.
Product areas (what you can do in the app)
SearchAnalysis.io is implemented as a focused set of dashboard screens. Everything described on this page maps to one of the areas below.
| Area | Status | What it’s for |
|---|---|---|
| Dashboard | Live | At-a-glance stats (total, indexed, pending, failed) plus a “Quick Start” card that adapts to your setup state. |
| Sites | Live | Create and manage Properties (sites), see submission counts, and track GSC connection status. |
| Site Settings | Live | Connect Google, select your GSC property URL, import sitemap URLs from GSC, toggle auto-sync (where available), and follow the guided setup checklist. |
| Submit | Live | Submit a single URL or submit/import in bulk (list, CSV, sitemap URL) for the selected Property. |
| Monitor | Live | The canonical view of submissions + per-engine status, including stored URL Inspection summaries. |
| Rules (automation) | Planned | UI placeholder exists; rule configuration and execution UI is not yet shipped. |
| Settings | Planned | Account settings UI placeholder exists; richer settings are not yet shipped. |
| Admin | Partial | Admin area scaffolding exists with placeholder metrics and system status; more admin tools are expected as the product grows. |
Extensibility and planned capabilities
The codebase includes data models for future expansion. These items should only be marketed as “shipped” when end users can actually use them.
- Automation rules: schema exists, dashboard entry exists, configuration UI is planned.
- API keys: schema exists to support programmatic submission and monitoring.
- Additional engines: Bing, Yandex, and Seznam are represented in the `SearchEngine` enum.
Monitoring, statuses, and inspection details
“Submitted” is not the same as “indexed.” SearchAnalysis.io tracks both submission activity and Google’s reported understanding of a URL.
Every Submission gets multiple engine statuses (at minimum: Google Indexing and Google Search Console). This makes it clear whether an issue is in submission, monitoring, or URL-specific indexing rules.
Statuses are visible in the Monitor page, and the UI highlights key inspection fields like verdict and coverage state.
Indexing is asynchronous. SearchAnalysis.io schedules multiple inspection attempts with backoff (minutes → hours → day) and stops after a defined number of attempts.
This is designed to give you a stable “time to clarity” metric without manual rechecking.
SearchAnalysis.io stores an inspection payload summary alongside the engine status to support monitoring UX and future analytics.
- Verdict (overall indexing verdict)
- Coverage state
- Robots.txt state
- Canonical (user-declared and Google-selected)
- Last crawl time (when available)
Security, reliability, and correctness
SearchAnalysis.io is built around official APIs, strict property scoping, and background execution. This section covers the guarantees the system makes (and the limits it respects).
Frequently asked questions
Does SearchAnalysis.io guarantee Google indexing?
No. SearchAnalysis.io submits and monitors using official Google APIs, but Google ultimately decides if/when a URL is indexed. The product is built to increase visibility and shorten feedback loops by combining submission + inspection monitoring.
Why do I need to select a Google Search Console property?
URL Inspection and sitemap discovery require a specific Search Console property context. Selecting the correct property ensures ownership, correct scope, and accurate inspection results.
What is the difference between Google Indexing and Google Search Console status?
Google Indexing status represents the submission pipeline (queued/submitted/failed). Google Search Console status represents monitoring results from the URL Inspection API (verdict, coverage state, robots, canonical, etc.). Both are tracked per URL.
Can I import URLs instead of pasting them one by one?
Yes. You can paste a bulk list, upload a CSV, import an XML sitemap URL, or import from sitemaps discovered in Google Search Console.
What happens after I submit/import URLs?
SearchAnalysis.io creates per-engine statuses for each URL, enqueues background jobs, submits to the Indexing API, then performs URL Inspection checks over time. You can view everything in Monitor.
Start submitting and monitoring URLs
If you manage multiple sites, publish frequently, or need faster indexing feedback, SearchAnalysis.io is built for you.