چگونگی تولید نقشه سایت (Sitemap) در Laravel

موتورهای جستجو از نقشه‌های سایت (sitemaps) برای یافتن و ایندکس کردن صفحات شما استفاده می‌کنند. نقشه سایت یک فایل XML است که به گوگل و بینگ می‌گوید چه URLهایی در سایت شما وجود دارد.

شما می‌توانید با استفاده از بسته Spatie Sitemap، یک نقشه سایت در Laravel بسازید.

برای راه‌اندازی آن، مراحل زیر را دنبال کنید.

۱. نصب بسته این دستور را در ترمینال خود اجرا کنید: composer require spatie/laravel-sitemap

۲. ایجاد یک کنترلر یک کنترلر جدید برای مدیریت منطق برنامه ایجاد کنید: php artisan make:controller GenerateSitemap

۳. نوشتن منطق برنامه کنترلر جدید خود را باز کرده و این کد را به آن اضافه کنید:

namespace App\Http\Controllers;

use Spatie\Sitemap\Sitemap;
use Spatie\Sitemap\Tags\Url;
use App\Models\Post;

class GenerateSitemap extends Controller
{
public function index()
{
$sitemap = Sitemap::create();

$sitemap->add(
Url::create('/')
->setPriority(1.0)
->setChangeFrequency(Url::CHANGE_FREQUENCY_DAILY)
);

Post::with('category')
->where('status', 1)
->latest()
->get()
->each(function ($post) use ($sitemap) {
$sitemap->add(
Url::create($post->category->slug . '/' . $post->slug)
->setLastModificationDate($post->updated_at)
->setPriority(0.9)
->setChangeFrequency(Url::CHANGE_FREQUENCY_WEEKLY)
);
});

$sitemap->writeToFile(public_path('sitemap.xml'));

return back()->with('success', 'Sitemap Generated!');
}
}

این کد چه کاری انجام می‌دهد:

  • یک شیء (object) جدید برای نقشه سایت ایجاد می‌کند.
  • صفحه اصلی شما را با اولویت بالا اضافه می‌کند.
  • پست‌های موجود در پایگاه داده شما را پیمایش می‌کند.
  • URL هر پست را به فایل اضافه می‌کند.
  • فایل را در پوشه public شما با نام sitemap.xml ذخیره می‌کند.

نقشه سایت شما در آدرس yourdomain.com/sitemap.xml قرار خواهد داشت.

این کار به موتورهای جستجو کمک می‌کند تا محتوای جدید شما را سریع‌تر پیدا کنند.

منبع: https://dev.to/mindwarezone/how-to-generate-a-sitemap-in-laravel-a-complete-guide-4go6