Как решить проблему ссылок canonical в плагине All In One SEO Pack

Друзья, всем привет. Сегодняшняя статья будет немного необычная. Я дам две ссылки и дополню решение своими доработками. Так вот, чисто случайно, ;-) я узнал о новой статье Александра Борисова, в которой Саша рассказывает о выявленном косяке в плагине All In One SEO Pack. Надо отдать должное, Саша умеет создать ажиотаж вокруг освещаемой темы.

И это непустой звук, проблема действительно существует. А если учесть, что плагин All In One SEO Pack использует 98% владельцев блогов на WordPress, то и в группу риска попадают все эти владельцы.

Источники, где описана проблема и пути её решения

Я не собираюсь пересказывать всю статью Саши, прочитать вы сможете её здесь. Прочитайте её, так как вам нужно знать суть проблемы. Только не торопитесь, хочу предупредить вас друзья, что не стоит делать поспешные выводы и торопиться менять шило на мыло. Достаточно посмотреть на комментарии к статье Саши и поймёте, что народ просто кинулся сносить плагин и устанавливать новый. Но есть и другие хорошие решения этой проблемы.

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

А для тех же, кто решит оставить плагин All In One SEO Pack я предлагаю прочесть статью Дмитрия Робионека вот здесь. Дмитрий предлагает решение проблемы с ссылками canonical без потери нервных клеток.

Прочитайте эти две статьи и возвращайтесь обратно, я расскажу, как настроить редирект если у вас ссылки оканчиваются не .html, а слэшем (\).

Мой метод настройки редиректа

Надеюсь, вы прочли статьи Александра и Дмитрия. Я выбрал Димин вариант решения задачи. И вы заметили, что одним из способов решения проблемы является настройка редиректа. Но вот только парни предлагают настроить редирект для сайтов и блогов, где ссылки заканчиваются .html.

Ссылки с html
Ссылки с html

А на таких блогах и сайтах, как у меня, где адреса ссылок заканчиваются слэшем – этот код не работает.

Ссылки со слэшем в конце
Ссылки со слэшем в конце

И таких как я, судя по комментариям в статьях, очень много. И если у вас такие же ссылки, то это решение для вас.

Итак, решив оставить плагин All In One SEO Pack, но при этом решить проблему с ссылками canonical – вы уже поставили чекбокс No Pagination for Canonical URLs в настройках плагина.

Настройки плагина
Настройки плагина

И добавили фильтры в файл функции темы (functions.php) для ссылок на предыдущую и следующую статьи, которые формирует плагин.

Фильтр в функциях темы
Фильтр в функциях темы

Все у кого ссылки заканчиваются .html настроили редирект, как предлагают Александр и Дмитрий — добавив в файл .htaccess эту строку кода:

RewriteRule (.*)\.html\/([0-9]+)$ $1.html [R=301,L]

А теперь пришёл черёд всех у кого ссылки заканчиваются слэшем или вовсе без него. Так вот, как вы поняли если к ссылке вида добавить цифры, скажем 567, то получится дубль страницы . Причём в комментариях встретил дополнение, что если добавить цифры и слэш в конце, то редирект перестаёт работать. Но, на каждую хитрую ж.., есть винт с левой резьбой.

В общем, сохраняем резервную копию файла .htaccess, на всякий случай. А в оригинальный файл, тот, что на сервере добавляем вот эту строчку:

RewriteRule (.*)\/([0-9]+/)$ /$1 [R=301,L]

Всё, теперь какие бы цифры и слэши злодеи ни добавляли, будет срабатывать редирект на эту же ссылку, но без цифр.

Только вот небольшой минус, — теперь у вас скорей всего перестала работать постраничная навигация. Так как эти страницы имеют вид . А после внедрения редиректа эта же страница потеряет цифру http:// vashdomen.ru/page/ и выдаст ошибку 404.

Но и для этого есть решение, просто добавьте в тот, же файл .htaccess вот этот фильтр:

RewriteCond %{REQUEST_URI} !(/page*)

Обязательно добавьте эту строчку перед строкой редиректа!

Вот теперь всё должно работать как надо. Если у вас что-то не работает, то посмотрите внимательно на мои ссылки и на ваши, — должно быть отличие. Это один момент. Второй причиной может быть конфликт между правилами в файле .htaccess.

А теперь самый сложный вариант, когда ссылки формируются без html и без слэша в конце . Проверить было негде, но благодаря Василию у нас получилось решить и эту проблему. За что ему огромное спасибо!

В тот же файл .htaccess нужно добавить вот эти строки:

RewriteCond %{REQUEST_URI} !(/page*)
RewriteRule (.*)\/([0-9]+) $1 [R=301,L]

Разница в один символ, и нет проблемы. На этой ноте считаю вопрос решённым, теперь каждый найдёт для своего блога решение проблемы с плагином All In One SEO Pack .

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

На этом у меня сегодня всё. Искренне надеюсь, что данный метод поможет настроить редирект на ваших сайтах и блогах. Всем желаю удачи и до встречи в новых статьях и видеоуроках.

С уважением, Максим Зайцев.

Понравилась статья? Поделиться с друзьями:
Комментарии: 150
  1. Василий

    Максим, без ссылок в конце, этот код тоже работает. Я уже установил на свой сайт. А я письмо написал, опоздал. :)

    1. Максим Зайцев (автор)

      Ответ на письмо тоже не буде лишним. А вот то, что метод сработал — это отличная новость. Можно подправить статью.

  2. Василий

    Конечно, можно подправить и дополнить статью. Так будет лучше.

    1. Максим Зайцев (автор)

      Всё, нужные корректировки внёс, и теперь с чистой совестью можно сказать — задача решена. Василий, ещё раз спасибо!

  3. Алексей

    Спасибо, использовал ваше решение с редиректом. Но обнаружил ещё одну проблему. Если к любой ссылке дописать ?dfkjghdjkf знак вопроса и любую белиберду, то она тоже открывается. И несмотря на то что каноникал прописан на основную страницу, в выдаче гугла я нашёл одну такую ссылку.
    Как бы и эти все ссылки редиректить на основную страницу или это лишнее?

    1. Максим Зайцев (автор)

      Здравствуйте, Алексей. Такие ссылки с «бредятиной» тоже можно редректить, но проблема может возникнуть из за знака вопроса, так как через вопрос формируются запросы. Поэтому этот редирект может больше вреда принести чем пользы.

  4. Дмитрий

    Отличное решение, Максим.
    Берем на вооружение ;)

    1. Максим Зайцев (автор)

      Дим, и тебе огромное спасибо! Твой метод рулит!

  5. Руслан Ахтамьянов

    Приветствую, Максим! Спасибо за пост, но у меня с .html и я искал решение без убивания All In One Seo Pack поэтому последовал решению Дмитрия

    1. Максим Зайцев (автор)

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

  6. Виктория Карпова

    Максим, привет! Решение Дмитрия + твое с редиректами для меня самый оптимальный вариант, так как плагин All In One полностью устраивает, старый Platinum не хочу, а к новому Seo by Yoast пока не готова:)
    Вот только у меня с редиректами в htacess большая проблема, чтобы я туда не добавляла, после этого блог перестает работать и выдает ошибку 500. Вот я и думаю, можно его заменить на стандартный файл htacess для Вордпресс,а то у меня там еще какая-та информация хостера. Или так нельзя?

    1. Максим Зайцев (автор)

      Вика, привет. Тут может быть проблема конфликта параметров. Ты код редиректа и фильтр вставляешь сразу после RewriteBase / То есть попробуй поменять место в файле. Место играет тоже роль.
      По поводу стандартного файла то и этот вариант тоже можно попробовать.

  7. Юрий

    Скажите Максим если обновлять вордпресс то код в функциях темы прийдется по новой вводить? ив файле .htaccess происходят изменения при обновлении вордпресс?

    1. Максим Зайцев (автор)

      Юра, Василий прав — при обновлении движка изменения в файле функции темы делать не надо. Хотя для надёжности можете сохранить резервную копию этого файла перед обновлением. Да и вообще всегда перед обновлениями лучше делать резервную копия сайта.

  8. Василий

    Нет, код в functions менять не придется. У меня изменения в htaccess не происходят. Я сделал запрет на изменение этого файла.

  9. Юрий

    Василий по поводу запрета можно по подробней,хотелось бы тоже поставить,а то у меня был горький опыт в этом файле откудато взялся переход на другой сайт,заранее спасибо.

  10. Валерий

    Максим, здравствуйте. Решение проблемы с canonical, конечно, имеет существенное значение для продвижения сайта в выдачах поисковых систем. Прочитав статью Александра, я так же, как и Вы не поспешил отказаться от All In One SEO Pack. Причин для этого несколько, рассказывать о них не буду, я думаю, что Вы их прекрасно знаете. Часть решения этой проблемы с All In One SEO Pack я нашел у Дмитрия. А вот с 301 редитектом для страниц без / и html сильно помогла Ваша статья. Спасибо за столь важную для каждого блоггера информацию.

    1. Максим Зайцев (автор)

      Валерий, очень рад, что смог помочь. Тоже почитал комментарии на блоге Александра и понял, что тема актуальна для многих. Вот и решил написать небольшую шпаргалку.

  11. Валерий

    Вика, у меня этот код сработал, когда я его поставил перед строкой RewriteRule ^index.php$ — [L].

  12. WebPromote.Ru

    Максим, все супер, но только в слове плагИн удаление падает на И, а не на А. Пруф . Просто в видео слух режет :)

    1. Максим Зайцев (автор)

      Ценность информации ведь не в произношении! Но свой косяк я понял, приму к сведению. Спасибо ;-)

  13. Василий

    Юрий, для запрета изменения файла htaccess, на него нужно установить другие права доступа. Сейчас у вас права доступа 644, а нужно сделать 444.

  14. Валерий

    Максим, согласен с Вами, что главное содержание, а не форма. Хотя, некоторые люди обращают, к сожалению, больше внимания на форму. Кстати, в разговорной речи допустимо и то, и то ударение.

    1. Максим Зайцев (автор)

      Валерий, я тоже придерживаюсь мнения, что важность информации не в том как её преподносят.

  15. Виктория Карпова

    Валерий,спасибо,попробую тогда и в своем файле)

  16. Виктория Карпова

    А я уже к плагину привыкла (где ударение на а). Как всегда — кому что,кто за инструкцией полезной пришел, а кто ошибки в словах поискать:)

    1. Максим Зайцев (автор)

      Ну, а куда без этого ;-)

  17. Алексей

    запросы с знаком вопроса я могу вспомнить только для поиска по блогу, но это можно добавить в условие.
    Не могли бы вы дать код редиректа всех ссылок с знаком вопроса на основную страницу? с условием что это не поиск. Буду очень благодарен)

    1. Максим Зайцев (автор)

      Алексей, знак вопроса играет важную роль в передаче GET запросов, а это запросы к базе данных и отправка сообщений с сайта. Чтобы прописать код редиректа мне нужно разобраться в работе темы и обращениях к базе данных, а также у условиях прописанных в файле .htaccess

  18. Юрий

    Спасибо большое я все понял.

  19. Vlad

    Здравствуйте!

    Да, Борисов поднял еще тот ажиотаж!

    Не нужно сразу бежать за новыми обновлениями, на следующий день все может измениться (или найдутся более универсальные способы).

    Вот и я не побежал! Решил только сегодня разобраться что и как, так как плагин сносить не очень то и хотелось…

    Написал Василию и он направил меня сюда — очень благодарен ему за это!

    Ссылки у меня на блоге без html и без слэша достаточно ли просто поставить редирект?

    В плагине чекбокс я не ставил и в functions.php ничего не прописывал! Редирект работает!

    Заранее благодарен! Вот-так нужно было Борисову освещать это тему, но с заменой плагина тоже неплохо! :D

    1. Максим Зайцев (автор)

      Влад, добрый вечер. Редиректа вполне достаточно. Подобные дубли не появятся на вашем сайте.

  20. Vlad

    Подписался на обновления! ;)

    1. Максим Зайцев (автор)

      Отлично, буду стараться ;-)

  21. Александр

    Может не в тему, но то же нужное. Кто знаком с движком WordPress. Помнится
    раньше в установке медиафайлов была настройка отступов. Можно было менять значения в пикселах. Почему-то в установленной не нашёл. Есть у кого, что
    подсказать по этому вопросу. Спасибо.

    1. Максим Зайцев (автор)

      Здравствуйте, Александр. Если нужны какие-то нестандартные отступы, их можно задавать в режиме текст, добавляя свойство padding и margin. А можно создать отдельный стиль и добавлять при вставке медиафайла.

  22. Алексей

    Может в каких-то движках знак вопроса и используется, но я проверил — тут нет.

    1. Максим Зайцев (автор)

      Алексей, трудно гадать на пальцах, как формируются ссылки на вашем сайте — не видя их. Но могу предложить вот такой вариант
      RewriteCond %{QUERY_STRING} ^часть ссылки после знака вопроса$
      RewriteRule ^часть ссылки до знака вопроса, включая сам вопрос$ куда редиректить [R=301,L]
      В качестве исключения используйте предложенный мной код для страниц навигации, — только подправив под ваш поиск.

  23. Галина

    Максим, ОГРОМНОЕ ВАМ СПАСИБО ЗА ВАШУ СТАТЬЮ И ОСОБЕННО ЗА ТАКОЕ ПОДРОБНОЕ ВИДЕО!!!!
    Для таких «вебмастеров» как я, особенно ценно все посмотреть своими глазами, куда залезть, на что нажать, и куда и что поставить.Я в этом ДУБ, сайт уже имеет много статей,и веду его не первый год, поэтому сама просто боюсь куда-то лезть, и что-то исправлять, чтобы все не полетело. Прошу это сделать уже знакомого несколько лет фриланса, которого Саша Борисов посоветовал. А с вашим видео ЛЕГКО решила данную проблему, причем, просто поставив галочку в чебоксе в настройках плагина All In One Seo Pack.Даже не делая более никаких действий, редиректов и прочего. Просто обновила плагин до последней версии, а потом галочку поставила в указанном вами чебоксе. И теперь у меня отсекаются сами эти дубли. Я очень этому обрадовалась, так, как не пришлось ковыряться в кодах. Может разработчик данного плагина исправил все допущенные ошибки до конца? Но у меня все сработало с установки одной только галочки в настройках плагина.
    Теперь ваш сайт у меня в закладках, и я очень рада, что случайно на него попала!
    Удачи Вам!!!!!!

    1. Максим Зайцев (автор)

      Галина, искренне рад, что информация оказалась полезной для вас. Надеюсь и другие мои материалы принесут вам пользу. У вас отличный сайт, да и пишите вы интересно. Удачи Вам!

      1. Олег

        Максим, привет! Может комент не в тему, но все же, тут многие борются с тем что бы скрыть версию вордпреса от злоумышленников, так вот в твоем коде я нашел вот такую строку «» в которой и видна твоя версия ver=4.7.3 Как от этого избавиться?

        1. Максим Зайцев (автор)

          Олег, привет. А я не парюсь по этому поводу.

  24. Vlad

    Спасибо! =)

  25. Алексей

    да ладно, решил не париться, всего две ссылки в соплях нашёл и я думаю они там ненадолго.
    Я сегодня обнаружил ещё одну дыру такого формата.
    У кого стоит плагин карты сайта Dagon Design Sitemap Generator и выбрана постраничная навигация карты сайта — если указать несуществующую страницу то она отобразится, на её месте будет последняя существующая страница. Т.е. можно наплодить миллион дублей.
    Благо, AIOSP рисует там canonical на исходную (первую) страницу карты сайта.
    Но это ещё один косяк, который я заметил. Получается все страницы карты сайта, кроме первой, не учитываются ПС, не участвуют во внутренней перелинковке.

    В общем, я отключил AIOSP для карты сайта и настроил редирект несуществующих страниц карты сайта на первую страницу. Но было бы в идеале если бы кто-то подправил плагин и сделал бы чтобы постраничная навигация рисовалась не в формате:
    /karta-sayta/номер/
    а:
    /karta-sayta/page/номер/
    Тогда всё работает по умолчанию.

    Я ковырялся в его коде, но не сильно шарю и у меня не получилось всё исправить..

    А про Борисова считаю, что он популист. Все его советы нужно тщательно обдумывать.

    1. Максим Зайцев (автор)

      Алексей, эта проблема была уже не раз освящена на форумах, но разработчики плагина не торопятся исправлять её. Я сам изначально, когда использовал плагин Dagon Design Sitemap Generator, установил постраничную навигацию. И обратил внимание, что вторая страница карты просто не работает. А поисковики при этом исключают страницу из поиска.
      На текущий момент навигацию отключил, но думаю отказаться от плагина и организовать всё кодом.

  26. Vlad

    У меня стоит плагин Dagon Design Sitemap Generator, но постраничную навигацию в нем я не использую!

    Может это и есть простой выход из ситуации?

    Нужно ее отключить…

  27. Алексей

    у вас статей ещё немного)) а что будет когда их станет сотни???

  28. Vlad

    Вот тогда над этим и подумаю… :D Как говорят: «Поживем — увидим!».

    У А.Б. без навигации, листать конечно столько не очень удобно…

    1. Максим Зайцев (автор)

      В этом вся и проблема, если посетитель ещё и не дружит с поиском по сайту, то в такой карте очень трудно найти нужный материал. Постраничная навигация облегчает задачу при просмотре и поиске интересующего материала.
      Отключение постраничной навигации — выход в первое время. Дальше нужно эту задачу решать. Так как юзабилити сейчас учитывается при ранжировании и с этим нужно считаться.

  29. Алексей

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

    1. Максим Зайцев (автор)

      Внутренние страницы в виде карты сайта проходят одобрение поисковиков.

  30. Алексей

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

    1. Максим Зайцев (автор)

      Да, есть такая проблема. Надо подумать над её решением. В теории не всё так сложно, а как на практике получится пока не пробовал. Как сделаю поделюсь опытом.

  31. Алексей

    а как на счёт веса передаваемого с карты сайта? когда много ссылок на одной странице, то каждая ссылка уже почти ничего не передаёт.
    Кстати, у вас на блоге отвечать под комментариями можете только вы..

    1. Максим Зайцев (автор)

      На счёт веса согласен. Но для карты сайта это и не важно. А на счёт комментариев, — это косяк в моей теме оформления.

  32. Vlad

    Все верно!

    А платить за исправление косяка в плагине как-то неохота.. После очередного обновления все слетит…

    Лучше сделать вывод карты сайта через код!

    1. Максим Зайцев (автор)

      Да, можно и самому доработать плагин, но как верно подмечено — это только до обновления!

  33. Алексей

    о каком обновлении вы говорите)) плагин не обновляется уже много лет!

    1. Максим Зайцев (автор)

      Да, в плагине много не доработок, которые никто устранять не будет.

  34. Василий

    Dagon Design Sitemap Generator не обновляется уже много лет. Плагин уже убрали из репозитория WordPress. Последняя запись об этом плагине там была сделана 7 лет назад.
    Если записей очень много, то постраничная навигация у карты сайты выглядет вроде бы логичнее. Но, я думаю, что с практической точки зрения, лучше иметь карту сайта на одной странице.
    Шансы на то, что кто-то будет переходить на страницу «Х» в несколько раз меньше, чем у карты сделанной на одной странице. Пользователю намного проще прокрутить страницу вниз, чем искать кнопки для перехода на другую страницу. Да и далеко не все заметят кнопки пагинации.

  35. Андрей

    Хорошее решение недоработки плагина.
    Но новичкам будет сложновато, не проще вернуть более старую версию All In One Seo Pack?

  36. Vlad

    Да и на самом деле — последнее обновление было 07-06-09 Версия 3.17.

    А у самого версия 3.15 (09-17-08). =)

  37. Василий

    Андрей, не нужно переходить на старую версию плагина. Там есть проблемы с безопасностью, меньше настроек.
    Да, это собственно и не недоработка плагина. Разработчик специально добавил такие ссылки в свой плагин.
    Не так давно подобные ссылки с prev и next ввел Google для сайтов с каталогами товаров, там URL заканчивается цифрами. На таких сайтах они уместны.
    В нашем случае, в обычных условиях, такие ссылки в плагине, не должны вообще появляться. Поэтому это собственно не баг плагина.
    Опасность возможна, если только кто-то будет намеренно добавлять цифры к урлам страниц сайта.
    В настройках самого плагина, если вообще больше ничего не делать, уже есть защита: на такие страницы можно добавить ссылку с canonical, и поставить мета тег robots noindex,nofollow. Только эти настройки плагина, должны помешать роботам индексировать такие страницы.
    А если еще добавить код в functions, и сделать 301 редирект в htaccess, то для появления таких ссылок, уже не будет даже теоретических шансов.

    1. РОДион

      Я на своём сайте не стал добавлять код в functions.

      1. Обновил плагин All In One Seo Pack поставил галочку в строке No Pagination for Canonical URLs в настройках плагина.
      2. Сделал 301 редирект в htaccess для подстраховки (хотя при первом действии уже проблема была решена)

      RewriteCond %{REQUEST_URI} !(/page*)
      RewriteRule (.*)\/([0-9]+/)$ /$1 [R=301,L
      (у меня на конце URL / заканчивается)

      А вот у кого ссылки формируются с html, то тогда нужно третий пункт сделать
      3. Добавить код в functions сразу после строки <?php

      add_filter('aioseop_prev_link', '__return_empty_string' );
      add_filter('aioseop_next_link', '__return_empty_string' );

  38. Галина

    Спасибо Вам, Максим!
    И вам желаю Удачи!

  39. Юрий

    Да,ажиотаж получился сильный,не успеваешь читать комментарии.Одно радует,это сплоченность и быстрая помощь друг другу.

    1. Максим Зайцев (автор)

      Верно, вмести — мы сила!

  40. Жанна Лира

    Тут выше уже спрашивали, но точного ответа не было: что делать со ссылками, к которым добавили что-то после вопросительного знака?

    Например, у меня в индексе появились ссылки с такой ерундой на конце:

    /?ing-The-Daughters-Of-The-Firm

    /?ocom=665

    По «Убрать урл» ссылки не убираются, Яндекс пишет, что нет оснований — не отдается странице 404.

    Можно как-то использовать тот факт, что в этих ссылках нет закрывающего слэша?

    1. Жанна Лира

      Структура ссылок в блоге такая: blog.ru/rubrika/statya/

    2. Максим Зайцев (автор)

      Здравствуйте, Жанна. Не знаю всей ситуации с описанными вами страницами на вашем сайте. И чтобы не исключить лишнего можете использовать вот этот код для конкретных страниц.
      if ( isset( $_GET['ссылка не нужной страницы'] ) ) {

      @header("HTTP/1.0 404 Not Found");
      die();
      }

      Этот код будет отдавать ошибку 404 при обращении к конкретной странице.

      1. Жанна Лира

        Обрисую ситуацию, чтобы было понятнее:
        страницы в поиске — реальные страницы, статьи, но ссылки в индексе не канонические, а с добавлением странных символов после слэша, начинаются эти символы с вопросительного знака.

        Причем, в индексе есть и страница с каноническим адресом, и эта ерунда.
        Например,
        blog.ru/statya/
        blog.ru/statya/?ocom=665

        Файлы блога проверила доступными способами (утилитой в IThemes, каким-то плагином Antivirus, обычным антивирусником на компьютере). Еще как-то проверить?

        Если просто удалить конкретные страницы, это не защитит от появления новых, насколько я понимаю.

        Напишу Яндексу, вдруг они подскажут.

        1. Максим Зайцев (автор)

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

  41. aleksandr

    Комментариев настолько много, что трудно уследитьза всеми.Одно непонятно, это ведь уже давно не актуальный и устаревший плагин. А оказывается его еще используют на своих сайтах. Yoast WordPress SEO plugin — для начинающих именно то что надо и не только

    1. Максим Зайцев (автор)

      В том то и дело, что очень многие владельцы сайтов и блогов использую именно этот плагин. И для решения появившейся проблемы есть решение и без смены плагина.

  42. Елена

    беру на вооружение на будущее!!!!

    1. Максим Зайцев (автор)

      Елена, этот метод всегда может пригодится!

  43. Светлана

    Спасибо за помощь Максим. Все получилось)))) А то я не хотел менять этот плагин. Как советует Александр Борисов. Я у вас в первые на блоге, теперь буду заходить и к вам тоже читать. И вопрос если у меня было /%category%/%postname%, а я сегодня поменял на /%postname% чтобы кот работал. На что может повлиять? Может ссылочная масса уменьшиться?

    1. Максим Зайцев (автор)

      Здравствуйте, Светлана. Так ведь код работает и с категорией в адресе. Вам ничего в адресах страниц менять не надо. Просто используйте код для ссылок без слэша в конце.

  44. Елена

    Все сделала для страниц с html — все три пункта — чекбокс, фильтр в functions.php, строка в htaccess RewriteRule (.*)\.html\/([0-9]+)$ $1.html [R=301,L]
    Вопрос — теперь движок на странице записей формирует страницу по линку сайт.ру/новости.html/page/2/ вместо ранее, до изменений сайт.ру/новости/page/2/

    Что делать сейчас?

    1. Максим Зайцев (автор)

      Здравствуйте, Елена. Если я правильно Вас понял, то ссылки на вашем сайте формировались без html, но со слэшем на конце. Если так,то вам нужно код в файле htaccess заменить на это RewriteRule (.*)\/([0-9]+/)$ /$1 [R=301,L]
      В статье ведь приведено три варианта, для сайтов с различным формированием ссылки. Измените код и всё будет как ОК! Желаю удачи.

  45. Сергей Саранчин

    Привет, Максим!
    Есть один вопрос по теме статьи. Зачем добавлять фильтры в файл фунций для предыдущей и следующей статьи?

    1. Максим Зайцев (автор)

      Сергей, привет. Фильтры нужны для ссылок, которые формирует сам плагин. Они не нужны, ведь сам движок формирует такие же ссылки. Обрати внимание на исходный код своей статьи и увидишь такие же ссылки. Они останутся, а ссылки плагина будут удалены.

      1. Сергей Саранчин

        Спасибо, Максим, ясно!

  46. артем

    RewriteRule (.*)\/([0-9]+) $1 [R=301,L] такой код не сработал для сайта без слеша и html. сработал вот такой код — RewriteRule (.*)\/([0-9]+)$ $1 [R=301,L], то есть пропущен $

    1. Максим Зайцев (автор)

      Здравствуйте, Артем. Очень рад, что вы смогли внедрить код на своём сайте. Символ $ не пропущен, сделано это намерено, код рабочий. Хотя, вы первый у кого были трудности. Спасибо, что поделились решением вопроса. Возможно это поможет кому то ещё.

  47. Александр Быкадоров

    Доброго времени суток.
    Спасибо за столько подробный и нужный пост.
    Я перешел на «Платину» и мой блог имеет ссылки с / на конце…
    Поставил редирект RewriteRule (.*)\/([0-9]+/)$ /$1 [R=301,L] — слетела постраничная навигация, как и было сказано в посту.
    Поставил RewriteCond %{REQUEST_URI} !(/page*) — перед редиректом, а навигация так и не вернулась…
    Плюнул на все и поставил чистый .htacess — ничего не смог вернуть.
    Что делать? Уже ничему не рад )))
    Навигация реализована темой блога.

    1. Максим Зайцев (автор)

      Александр, здравствуйте. Я посмотрел ваш сайт, и всё работает нормально. И страницы и навигация. Код рабочий и помог уже многим блогерам.
      Для того, чтобы мне сказать в чём причина нужно видеть проблему. Более конкретно сказать не могу.

  48. Вика

    Красивенько у Вас на сайте, чувствуется Новогоднее настроение! ;)

    1. Максим Зайцев (автор)

      Спасибо, Виктория. Да, хочется праздника :-)

  49. Ольга Кутуева

    Спасибо, Максим! Читала все у Александра, но было совсем некогда, поэтому отложила решение проблемы. Но иеперь с Вашей помощью все уладила! Все очень толково, подробно рассказали и показали!
    С Новым годом! Исполнения заветных желания и воплощения самых смелых планов!

    1. Максим Зайцев (автор)

      Ольга, с Новым годом! Успехов вам!

  50. ЯНИС

    Какие к черту редиректы и functions.php, достаточно поставить галку (No Pagination…) и все, cannonical работает идеально (в частности, на страницах со слешем как у меня). Из ничего делают бред какой-то…

    1. Максим Зайцев (автор)

      Янис, да разработчик внёс необходимые изменения в плагин, но благодаря поднятой шумихе и многим письмам автору. А вот на счёт редиректа, вы не правы. Как было сказано, цифры в конце url — это возможность (для доброжелателей) добавить такого рода хлам в поисковый индекс. Вот так вот.

      1. ЯНИС

        Ну это только к страницам .html

        1. Максим Зайцев (автор)

          Опять неверно, добавьте цифры к любой вашей статье, и поймете, что этот мусор легко можно добавить в индекс.

    2. artem

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

      1. Максим Зайцев (автор)

        Артем, ваши слова ещё раз подтверждают, что без редиректа эту проблему не решить.

        1. artem

          совершенно верно

  51. ЯНИС

    Вы не правы, цифры будут стоять только к пагинации, но cannonical будет указывать натуральный url. Редиректы поисковики не любят, я бы не увлекался так ими…

    1. Максим Зайцев (автор)

      Янис, без редиректа, цифры будут стоять там, где их поставить. И не важно, какая страница отмечена тегом cannonical, в индекс мусора с подобными адресами можно добавить сколько угодно.
      То есть, если кому то станет скучно, и он решит добавить в индекс таких страниц, он сделает это без труда. Редирект же этого не даст сделать.

      1. ЯНИС

        Мне кажется, вы сути не понимаете, хотя может и я ошибаюсь. Вот смотрите: хоть редирект, хоть галка на (No Pagination…) — самое главное, что тег cannonical в обоих случаях указывает натуральный url (без цифр), даже если эти цифры поставить, я смотрел исходный код.
        Вывод: добавить в аддурилку Яндекса можно и в том и в другом случае С ЦИФРАМИ, он же скушает. НО, он — ЯКОВ, по-любому увидит, что уже есть натуральный url cannonical в обоих случаях и эти цифры он нафиг не будет индексировать. Смысл редирект ставить???

        1. Василий

          Все мы видели с самого начала. Когда Борисов написал свою статью, эта настройка с каноникал в плагине уже была.
          А кроме Яндекса есть еще Google, да еще нужно учитывать, что поисковики работают по своим алгоритмам, и не всегда выполняют те предписания, которые они обязаны были выполнить согласно директивам.
          Мне непонятно ваша боязнь редиректа.

        2. Максим Зайцев (автор)

          Суть в том, что без редиректа такие мусорные страницы будут в индексе и без разница стоит на ней cannonical или нет. Разница лишь в том, что с cannonical будут исключены из индекса. А в кабинете вебмастера такие страницы можно видеть в разделе «исключённые». С редиректом, этих страниц в индексе просто не будет.

          1. ЯНИС

            Видите, вы сами смысл не поняли мною сказанного, что еще раз подтверждает мои слова!

          2. Максим Зайцев (автор)

            Янис, что же, пусть так! Каждый остался при своём мнении.

    2. Василий

      Янис, а с чего вы взяли, что поисковики не любят 301 редирект? Об этом кто-то написал?
      Мой собственный опыт говорит об обратном.

      1. ЯНИС

        На каждой вашей странице? Что в итоге получается))) Каждую вашу запись он будет редиректить, так как канноникал с этим связан. Это жесть!

        1. Василий

          Янис, в нормальной ситуации, таких страниц вообще не будет? следовательно не будет и редиректа. Они могут появится только в результате действий нехороших людей. Поэтому, редирект — это самая надежная защита, от подобных действий.
          У меня на сайте еще стоит редирект, предохраняющий появления ссылок с replytocom в комментариях. После его установки, Гугл снял санкции, которые он ввел против моего сайта из-за наличия большого количества дублей. В итоге, посещаемость с поиска Google возросла в несколько раз.
          Как видите, редирект — это не всегда плохо.

          1. ЯНИС

            Но ведь действия могут быть, вы не исключаете этот факт? На этом основана вся дискуссия, надеюсь вы адекватны!
            Я скажу вам честно, Борисова я вообще не уважаю, считаю его шарлотаном и рерайтером чужих мыслей! Почему все комментарии с сайта Борисова идут в папку спам, почему все его шаблоны, которые он бесплатно раздает (со скрытыми ссылками и «левыми» кодами) вскоре банит Гугл, зачем мне его постоянные тупые редиректы (дубли), идущие в противовес правилам самого Гугла — ни разу не задумывались? Дак подумайте…

          2. Василий

            Это какие такие правила вы обнаружили?
            Читаем, что об этом сказано у Яндекса:

            «Робот Яндекса распознает стандартные коды состояния HTTP 3xx (redirection).
            Выделяются основные виды перенаправлений:
            301 — постоянное перенаправление;»

            Google пишет об этом так:
            «Если вы хотите изменить URL страницы, отображаемой в результатах поиска, рекомендуем использовать переадресацию 301, выполняемую сервером. Это – лучший способ обеспечить переход пользователей из результатов поиска на запрашиваемую страницу. Код статуса 301 означает, что запрашиваемая страница окончательно перемещена в новое местоположение.»

            Может лучше на сам первоисточник ориентироваться в этом вопросе, а не на пересказ и сомнительные предположения сео-блоггеров.

  52. ЯНИС

    P.S. В случае со слешем и галкой (No Pagination)

  53. Алексей

    Здравствуйте!
    Спасибо за статью! Но поясните плиз чайнику.
    Прочитал статьи Александра, Дмитрия и Вашу. Возникли вопросы..
    У меня новый сайт (месяц)
    Плагин All In One SEO Pack
    (Впервые поставил этот плагин, в то же день как вышла крайняя версия 2.2.5.1)
    Изначально стоит галочка напротив Канонические URL’ы
    А напротив «No Paginations for Canonical..» галочки изначально не было.
    Недавно я заметил что Гугл и Яндекс, индексирует страницы вида,
    мойсайтточкару/page/02, 03 итд…
    У меня есть эти страницы, но мне совершенно не понравилось, что они индексируются..
    Запросы в поиске вывели меня на эти статьи…Почитал, но главного так и не понял наверное..
    Да, добавлю еще что «если приписать к моему основному урлу, цифру «от балды», как говорилось в статье у Александра,
    то я получаю ошибку 404″…

    Так вот вопросы:
    1. Если я сейчас поставлю галочку напротив «No Pagi….»,
    Перестанет ли Гугл индексировать эти страницы (02) (03),

    2. В function.php код прописывать обязательно?
    (Ведь плагин сразу с последнего обновления, или это не важно?)

    Заранее спасибо если кто подскажет!

    1. Максим Зайцев (автор)

      Здравствуйте, Алексей. Если вам не нужны в индексе страницы постраничной навигации, безусловно нужно поставить галочку «No Paginations for Canonical URLs». Что касается редиректа, то тут если уверены, что добавление цифр к адресу страницы — вызывает 404 ошибку, то редирект не обязателен. Такие страницы и так не будут в индексе.

      1. Алексей

        Максим, Спасибо Вам огромное за ясный и быстрый ответ!
        Добавил Ваш сайт в закладки!

        1. Максим Зайцев (автор)

          Очень хорошо, Алексей. Удачи вам!

          1. Андрей

            Здравствуйте Макс. Я так не понял скажите пожалуйста какой код ставить в файле .htaccess

            этот

            RewriteCond %{REQUEST_URI} !(/page*)
            RewriteRule (.*)\/([0-9]+/)$ /$1 [R=301,L]

            или код Василия

            RewriteCond %{REQUEST_URI} !(/page*)
            RewriteRule (.*)\/([0-9]+) $1 [R=301,L]

          2. Максим Зайцев (автор)

            Здравствуйте, Андрей. Если url вашего сайта заканчивается слэшем, то используете мой вариант. Если адреса страниц без слэша, то вариант, который предложил Вася.

          3. Андрей

            Спасибо большое

          4. Максим Зайцев (автор)

            Пожалуйста, заходите ещё!

  54. Петр

    Огромное спасибо за данный пост. Я целый день мучился с этим вопросом — «как сделать редирект если нет .html в конце» и в итоге наткнулся на Вашу статью. Я в php не очень силен, поэтому благодарен очень сильно!

    1. Максим Зайцев (автор)

      Петр, очень рад, что смог вам помочь. Желаю удачи!

  55. янис

    Привет, Максим! Я тут как-то наткнулся на интересную вещь в плане SEO. У меня да и у многих стоит плагин All in One SEO Pack, дак вот — в его настройках заголовков есть такая фиговина, к примеру: %post_title% | %blog_title%. То есть, после названия поста он выводит через черту | название сайта. Ведь это как бы разбавляет ключ, уменьшает его релевантность и вообще ерундово выглядит. Поюзал в интернете, многие удаляют в самом плагине вот эту часть | %blog_title%, но она все равно отображается, походу надо и в header.php удалять что-то, я еще не лез туда, буду смотреть… Ты на это обращал внимание?

    1. Максим Зайцев (автор)

      Янис, привет. Да, я тоже эту часть удаляю. Я вообще убрал из плагина эти настройки, так как стандартных настроек «Постоянных ссылок» мне вполне хватает.
      Если ты из плагина убрал эти настройки, но отображение осталось. Посмотри в постоянных ссылках, если и там все в порядке, то скорей всего нужно искать в теме.

  56. Алексей

    Давно не обновлял плагин All in One, обновил.
    Всё нормально, но обнаружил, что каноническая на главной теперь пишется со слешем на конце , а раньше было без слеша и вообще идёт переадресация на главную без слеша.
    Вроде бы мелочь, но почему так и как исправить не могу найти

    1. Максим Зайцев (автор)

      Алексей, добрый вечер. Это абсолютно нормально. По правилам СЕО все урлы, кроме тех, что оканчиваются файлом (пример: index.html или foto.png) должны закрываться слешем. Вот и канонический на главную прописан со слешем, а реальный переход на главную без слеша. Это правильно.
      Вы посмотрите на другие сайты, на их главные страницы и всё поймёте. Нет причин для беспокойства. Желаю удачи!

      1. Алексей

        Спасибо!

  57. Николай

    Я не разбираюсь в программировании. Но дубли страниц создаются не плагином, самой темой и wordpress. Но если для worpress мы используем .htaccess, а для темы файл functions.php. Но обновление темы вновь создаст проблему. Значит нужно материнскую тему заменить дочерней. Жду ответа.

    1. Максим Зайцев (автор)

      Здравствуйте, Николай. В идеале вы должны сделать дочернюю тему и все доработки делать в ней, лучше если через функции темы. Тогда и обновление родительской темы будут проходить без проблем. Разработчик плагина уже решил эту проблему и если в настройках установлен нужный чекбокс, то истинная страница будет отмечена тегом rel="canonical" что исключить вред дублей, если таковые будут.
      Но, тут ещё нужно не забывать про файл robots.txt и карту сайта, которые помогут поисковикам в индексации нужных страниц.

  58. Николай

    Максим!
    У меня появилось два <link rel="canonical".
    Что подскажете сделать?

    1. Максим Зайцев (автор)

      Здравствуйте, Николай. Не видя настроек, трудно что-то посоветовать. Проверьте настройки плагина, возможно у вас установлена галочка в настройках плагина и также прописан адрес каноникла в настройках поста. Перепроверьте.

  59. Вячеслав

    Огромное спасибо, пол дня искал проблему в вордпресс, а оказывается проблема в плагине. Тут другой вопрос, как сделать чтобы при добавлении цифр в конце отправляло на страницу 404, а не на эту же страницу

    1. Максим Зайцев (автор)

      Вячеслав, а смысл. Поисковики ведь фиксируют эти ошибки, зачем их плодить. И хотя они не влияют на ранжирование я всё же не вижу в этом смысла. Но, если нужно, можно тогда в плагине настроить каноникал, а редирект убрать и должна срабатывать 404 ошибка.

      1. Вячеслав

        Я в принципе понимаю, но клиент хочет чтобы пребрасывало на страницу 404 и без вариантов. Сейчас возвращает на эту же страницу, а как это можно настроить в плагине? Или может как то можно это сделать d htaccess? Буду очень признателен если подскажите.

        1. Максим Зайцев (автор)

          Вячеслав, добрый день. Ну если так хочет клиент, то смените [R=301,L] на [R=404,L,NC].

          1. Вячеслав

            Да, так уже и сделал, только тут почему-то вылезла другая проблема, сервер отвечает 404, но не вызывается страница 404 темы когда добавляешь цифры в конце урла, сделать красиво с использованием php тоже не получилось, пришлось выкручиваться, добавил ErrorDocument 404 /404.html , сделал такой файл и скопировал с браузера код html страницы ошибки. Может кому пригодиться такой вариант.

          2. Максим Зайцев (автор)

            Да, Вячеслав, это рабочий вариант. Спроси вы меня, я бы именно его и посоветовал. Рад, что всё получилось. Удачи вам!

  60. Igor4

    Я установил плагин all in one seo pack, но карты сайта нет. Иду по ссылке — http://live4travel.com.ua/sitemaps.xml а там вместо нее выдает ошибку «This page contains the following errors: error on line 2 at column 6: XML declaration allowed only at the start of the document
    Below is a rendering of the page up to the first error.».
    Такая же проблема была на плагине seo by yoast.

    1. Максим Зайцев (автор)

      Эти плагины формируют динамическую карту сайта, и с вашей базой данных они не находят взаимодействия. В чём причина, сказать точно не могу, нужно разбираться. Как вариант, попробуйте использовать отдельный плагин для карты сайта Google XML Sitemaps. И не забудьте отключить карту в all in one seo pack. Удачи!

  61. валерий

    Привет Максим, не совсем по теме. при использовании плагина All In One SEO Pack, а именно создания в нем файлов Robots и Sitemap нужно ли в корень сайта добавлять Sitemap и Robots?

    1. Максим Зайцев (автор)

      Привет, Валера. Нет, эти файлы добавлять в корень не обязательно. Главное, проверь в кабинетах вебмастеров, чтобы их было видно и не было ошибок.

      1. Валерий

        В кабинете Яндекса вот такая ошибка:
        Робот не использует ни одного файла Sitemap. Это может негативно сказаться на скорости индексирования новых страниц сайта. Если корректные файлы Sitemap уже добавлены в очередь на обработку, сообщение автоматически исчезнет с началом их использования.
        Обратите внимание на раздел «Файлы Sitemap».
        Что с ней делать? Главное зеркало изменилось на https.

        1. Максим Зайцев (автор)

          Обычно, когда начинаешь использовать новую карту сайта, это сообщение появляется. Нужно убедиться, что в разделе SiteMap указана карта. И тогда через некоторое время это сообщение исчезнет.

          1. Валерий

            Да в разделе SiteMap все указано, нажимаю проверить ошибок нет. В разделе Диагностика , Возможные проблемы нажимаю Проверить и примерно через сутки показывает Проблема актуальна. Эта ошибка уже длится с неделю с Google вроде все нормально.

          2. Максим Зайцев (автор)

            У Яндекса и две недели может висеть это сообщение. Главное, что карта добавлена и Гугл её видит. Значит и Яндекс тоже подхватит.

          3. Валерий

            Надеюсь на это, посещаемость просела но сейчас вроде все налаживается значит и картой все хорошо.

          4. Максим Зайцев (автор)

            Всё наладится, нужно время.

  62. Мария

    На сайте установлен плагин All in One SEO PAck
    Включены канонические ссылки.
    Но протокол пишет: http
    Где и как что поменять, чтобы проставлял https?

    1. Максим Зайцев (автор)

      Здравствуйте, Мария. Нужно установить сертификат SSL и перевести сайт на протокол https, в плагине ничего менять не нужно. Вот ссылка на чек-лист по смене https://1zaicev.ru/kak-perevesti-sajt-na-https-kratkij-chek-list/ А через поиск на блоге вы найдёте статьи по установке сертификата и настройке сайта.

      1. Сергей

        Здравствуйте, если есть адреса для новостей вида:

        При подключении данных правил выдает по ним ошибку 404

        RewriteCond %{REQUEST_URI} !(/page*)
        RewriteRule (.*)/([0-9]+/)$ /$1 [R=301,L]

        1. Максим Зайцев (автор)

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

Добавить комментарий