SEO-оптимизация

Добавляем метатаги для SEO продвижения

Добавляем метатаги для SEO продвижения

У разных страниц должны быть различные метатеги, чтобы поисковики нормально ранжировали ваш сайт.

Title

Самый главный для SEO тег - это тег title. Его можно задать в действии контроллера -

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

Или в виде

$this->title = 'Заголовок title задали в виде';


Description и Keywords

Эти теги задаём самостоятельно с помощью метода registerMetaTag()

В действии контроллера

\Yii::$app->view->registerMetaTag([
    'name' => 'description',
    'content' => 'Description set inside controller',
]);
\Yii::$app->view->registerMetaTag([
    'name' => 'keywords',
    'content' => 'Keywords set inside controller',
]);

В виде

$this->registerMetaTag([
    'name' => 'description',
    'content' => 'Description set inside view',
]);
$this->registerMetaTag([
    'name' => 'keywords',
    'content' => 'Keywords set inside view',
]);

Все зарегистрированные таким образом мета-теги сгенерируются в макете там где вызывается $this->head()

Заметьте, если вы зарегистрируете один тег дважды, то он и сгенерируется в макете тоже дважды. Например, бывает забываем и задаём тег description и в layout и во view, и потом в исходном коде имеем 2 мета тега description. На этот случай предусмотрен второй параметр в методе registerMetaTag()

$this->registerMetaTag([
    'name' => 'description',
    'content' => 'Description 1',
], 'description');
$this->registerMetaTag([
    'name' => 'description',
    'content' => 'Description 2',
], 'description');

При его установке, если будет 2 вызова с одинаковым этим параметром, то второй вызов перезапишет значение от первого и в результате в теге description получим 'Description 2'.

По мотивам – https://github.com/samdark/yii2-cookbook/blob/master/book/adding-seo-tags.md