spatie

spatie/crawler

PHP MIT Web Dev

https://spatie.be/docs/crawler

2.8k stars
367 forks
recent
GitHub +1 / week

2.8k

Stars

367

Forks

0

Open issues

30

Contributors

9.3.2 12 Jun 2026

AI Analysis

Spatie Crawler is a PHP library for crawling websites with concurrent HTTP requests via Guzzle, supporting both static HTML and JavaScript-rendered content through Puppeteer integration. It serves web developers and DevOps engineers who need programmatic site scraping, link discovery, or content auditing; it is not a general-purpose web scraper framework for non-technical users.

Web Dev Library Discovery value: 4/10
Documentation 8/10
Activity 9/10
Community 8/10
Code quality 7/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

web-crawling concurrent-requests php-library guzzle javascript-rendering
Actively maintained Well documented MIT licensed Niche/specialized use case Production ready
Deep Analysis · Based on README and public signals
5d ago

Mature PHP web crawler with concurrent requests and JavaScript rendering support

spatie/crawler is a PHP library for crawling websites at scale, built on Guzzle for concurrent HTTP requests and Puppeteer/Chrome for JavaScript-rendered content. It targets PHP developers who need programmatic site scraping, link discovery, and content indexing. The project has been stable since 2015 and is actively maintained by Spatie, a established open-source organization. Real-world adoption appears solid but is difficult to quantify precisely.

Origin

Created in 2015 by Spatie, a Belgian web development agency known for quality PHP packages. The project evolved from basic link-following to include concurrent request handling via Guzzle and JavaScript rendering via Puppeteer integration. It reflects the maturation of PHP tooling for web automation tasks.

Growth

Growth appears modest and plateaued. Star count (2,829) is slightly higher than the older php-spider (1,345) but trails node-crawler (6,797). Recent activity shows 4 stars gained in 7 days, indicating steady but not accelerating adoption. Last push was 2026-06-12, suggesting active maintenance rather than explosive growth.

In production

Adoption not verified from README alone. Packagist download metrics referenced but not quantified in excerpt. No case studies, testimonials, or enterprise deployments mentioned. Spatie's reputation as a package producer suggests real-world usage, but concrete production evidence is not presented. The presence of 367 forks and GitHub workflow badges suggests integration into some production pipelines, but scale is unknown.

Code analysis
Architecture

Appears to wrap Guzzle HTTP client for concurrent requests and Spatie's Browsershot library for JavaScript execution. Based on README, the API is fluent (method chaining), with callbacks for handling crawled responses and control flow via shouldStopCallback. Likely uses URL filtering, depth limiting, and internal/external URL discrimination.

Tests

README mentions `composer test` command exists, but coverage percentage not documented. Test workflow badge present in README, suggesting CI/CD is configured, but specifics not disclosed.

Maintenance

Last push 2026-06-12 (23 days before analysis date) indicates active maintenance. Repository is not dormant. Issue response time and PR merge velocity cannot be assessed from metadata alone. Changelog referenced but not detailed in excerpt. Framework requires PHP and Composer ecosystem, suggesting compatibility work needed for new PHP versions and dependency updates.

Honest verdict

ADOPT IF: you are a PHP developer needing concurrent web crawling with JavaScript support, have existing Spatie package investment, and require fluent API design. AVOID IF: you need language-agnostic tooling, prefer pure async/await patterns over Guzzle promises, or require extensive third-party integrations beyond HTTP and rendering. MONITOR IF: you need to compare with php-spider or QueryList for specific feature gaps (concurrent depth, custom middleware, performance under high concurrency), or if you depend on Puppeteer/Chrome availability in your deployment environment.

Independent dimensions

Mainstream potential

3/10

Technical importance

6/10

Adoption evidence

4/10

Risks
  • Dependency on Chrome/Puppeteer for JavaScript rendering adds significant overhead and requires browser binary availability in production — may be impractical in containerized or serverless environments.
  • Guzzle-based concurrency may not scale to thousands of concurrent requests; real limits not documented in README.
  • Adoption appears concentrated in PHP ecosystem; Node.js alternative (node-crawler) has 2.4× higher star count, suggesting possible feature or ecosystem advantage in competitor.
  • No mention of proxy support, rate limiting, or robots.txt compliance in README — critical for production web crawling; may exist but undocumented.
  • Dependency chain includes Guzzle, Browsershot, and Chrome; version conflicts or breaking changes in dependencies could affect stability. Active maintenance mitigates but does not eliminate risk.
Prediction

Project will remain stable and actively maintained as part of Spatie's portfolio. Adoption likely stays within PHP developer community at modest scale. Unlikely to see explosive growth given Node.js ecosystem dominance and Python's Scrapy; positioned as niche solution for PHP shops. May benefit from newer PHP versions and async/await features but not expected to catalyze major market shift.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

PHP
100%

Information

Language
PHP
License
MIT
Last updated
4w ago
Created
130mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Open issues

No open issues — clean slate.

Open pull requests

No open pull requests.

Similar repos

spatie

spatie/async

Spatie/Async is a PHP library that simplifies parallel process execution using...

2.8k PHP Dev Tools
mvdbos

mvdbos/php-spider

PHP-Spider is a web crawling library for PHP that supports configurable...

1.3k PHP Web Dev
jae-jae

jae-jae/QueryList

QueryList is a PHP web scraping framework that provides jQuery-like DOM...

2.7k PHP Web Dev
bda-research

bda-research/node-crawler

node-crawler is a web scraping library for Node.js that combines HTTP requests...

6.8k TypeScript Web Dev
spatie

spatie/fork

Spatie/Fork is a lightweight PHP library that enables concurrent code execution...

vs. alternatives
mvdbos/php-spider

Older PHP crawler (lower stars: 1,345 vs 2,829). Comparison suggests spatie/crawler may have superseded or captured more recent mindshare, though both remain viable. Direct feature parity not assessable from README.

jae-jae/QueryList

Similar star count (2,696 vs 2,829), also PHP-based. Likely different design philosophy; unclear if it supports concurrent requests or JavaScript rendering without inspecting code. Both occupy PHP scraping niche.

spatie/async

Related Spatie project (2,811 stars), handles async/parallel execution. Likely complementary to crawler rather than competitive; crawler may use similar concurrency primitives under the hood.

bda-research/node-crawler

TypeScript equivalent with significantly higher adoption (6,797 stars). Suggests Node.js ecosystem has stronger web-crawling demand or better tooling maturity. Language barrier means not direct replacement for PHP teams.