Run a 16-module SEO audit on any website and get a professional PDF + Excel report in under 60 seconds.
Quick Start • What It Audits • Output • Install • Pro Version
git clone https://github.com/yourusername/udit-seo-free.git
cd udit-seo-free
pip install -r requirements.txt
python seo_audit.py https://yoursite.comThat's it. Two files appear in your folder: seo_report.pdf and seo_report.xlsx.
SEO audits cost $300–$2,000 from agencies. Ahrefs and Semrush charge $100–$500/month. Most free tools give you a 3-item checklist.
This tool runs a proper 16-module audit covering everything from technical SEO to AI search optimization, scores your content against an 80-item CORE-EEAT framework, generates a content brief, and builds a 4-phase action plan — all from a single command, completely free.
| Module | What's Checked |
|---|---|
| 🏷️ Title Tag | Length (50–60 chars), keyword signals, uniqueness |
| 📝 Meta Description | Length (120–160 chars), CTR optimization |
| 📋 Heading Structure | H1 uniqueness, H2/H3 hierarchy, depth |
| ✍️ Content Quality | Word count, E-E-A-T signals, CORE-EEAT 80-item score |
| 🖼️ Image Optimization | Alt text, dimensions (CLS prevention), lazy loading, srcset |
| 🗂️ Schema / JSON-LD | Type detection, validity, @graph and array support |
| ⚙️ Technical SEO | HTTPS, canonical, noindex, lang, TTFB, page size |
| 📱 Open Graph / Social | og:title/description/image/url, twitter:card |
| 🔗 Links | Internal/external count, anchor text quality, hreflang |
| 🤖 Robots.txt | Presence, sitemap reference, blanket disallow detection |
| 🗺️ XML Sitemap | URL count, lastmod, index files, 50K limit check |
| 🧠 GEO / AI Search | llms.txt, Q&A patterns, definition signals, AI citations |
| 📊 Core Web Vitals | TTFB, CLS signals, fetchpriority, render-blocking scripts |
| 📲 Mobile SEO | Viewport, touch icons, font size, tap targets |
| 🌍 International SEO | Hreflang, x-default, self-reference, lang code validation |
| 🔒 Security | HSTS, X-Frame-Options, CSP, MIME, server fingerprinting |
- CORE-EEAT 80-item content score — Comprehensiveness, Originality, Relevance, E-E-A-T
- Content brief — Primary keyword, H2 structure, schema to add, GEO optimizations
- 4-phase action plan — Research → Build → Optimize → Monitor, with effort/impact ratings
Page 1 — Cover with score ring, module grid, EEAT scores
Page 2 — Critical issues + warnings (color coded)
Page 3 — CORE-EEAT 80-item scorecard
Pages 4-7 — Detailed per-module findings
Page 8 — Content brief + optimization guide
Pages 9-11 — 4-phase SEO action plan
Sheet 1 — Executive Summary (score dashboard)
Sheet 2 — All Issues (color-coded by severity)
Sheet 3 — Passed Checks
Sheet 4 — Semrush Data (upgrade to Pro)
Sheet 5 — 4-Phase SEO Plan
Sheet 6 — CORE-EEAT Scorecard (80 items)
Sheet 7 — Content Brief
Sheet 8 — Raw Data
Sheet 9 — Score Chart (bar chart)
- Python 3.8+
- 2 packages:
reportlab(PDF) andopenpyxl(Excel)
# Clone
git clone https://github.com/yourusername/udit-seo-free.git
cd udit-seo-free
# Install dependencies
pip install -r requirements.txt
# Run
python seo_audit.py https://yoursite.com# Audit any website
python seo_audit.py https://yoursite.com
# Custom output filename
python seo_audit.py https://yoursite.com --output my_brand_april
# Also save raw JSON data
python seo_audit.py https://yoursite.com --json
# Demo mode (no URL needed — runs on sample page)
python seo_audit.py --demoThe crawler tries 8 different browser profiles automatically until one works:
- ✅ Bypasses bot blocking (403 errors)
- ✅ Handles geo-restricted sites (India, Bangladesh, UK, US, any region)
- ✅ Supports gzip + brotli + deflate compression
- ✅ Auto-retry with mobile UA if desktop UA is blocked
- ✅ Googlebot/Bingbot UA fallback for whitelisted bots
- ✅ Gracefully continues with Semrush data if page HTML can't be retrieved
Here's what a typical audit looks like:
Overall Score: 72/100
Module Scores:
Title Tag — 95/100 ✓
Meta Description — 60/100 ⚠
Heading Structure — 80/100 ✓
Content Quality — 65/100 ⚠
Image Optimization — 45/100 ✗
Schema / JSON-LD — 70/100 ✓
Technical SEO — 85/100 ✓
Open Graph — 55/100 ⚠
Links — 90/100 ✓
Robots.txt — 100/100 ✓
XML Sitemap — 85/100 ✓
GEO / AI Search — 60/100 ⚠
Core Web Vitals — 70/100 ✓
Mobile SEO — 95/100 ✓
International SEO — 80/100 ✓
Security — 75/100 ✓
CORE-EEAT: 56/100 — Grade C
C (Comprehensiveness): 57
O (Originality): 30
R (Relevance): 80
E (E-E-A-T): 55
| Feature | Screaming Frog | Ahrefs | This Tool |
|---|---|---|---|
| Price | £149/yr | $129/mo | Free |
| On-page audit | ✅ | ✅ | ✅ |
| CORE-EEAT score | ❌ | ❌ | ✅ |
| GEO / AI optimization | ❌ | ❌ | ✅ |
| Content brief | ❌ | Partial | ✅ |
| 4-phase action plan | ❌ | ❌ | ✅ |
| PDF + Excel output | Partial | ❌ | ✅ |
| No account needed | ✅ | ❌ | ✅ |
Want live keyword rankings, competitor analysis, backlink data, and traffic estimates?
→ udit-seo-pro adds:
- Top 30 organic keywords with positions + search volume
- Top 10 competitor domains with traffic comparison
- Backlinks overview (total, referring domains, authority)
- Domain Authority Score from Semrush
- Keyword research for seed terms + related keywords
# Pro version usage
python seo_audit.py https://yoursite.com --keyword "target keyword"udit-seo-free/
seo_audit.py ← Entry point, run this
requirements.txt ← 2 packages only
modules/
crawler.py ← Universal HTTP fetcher (8 bypass profiles)
audits.py ← All 16 audit modules
eeat.py ← 80-item CORE-EEAT scorer
content_brief.py ← Content brief generator
phases.py ← 4-phase plan builder
reports/
pdf_report.py ← 11-page PDF generator
excel_report.py ← 9-sheet Excel generator
PRs welcome. Open an issue first for major changes.
MIT — use it, fork it, build on it.
Star the repo. Share it with your team. That's all.
Built with Python.