Laravelలో Sitemapని ఎలా జనరేట్ చేయాలి

సెర్చ్ ఇంజన్లు మీ పేజీలను కనుగొనడానికి మరియు ఇండెక్స్ చేయడానికి sitemapsని ఉపయోగిస్తాయి. Sitemap అనేది ఒక XML ఫైల్. మీ సైట్‌లో ఏ URLలు ఉన్నాయో ఇది Google మరియు Bingకి తెలియజేస్తుంది.

మీరు Spatie Sitemap ప్యాకేజీని ఉపయోగించి Laravelలో sitemapని నిర్మించవచ్చు.

దీనిని సెటప్ చేయడానికి ఈ క్రింది దశలను అనుసరించండి.

  1. ప్యాకేజీని ఇన్‌స్టాల్ చేయండి మీ టెర్మినల్‌లో ఈ కమాండ్‌ను రన్ చేయండి: composer require spatie/laravel-sitemap

  2. కంట్రోలర్‌ను సృష్టించండి లాజిక్‌ను హ్యాండిల్ చేయడానికి కొత్త కంట్రోలర్‌ను జనరేట్ చేయండి: php artisan make:controller GenerateSitemap

  3. లాజిక్‌ను రాయండి మీ కొత్త కంట్రోలర్‌ను ఓపెన్ చేసి ఈ కోడ్‌ను జోడించండి:

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