mad-web/laravel-robots

Robots.txt generator service.

Fund package maintenance!
mad-web

3.0.0 2021-04-18 14:08 UTC

This package is auto-updated.

Last update: 2024-03-06 23:50:24 UTC


README

Stand With Ukraine

Robots.txt generator service

Latest Version on Packagist Software License Build Status StyleCI Coverage Status Quality Score Total Downloads

Nice Robots.txt generator service. For more information see www.robotstxt.org

Installation

You can install the package via composer:

composer require mad-web/laravel-robots

Usage

Setting a condition in your AppServiceProvider that determines whether the site should be indexed.

use MadWeb\Robots\RobotsFacade;

public function boot()
{
    RobotsFacade::setShouldIndexCallback(function () {
        return app()->environment('production');
    });
    ...
}

You can create simple single action controller for generating robots.txt

/routes/web.php

Route::get('robots.txt', 'RobotsController');

/app/Http/Controllers/Robots

namespace App\Http\Controllers;

use MadWeb\Robots\Robots;
use App\Http\Controllers\Controller;

class RobotsController extends Controller
{
    /**
     * Generate robots.txt
     */
    public function __invoke(Robots $robots)
    {
        $robots->addUserAgent('*');

        if ($robots->shouldIndex()) {
            // If on the live server, serve a nice, welcoming robots.txt.
            $robots->addDisallow('/admin');
            $robots->addSitemap('sitemap.xml');
        } else {
            // If you're on any other server, tell everyone to go away.
            $robots->addDisallow('/');
        }

        return response($robots->generate(), 200, ['Content-Type' => 'text/plain']);
    }
}

Add robots meta tag into your view inside the <head> tag

<head>
 {!! Robots::metaTag() !!}
</head>

Changelog

Please see CHANGELOG for more information what has changed recently.

Testing

composer test

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email madweb.dev@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.