Botly
CommunityBotly is a Filament plugin to manage your site's robots.txt file directly from a Filament admin panel.
Author:
Adam Weston
Package health
BetaAutomated checks of this plugin's Composer package
13 checks
-
Passed:
Current Laravel version supported
—
Package dependencies resolve together with current Laravel
13.0. -
Passed:
Current PHP version supported
—
Constraint
^8.2supports current PHP8.5. - Skipped: Current Symfony version supported
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Passed: Commit and release recency — Active: last commit 39 days ago; last release 39 days ago.
-
Passed:
composer.lock not committed by library
—
composer.lockis absent from the released dist archive. - Passed: Dist archive is lean
- Failed: GitHub Actions pinned to SHA — View details on Plumb
- Passed: Open security advisories
- Passed: Dependabot PR responsiveness — No stale Dependabot PRs.
- Passed: Dependabot or Renovate configured
-
Failed:
Dependency update cooldown configured
—
No cooldown configured in
.github/dependabot.yml. View details on Plumb - Passed: Provides a security policy
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Documentation
- Installation
- Setup
- How It Works
- Configuration
- Customization
- AI Crawler Blocking
- Testing
- Contributing
- Security Vulnerabilities
- Credits
- License
Botly is a Filament plugin to manage your site's robots.txt file directly from the Filament admin panel. Rules, sitemaps, and AI crawler blocks are stored in the database and served dynamically — no static file required.
#Installation
Install the package via Composer:
composer require awcodes/botly
Run the installation command to publish migrations and run them:
php artisan botly:install
Or publish and run the migration manually:
php artisan vendor:publish --tag="botly-migrations"
php artisan migrate
Optionally publish the config file:
php artisan vendor:publish --tag="botly-config"
#Setup
Register the plugin in your Filament panel provider:
use Awcodes\Botly\BotlyPlugin;
$panel->plugins([
BotlyPlugin::make(),
]);
That's it. Botly registers a Robots Manager page in your panel and automatically serves /robots.txt via a dynamic route.
#How It Works
Botly stores your robots configuration in the database. When /robots.txt is requested, the rules are read from the database and formatted as valid robots.txt output on the fly. You can also export the current configuration to a static public/robots.txt file using the Export Robots.txt button on the admin page.
[!IMPORTANT] If a static
public/robots.txtfile already exists, Botly will display a warning in the admin UI. The file must be deleted or renamed before the dynamic route can take effect.
#Configuration
The published config file (config/botly.php) allows you to set default values that are used when no database record exists yet:
return [
'defaults' => [
'rules' => [],
'sitemaps' => [],
'ai_crawlers' => [],
],
'persistent_rules' => [],
];
#Persistent Rules
Persistent rules are rules that are always included in the output and cannot be edited or deleted from the admin UI. You can define them in the config file or fluently on the plugin:
Via config:
// config/botly.php
'persistent_rules' => [
[
'user_agent' => '*',
'directive' => 'disallow',
'path' => '/admin',
],
],
Via plugin:
BotlyPlugin::make()
->persistentRules([
[
'user_agent' => '*',
'directive' => 'disallow',
'path' => '/admin',
],
]),
Each rule is an array with three keys:
| Key | Values |
|---|---|
user_agent |
Any string, e.g. *, Googlebot |
directive |
allow, disallow, crawl-delay, clean-param |
path |
The path to allow or disallow, e.g. /admin |
#Customization
#Authorization
By default, all users with access to your Filament panel can visit the Botly page. You can restrict access by passing a boolean or a closure to authorize():
// Always deny access
BotlyPlugin::make()
->authorize(false),
// Conditionally allow access
BotlyPlugin::make()
->authorize(fn () => auth()->user()->isAdmin()),
#Navigation
BotlyPlugin::make()
->navigationIcon('heroicon-o-robot')
->navigationGroup('Settings')
->navigationLabel('Robots.txt'),
#Page
BotlyPlugin::make()
->title('Robots Manager')
->slug('robots-manager'),
#AI Crawler Blocking
The admin page includes a Block AI Crawlers checkbox list. Selecting crawlers will add Disallow: / entries for each one in the output. Botly ships with a curated list of known AI crawlers including GPTBot, ClaudeBot, PerplexityBot, and more.
#Testing
composer test
#Contributing
Please see CONTRIBUTING for details.
#Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
#Credits
#License
The MIT License (MIT). Please see License File for more information.
The author
Adam is a full-stack web developer (with a focus on Laravel) who has been coding for close to 20 years. He is a core Filament team member as well and has authored numerous plugins for Filament such as Curator, Tiptap Editor and Table Repeater, to name a few. You can learn more about Adam on his website.
From the same author
Shout
A simple inline contextual notice for Filament Forms, basically just a fancy placeholder.
Author:
Adam Weston
Table Repeater
A modified version of the Filament Forms Repeater to display it as a table.
Author:
Adam Weston
Tiptap Editor
A Rich Text Editor plugin for Filament Forms.
Author:
Adam Weston
Quick Create
Plugin for Filament Panels that adds a dropdown menu to the header to quickly create new items.
Author:
Adam Weston
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Spotlight Pro
Browse your Filament Panel with ease. Filament Spotlight Pro adds a Spotlight/Raycast like Command Palette to your Filament Panel.
Dennis Koch
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission