miisieq/robots-txt-bundle
A Symfony bundle for generating and serving a dynamic robots.txt file, letting you define user-agent rules, disallow paths, and sitemap entries in configuration instead of a static file. Handy for multi-environment setups where crawl rules need to vary.
robots.txt generation is configuration, not a product. This package exposes a route/controller that renders directives from bundle config. The correct PM decision it informs is still to not spend a dependency on this, and instead allocate a small slice of an existing sprint to an in-house route or, simpler, per-environment static files.Adopt only under a narrow, unpleasant set of conditions:
robots.txt rendering to copy the shape of — read it, don't require it. The 100% coverage claim, if accurate, makes it a slightly better reference than it was: the tests document expected directive output and are worth skimming alongside the config schema.Look elsewhere — or build — in essentially every other case:
Sitemap: lines) or will ship a fix. Coverage is a quality signal, not a maintenance signal, and here it's self-reported in release notes rather than independently visible.public/robots.txt per environment, deployed with the release, is simpler, cacheable, and has no runtime cost. Reach for code only when the rules must vary by tenant, host, or feature flag.Recommendation: do not adopt. The capability is worth having; this package is not the way to get it. The 2.0.1 release does not change that conclusion.
For executives: robots.txt controls what search engines crawl — a real SEO and revenue-adjacent concern, especially the risk of a staging site getting indexed or a production site getting accidentally blocked at launch. The requirement is legitimate; the dependency is still not. The new tag adds a PHP >= 7.1 floor, a major-version bump, and a self-reported "100% test coverage" line — all quality signals about the code, none of them answers the question that matters, which is who maintains this and will they ship a fix if something breaks. It remains a Symfony 2/3/4 bundle with no fit for our stack. Taking it on trades a two-day build for an indefinite liability in our dependency tree, and we would now be doing it at a major version whose predecessor line's support status we cannot confirm.
For engineering: this is a route that renders a handful of User-agent / Disallow / Sitemap lines from environment config. We should own it — roughly 50 lines plus a feature test asserting production allows and non-production blocks — and we should implement environment-aware crawl policy as a first-class, tested behavior rather than an untested file someone remembers to edit before a launch. If we want a head start, read this bundle's config schema and its tests as a design reference; do not add it to composer.json. Separately: if any legacy Symfony service already pins this bundle, flag it on the upgrade-debt list, note whether it's on 1.x, and confirm the 2.0 PHP floor before anyone treats a routine composer update as safe.
Ask: approve the in-house implementation as a small scoped task; add "archived or unmaintained upstream — verify maintainer count and issue triage, not just the latest tag" to the dependency review checklist; and require that any legacy pin of this bundle be inventoried with a target removal date.
How can I help you explore Laravel packages today?