SEO Audit System
SEO Audit System
My own SEO audit engine: it crawls a site, pulls its Google data, checks whether AI answers mention it, and writes a fix plan, a PDF report and a Google Sheet every week.
NOT PUBLIC · PERSONAL TOOL LOCAL TOOL. NO PROJECT SCREENSHOT IS SHOWN.
The problem
An SEO audit tool hands you a hundred warnings, and most of them are noise. I look after three sites of my own, and I wanted one run that gathers what Google already knows about each one, checks it against what the site actually says, and ends with a short list of fixes worth doing rather than a dashboard to stare at.
What it does
A staged Python engine. Each run crawls the site and checks it technically, pulls Search Console and GA4 data, real keyword volumes, the search results and Google Business Profile listing for the keywords that bring business, and whether an AI assistant names the site when asked the questions a customer would ask. It ends in a prioritised fix plan, an A4 PDF report and a Google Sheet with a to-do list.
A weekly run refreshes the audit, the report and the Sheet every Monday for reportcards.in, arunsilver.com and this site, and runs late rather than not at all if the PC was off. A full run adds the prioritised fix plan.
What it does, feature by feature
- Technical crawl. Titles, descriptions, headings, canonicals, schema, images, broken links and thin pages, with intentionally private pages left out of the page checks.
- Google data. Search Console clicks, impressions and positions, and GA4 sessions filtered to the site's own hostname.
- Keywords and results. Real Google search volumes, plus the live results and map listing for the keywords that matter.
- AI visibility. Asks an AI assistant with web search what a customer would ask, and records whether the site is named.
- Fix plan. Findings ranked into a to-do list, with proposed changes written out.
- Report and Sheet. An A4 PDF report, a Google Sheet and a running score history for each site.
Why it is built this way
Every stage saves its results to disk, so a stage that fails can be re-run on its own instead of starting over, and a failed run says which stage broke instead of quietly reporting a score. Since the October round of work, nothing the engine drafts for one of my sites, a new page or a rewritten description, goes live without a separate fact-check: a second reviewer that did not write the copy has to find the sentence on the real site that supports each claim.
What was hard
Trusting its own output. The first full runs reported a homepage with 28 words (it has about 2,000), three phone numbers that were one number written three ways, four phone numbers on a site that shows one (it was reading asset version numbers as phone numbers), and private login pages as critical indexing errors. Each was a real bug in the checks, and each was fixed in the engine rather than ignored in the report. Drafted copy had the same problem in a different form: first drafts claimed things like 'leading exporter' and a fee structure explained after the demo class, which no page on the site says. The independent fact-check caught every one before anything went live.
What it ships with
- reportcards.in 76 to 93
- arunsilver.com 90 to 94
- Runs weekly on 3 sites




















