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