Привет, друзья IdeaFox!
Думаю, уже все прочитали статью Александра Борисова про ужасы All in One Seo Pack : ) Все переехали на Platinum Seo Pack? Если нет, то прочтите эту заметку до конца, так как я расскажу о своем решении этой проблемы, без удаления AIOSP.
Тема действительно очень серьезная, и каждый из вас может получить неприятности, если вовремя не подсуетится.
Мы обсуждали эту напасть с Александром еще летом. Я сразу озадачился, и стал терзать разработчиков письмами с просьбой устранить этот баг.
Общался я с Питером Бэйлисом, который является одним из разработчиков плагина All In One Seo Pack:
Питер Бэйлис практически мгновенно отреагировал, и устранил этот опасный баг через несколько дней, но не до конца.
Именно поэтому я даю свое решение этой проблемы
Чтобы не переписывать суть проблемы, советую внимательно ознакомиться со статьей Александра. Уверен, что большинство из вас ее прочли, ну а те, кто не в курсе, добро пожаловать в ночной кошмар автономного блогера: )
http://isif-life.ru/blogovedenie/platinum-seo-pack-pravilnaya-nastrojka.html
Если без шуток, то прочтите ее. Саша рассказал про эту штуку летом, и подсказал одно хитрое решение (см. вариант №1 в статье).
Но я не стал спешить менять плагин, так как есть парочка “но”, которые тоже нужно учитывать, о чем написал ниже.
Александр какое-то время спасался на старой версии AIOSP, и тестировал другие решения, а я в это время писал разработчикам AIOSP : )
Итак, почему я не стал удалять All in One Seo Pack?
1. Плагин Platinum Seo давно не обновляется
Как видите, больше года обновлений нет. Что наводит на грустные мысли. Совсем непонятно, как поведет себя Платинум при дальнейшем обновлении WordPress.
На данный момент официально поддерживается версия ВордПресс 3.6.1. Актуальная же версия ВП= 4,0.
2. Если Вы мигрируете на Platinum Seo, то обратно на AIOSP переехать не получится
Точнее, получится, но описания статей (description, title, key words) будут потерты, или заменены на генерированный контент из статей. Придется все снова прописывать ручками. Если статей много, то это адский труд.
Да и как к этому отнесутся поисковые системы трудно сказать.
3. AIOSP развивается, и разработчики хотя бы чинят баги : )
Без иронии, Питер Бэйлис отвечал очень быстро, что радует.
Короче, друзья, дело ваше, но я предпочел остаться на AIOSP. Как решить эту проблему с противными каноникал, читайте ниже.
И, конечно, перед любыми изменениями делаем резервную копию всего сайта. Прежде чем хвататься за лобзик и пилить движок, прочтите статью до конца : )
Итак, приступим:
Для того, чтобы устранить проблему с тегом canonical нужно сделать следующее:
1. Пройти в настройки плагина AIOSP и нажать на галочку
No Pagination for Canonical URLs:
В старых релизах плагина AOISP этой фичи нет. Но появилась после бурной переписки с Питером : )
Теперь смотрите, что получается. Показываю на своем тестовом блоге win4blog.ru :
Я прошел на страницу и добавил пару цифр на конце URL
Смотрим на исходный код этой страницы:
Второй тег canonical показывает на исходную страницу, что уже значительно снижает риски образования дублей страниц.
Нам нужно убрать записи вида, которая указывает на страницу, которой нет в действительности win4blog.ru/info/87
<link rel=‘prev’ href=’http://win4blog.ru/info/87′ />
Дело в том, что мы получаем ссылку на несуществующую страницу, которая опять дает возможность расплодить дубли (в теории). Лучше убрать из кода страницы теги вида:
<link rel='prev' href='http://____________________/>
<link rel='next' href='http://____________________/>
Как это сделать?
Первый вариант:
Можно пройти в каталог плагина Алл ин Сео и найти файл aioseop_class.php
Этот файл расположен по адресу:
wp-content/plugins/all-in-one-seo-pack
Открываем файл в редакторе и находим следующие строки:
if ( !empty( $prev ) ) $meta_string .= "<link rel='prev' href='" . esc_url( $prev ) . "' />\n"; if ( !empty( $next ) ) $meta_string .= "<link rel='next' href='" . esc_url( $next ) . "' />\n";
Их можно удалить или закомментировать следующим образом:
/*if ( !empty( $prev ) ) $meta_string .= "<link rel='prev' href='" . esc_url( $prev ) . "' />\n";*/ /* if ( !empty( $next ) ) $meta_string .= "<link rel='next' href='" . esc_url( $next ) . "' />\n";*/
Чтобы было нагляднее, показываю на скриншоте:
Так было
Комментируем эти две строки и сохраняем файл.
Смотрим опять код страницы:
Противные строки : ) вида
<link rel=’prev’ href=’http://____________________/>
<link rel=’next’ href=’http://____________________/>
Исчезли.
Но в этом решении есть большой минус. После каждого обновления All in One Seo Pack придется возвращаться к файлу, и снова удалять или закомментировать эти две строки кода. Согласитесь, что это плохая идея.
Поэтому попробуйте второй вариант
Сами разработчики рекомендую сделать такой финт ушами вот на этой странице:
https://wordpress.org/support/topic/removing-link-relprev-and-link-relnext-using-all-in-one-seo
Нужно сделать очень простую вещь:
1. Идем в админку сайта по пути “Внешний Вид” –> “Редактор”
и открываем файл functions.php для редактирования
И сразу после строки <?php вставляем две строки:
add_filter('aioseop_prev_link', '__return_empty_string' ); add_filter('aioseop_next_link', '__return_empty_string' );
Сохраняем файл, обновляем подопытную страницу.
Опять проверяем, и убеждаемся, что мерзкие строки вида:
<link rel=’prev’ href=’http://____________________/>
<link rel=’next’ href=’http://____________________/>
исчезли из кода страницы.
Второй способ хорош тем, что он работает на уровне шаблона, и при каждом обновлении AIOSP не нужно ковыряться в недрах сайта. Но, подчеркну, что на некоторых хитрых шаблонах этот способ может не сработать.
И последний штрих
Можно еще подстраховаться, и прописать редирект для страниц, которые имею на конце URL цифры. Способ работает, если на конце URL прописано .html
Достаточно добавить одну строкe в файл .htaccess
RewriteRule (.*)\.html\/([0-9]+)$ $1.html [R=301,L]
Это штука позволяет перебрасывать со страницы с цифрами на конце, на основную страницу.
Например, если ввести адрес:
http://win4blog.ru/newpost.html/788888
то вас перебросит на
http://win4blog.ru/newpost.html
То есть, на основную страницу статьи.
Вот такие дела, товарищи автономные блогеры : )
Когда этот чертов ВордПесс начнет нормально работать? А разработчики плагинов делать нормальные продукты?
P.S. Если последуете этому совету, то обязательно проверьте потом свой сайт. Может быть, вылезут еще какие-нибудь баги, но у меня вроде все нормально. Если что-то вылезет, пишите в комментах и вместе начнем троллить Питера Бэйлиса : )