Laravelలో Sitemapని ఎలా జనరేట్ చేయాలి
సెర్చ్ ఇంజన్లు మీ పేజీలను కనుగొనడానికి మరియు ఇండెక్స్ చేయడానికి sitemapsని ఉపయోగిస్తాయి. Sitemap అనేది ఒక XML ఫైల్. మీ సైట్లో ఏ URLలు ఉన్నాయో ఇది Google మరియు Bingకి తెలియజేస్తుంది.
మీరు Spatie Sitemap ప్యాకేజీని ఉపయోగించి Laravelలో sitemapని నిర్మించవచ్చు.
దీనిని సెటప్ చేయడానికి ఈ క్రింది దశలను అనుసరించండి.
ప్యాకేజీని ఇన్స్టాల్ చేయండి మీ టెర్మినల్లో ఈ కమాండ్ను రన్ చేయండి:
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!');
}
}
ఈ కోడ్ ఏం చేస్తుంది:
- ఇది కొత్త 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