Laravel में Sitemap कैसे जनरेट करें
सर्च इंजन आपके पेजों को खोजने और इंडेक्स करने के लिए sitemaps का उपयोग करते हैं। Sitemap एक XML फ़ाइल होती है। यह Google और Bing को बताता है कि आपकी साइट पर कौन से URLs मौजूद हैं।
आप 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 object बनाता है।
- यह आपके होमपेज को हाई प्रायोरिटी (high priority) के साथ जोड़ता है।
- यह आपके डेटाबेस पोस्ट्स (posts) पर लूप चलाता है।
- यह हर पोस्ट URL को फ़ाइल में जोड़ता है।
- यह फ़ाइल को आपके public फोल्डर में sitemap.xml के रूप में सेव करता है।
आपका sitemap yourdomain.com/sitemap.xml पर उपलब्ध होगा।
यह सर्च इंजन को आपके नए कंटेंट को जल्दी खोजने में मदद करता है।
स्रोत: https://dev.to/mindwarezone/how-to-generate-a-sitemap-in-laravel-a-complete-guide-4go6