SEO/GEO measurement - 1 July 2026
SEO/GEO visibility metrics
The Visa Atlas SEO/GEO measurement contract: how we separate Google organic traffic, AI citation share, crawler access, freshness, index quality and technical trust gates.
This is a measurement contract, not a live analytics dashboard. It defines the evidence used to judge whether Visa Atlas is becoming easier to find through Google search, AI answers, public datasets and crawler-visible trust surfaces.
500,000
Monthly visit target
390,000-600,000
Planning range
9
Tracked metrics
7
Instrumented now
Measurement principles
- Separate Google organic traffic, AI referrals, AI answer citations and crawler access.
- Use server logs for crawler access because client-side analytics cannot see crawler fetches.
- Use a fixed benchmark basket for citation share so month-to-month movement is comparable.
- Use rendered audits, not only source checks, because crawlers consume built HTML and JSON.
- Keep private analytics private; publish the measurement contract and public evidence surfaces.
This is a planning model, not a current traffic claim. The target depends on earned authority, original datasets, citation share, and clean index quality.
Metrics
geo - instrumented
AI/search crawler access
crawler-accessGA4 cannot see crawler fetches. Server logs are the only honest way to separate crawler access from referral traffic.
- Target
- Known search and AI crawler user agents are allowed and visible in server logs when they crawl.
- Cadence
- Monthly and after robots, middleware, CDN or hosting changes.
Evidence surfaces
Commands
npm run seo:botlog -- logs.txtnpm run seo:botlog -- logs.txt --json
Caveats
- Gemini training crawls can appear as Googlebot; Google-Extended is a robots token, not a user-agent.
- User-agent strings can be spoofed, so log classification is directional rather than forensic proof.
trust - instrumented
Source freshness
source-freshnessFreshness is the core wedge against stale immigration blogs and model training cutoffs.
- Target
- Zero stale or invalid dated source records in the public freshness report.
- Cadence
- Every build and before publishing major research or policy-change assets.
Evidence surfaces
Commands
npm run audit:stalenpm run audit:freshness
Caveats
- A stale record does not prove the government fact is wrong; it means the Visa Atlas review date exceeded the public SLA.
- High-risk legal and fee changes still require source verification before publication.
geo - instrumented
Open-data discoverability
open-data-discoverabilityThe site wins by being the reusable source layer that journalists, researchers and answer engines can cite.
- Target
- Every public data asset is listed in /data, /api/public, Dataset JSON-LD and LLM discovery files.
- Cadence
- Every build and whenever a public endpoint is added.
Evidence surfaces
Commands
npm run audit:data-front-doornpm run audit:data-citation
Caveats
- Open data helps competitors only if they can match freshness and provenance; attribution turns reuse into entity signals.
- A dataset is included only when its source chain and reuse terms are visible.
technical - instrumented
Rendered SEO/GEO surface
rendered-seo-surfaceSource-template checks are not enough; crawlers and AI retrievers consume the static HTML and JSON produced by the build.
- Target
- Representative built pages expose canonical URLs, Article/Dataset schema, citations, source dates and no misleading ClaimReview.
- Cadence
- Every production build.
Evidence surfaces
Commands
NEXT_PUBLIC_SITE_URL=https://visaatlas.org npm run buildnpm run audit:rendered-seo
Caveats
- The rendered audit checks representative artifacts; broad source audits cover the rest of the templates.
- The audit is a regression gate, not a ranking guarantee.
seo - instrumented
Index quality and thin-page control
index-qualityThe 500k/month target depends on a clean index; thin permutations can suppress genuinely useful pages.
- Target
- No known thin page classes indexed without unique sourced value.
- Cadence
- Every build and before adding new programmatic page cohorts.
Evidence surfaces
Commands
npm run audit:thinnpm run audit:noindexnpm run audit:longtail-provenance
Caveats
- A noindex guard is a trust-preserving choice when unique sourced value is not available.
- Re-expansion should be earned by adding verified corridor, profession or comparison data.
trust - instrumented
Competitor wedge proof
competitor-wedge-proofA Big4-style review should be able to inspect the competitor/wedge claim without relying on private strategy notes.
- Target
- The public positioning claim is backed by a reusable sampled benchmark with explicit caveats.
- Cadence
- Quarterly, or whenever major competitor surfaces materially change.
Evidence surfaces
Commands
npm run audit:source-transparencynpm run audit:trust-surface
Caveats
- The benchmark is a public-surface sample, not a full forensic audit of competitors.
- Not-observed means the feature was not visible in sampled public pages.
seo - partially instrumented
GSC cohort reporting
gsc-cohort-reportingA site can grow impressions while losing CTR. Cohort reporting separates ranking, clickability and index-quality effects.
- Target
- Track clicks, impressions, CTR and average position by page cohort: calculators, data, research, core route reference pages, corridors, professions and comparisons.
- Cadence
- Monthly from a Search Console Pages export, and after major page-cohort launches.
Evidence surfaces
Commands
npm run seo:gsc-cohorts -- gsc-pages.csvnpm run seo:gsc-cohorts -- gsc-pages.csv --json
Caveats
- Runs locally on a user-supplied Search Console export; no private analytics are exposed in this public contract.
- Stable-rank CTR should be analysed separately from rank movement.
geo - partially instrumented
AI referral attribution
ai-referral-attributionAI visibility can improve before referral clicks arrive, and clicks can fall when answer engines cite the site directly.
- Target
- Separate AI crawler access, AI answer citations and AI referral sessions instead of treating them as one metric.
- Cadence
- Monthly.
Evidence surfaces
Commands
npm run kpi:citation-sharenpm run seo:botlog -- logs.txt --json
Caveats
- Referral-session reporting depends on analytics configuration and is not published in this public dataset.
- Crawler logs and citation-share logs are complementary, not interchangeable.
Cohorts
| Cohort | Purpose | Representative paths | Primary KPIs |
|---|---|---|---|
| Calculators and tools | High-intent user tasks where a click remains valuable because the answer is profile-specific. | ||
| Data reference pages | Citable fee, salary, processing, cost and freshness surfaces that answer engines can lift safely. | ||
| Original research and benchmarks | Press, citation and backlink assets computed from the verified data layer. | ||
| Long-tail route, corridor, profession and comparison pages | Indexable long-tail demand only where each page carries unique source-backed value. | ||
| Core visa, country and policy reference pages | Primary evergreen immigration routes and policy pages where search demand is broad and source accuracy matters. |
Cite or reuse this dataset
This measurement contract is free to reuse under CC BY 4.0. It defines KPI methodology and public evidence surfaces; it does not expose private analytics or claim current traffic.
Suggested citation
Visa Atlas, "Visa Atlas SEO/GEO visibility measurement contract", https://visaatlas.org/visibility-metrics. Last verified 1 July 2026.
- JSON endpoint
- https://visaatlas.org/api/public/visibility-metrics