Laravel-এ কীভাবে একটি Sitemap তৈরি করবেন

সার্চ ইঞ্জিনগুলো আপনার পেজগুলো খুঁজে পেতে এবং ইনডেক্স করতে sitemap ব্যবহার করে। একটি sitemap হলো একটি XML ফাইল। এটি Google এবং Bing-কে জানায় আপনার সাইটে কোন কোন URL রয়েছে।

আপনি Spatie Sitemap প্যাকেজ ব্যবহার করে Laravel-এ একটি sitemap তৈরি করতে পারেন।

এটি সেটআপ করার জন্য নিচের ধাপগুলো অনুসরণ করুন।

১. প্যাকেজটি ইনস্টল করুন আপনার টার্মিনালে এই কমান্ডটি চালান: composer require spatie/laravel-sitemap

২. একটি controller তৈরি করুন লজিক হ্যান্ডেল করার জন্য একটি নতুন controller তৈরি করুন: php artisan make:controller GenerateSitemap

৩. লজিক লিখুন আপনার নতুন controllerটি ওপেন করুন এবং এই কোডটি যোগ করুন:

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!');
}
}

এই কোডটি যা করে:

  • এটি একটি নতুন sitemap অবজেক্ট তৈরি করে।
  • এটি উচ্চ প্রায়োরিটি (high priority) সহ আপনার হোমপেজটি যোগ করে।
  • এটি আপনার ডাটাবেসের পোস্টগুলোর মধ্য দিয়ে লুপ চালায়।
  • এটি প্রতিটি পোস্টের URL ফাইলটিতে যোগ করে।
  • এটি ফাইলটিকে আপনার public ফোল্ডারে sitemap.xml হিসেবে সেভ করে।

আপনার sitemap থাকবে yourdomain.com/sitemap.xml ঠিকানায়।

এটি সার্চ ইঞ্জিনগুলোকে আপনার নতুন কন্টেন্ট দ্রুত খুঁজে পেতে সাহায্য করে।

উৎস: https://dev.to/mindwarezone/how-to-generate-a-sitemap-in-laravel-a-complete-guide-4go6