Laravel Package for notifying search engines about the latest changes to your URLs using the IndexNow API.
This package provides a simple mechanism to notify IndexNow about changes to your URLs. It's ideal for implementing in methods related to content creation, editing, or deletion on your website.
IndexNow is a service that instantly informs search engines about the latest content changes on your website. This allows search engines to quickly update these changes in their search results.
You can install the package via Composer:
composer require ymigval/laravel-indexnow
Sending requests to IndexNow is currently disabled in the local environment. To enable request sending in any environment, set the "ignore_production_environment" property to true in the configuration file.
You can publish the configuration file using the following command:
php artisan vendor:publish --tag="indexnow"
The IndexNow API requires a request key, which should match a key file within the host domain. Fortunately, this step is automated for you.
If you want to generate a new key and key file, use the following Artisan command:
php artisan indexnow:generate-key
Place the API key code at the root of your domain and append the .txt
extension to it.
Example:
https://www.example.com/4cea016a4ddb408592569456a9c4896b.txt
To find out your IndexNow API key, use the following Artisan command:
php artisan indexnow:apikey
If the route doesn't work, clear the route cache:
php artisan route:clear
php artisan route:cache
You can also host text key files in other locations within the same host and send it with the page submission.
IndexNow::keyFile('https://www.example.com/keys/8bbf5df8bbaa457aab35bb3ccbb99aec.txt')
->submit('https://www.example.com/cute-cats');
Services where you can generate and download a text key file:
Or if you prefer to create it manually. Your-key should have a minimum of 8 and a maximum of 128 hexadecimal characters. The key can contain only the following characters: lowercase characters (a-z), uppercase characters (A-Z), numbers (0-9), and dashes (-).
You can submit one or more pages per request by calling the facade and passing the URL(s) to the submit method.
use Ymigval\LaravelIndexnow\Facade\IndexNow;
IndexNow::submit('https://www.example.com/cute-cats');
To submit multiple pages at once, provide an array of URLs.
use Ymigval\LaravelIndexnow\Facade\IndexNow;
IndexNow::submit([
'https://www.example.com/cute-cats',
'https://www.example.com/dog-love',
'https://www.example.com/nature',
]);
// Or using method chaining
IndexNow::setUrl('https://www.example.com/cute-cats')
->setUrl('https://www.example.com/dog-love')
->setUrl('https://www.example.com/nature')
->submit();
ymigval/laravel-indexnow includes spam prevention mechanisms. When potential spam is detected, the request sending is temporarily blocked for 24 hours.
ymigval/laravel-indexnow includes an internal logging handler that you can use to print out actions' details.
Use the following Artisan command:
php artisan indexnow:logs
Please refer to the CHANGELOG for more information about recent changes.
The MIT License (MIT). For more information, please see the License File.