Добавление СЕО-тегов в Yii2

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

Давайте рассмотрим, как в проекте на Yii2 добавить метаданные, связанные с СЕО.

Заполнение тега Title в Yii2

Для установки заголовка страницы Title достаточно добавить в экшен контроллера следующий код:

\Yii::$app->view->title = 'Заголовок страница';

Либо внутри вида:

this->title = 'Заголовок старницы';
Примечание: установка $this->title в виде переопределит значение, установленное в экшене контроллера.

Но лучшей практикой будет использование следующего варианта определения заголовка страницы:

this->title = $this->title ? $this->title : 'Заголовок по умолчанию';

Для версий PHP 7.0 и выше можно использовать такую конструкцию:

this->title = $this->title ?? 'Заголовок по умолчанию';

Заполнение мета-тегов Description и Keywords в Yii2

Для установки Description и Keywords нет специальных ключевых слов. Но так как они являются мета-тегами, то их можно установить при помощи метода registerMetaTag(). Для этого необходимо добавить следующий код (для экшена контроллера):

\Yii::$app->view->registerMetaTag([
    'name' => 'description',
    'content' => 'Мета описание',
]);
\Yii::$app->view->registerMetaTag([
    'name' => 'keywords',
    'content' => 'Мета ключевые слова',
]);

Либо следующий код в виде:

$this->registerMetaTag([
    'name' => 'description',
    'content' => 'Мета описание',
]);
$this->registerMetaTag([
    'name' => 'keywords',
    'content' => 'Мета ключевые слова',
]);

Все зарегистрированные мета-теги будут отображены внутри тегов <head></head>, которые заполняются при вызове $this->head().

Но здесь еще стоит обратить внимание на следующее: если вы зарегистрируете один и тот же тег дважды (создадите дубль его, например), то этот мета-тег два раза и будет отражен. Такая ситуация может возникнуть в том случае, когда мета-тег был зарегистрирован в экшене контроллера и в виде (представлении). Данная ситуация неблагоприятно сказывается на СЕО. И чтобы такого избежать, необходимо использовать дополнительный аргумент:

$this->registerMetaTag([
    'name' => 'description',
    'content' => 'Мета-описание 1',
], 'description');
$this->registerMetaTag([
    'name' => 'description',
    'content' => 'Мета-описание 2',
], 'description');

В примере выше при повторном вызове такого метода с повторяющимся вторым параметром 'description' произойдет перезапись предыдущих данных.

ТЕГИ:

Вы можете поделиться этой статьей в любой из соцсетей, представленных ниже:


Чтобы добавить свой комментарий, необходимо пройти аутентификацию
Комментарии
Ничего не найдено.