SEO-INDEX-VariScripts

SEO-INDEX VariScripts

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.                               │
╰──────────────────────────────────────────────────────────╯

What v1.3 adds

seo-index links crawls one canonical host and produces a site-level relationship report rather than another single-page checklist. It includes:

Local graphical workbench

seo-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:

What v1.2 added

The toolkit is now organized by diagnostic category instead of cloning the same check into several differently named scripts.

Technical SEO

GEO diagnostics

AEO diagnostics

Graphical workbench

The 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.

Important score disclaimer

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.

Scoring matrix v2

The old flat matrix has been replaced by category scorecards.

Every profile defines:

  1. categories totaling 100 points
  2. factors totaling 100 percent within each category
  3. critical eligibility checks
  4. a crawler identity appropriate to the profile

The report shows three distinct values:

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

Installation

Windows

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

macOS and Linux

curl -fsSL https://raw.githubusercontent.com/foulfoxhacks/SEO-INDEX-VariScripts/main/install.sh | sh

Run without installing

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'

Interactive terminal

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

Core commands

Category scorecards

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.

Local live workbench

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.

Redirect Lab

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'

Crawler Access Matrix

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

Hreflang Auditor

seo-index hreflang \
  --url 'https://example.com/en/' \
  --check-alternates \
  --limit 30 \
  --json './reports/hreflang.json'

Structured Data Graph

seo-index schema --url 'https://example.com/about'
seo-index schema --url 'https://example.com/about' --show-json

GEO focused audit

seo-index geo \
  --url 'https://example.com/about' \
  --json './reports/geo.json'

AEO focused audit

seo-index aeo \
  --url 'https://example.com/faq' \
  --json './reports/aeo.json'

Open the graphical workbench

seo-index web
seo-index web --print-only

Existing tools

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

Direct script endpoints

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

Publish the graphical workbench

  1. Push the docs/ directory and .github/workflows/pages.yml to main.
  2. Open the repository on GitHub.
  3. Go to Settings → Pages.
  4. Set Source to GitHub Actions.
  5. Run the workflow manually or push a change under 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.

Reports and CI

seo-index score \
  --url 'https://example.com' \
  --engine google \
  --json './reports/google.json' \
  --fail-below 75

Exit codes:

Repository layout

SEO-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

Tests

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

Official references

License

MIT. See LICENSE.