{"slug": "i-built-sitescope-a-free-technical-seo-audit-tool-that-ranks-what-to-fix-first", "title": "I built SiteScope, a free technical SEO audit tool that ranks what to fix first", "summary": "A developer built SiteScope, a free technical SEO audit tool that crawls up to 300 pages per site via internal links and XML sitemap, then ranks issues using a priority formula of severity multiplied by the share of pages affected. The tool reads raw HTML the way most AI crawlers do, checks broken links, near-duplicate pages via SimHash, and the internal link graph, and hardens rate limiting by trusting the CF-Connecting-IP header only when requests originate from Cloudflare's IP ranges.", "body_md": "For my college course I built **SiteScope** ([vikramyadav.me](https://vikramyadav.me)), a free technical SEO audit tool. You enter a site, it crawls every page it can reach, and it tells you what to fix first. No sign-up needed to run an audit. If you want, you can create an account to have your sites re-audited daily or weekly.\n\nTwo things bugged me about free SEO checkers.\n\nFirst, most test a single URL and hand back an unordered list. SiteScope follows internal links and the XML sitemap and checks every page it finds (up to 300 per audit). Then it ranks issues with one rule:\n\n**priority = severity × share of pages affected**\n\nA missing alt text on every page outranks a broken link on one page; a 5xx on half the site outranks both.\n\nSecond, a lot of sites load their content with JavaScript. SiteScope reads raw HTML, the way most AI crawlers do, so you can check whether your content needs JavaScript to show up. The tool itself uses no JavaScript framework. Every page, including the report, is server-rendered, because a tool that talks about JavaScript SEO should be readable by a crawler that runs none.\n\nIt also checks broken links, duplicate and near-duplicate pages (SimHash), the internal link graph (click depth, PageRank, orphan pages), titles, meta descriptions, H1s, canonicals, noindex and more. Reports download as PDF or JSON, and re-running an audit shows what was fixed and what is new since last time.\n\n`CF-Connecting-IP`, but anyone hitting the server's IP directly could send that header with a new value each time. Now it only believes that header when the connection really comes from Cloudflare's IP ranges, and the limit lives in Postgres so a restart doesn't reset it.\nSome things are still open: score-drop emails are waiting on an SMTP provider, and external link checks stop at 200 links per audit.\n\nTry it at [vikramyadav.me](https://vikramyadav.me) and see the code on [GitHub](https://github.com/vikramyadav1404/sitescope). Feedback welcome!", "url": "https://wpnews.pro/news/i-built-sitescope-a-free-technical-seo-audit-tool-that-ranks-what-to-fix-first", "canonical_source": "https://dev.to/vikram_yadav_2323b2df8bda/i-built-sitescope-a-free-technical-seo-audit-tool-that-ranks-what-to-fix-first-1k1i", "published_at": "2026-10-22 04:29:58+00:00", "updated_at": "2026-10-22 04:40:37.397916+00:00", "lang": "en", "topics": ["ai-crawlers", "developer-tools"], "entities": ["SiteScope", "Cloudflare", "Vikram Yadav", "GitHub"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-sitescope-a-free-technical-seo-audit-tool-that-ranks-what-to-fix-first", "markdown": "https://wpnews.pro/news/i-built-sitescope-a-free-technical-seo-audit-tool-that-ranks-what-to-fix-first.md", "text": "https://wpnews.pro/news/i-built-sitescope-a-free-technical-seo-audit-tool-that-ranks-what-to-fix-first.txt", "jsonld": "https://wpnews.pro/news/i-built-sitescope-a-free-technical-seo-audit-tool-that-ranks-what-to-fix-first.jsonld"}}