• Czas czytania ~2 min
  • 19.10.2023

Według Google większość witryn skorzystałaby z mapy witryny, która pomaga botom wiedzieć, które strony powinny być indeksowane.

Mapa witryny to plik, w którym podajesz informacje o stronach, filmach i innych plikach w witrynie oraz o relacjach między nimi. Wyszukiwarki takie jak Google odczytują ten plik, aby skuteczniej indeksować Twoją witrynę. Mapa witryny informuje Google, które strony i pliki są Twoim zdaniem ważne w Twojej witrynie, a także zawiera cenne informacje o tych plikach. Na przykład data ostatniej aktualizacji strony i wszelkie alternatywne wersje językowe strony.

Możliwe jest ich ręczne tworzenie, a tutaj mamy samouczek, jak ręcznie utworzyć mapę witryny, ale pakiet o nazwie "laravel-sitemap" od Spatie sprawia, że tworzenie mapy witryny jest łatwiejsze niż kiedykolwiek.

Jedną z zalet pakietu jest to, że zapewnia dwie metody tworzenia mapy witryny. Po pierwsze, może automatycznie indeksować Twoją witrynę i budować ją w oparciu o linki wewnętrzne lub możesz mieć pełną kontrolę i budować ją ręcznie.

Laravel Sitemap Automatyczne indeksowanie Wszystko, co musisz zrobić, aby automatycznie indeksować, to zainstalować pakiet, a następnie podać mu adres URL, aby rozpocząć indeksowanie

.

use Spatie\Sitemap\SitemapGenerator;

$path = public_path('sitemap.xml');
SitemapGenerator::create('https://example.com')->writeToFile($path);

Generator może wykonywać JavaScript na każdej stronie, więc linki wstrzyknięte do domu przez JavaScript również zostaną zindeksowane.

Ręczna konfiguracja

mapy witryny Laravela Używam tego tutaj w Laravel News, ponieważ mamy tysiące stron, które należy dodać do indeksu. Aby to skonfigurować, najpierw zastosuj kod do swoich modeli:Następnie możesz wygenerować mapę witryny w następujący sposób:

use Spatie\Sitemap\Contracts\Sitemapable;
use Spatie\Sitemap\Tags\Url;

class Article extends Model implements Sitemapable
{
    public function toSitemapTag(): Url | string | array
    {
        return Url::create(route('article.details', $this))
            ->setLastModificationDate(Carbon::create($this->updated_at))
            ->setChangeFrequency(Url::CHANGE_FREQUENCY_YEARLY)
            ->setPriority(0.1);
    }
}

use Spatie\Sitemap\Sitemap;

Sitemap::create()
  ->add(Post::all()
    ->writeToFile(public_path('sitemap.xml'));

Jak używamy mapy

witryny Laravela Jak wspomniano, używamy ręcznej konfiguracji, a oto pełny kod do wygenerowania naszej mapy witryny:

Sitemap::create()
    ->add($this->build_index(Article::active()->get(), 'sitemap_articles.xml'))
    ->add($this->build_index(Partner::active()->get(), 'sitemap_partners.xml'))
    ->add($this->build_index(Category::all(), 'sitemap_categories.xml'))
    ->add($this->build_index(Package::all(), 'sitemap_packages.xml'))
    ->add(Url::create('/')->setPriority(1)->setChangeFrequency(Url::CHANGE_FREQUENCY_ALWAYS))
    ->add(Url::create('/newsletter')->setPriority(0.5)->setChangeFrequency(Url::CHANGE_FREQUENCY_MONTHLY))
    ->add(Url::create('/popular-laravel-packages')->setPriority(0.5)->setChangeFrequency(Url::CHANGE_FREQUENCY_MONTHLY))
    ->add(Url::create('/links')->setPriority(0.5)->setChangeFrequency(Url::CHANGE_FREQUENCY_ALWAYS))
    ->add(Url::create('/links/new')->setPriority(0.5)->setChangeFrequency(Url::CHANGE_FREQUENCY_ALWAYS))
    ->add(Url::create('/partners')->setPriority(0.5)->setChangeFrequency(Url::CHANGE_FREQUENCY_ALWAYS))
    ->add(Url::create('/partners/agencies')->setPriority(0.5)->setChangeFrequency(Url::CHANGE_FREQUENCY_ALWAYS))
    ->add(Url::create('/partners/tools')->setPriority(0.5)->setChangeFrequency(Url::CHANGE_FREQUENCY_ALWAYS))
    ->add(Url::create('/partners/education')->setPriority(0.5)->setChangeFrequency(Url::CHANGE_FREQUENCY_ALWAYS))
    ->writeToFile(public_path('sitemap.xml'));

Pierwsza część buduje indeksy z wieloma wynikami, a następnie ręcznie dodajemy strony, które pochodzą z głównej nawigacji. Dołączony film zawiera pełne szczegóły.

Więcej informacji

Zobacz pakiet biura, aby uzyskać szczegółowe informacje na temat instalacji, konfiguracji i użycia aplikacji.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297