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ć.

  1. Zainstaluj pakiet Uruchom tę komendę w terminalu: composer require spatie/laravel-sitemap

  2. Utwórz kontroler Wygeneruj nowy kontroler, aby obsłużyć logikę: php artisan make:controller GenerateSitemap

  3. Napisz 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