🖥️ DevOps
cover

Hướng dẫn tạo sitemap với laravel

Giới thiệu.

Tạo sitemap là một bước quan trọng trong việc tối ưu hóa SEO cho website của bạn. Với Laravel, một framework phổ biến trong phát triển web, việc này trở nên đơn giản hơn bao giờ hết. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn từng bước cách tạo sitemap cho website Laravel, giúp website của bạn được các công cụ tìm kiếm như Google index hiệu quả hơn.

I. Cài Đặt Gói spatie/laravel-sitemap

Đầu tiên, bạn cần cài đặt gói spatie/laravel-sitemap. Đây là công cụ mạnh mẽ giúp tạo sitemap trong Laravel. Để cài đặt, chạy lệnh sau trong terminal của bạn:

composer require spatie/laravel-sitemap

image.png

Sau khi cài đặt hoàn tất, bạn cần thêm cấu hình vào file config/app.php. Thêm dòng sau vào phần providers:

Spatie\\Sitemap\\SitemapServiceProvider::class,

image.png

Tiếp theo, bạn cần publish cấu hình bằng cách chạy lệnh sau:

php artisan vendor:publish --provider="Spatie\\Sitemap\\SitemapServiceProvider" --tag=sitemap-config

image.png

Lệnh này sẽ sao chép cấu hình mặc định vào file config/sitemap.php, nơi bạn có thể tùy chỉnh theo nhu cầu.

II. Tạo Sitemap Controller

Bạn cần tạo một controller để xử lý việc tạo sitemap. Nếu bạn chưa có controller, hãy tạo một controller mới bằng lệnh sau:

php artisan make:controller SitemapController

Lệnh này sẽ tạo ra file SitemapController.php trong thư mục app/Http/Controllers.

image.png

Tiếp theo, chạy lệnh sau để cập nhật các file autoload của Composer:

composer dump-autoload

Tiếp đến bạn mở file SitemapController.php và thêm đoạn mã sau:

<?php

namespace App\\Http\\Controllers;

use Spatie\\Sitemap\\SitemapGenerator;

class SitemapController extends Controller
{
    public function generateSitemap()
    {
        SitemapGenerator::create('<https://yourdomain.com>')->writeToFile(public_path('sitemap.xml'));
    }
}

Thay yourdomain.com bằng tên miền của bạn. Phương thức writeToFile(public_path('sitemap.xml')) sẽ tạo file sitemap.xml trong thư mục public.

III. Cấu Hình Route Cho Sitemap

Để có thể gọi phương thức tạo sitemap từ trình duyệt, bạn cần thêm route sau vào file routes/web.php:

Route::get('/sitemap.xml', [
    SitemapController::class, 
    'generateSitemap'
]);

Bây giờ, bạn có thể truy cập đường dẫn yourdomain.com/sitemap.xml trên trình duyệt để tạo file sitemap.

Lưu ý: Lần đầu truy cập có thể trang sẽ trống. Bạn cần refresh (F5) để xem nội dung sitemap.

image.png

IV. Cập Nhật Sitemap Định Kỳ

Để đảm bảo sitemap của bạn luôn được cập nhật khi nội dung website thay đổi, bạn có thể sử dụng tính năng lập lịch của Laravel.

1. Tạo Command Tự Động Tạo Sitemap

Chạy lệnh sau để tạo một lệnh mới:

php artisan make:command GenerateSitemap

Lệnh này sẽ tạo file GenerateSitemap.php trong thư mục app/Console/Commands.

Mở file GenerateSitemap.php và cấu hình như sau:

<?php

namespace App\\Console\\Commands;

use Illuminate\\Console\\Command;
use Spatie\\Sitemap\\SitemapGenerator;

class GenerateSitemap extends Command
{
    protected $signature = 'sitemap:generate';
    protected $description = 'Generate the sitemap.';

    public function handle()
    {
        SitemapGenerator::create('<https://yourdomain.com>')->writeToFile(public_path('sitemap.xml'));
    }
}

2. Cấu Hình Command

Trong file App\\Console\\Kernel.php, thêm dòng sau vào phương thức schedule():

$schedule->command('sitemap:generate')->daily();

image.png

Để kiểm tra lịch trình, chạy lệnh:

php artisan schedule:list

image.png

Kết Luận

Việc tạo và cập nhật sitemap định kỳ giúp tối ưu hóa SEO cho website Laravel của bạn. Hy vọng hướng dẫn này đã giúp bạn thực hiện thành công. Hãy theo dõi kết quả và cải thiện hiệu suất tìm kiếm của trang web.