# Mixed-page benchmark, October 2026

On 170 public URLs across ten page types, read on 1 October 2026, six no longer existed. Of the 164 live pages, Skryp returned 157 usable and Firecrawl 159; Skryp's median output was about half as long and it was faster at the median. This write-up has the method, every miss, what the run cost on each plan, and the per-page data.

Updated 1 Oct 2026 · Tested on 1 Oct 2026 · https://skryp.dev/benchmarks/mixed-pages-2026-10

## What was measured

170 public URLs in ten page types, each read once by Skryp and once by Firecrawl on 1 October 2026, with the same list, from a South African connection, with caching off and both services at their default settings. Six of the URLs no longer existed: both services got a 404 for them, so 164 live pages remain.

| Page type | Pages | Usable: Skryp | Usable: Firecrawl | Median tokens: Skryp | Median tokens: Firecrawl |
| --- | ---: | ---: | ---: | ---: | ---: |
| News articles | 24 | 24 | 24 | 2,471 | 3,682 |
| Documentation | 23 | 20 | 23 | 1,065 | 2,261 |
| Shop pages (global) | 13 | 13 | 13 | 1,072 | 2,724 |
| Shop pages (South Africa) | 22 | 21 | 22 | 1,760 | 3,713 |
| Country-priced pages | 32 | 32 | 32 | 1,292 | 2,790 |
| Listings and search results | 14 | 10 | 9 | 1,607 | 5,397 |
| JavaScript apps | 5 | 5 | 5 | 6,549 | 15,213 |
| Bot-protected pages | 15 | 12 | 11 | 2,569 | 13,489 |
| PDFs | 7 | 5 | 5 | 17,771 | 15,660 |
| Our own websites | 15 | 15 | 15 | 1,372 | 1,464 |

"Our own websites" are pages from sites run by the team behind Skryp; their addresses are withheld in the download.

## How a result was judged

- **Usable:** the result is the page itself, not an error, a block page or a 404, with at least 200 characters of text.
- **Completeness:** the share of the page's main-content lines found in the output. The reference is neither service's cleaner: a full browser render of the page, cleaned with trafilatura.
- **Tokens:** what an agent must read, counted with the cl100k tokenizer.
- **Time:** wall time per page on the client.
- **Country:** on country-priced pages, whether the dominant currency in the output is the requested country's.

## Results

| Measure (170 pages) | Skryp | Firecrawl |
| --- | ---: | ---: |
| Usable pages | 157 of 170 | 159 of 170 |
| Median completeness | 0.98 | 1.00 |
| Median tokens per page | 1,800 | 3,520 |
| Median time per page | 1.6 s | 3.3 s |
| 95th percentile time | 14.0 s | 12.1 s |
| Right currency on country-priced pages | 21 of 22 | 21 of 22 |

One run on 1 October 2026 from a South African connection, both services at default settings, the same URL list. Usable means the page's content was present, judged against a neutral reference copy.

Both services returned 153 of the same pages usable. Skryp read 4 pages Firecrawl did not; Firecrawl read 6 that Skryp did not; 7 defeated both, 6 of them the dead URLs [checked 1 Oct 2026]. Skryp's median page was 1,800 tokens to Firecrawl's 3,520, and on a typical page its output was 40% shorter [checked 1 Oct 2026], at a slightly lower median completeness (0.98 against 1.00) [checked 1 Oct 2026]. Skryp was faster at the median and Firecrawl at the 95th percentile [checked 1 Oct 2026].

## Every miss

On the 164 live pages:

| Page | Skryp | Firecrawl | Why |
| --- | --- | --- | --- |
| Three pages of the Python documentation | Missed | Read | The site answered Skryp with HTTP 503 during the run |
| A South African shop's home page | Missed | Read | Skryp kept only a banner and the cookie notice |
| Glassdoor's reviews index and a Crunchbase company profile | Missed | Read | A Cloudflare challenge on every Skryp route |
| A StockX product page | Missed | Missed | A Cloudflare challenge for both |
| AutoTrader's South African home page, a LinkedIn company page, a subreddit, an Instagram profile | Read | Missed | Firecrawl's result was not the page's content |

Skryp's weakest group was documentation: Firecrawl returned 23 of 23 usable, Skryp 20 [checked 1 Oct 2026]. Its strongest were listings and bot-protected pages, where it read more than Firecrawl. The per-page download below has each status, route and note.

## Country-priced pages

On 22 pages that show a different price per country, each service returned the requested country's currency on 21 [checked 1 Oct 2026]. Skryp also records the exit it used for each one, checked before the page loaded; in a separate test of 20 countries with strict mode on, 19 returned through a verified exit in the requested country [checked 30 Sept 2026].

## What the run cost

Skryp charges by the route that produced each page. The run's routes at the current rate card:

| How Skryp got the page | Pages | Credits each | Credits |
| --- | ---: | ---: | ---: |
| Standard request | 107 | 1 | 107 |
| Standard request with JavaScript rendering | 19 | 1 | 19 |
| Residential proxy | 7 | 5 | 35 |
| Residential proxy with JavaScript rendering | 24 | 10 | 240 |
| Advanced unblocking | 7 | 25 | 175 |
| Failed or blocked | 6 | 0 | 0 |
| All pages | 170 |  | 576 |

The route that produced each page in the 170-page run, priced at the current rate card. 576 credits for 157 usable pages: 3.67 credits per usable page.

Per 1,000 usable pages, on each plan of both services [checked 1 Oct 2026]:

| Service and plan | Credits per usable page | Cost per 1,000 usable pages |
| --- | ---: | ---: |
| Skryp, pay as you go ($0.50 per 1,000 credits) | 3.67 | $1.83 |
| Skryp Hobby ($9/month, 20,000 credits) | 3.67 | $1.65 |
| Skryp Standard ($49/month, 150,000 credits) | 3.67 | $1.20 |
| Skryp Growth ($149/month, 600,000 credits) | 3.67 | $0.91 |
| Skryp Scale ($399/month, 2,000,000 credits) | 3.67 | $0.73 |
| Firecrawl Hobby, billed monthly ($19/month, 5,000 credits) | 2.19 | $8.32 |
| Firecrawl Hobby, billed annually ($16/month, 5,000 credits) | 2.19 | $7.00 |
| Firecrawl Standard, billed annually ($83/month, 100,000 credits) | 2.19 | $1.82 |
| Firecrawl Growth, billed annually ($333/month, 500,000 credits) | 2.19 | $1.46 |
| Firecrawl Scale, billed annually ($599/month, 1,000,000 credits) | 2.19 | $1.31 |

Credits per usable page in the 170-page run × the price per credit on each plan. Firecrawl: the credits it charged, at the prices on its pricing page on 1 Oct 2026 (effective 4 Sept 2026). Skryp: each page's route re-priced at its rate card of 1 Oct 2026 (1 credit for a standard request, 5 through a residential proxy or 10 with JavaScript rendering, 25 for advanced unblocking; the run itself was charged under earlier rules). Both give 1,000 free credits a month: about 272 usable pages of this mix on Skryp and 456 on Firecrawl.

This page set is weighted towards hard pages. Documentation and articles mostly need only Skryp's own network, at 1 credit a page.

## Conditions and limits

- One run on one day. Sites change their defences, and a page that failed here may work tomorrow, for either service.
- Skryp ran from a South African home connection. On a data-centre server, its own-network routes will behave differently.
- The run was charged under earlier credit rules; the costs above re-price each page's route at the current rate card.
- Usable is a floor, not a quality score: completeness and tokens show how much of the page came back.
- We built Skryp. The URL list, scoring code and per-page results are published so the numbers can be checked.

## Data

- [Per-page results (CSV)](https://skryp.dev/benchmarks/mixed-pages-2026-10/pages.csv): one row per URL with both services' status, usable flag, tokens, completeness and time, and Skryp's route and credits.
- [Summary (JSON)](https://skryp.dev/benchmarks/mixed-pages-2026-10/summary.json): the totals by page type.

## Questions

**Which pages were tested?**

170 public URLs in ten page types: news articles, documentation, shop pages in South Africa and elsewhere, country-priced pages, listings, JavaScript apps, bot-protected pages, PDFs and our own websites. The per-page download lists every URL except our own websites'.

**What counts as a usable page?**

The page itself, not an error, a block page or a 404, with at least 200 characters of text. Completeness then measures how much of the page's main content came back, against a neutral reference copy.

**Which service read more pages?**

Firecrawl: 159 of the 164 live pages against Skryp's 157. Firecrawl read three Python documentation pages that answered Skryp with HTTP 503 during the run; Skryp read four listing and social pages that Firecrawl did not.

**Can I check the numbers?**

Yes. The per-page results and the summary are downloadable from this page, and each figure links to its source and the date it was checked.


## Evidence

- On a 170-URL mixed benchmark run on 1 October 2026, 6 URLs no longer existed (both services got a 404); of the 164 live pages, Skryp returned 157 usable and Firecrawl 159. (observed test, checked 1 Oct 2026; 170 public URLs in ten page types (articles, documentation, shops in South Africa and elsewhere, country-priced pages, listings, JavaScript apps, bot-protected pages, PDFs and our own websites), each read once by each service. Limits: One run from a South African connection before the move to a server; results from a data-centre connection may differ. Skryp's seven misses on live pages: three documentation pages answered Skryp with HTTP 503 during the run, two pages behind a Cloudflare challenge, a shop home page where Skryp kept only a banner and the cookie notice, and one page neither service read. Firecrawl's five: four listing and social pages and the same page neither read.)
- On the same 170 public pages, Firecrawl returned 159 usable pages and Skryp 157; median completeness was 1.00 for Firecrawl and 0.98 for Skryp; on documentation pages Firecrawl returned 23 of 23 usable and Skryp 20 of 23. (observed test, checked 1 Oct 2026; 170 public pages across articles, docs, shops, listings, JavaScript apps, PDFs, protected and regional pages. Limits: One run. Firecrawl at default settings. Skryp's own benchmark; publish the URL list and scoring code with it.)
- On the same 170 public pages, the median output was 1,800 tokens per page from Skryp and 3,520 from Firecrawl. (observed test, checked 1 Oct 2026; Same benchmark run; Markdown output. Limits: Fewer tokens is not automatically better: completeness was slightly lower for Skryp (median 0.98 vs 1.00). PDFs were the exception: on the five PDFs both services read, they returned about the same length (Skryp shorter on three, longer on two; median ratio 0.95).)
- On the same 170 pages, median time per page was 1.6 s for Skryp and 3.3 s for Firecrawl; at the 95th percentile Firecrawl was faster (12.1 s vs 14.0 s). (observed test, checked 1 Oct 2026; Same benchmark run. Limits: Single location and run; includes cache effects as configured in the benchmark.)
- On 22 country-priced pages, Skryp and Firecrawl each returned the expected country's currency on 21. (observed test, checked 1 Oct 2026; 22 regional shop pages in the 170-page benchmark. Limits: Currency is a proxy for the right regional page, not proof that every price is correct.)
- At Skryp's rate card of 1 October 2026 (1 credit a page on Skryp's own network, 5 through a residential proxy or 10 with JavaScript rendering, 25 for advanced unblocking), the benchmark's 157 usable pages cost 576 credits, 3.67 per usable page: per 1,000 usable pages, $1.20 on Standard ($49 a month for 150,000 credits), $1.65 on Hobby, $0.91 on Growth, $0.73 on Scale and $1.83 at the pay-as-you-go rate. At Firecrawl's list prices read on 1 October 2026 (348 credits for 159 usable pages) the run cost $1.82 per 1,000 usable pages on Standard billed annually, $1.31 on Scale billed annually, $7.00 on Hobby billed annually and $8.32 on Hobby billed monthly. (observed test, checked 1 Oct 2026; Same benchmark run. Limits: The run itself was charged 316 credits under earlier rules; re-priced at the current card it is 576. Each side follows its own charging rules: Firecrawl charges 1 credit a page whatever the route, including a page that answers 403 or 404; Skryp charges by route and nothing for blocked pages. The benchmark is weighted towards hard sites: a mix of documentation and articles costs Skryp about 1 credit a page. Firecrawl's extra-credit packs or its +4-credit JSON format change the comparison.)
- Asked for 20 countries with strict country on, Skryp returned the page through an exit verified in the requested country in 19 of 20. (observed test, checked 30 Sept 2026; One public page per country, 20 countries, strict-country requests, residential and mobile routes. Limits: A single run of 20 pages. Exit verification proves where the request left from, not that every field on the page is correct for that market.)
- On the 153 public pages both services returned as usable on 1 October 2026, Skryp's Markdown was a median 40% shorter than Firecrawl's, and shorter on 135 of them. (observed test, checked 1 Oct 2026; Same benchmark run; Markdown output; pages where both services returned usable content. Limits: Fewer tokens is not automatically better: Skryp kept slightly less of each page's reference text (median completeness 0.98 vs 1.00). PDFs came out about the same length. One run on 170 pages we chose.)
