Original research - 6 July 2026
SEO/GEO Release Gate Contract 2026
Audit-ready release gate for shipping Visa Atlas SEO/GEO changes: compile, source audits, freshness, optional liveness, production build, rendered crawler output, outcome-claim boundaries and private-evidence proof controls.
This is deploy governance and audit evidence for SEO/GEO changes. It is not a ranking, traffic, backlink, AI-citation, market-share or 500k/month outcome claim.
8
Gate checks
7
Required offline checks
1
Network sign-off check
500,000
Planning target context
Release commands
npm run audit:seo-geonpm run audit:seo-geo -- --include-livenessDo not deploy growth-facing SEO/GEO changes, or publish ranking, traffic, backlink, AI-visibility, reviewer-trust, market-share or 500k/month claims, unless the matching required gate has passed and any private evidence used for a public claim has reviewed approval metadata.
Gate checks
compile - required
TypeScript app/runtime compile
Order 1
npm run typecheckProves
- Application and route-handler TypeScript compile without shipping-time type regressions.
- Generated Next types are compatible with the current source tree.
Failure blocks
- Any SEO/GEO release, public dataset update, MCP tool update or rendered-surface deployment.
Source surfaces and boundaries
Source surfaces
tsconfig.jsonsrc/**.next/types/**
Private evidence boundary
No private evidence is read; this is a local compile gate.
Caveats
- Script files are exercised by the audit commands they define rather than the app compile gate.
source-audit - required
Source/template SEO-GEO audits
Order 2
npm run audit:allProves
- Public data, AI retrieval, competitor, content, page-action, measurement, proof-gate and trust surfaces stay wired.
- Outcome-claim boundaries remain blocked unless their matching proof gates have reviewed evidence.
- The 500k/month traffic runway reconciles to battlecards, target pages, production tickets and search-demand actions.
Failure blocks
- Growth-facing deploys and any public SEO/GEO outcome claim.
Source surfaces and boundaries
Source surfaces
scripts/audit-*.ts- /api/public
- /data
- /ai-agents
- /llms.txt
- /llms-full.txt
- /mcp
Private evidence boundary
Raw Search Console exports, analytics exports, server logs, source-refresh liveness output, AI answer transcripts, screenshots, reviewer notes and third-party publication evidence stay local unless separately reviewed, redacted and approved for publication.
Caveats
- Source audits prove wiring and fail-closed logic; they do not prove external adoption or live traffic outcomes.
freshness - required
Freshness SLA audit
Order 3
npm run audit:staleProves
- Dated public immigration facts remain inside their freshness SLA thresholds before release.
Failure blocks
- Any release that would publish stale government fees, thresholds, processing times or policy facts.
Source surfaces and boundaries
Source surfaces
- /freshness
- /api/public/freshness
src/data/**
Private evidence boundary
No private evidence is read; source review dates and public data records are checked locally.
Caveats
- The check proves local freshness metadata, not live government-source availability.
network-liveness - optional-network
Government source liveness audit
Order 4
npm run audit:seo-geo -- --include-liveness --liveness-timeout=8000 --liveness-concurrency=30 --liveness-progress=250 --liveness-out=.tmp/seo-geo-liveness-report.jsonProves
- Release sign-off can include live source reachability without committing raw liveness output.
- Inconclusive live checks are separated from deterministic source/template gates.
Failure blocks
- Source-refresh sign-off when live government-source probing is required.
Source surfaces and boundaries
Source surfaces
scripts/audit-liveness.ts.tmp/seo-geo-liveness-report.json
Private evidence boundary
Network probe output and source-refresh notes stay in .tmp or another local evidence path unless reviewed.
Caveats
- This step can be skipped for offline code-only changes; it requires network access and may be affected by government WAFs.
build - required
Production build
Order 5
NEXT_PUBLIC_SITE_URL=https://visaatlas.org NODE_OPTIONS=--max-old-space-size=8192 npm run buildProves
- The production Next.js app renders with the canonical site URL used for JSON-LD, canonical links and OpenGraph URLs.
- Static pages, public feeds and route handlers can be generated for deployment.
Failure blocks
- Any deploy to production.
Source surfaces and boundaries
Source surfaces
next.config.ts.next/server/app.next/build-manifest.json.next/app-build-manifest.json
Private evidence boundary
Build artifacts are local generated output; no private analytics, GSC or source-refresh evidence is read.
Caveats
- Static-generation retries are warnings when the final build exits successfully; failed builds block release.
rendered-audit - required
Post-build rendered SEO/GEO and performance artifact audits
Order 6
npm run audit:postbuildProves
- Rendered crawler-facing pages, JSON feeds, LLM indexes, data citation surfaces and MCP discovery text are present after build.
- Representative JS, CSS, rendered HTML and public feed payload budgets remain inside explicit thresholds.
Failure blocks
- Any deploy that changes discovery, crawlability, public datasets, LLM indexes or data-heavy pages.
Source surfaces and boundaries
Source surfaces
.next/server/app.next/static/chunks.next/build-manifest.json.next/app-build-manifest.jsonscripts/audit-rendered-seo-surface.tsscripts/audit-build-performance-budgets.ts
Private evidence boundary
Rendered output is public build output; private evidence must not appear in public artifacts.
Caveats
- Rendered audits prove current build artifacts, not production traffic or third-party indexing.
claim-boundary - required
Public outcome-claim boundary audit
Order 7
npm run audit:traffic-outcome-proof && npm run audit:public-outcome-claims && npm run audit:release-gateProves
- Traffic, ranking, backlink, AI-visibility, reviewer-trust and market-share claims stay blocked without reviewed proof files.
- The release gate remains documented and wired into visibility metrics and OpenAPI discovery.
Failure blocks
- Any public claim of 500k/month traffic, dominance, market share, rankings, AI visibility, backlinks or reviewer trust.
Source surfaces and boundaries
Source surfaces
scripts/traffic-outcome-proof.tsscripts/audit-public-outcome-claims.tsscripts/audit-seo-geo-release-gate.ts- /api/public/seo-geo-measurement-run-queue
Private evidence boundary
Raw Search Console exports, analytics exports, server logs, source-refresh liveness output, AI answer transcripts, screenshots, reviewer notes and third-party publication evidence stay local unless separately reviewed, redacted and approved for publication.
Caveats
- This step protects public claims; it does not itself create or approve the private evidence.
evidence-proof - required
Execution proof gate audit
Order 8
npm run audit:seo-geo-page-action-map && npm run audit:seo-geo-traffic-runway && npm run audit:execution-proofProves
- Execution tickets, page-action rows, target pages, evidence gates and the 500k/month forecast runway remain joined.
- Completion claims require reviewed local ticket evidence rather than intent or unreviewed work logs.
Failure blocks
- Any claim that the SEO/GEO execution plan is complete or release-ready.
Source surfaces and boundaries
Source surfaces
- /api/public/seo-geo-page-action-map
- /api/public/seo-geo-production-queue
- /api/public/traffic-forecast
scripts/execution-proof.ts
Private evidence boundary
Raw Search Console exports, analytics exports, server logs, source-refresh liveness output, AI answer transcripts, screenshots, reviewer notes and third-party publication evidence stay local unless separately reviewed, redacted and approved for publication.
Caveats
- Execution proof supports completion of audited work items; it does not prove downstream rankings or traffic outcomes.
Methodology and limits
This contract is generated from the local SEO/GEO release runner, release-gate documentation, technical SEO controls, audit evidence pack and measurement/proof gate surfaces. It is a public checklist for deploy governance, not a publication of private evidence.
Raw Search Console exports, analytics exports, server logs, source-refresh liveness output, AI answer transcripts, screenshots, reviewer notes and third-party publication evidence stay local unless separately reviewed, redacted and approved for publication.
- This contract proves the release checks that must pass before growth-facing SEO/GEO changes ship; it does not prove rankings, traffic, backlinks, AI citations, market share or the 500k/month planning target.
- The default release gate is offline and deterministic; run the sign-off command with --include-liveness when source-refresh or release approval requires live government-source probes.
- Passing the gate blocks overclaiming by keeping public outcome claims tied to reviewed proof gates rather than raw private evidence.
Cite or reuse this dataset
This release-gate contract is free to reuse under CC BY 4.0. Cite the JSON endpoint for the machine-readable gate rows and this report for methodology, commands, private-evidence boundaries and no-go conditions.
Suggested citation
Visa Atlas, "Visa Atlas SEO/GEO release gate contract", https://visaatlas.org/research/seo-geo-release-gate-contract-2026. Last verified 6 July 2026.
Primary sources (11)
- /api/public/seo-geo-release-gate
- /api/public/technical-seo-controls
- /api/public/seo-geo-audit-evidence
- /api/public/execution-readiness
- /api/public/seo-geo-production-queue
- /api/public/seo-geo-page-action-map
- /api/public/seo-geo-measurement-run-queue
- /api/public/seo-geo-dominance-gap-ledger
- /api/public/battlecard-retrieval-coverage
- /api/public/crawler-access
- /api/public/visibility-metrics