• Час читання ~2 хв
  • 19.10.2023

За словами Google, більшість сайтів виграють від карти сайту, яка допомагає ботам знати, які сторінки слід сканувати.

Карта сайту – це файл, у якому ви надаєте інформацію про сторінки, відео та інші файли на вашому сайті, а також про зв'язки між ними. Пошукові системи, такі як Google, читають цей файл, щоб ефективніше сканувати ваш сайт. Карта сайту повідомляє Google, які сторінки та файли ви вважаєте важливими для вашого сайту, а також надає цінну інформацію про ці файли. Наприклад, коли сторінку було оновлено востаннє, а також будь-які альтернативні мовні версії сторінки.

Їх можна створити вручну, і у нас є підручник про те, як створити карту сайту вручну тут, але пакет під назвою "laravel-sitemap" від Spatie робить створення карти сайту простішим, ніж будь-коли.

Однією з переваг пакету є те, що він надає два методи створення карти сайту. По-перше, він може автоматично сканувати ваш сайт і створювати його на основі внутрішніх посилань, або ви можете мати повний контроль і створювати його вручну.

Laravel Sitemap Auto Crawling

Все, що вам потрібно зробити для автоматичного сканування, це встановити пакакге, а потім сказати йому URL-адресу, щоб почати сканування.

use Spatie\Sitemap\SitemapGenerator;

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

Генератор може виконувати JavaScript на кожній сторінці, тому посилання, введені в dom JavaScript, також будуть скануватися.

Інструкція з налаштування

карти сайту Laravel Я використовую це тут, на Laravel News, тому що у нас є тисячі сторінок, які потрібно додати до індексу. Щоб налаштувати це, спочатку застосуйте код до своїх моделей:Потім ви можете створити свою карту сайту так

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);
    }
}

:Як ми використовуємо Laravel Sitemap

use Spatie\Sitemap\Sitemap;

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

Як уже згадувалося, ми використовуємо ручне налаштування, і ось повний код для створення нашої карти сайту:

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'));

Перша частина будує індекси з великою кількістю результатів, потім ми вручну додаємо сторінки, які знаходяться з основної навігації. Включене відео має повну інформацію.

Більше інформації Перегляньте офіційний пакет для отримання повної інформації

про налаштування, конфігурацію та використання вашої програми.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

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

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297