Adticks — SEO, AEO & GEO Audit Platform Case Study
Parallel crawling engine, client vs. server render parity checker, and search-agent optimizer that crawls 10,000+ pages to highlight search visibility bugs.
1. Citation-Ready Summary
Adticks is an AI visibility and SEO/AEO/GEO audit platform built by Madhu Dadi. It crawls large websites with Playwright, compares server-rendered HTML with rendered DOM output, checks technical SEO and search and AI crawler accessibility, and returns prioritized fixes for search and AI visibility. The platform is designed for audits involving 10,000+ pages.
2. Citable Facts
| Property | Verified Detail |
|---|---|
| Project | Adticks |
| Built by | Madhu Dadi |
| Category | SaaS, SEO/AEO/GEO, AI visibility auditing |
| Role | Designer and engineer |
| Stack | Next.js, React, Tailwind CSS, FastAPI, PostgreSQL, Redis, Celery, Playwright |
| Core capability | Parallel crawling and render-parity diagnostics |
| Scale | 10,000+ pages per audit |
| Output | Prioritized fix list for search and AI visibility |
| Evidence | Case study, live product, screenshots, methodology |
3. The Problem
The search landscape is undergoing a major shift from simple keyword indexing to generative AI interfaces (ChatGPT Search, Gemini, Perplexity) that process web content differently. Standard SEO tools entirely miss dynamic JavaScript render anomalies, client-side shifts, layout inconsistencies, and indexing directives that block AI crawlers. Without high-fidelity Playwright instrumentation, growth teams often lack reliable diagnostic visibility into whether their pages are readable by search agents.
4. Operational Constraints
- Browser Overhead Limits: Playwright-based dynamic rendering is extremely compute-heavy. Launching headless Chromium containers for thousands of pages would crash ordinary web servers under CPU memory depletion.
- Strict Parity Accuracy: Calculating structural shifts between server-delivered static HTML and post-JS execution browser DOM structures requires clean, zero-discrepancy tag tree normalization.
- Scale & Timeout Bounds: Scanning e-commerce directories of 10,000+ pages requires robust error handling, concurrency bounds, and session recovery checkpoints to mitigate server timeouts.
5. What I Built
I designed and built the entire Adticks software product from the ground up:
Playwright Concurrency Broker
Headless browser tab pool executing parallel dynamic DOM extractions without launching new process containers.
HTML/DOM Diffing Engine
Analyzes static vs. rendered nodes, instantly catching dynamic text nodes hidden behind javascript layout loads.
Asynchronous Worker Pipeline
Redis-backed Celery worker threads running background scraping schedules completely isolated from the web gateway.
SaaS Audit Dashboard
A polished dashboard UI outlining prioritized fixes, AI crawler rules verification, and dynamic SEO health grades.
6. System Architecture Blueprint
Visual flow map illustrating async job broker offloading and Chromium browser pooling operations.
Next.js Client
Audit trigger
FastAPI Backend
Crawl API route
Redis Queue
Jobs enqueue
Celery Pool
Playwright render workers
Postgres DB
Audit fix logs
7. Core Technical Decisions
FastAPI Async Core
Selected FastAPI as the core API framework to handle thousands of concurrent status updates and job dispatches asynchronously without clogging the web server threads.
Redis & Celery Task Queue
Isolated Playwright browser executions onto distributed Celery worker pools using Redis as a high-speed broker to prevent chromium instances from draining web resources.
Playwright Headless Browser Pooling
Designed a browser tab recycling system. Reusing Chromium tabs across crawls reduced browser launching overheads, avoiding memory leaks and resource crashes under large scales.
SQLAlchemy & Alembic DB Migrations
Implemented clear transactional Postgres models to store audit results, mapping relations and handling versioned migrations securely.
8. Product Walkthrough & Screenshots
Explore the core console logs and screen interfaces representing high-scale parallel crawling workloads:
[2026-06-02 19:12:04] INFO: [Celery-Worker-3] Initiating audit job: job_948a3 [2026-06-02 19:12:05] INFO: BrowserPool: Browser tab recycled. Launch overhead: 12ms. [2026-06-02 19:12:06] INFO: Page check: https://adticks.com/app/dashboard/ -> 200 OK [2026-06-02 19:12:07] WARN: HTML Diff: Dynamic node mismatch: <div id="lazy-metrics"> loaded client-side but missing in raw server HTML. [2026-06-02 19:12:08] INFO: AEO Audit: GPTBot crawler checks passed. Robots.txt verified.
9. Measured Outcomes & Methodology
Verified performance improvements mapped to precise empirical benchmarks.
Pages Crawled Per Audit
Methodology: Verified through sitemap validation audits across major e-commerce properties, maintaining stable memory consumption with no chromium leaks.
Audit Execution Overhead
Methodology: Measured as the median processing time per page before and after introducing concurrent browser pooling and tab reuse protocols.
Dynamic Parity Detection
Methodology: Confirmed via automated integration checks containing dynamic JS components hidden in raw server HTML but present in Playwright DOM.
10. Future Iterations
If I were to build next-generation layers, I would integrate automated LLM agent patches. By linking proposed dynamic render anomalies straight to codegen utilities, the SaaS dashboard could supply direct code diff fixes (e.g. Next.js server component conversion scripts) for engineers to apply with one click.
11. Relevant Capabilities
12. Frequently Asked Questions
Audits, request controls, execution times, and render checks.
How does Adticks check for search and AI crawler accessibility?
How does the crawler handle potential request blocks?
How long does a 10,000-page crawl audit take?
13. Links & Evidence
Review verified code credentials, live portals, screenshots, and engineering methodologies.