Руководство по настройке и использованию Sitemap в фреймворке Yii2


Веб-сайты с большим количеством страниц часто имеют проблемы с оптимизацией индексации поисковыми системами. Роботы поисковых систем иногда не могут правильно проследовать по всем ссылкам на сайте и не всегда знают, какие страницы находятся во внутренних разделах или на других языках.

Для решения этой проблемы существует стандартный протокол, называемый Sitemap. Sitemap — это файл XML, который содержит информацию о страницах вашего сайта, их приоритете, частоте изменений и других метаданных. Он помогает поисковым системам более эффективно индексировать и показывать в поисковых результатах страницы вашего сайта.

В Yii2 фреймворке есть готовый компонент для работы с Sitemap, который может сгенерировать XML-файл Sitemap на основе данных вашего приложения. В этой статье мы рассмотрим, как настроить использование Sitemap в Yii2 и добавить его в ваше приложение.

Основы настройки Sitemap в Yii2

Чтобы начать использовать Sitemap в Yii2, вам нужно выполнить несколько простых шагов:

Шаг 1:Установите расширение yii2-sitemap с помощью Composer, добавив его в файл composer.json:
"yiisoft/yii2-sitemap": "*"
Шаг 2:Настройте компонент sitemap в конфигурационном файле вашего приложения (например, в файле config/web.php). Укажите базовый URL вашего сайта и путь, по которому будет сохраняться XML-файл карты сайта.
'components' => [
'sitemap' => [
'class' => 'yii2tech\sitemap\FileSitemap',
'baseUrl' => 'http://example.com',
'basePath' => '@webroot',
'file' => 'sitemap.xml',
],
],
Шаг 3:Определите методы действия SitemapController для генерации XML-файла карты сайта. В этих методах вы можете указать, какие страницы должны быть включены в карту сайта.
public function actionIndex()
{
$urls = [
['site/index', 'changeFrequency' => 'daily', 'priority' => '1.0'],
// другие страницы
];
return Yii::$app->sitemap->render($urls);
}

После завершения этих шагов вы можете получить карту сайта по адресу http://example.com/sitemap.xml. При проверке вашей карты сайта убедитесь, что она не содержит ошибок и включает все необходимые страницы.

Настройка и использование карты сайта в Yii2 очень просты и могут значительно улучшить видимость вашего сайта в поисковых системах. Не забывайте регулярно обновлять карту сайта при добавлении новых страниц или изменении старых.

Шаг 1. Создание Sitemap.xml

Для начала работы с Sitemap в Yii2, необходимо создать файл sitemap.xml.

В этом файле будут содержаться ссылки на все страницы вашего сайта, которые вы хотите индексировать поисковыми системами.

Создайте новый файл с именем sitemap.xml и разместите его в корневой директории вашего проекта.

Далее, вам нужно заполнить файл sitemap.xml соответствующим содержимым. Для каждой страницы вашего сайта добавьте элемент <url> внутри элемента <urlset>.

Каждый элемент <url> должен содержать следующие подэлементы:

  • <loc>: URL страницы. Например, <loc>http://example.com/about</loc>
  • <lastmod>: Дата последнего изменения страницы в формате ГГГГ-ММ-ДД. Например, <lastmod>2022-01-01</lastmod>
  • <changefreq>: Частота изменений содержимого страницы. Возможные значения: always, hourly, daily, weekly, monthly, yearly, never. Например, <changefreq>monthly</changefreq>
  • <priority>: Приоритет страницы для поисковой системы. Значение должно быть числом от 0.0 до 1.0. Например, <priority>0.8</priority>

Пример заполнения файла sitemap.xml:

<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>http://example.com/about</loc><lastmod>2022-01-01</lastmod><changefreq>monthly</changefreq><priority>0.8</priority></url><url><loc>http://example.com/contact</loc><lastmod>2022-01-01</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url></urlset>

В этом примере заданы две страницы – «О нас» и «Контакты». Вам нужно добавить элементы <url> для каждой страницы вашего сайта, которую вы хотите индексировать.

Шаг 2. Настройка маршрутов для Sitemap

После того, как мы создали генератор карты сайта, нам необходимо настроить маршруты для доступа к нему.

1. Откройте файл config/web.php в корневом каталоге вашего проекта.

  • 2. Внутри массива components создайте новый элемент с именем 'urlManager':
  • 'urlManager' => ['enablePrettyUrl' => true,'showScriptName' => false,'rules' => ['sitemap.xml' => 'site/sitemap',],],
  • 3. В созданном элементе 'urlManager' установите свойство 'enablePrettyUrl' в значение true для включения читаемых URL-адресов.
  • 4. Установите свойство 'showScriptName' в значение false для скрытия имени скрипта в URL-адресах.
  • 5. Создайте правило маршрута, где 'sitemap.xml' — это URL-адрес карты сайта, а 'site/sitemap' — это маршрут контроллера и действия, которые будут отвечать за генерацию карты сайта.

Теперь мы настроили маршрут для доступа к генератору карты сайта по адресу sitemap.xml.

Перейдите к следующему шагу, чтобы узнать, как создать контроллер и действие для генерации карты сайта.

Шаг 3. Генерация Sitemap.xml

После того, как мы создали модель и настроили контроллер для генерации Sitemap.xml, перейдем к этапу генерации самого файла.

Для этого в контроллере SitemapController нужно создать действие actionGenerate(), которое будет отвечать за генерацию Sitemap.xml.

Внутри действия actionGenerate() мы будем использовать модель Sitemap, чтобы получить данные для создания файла Sitemap.xml:

$model = new Sitemap;

$data = $model->getDataForSitemap();

Здесь мы создаем новый экземпляр модели Sitemap и вызываем метод getDataForSitemap(), который вернет нам массив данных для генерации Sitemap.xml.

Далее, нам нужно создать XML-документ с помощью библиотеки SimpleXMLElement. Мы будем использовать этот XML-документ для записи данных в формате XML:

$xml = new SimpleXMLElement('');

Затем, мы будем итерировать массив данных и для каждого элемента массива создавать новый узел XML и добавлять его в XML-документ:

foreach ($data as $item) {

    $url = $xml->addChild('url');

    $loc = $url->addChild('loc', $item['url']);

    $lastmod = $url->addChild('lastmod', $item['lastmod']);

    $changefreq = $url->addChild('changefreq', $item['changefreq']);

    $priority = $url->addChild('priority', $item['priority']);

}

Здесь мы создаем узлы XML (url, loc, lastmod, changefreq, priority) и присваиваем им значения из массива данных.

После того, как мы завершим итерацию, нам нужно сохранить XML-документ в виде файла Sitemap.xml:

$xml->asXML(Yii::getAlias('@webroot/sitemap.xml'));

Здесь мы используем метод asXML() объекта SimpleXMLElement, чтобы сохранить XML-документ в виде строки, и метод Yii::getAlias() для получения абсолютного пути до директории webroot. Затем, мы записываем эту строку в файл sitemap.xml внутри директории webroot.

Теперь, когда мы завершили действие actionGenerate(), остается только вызвать это действие в нужный нам момент. Например, мы можем вызывать это действие при каждом запросе к сайту, чтобы обновлять файл Sitemap.xml автоматически.

Для этого, мы можем добавить следующий код в метод beforeAction() базового контроллера BaseController:

$sitemapController = new SitemapController;

$sitemapController->actionGenerate();

Здесь мы создаем новый экземпляр контроллера SitemapController и вызываем его действие actionGenerate(). Таким образом, при каждом запросе к сайту будет обновляться файл Sitemap.xml.

Шаг 4. Отправка Sitemap.xml в поисковые системы

После создания и обновления Sitemap.xml файл необходимо отправить в поисковые системы. Это позволит поисковым роботам быстрее индексировать ваши страницы и улучшить их позицию в результатах поиска.

В Yii2 для отправки Sitemap.xml в поисковые системы можно использовать следующий код:

Поисковая системаURL
Googlehttps://www.google.com/webmasters/tools/submit-url
Яндексhttps://webmaster.yandex.ru/site/
Бингhttps://www.bing.com/toolbox/webmaster/

Для отправки Sitemap.xml нужно перейти по соответствующей ссылке, зарегистрироваться или войти в свой аккаунт (если уже зарегистрированы), выбрать ваш сайт и предоставить URL-адрес вашего Sitemap.xml файла.

Обратите внимание, что время индексации страниц может занимать некоторое время, особенно в случае нового сайта или обновления большого количества страниц.

Повторная отправка Sitemap.xml может быть полезна при внесении значительных изменений или добавлении новых страниц на сайт для обновления поисковыми системами.

Добавить комментарий

Вам также может понравиться