Предыстория:

Поисковый робот Яндекс с некоторых пор поддерживает тэг <link> с параметром [rel=”canonical”].

Как и всё в нашей стране — поддержка тэга вышла боком.

Не станем подробно останавливаясь на значении этого тега для SEO. Результат таков, что все страницы, содержащие свои же адреса в canonical, Яндекс обозвал «неканоническими» и выбросил из индекса.

Вот цитата со страницы Яндекс.Вебмастер:

«В коде документа в тэге <link> содержится параметр rel=”canonical”, содержащий канонический адрес страницы, по которому она индексируется роботом. Как правило, тег <link> с атрибутом rel=”canonical” прописывают на дублирующих страницах сайта, в этом случае ничего исправлять не требуется.

Если страницы дублями не являются и должны индексироваться роботом, то вам необходимо убрать атрибут из их исходного кода.»

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

Менять посреди процесса плагин и переучивать персонал было признано нерентабельным. Поэтому мы хакнули плагин. Итак, всем кто столкнулся с подобной проблемой можно попробовать тот способ, который используем мы.

Путь к файлу (от корня WordPress):

/wp-content/plugins/wordpress-seo/frontend/class-frontend.php

Комментируем строку с таким содержанием:

add_action( 'wpseo_head', array( $this, 'canonical' ), 20 );

Тоесть, должно выйти:

// add_action( 'wpseo_head', array( $this, 'canonical' ), 20 );

Сохраняем. Обновляем. Ждём, когда Яндекс снова проиндексирует странички.

После всего — пишем ребятам из Yoast про нашу проблему с просьбой предусмотреть в следующей версии возможность глобального отключения <link rel=”canonical”> в настройках.

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