Website benchmark: cometweb.io against three ranking pages
This is the material behind the article How to benchmark a website against competitors. I wanted to know whether my page cometweb.io/website-audit is technically behind the pages that rank for "website audit", and if so, where. I ran it in September 2026 with the method the article describes.
What I looked at
I picked pages from two queries, "free website audit tool" and "website audit", in US results read through the Firecrawl search API. I used that list only to choose pages, because positions shift with location, device and time of day. Six URLs were in the top 10 for both queries.
I set Semrush and Ahrefs aside as full SEO suites of a different scale and took the three with the best average position from the rest: SEOptimer (2.0), The HOTH (4.0) and SEO Site Checkup (6.0). I recorded Rank Math (8.0) as the reserve before measuring anything. My page wasn't in either top 10.
SEOptimer couldn't be measured. Its first Lighthouse run ended with a blank page (NO_FCP), and two plain requests returned HTTP 525, which Cloudflare documents as a failed TLS handshake with the origin server. So Rank Math took its place. Three attempts in under a quarter of an hour from one network say nothing about that site at any other time, which is why SEOptimer has no result in this pack.
That first attempt stopped after one round, and I kept its runs for the other pages in a separate file, outside the medians.
I first fetched each page once with a plain request to record its status, six security headers and the head section of the server HTML. Then I ran Lighthouse in its default mobile preset with simulated network and CPU throttling, five times per page, in interleaved rounds with a rotating order.
I report the median of five runs, with the lowest and highest value in brackets. Transferred bytes and the first-party versus third-party split come from the run whose total transfer is the median. Third party means origins that Lighthouse doesn't attribute to the page's owner, so a company's own tool on a separate domain counts too. I didn't request anything else from other people's sites.
Results
| Page | LCP | FCP | TBT | CLS | Perf. score | Transferred | Requests | Third-party bytes |
|---|---|---|---|---|---|---|---|---|
| cometweb.io/website-audit | 5.8 s (5.5–6.4) | 3.8 s (3.6–4.2) | 0 ms (0–30) | 0.000 (0–0.006) | 69 (67–72) | 582 kB | 64 | 10 kB |
| thehoth.com/seo-audit-tool | 13.3 s (12.9–13.3) | 1.7 s (1.7–1.7) | 67 ms (48–74) | 0.003 | 71 (71–72) | 2,024 kB | 66 | 1,454 kB |
| seositecheckup.com | 13.6 s (13.4–13.8) | 3.7 s (1.4–3.7) | 175 ms (174–181) | 0.021 (0–0.021) | 60 (59–69) | 1,736 kB | 94 | 1,467 kB |
| rankmath.com/tools/seo-analyzer | 2.2 s (2.2–2.2) | 1.1 s (1.1–1.1) | 0 ms | 0.000 | 99 (99–99) | 193 kB | 23 | 0 kB |
A kB is 1,000 bytes. Every value is a lab value. Security headers, SEO checks and automated accessibility results are in benchmark-record.csv.
After the benchmark I made one more Lighthouse run on my own page only, to break LCP into its parts and see what blocks rendering. That run isn't part of the medians.
What this data can't tell you
- How real users experience these pages. I had no key for the CrUX API, and the free PageSpeed Insights API answered with a quota error, so the pack has no field values at all. INP can't be measured in a lab load anyway.
- How whole sites perform. I measured one page per site, from one network, in a window of a few minutes on one morning, on a Mac that was running other work too. Lighthouse advises against those conditions, and simulated throttling only partly offsets them.
- Accessibility beyond automated checks. I didn't go through the pages with a keyboard or a screen reader, and I didn't check TLS, cookies or consent banners.
- How strong the security setup is. I recorded headers from one response, which shows only whether they're there. A CSP can be present and block almost nothing, and a missing header doesn't prove a vulnerability. I read
<h1>counts and JSON-LD from the HTML before JavaScript runs. - How good the audit tools themselves are. I measured the pages, not the tools.
Files
benchmark-record.csv: the filled benchmark record for the four pagessummary.json: the medians used in the articlelighthouse-runs.json: all 20 runs with their settingsheaders-and-head.json: headers and head section of each pageserp-2026-09-24.json: the result lists I picked the pages fromexcluded-seoptimer.json: what happened with SEOptimeraborted-run-1-lighthouse-runs.json: the aborted first attempt, outside the medianscometweb-diagnosis.json: the extra diagnostic run on my pagesources.json: sources cited in the articlebenchmark.mjs.txt: the measuring scriptdiagnose-own-page.mjs.txt: the diagnostic run scriptcharts.py.txt: the chart script
The scripts end in .txt so the site build doesn't treat them as site code. To run it again, install lighthouse@13.5.0 and chrome-launcher@1.2.1, rename the file to benchmark.mjs and run CHROME_PATH=/path/to/Chromium node benchmark.mjs. The numbers won't match to the millisecond, but while the pages stay the same the gaps should keep their order of magnitude.