DarkzSEO
┌─────────────────────────────────────────────────────────────────┐
│██████╗ █████╗ ██████╗ ██╗ ██╗███████╗███████╗███████╗ ██████╗ │
│██╔══██╗██╔══██╗██╔══██╗██║ ██╔╝╚══███╔╝██╔════╝██╔════╝██╔═══██╗│
│██║ ██║███████║██████╔╝█████╔╝ ███╔╝ ███████╗█████╗ ██║ ██║│
│██║ ██║██╔══██║██╔══██╗██╔═██╗ ███╔╝ ╚════██║██╔══╝ ██║ ██║│
│██████╔╝██║ ██║██║ ██║██║ ██╗███████╗███████║███████╗╚██████╔╝│
│╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝ ╚═════╝ │
├─────────────────────────────────────────────────────────────────┤
│ Static Codebase Auditor for 2026 Search Standards │
│ SEO · GEO · AIO · AEO — 16 Checks, Zero APIs, Pure Analysis │
└─────────────────────────────────────────────────────────────────┘
A lightweight, local-only Python CLI for auditing HTML/JSX/Template files against 2026 Search Standards. No external APIs required.
Features
- 16 Automated Checks across 4 categories
- Zero API Dependencies - runs entirely offline
- Color-Coded Console Output for quick severity identification
- JSON Report Export for CI/CD integration
- Template Agnostic - works with HTML, JSX, Vue, Svelte, Astro, PHP, EJS, and more
Installation
pip install -r requirements.txt
Usage
# Basic scan
python darkzseo.py --path ./src
# With brand name (for entity salience check)
python darkzseo.py --path ./public --brand "MyCompany"
# Custom output file
python darkzseo.py --path ./templates --output results.json
# Quiet mode (summary only)
python darkzseo.py --path ./src --quiet
Audit Categories
🟢 SEO (Technical Health)
| Check | What it Detects |
|---|---|
| Orphan Pages | Files that exist but are never linked to |
| Resource Hints | External scripts missing preconnect/dns-prefetch |
| CLS Risk | Images/videos/iframes missing width/height |
| Render Budget | @import rules and expensive * selectors |
🟣 GEO (Generative Engine Optimization)
| Check | What it Detects |
|---|---|
| Trust Network | Long content lacking authority links (.gov, .edu, etc.) |
| Entity Salience | Brand not in H1 or first 200 words |
| Data Density | Low table/list ratio on content pages |
| Freshness | Missing or stale dateModified |
🔵 AIO (AI Overviews)
| Check | What it Detects |
|---|---|
| Comparison Gap | "vs"/"best" in title without comparison table |
| Direct Answer | Question headers not followed by concise paragraphs |
| Video Schema | Video content missing VideoObject JSON-LD |
| Skimmability | Paragraphs exceeding 150 words |
🔷 AEO (Answer Engine Optimization)
| Check | What it Detects |
|---|---|
| Simplicity Score | Complex vocabulary (Flesch-Kincaid proxy) |
| QA Proximity | Elements interrupting question-answer flow |
| Speakable Schema | Missing Speakable markup on Q&A content |
| Unit Clarity | Bare units without <abbr> tags |
Output
Console
Color-coded findings grouped by category and severity:
- 🔴 CRITICAL/HIGH - Must fix for search visibility
- 🟡 MEDIUM - Recommended improvements
- 🔵 LOW/INFO - Nice to have optimizations
JSON Report
{
"generated_at": "2026-01-20T20:00:00",
"files_scanned": 42,
"total_findings": 15,
"summary": {
"CRITICAL": 0,
"HIGH": 5,
"MEDIUM": 7,
"LOW": 3
},
"findings": [
{
"category": "SEO",
"severity": "HIGH",
"file": "index.html",
"message": "CLS Risk: <img> missing width/height"
}
]
}
CI/CD Integration
DarkzSEO returns exit code 1 if any HIGH or CRITICAL findings are detected, making it perfect for CI pipelines:
# GitHub Actions example
- name: SEO Audit
run: python darkzseo.py --path ./public --quiet
License
MIT
Metadata
Release files for darkzseo 1.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| darkzseo-1.3.3.tar.gz | 14.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| darkzseo-1.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.4 kB
Release files / darkzseo-1.3.3.tar.gz
| Download URL | darkzseo-1.3.3.tar.gz |
|---|---|
| Size | 14.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b77011cd21e511c009af0d38887993e4377385988c18b5ba1c5d9d42823276f
|
|
BLAKE2b-256 checksum How to use checksums |
a00e9691f7ee59d5e9e21ce05c4d5e99781ecf24a0ff4ad5782da96db62d92f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 21, 2026.
Transparency logRelease files / darkzseo-1.3.3-py3-none-any.whl
| Download URL | darkzseo-1.3.3-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c89811c7d5911ca10cb965d4416497ee6e33afb6e802034eced11f98c87c652
|
|
BLAKE2b-256 checksum How to use checksums |
5b99102af9d1ce7931eb4aa0eb11ba4e7593f2426f041bd6f54dc985d548ee86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 21, 2026.
Transparency log