Предыстория:
Поисковый робот Яндекс с некоторых пор поддерживает тэг <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”> в настройках.
Ну, и не забываем проделывать всё вышеописанное каждый раз после обновления плагина.