A dependency-light, cross-platform indexing, technical SEO, GEO, and AEO diagnostic toolkit for Windows, macOS, Linux, CI, and GitHub Pages.
/\_/\
( o.o ) ~~~~)
> ^ <
╭──────────────────────────────────────────────────────────╮
│ SEO-INDEX VariScripts v1.3.0 │
│ foulfoxhacks • aka The Dev Sammy │
│ Search signals, untangled. │
╰──────────────────────────────────────────────────────────╯
seo-index links crawls one canonical host and produces a site-level relationship report rather than another single-page checklist. It includes:
noindex and canonical mismatch findingsseo-index serve opens the same workbench from 127.0.0.1 and enables a token-protected live audit API. The hosted GitHub Pages copy remains static; localhost mode can run Internal Link Graph without a cloud proxy.
Safety defaults:
The toolkit is now organized by diagnostic category instead of cloning the same check into several differently named scripts.
@id, and sameAssameAs identity connectionsllms.txt visibility, clearly marked experimentalThe docs/ directory contains a responsive static GitHub Pages interface with:
The hosted page does not proxy arbitrary websites. It analyzes pasted evidence and CLI-generated JSON in the browser. Run seo-index serve to open a localhost copy that can call the local live-audit API without mixed-content or CORS detours.
Google, Bing, general-search, GEO, and AEO scores are transparent diagnostic readiness scores. They are not issued by a search engine or answer engine, do not predict ranking or citation, and do not guarantee crawling or indexing.
The old flat matrix has been replaced by category scorecards.
Every profile defines:
The report shows three distinct values:
verified score × sqrt(evidence coverage)The assurance adjustment prevents a 95/100 result based on only a handful of available checks. Unknown checks do not count as failures, but they lower evidence coverage and therefore lower the assured score. A critical failure such as an unsuccessful page, blocked crawler, noindex, or non-indexable content type caps the result below 50.
Detailed methodology: docs/SCORING-METHODOLOGY.md
Bundled profiles:
| Profile | Type | Primary emphasis |
|---|---|---|
google |
search engine | eligibility, canonical integrity, content, discovery, structured data |
bing |
search engine | eligibility plus stronger sitemap, freshness, and IndexNow coverage |
generic |
search-neutral | portable crawl and index readiness |
geo |
readiness lens | AI-search access, entity clarity, sources, freshness, machine readability |
aeo |
readiness lens | answer structure, semantic answer markup, trust, freshness, extractability |
irm https://raw.githubusercontent.com/foulfoxhacks/SEO-INDEX-VariScripts/main/install.ps1 | iex
The installer now validates the required Python core and extension files before reporting success. The Windows launcher searches PATH and common per-user Python installation directories, avoiding the Microsoft Store placeholder aliases.
Review-first installation:
irm https://raw.githubusercontent.com/foulfoxhacks/SEO-INDEX-VariScripts/main/install.ps1 -OutFile install.ps1
Get-Content .\install.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\install.ps1
curl -fsSL https://raw.githubusercontent.com/foulfoxhacks/SEO-INDEX-VariScripts/main/install.sh | sh
Windows:
.\Win\Start-SEOIndexToolkit.ps1
macOS:
chmod +x ./MacOS/seo-index-toolkit.command
./MacOS/seo-index-toolkit.command
Linux:
chmod +x './Py+Linux/Scripts/seo-index-toolkit.sh'
'./Py+Linux/Scripts/seo-index-toolkit.sh'
seo-index
Menu:
1. Index readiness score
2. Canonical Guard
3. Sitemap Doctor
4. IndexNow submission runner
5. Redirect Lab
6. Crawler Access Matrix
7. Hreflang Auditor
8. Structured Data Graph
9. GEO / Entity Discoverability
10. AEO / Answer Extractability
11. Internal Link Graph
12. Start local graphical workbench
13. List scoring profiles
14. Open hosted graphical workbench
seo-index score \
--url 'https://example.com/about' \
--sitemap 'https://example.com/sitemap.xml' \
--key-location 'https://example.com/indexnow-key.txt' \
--engine all \
--json './reports/about.json' \
--markdown './reports/about.md'
Focused profiles:
seo-index score --url 'https://example.com' --engine google
seo-index score --url 'https://example.com' --engine bing --key-location 'https://example.com/key.txt'
seo-index score --url 'https://example.com' --engine geo
seo-index score --url 'https://example.com/faq' --engine aeo
seo-index links \
--url 'https://example.com/' \
--sitemap 'https://example.com/sitemap.xml' \
--max-pages 500 \
--max-depth 7 \
--json './reports/internal-links.json' \
--html './reports/internal-links.html'
Windows endpoint:
.\Win\Test-InternalLinkGraph.ps1 `
-Url 'https://example.com/' `
-Sitemap 'https://example.com/sitemap.xml' `
-Json '.\reports\internal-links.json' `
-Html '.\reports\internal-links.html'
The crawler respects robots.txt by default and stays on the selected host. Use --include-subdomains, --drop-query, or --follow-nofollow only when those choices match the intended audit scope.
seo-index serve
The command opens a tokenized localhost URL, usually:
http://127.0.0.1:8765/?token=...
Useful options:
seo-index serve --port 9000 --api-max-pages 1000
seo-index serve --no-open
seo-index serve --allow-private-targets
--allow-private-targets is intentionally opt-in for local development sites and intranet audits.
seo-index redirect \
--url 'http://example.com/old-page' \
--max-hops 10 \
--json './reports/redirect.json'
Windows script endpoint:
.\Win\Test-RedirectChain.ps1 -Url 'http://example.com/old-page' -Json '.\reports\redirect.json'
seo-index robots --url 'https://example.com/page'
Custom agents:
seo-index robots \
--url 'https://example.com/page' \
--agent Googlebot \
--agent OAI-SearchBot \
--agent ClaudeBot
seo-index hreflang \
--url 'https://example.com/en/' \
--check-alternates \
--limit 30 \
--json './reports/hreflang.json'
seo-index schema --url 'https://example.com/about'
seo-index schema --url 'https://example.com/about' --show-json
seo-index geo \
--url 'https://example.com/about' \
--json './reports/geo.json'
seo-index aeo \
--url 'https://example.com/faq' \
--json './reports/aeo.json'
seo-index web
seo-index web --print-only
seo-index canonical --sitemap 'https://example.com/sitemap.xml' --expected-host example.com
seo-index sitemap --sitemap 'https://example.com/sitemap.xml' --check-pages 100
seo-index indexnow --sitemap 'https://example.com/sitemap.xml' --key-location 'https://example.com/key.txt' --dry-run
Windows:
Win/Test-RedirectChain.ps1
Win/Test-CrawlerAccess.ps1
Win/Test-Hreflang.ps1
Win/Test-StructuredData.ps1
Win/Test-GEOReadiness.ps1
Win/Test-AEOReadiness.ps1
Linux/macOS shell endpoints:
Py+Linux/Scripts/redirect-audit.sh
Py+Linux/Scripts/robots-audit.sh
Py+Linux/Scripts/hreflang-audit.sh
Py+Linux/Scripts/schema-audit.sh
Py+Linux/Scripts/geo-audit.sh
Py+Linux/Scripts/aeo-audit.sh
macOS clickable launchers:
MacOS/redirect-lab.command
MacOS/geo-audit.command
MacOS/aeo-audit.command
docs/ directory and .github/workflows/pages.yml to main.docs/.The configured custom-domain address is:
https://webtools.mellozone.site/
GitHub’s project-site fallback is https://foulfoxhacks.github.io/SEO-INDEX-VariScripts/. The custom hostname must resolve by CNAME to foulfoxhacks.github.io before GitHub can provision HTTPS.
The workflow deploys only docs/, not the installer or source tree.
seo-index score \
--url 'https://example.com' \
--engine google \
--json './reports/google.json' \
--fail-below 75
Exit codes:
0: completed and met the requested threshold1: validation, parsing, setup, or network error2: audit completed but found critical issues or failed the requested threshold130: cancelledSEO-INDEX-VariScripts/
├── .github/workflows/pages.yml
├── Config/
│ ├── engine_profiles.json
│ └── custom_engine_profile.example.json
├── docs/
│ ├── index.html
│ ├── matrix.json
│ ├── SCORING-METHODOLOGY.md
│ └── assets/
├── MacOS/
│ ├── internal-link-graph.command
│ ├── serve-workbench.command
│ └── ...
├── Py+Linux/Scripts/
│ ├── seo_index_toolkit.py
│ ├── seo_index_extensions.py
│ ├── seo_index_site.py
│ ├── internal-link-graph.sh
│ ├── serve-workbench.sh
│ └── ...
├── Tests/test_toolkit.py
├── Win/
│ ├── Test-InternalLinkGraph.ps1
│ ├── Start-SEOIndexServer.ps1
│ └── ...
├── install.ps1
├── install.sh
├── seo-index
└── seo-index.cmd
python3 -m py_compile './Py+Linux/Scripts/'*.py
python3 ./Tests/test_toolkit.py # 9 deterministic tests
bash -n ./Py+Linux/Scripts/*.sh ./MacOS/*.command ./install.sh ./seo-index
MIT. See LICENSE.