Jak wygenerować mapę witryny w Laravelu
Wyszukiwarki używają map witryn (sitemaps), aby odnajdywać i indeksować Twoje strony. Mapa witryny to plik XML. Informuje on Google i Bing, jakie adresy URL znajdują się w Twojej witrynie.
Możesz zbudować mapę witryny w Laravelu, korzystając z pakietu Spatie Sitemap.
Wykonaj poniższe kroki, aby ją skonfigurować.
Zainstaluj pakiet Uruchom tę komendę w terminalu:
composer require spatie/laravel-sitemapUtwórz kontroler Wygeneruj nowy kontroler, aby obsłużyć logikę:
php artisan make:controller GenerateSitemapNapisz logikę Otwórz swój nowy kontroler i dodaj ten kod:
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!'); } }
Co robi ten kod:
- Tworzy nowy obiekt sitemap.
- Dodaje Twoją stronę główną z wysokim priorytetem.
- Przechodzi przez wpisy w Twojej bazie danych.
- Dodaje każdy adres URL wpisu do pliku.
- Zapisuje plik w folderze public jako sitemap.xml.
Twoja mapa witryny będzie dostępna pod adresem yourdomain.com/sitemap.xml.
Pomaga to wyszukiwarkom szybko odnaleźć Twoje nowe treści.
Źródło: https://dev.to/mindwarezone/how-to-generate-a-sitemap-in-laravel-a-complete-guide-4go6