
У разных страниц должны быть различные метатеги, чтобы поисковики нормально ранжировали ваш сайт.
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'.
18 июня 2016, SEO-оптимизация / Метки: registerMetaTag метатеги
По мотивам – https://github.com/samdark/yii2-cookbook/blob/master/book/adding-seo-tags.md

