1
1 Comment

build a website SEO scanner in python — 50 lines that find real problems on any site

this is the core of my outreach system. before sending a single email, i scan the prospect's website and find actual issues. here's how to build one yourself in about 50 lines of python.

what we're checking:

  • title tag (does it exist? is it too long for google to display?)
  • meta description (missing? too short? too long?)
  • images without alt text (how many can google not see?)
  • heading structure (is there an H1? multiple H1s?)
  • HTTPS (still running on HTTP in 2026?)

the code (simplified but functional):

import requests
from bs4 import BeautifulSoup

def scan_site(url):
    r = requests.get(url, timeout=10)
    soup = BeautifulSoup(r.text, "html.parser")
    issues = []
    score = 100

    title = soup.find("title")
    title_text = title.string.strip() if title and title.string else ""
    if not title_text:
        issues.append("missing title tag")
        score -= 15
    elif len(title_text) > 60:
        issues.append(f"title too long ({len(title_text)} chars)")
        score -= 5

    images = soup.find_all("img")
    no_alt = [img for img in images if not img.get("alt")]
    if no_alt:
        issues.append(f"{len(no_alt)} images missing alt text")
        score -= min(len(no_alt), 15)

    h1s = soup.find_all("h1")
    if len(h1s) == 0:
        issues.append("no H1 heading found")
        score -= 10

    return {"url": url, "score": max(score, 0), "issues": issues}

how i use it for outreach:

scan the site, check the results, pick the most interesting finding for the email subject line. "your site has 47 images google can't see" hits different than "i can help with your SEO."

the key insight: the scanner doesn't need to be perfect. it needs to find ONE thing that's verifiably true. when the recipient checks and confirms "yeah, we do have 47 images without alt text" — you're instantly credible.

the business angle:

i wrapped this scanner into a cold outreach service. scan 500 sites, send personalized emails referencing findings, follow up automatically. charging agencies $297/mo for the full done-for-you package.

the scanner is the competitive advantage. without it, you're just another "i hope this email finds you well" sender. with it, every email proves you actually looked at their business.

grab the full scanner free on gumroad: https://vemtraclabs.gumroad.com/l/seo-analyzer

or see the done-for-you service: https://vemtrac-outreach.pages.dev

fork it, improve it, use it. if you build something cool with it, let me know.

on March 29, 2026
  1. 1

    The outreach angle is smart.
    One recommendation though: check if GPTBot and PerplexityBot are blocked in robots.txt

    We audit this for every client and the number of sites accidentally blocking AI crawlers is surprisingly high. It's a 30s fix but most site owners have no idea it's happening and it directly kills their visibility in both ChatGPT and Perplexity.