За словами 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'));
Перша частина будує індекси з великою кількістю результатів, потім ми вручну додаємо сторінки, які знаходяться з основної навігації. Включене відео має повну інформацію.
Більше інформації Перегляньте офіційний пакет для отримання повної інформації
про налаштування, конфігурацію та використання вашої програми.