Осторожно! WordPress создает много дублей!
Всем привет! На днях обнаружил баг в WordPress, который создает бесчисленное множество дублей страниц. Проблема касается всех, у кого есть сайты на этой CMS. Да-да, многими любимый движок может создать большое количество идентичных документов.
Напугал? Не переживайте =) . Баг, действительно, серьезный, но исправить его можно достаточно просто. Ниже я расскажу, что это за зверь и как от него избавиться.
В связи с недавними баден-баденовскими событиями начал плотно изучать информацию в Яндекс.Вебмастере. Анализировал сводку по индексированию ("Страницы в поиске"). Искал связь между пометками "Некачественная страница" и наложением фильтра за переоптимизацию.
И вот, зайдя в статистику для блога, был неприятно шокирован — сотни дублей несуществующих документов.
Оказывается, если к любому посту в блоге добавить любые цифры, то WordPress создаст такую страницу — она будет идентична основной записи. Баг с постраничной навигацией отдельных постов — сотни или тысячи вероятных дублей.
На таких страницах нет мета-тега robots и есть canonical, который в качестве канонического документа указывает именно дубль.
Проверьте, у вас также?
Усугубляет ситуацию связь с плагином All in one SEO pack, который дополнительно дает ссылку на предыдущую запись: поисковый робот не только заходит, по сути, на несуществующую страницу, но и начинает ходить по другим таким же. Добавлялось и удалялось сотни подобных "постов".
Я начал копать глубже и создал топик на wordpress.org. Оказалось, что еще в 2014 был баг при создании многостраничных постов с помощью тега <!--nextpage-->. Тогда также создавались несуществующие документы, но canonical для 2-й, 3-й или последующих страниц, наоборот, указывали всегда на первую, то есть не индексировались.
Начиная с WordPress 4.4 баг с canonical убрали (у каждой "пагинированной" страницы поста появился свой каноникал), а вот ошибку с созданием несуществующих документов не убрали. Поэтому сейчас индексируется больше, чем нужно .
Что делать и как убрать дубли?
Сперва, хочу сказать, что в одной из ближайших версий вордпресса этот баг постараются исправить.
Пока же нам придется убирать его, так называемыми, "костылями" . Существует 2 варианта.
1) Плагин After Last Page Fix от Белотицкого Юрия. Скачать можно здесь. Установка в один клик, настроек нет. Скрипт вместо создания множества дублированных документов отдает 404-ошибку. На мой взгляд, самый удачный вариант. Недостатки:
- плагин добавляет дубль rel="canonical";
- и shortlink.
2) Дополнительная настройка All in One SEO Pack. Разработчики этого плагина, скорее всего, оказались в курсе данного бага и в новых версиях появились дополнительные чекбоксы.
Несуществующие записи будут создаваться, но в них будет указан мета-тег robots, запрещающий их индексирование.
В других SEO-плагинах для wordpress не смотрел. Вероятно, в Yoast SEO или подобных будут такие же настройки. UPD. Да, действительно, в плагине от Yoast прописывается каноникал на основную запись.
Вот и все ! Баг достаточно серьезный, но исправляется, можно сказать, в один клик. Вам остается проверить, создаются ли у вас подобные страницы. Если да, то выбрать один из вариантов решения проблемы.
Получается, что, обновляясь на новую версию wordpress, не только устраняешь старые ошибки CMS, но можешь и получить новые. Интересно, какая у вас версия движка и создаются ли такие несуществующие посты? Поделитесь статистикой в комментариях .
Баг присутствует (WP 4.7.3), но в SEO Yoast каноникал по умолчанию указывает на корректный урл.
Проверил на своем сайте, при добавлении цифр, действительно получается страница, но тег canonical ссылается на страницу без цифр. Плагин Yoast, в настройки пока не лазил, полагаю, что и так сойдет.
Marian, Имя, подтверждаю, Yoast SEO ставит корректный каноникал.
Sosnovskij, то стоит что-то менять?
Дмитрий, не понял Ваш вопрос
Вы что, серьёзно? Проблеме сто лет в обед.
Код для htaccess
# 301 for canonical /2/
RewriteCond %{REQUEST_URI} !(/page*)
RewriteRule (.*)\/([0-9]+/)$ /$1/ [R=301,L]
# 301 for canonical /page/
RewriteCond %{REQUEST_URI} !(/category*)
RewriteRule (.*)page\/([0-9]+/)$ /$1 [R=301,L]
А как найти эти страницы у себя на сайте?
Алексей, если внимательно прочитать пост, то я написал, что проблема еще с 2014 года. Она была другого рода. Она выявлялась, когда почему-то многостраничные посты не индексировались. Так как записи практически никто не разбивал, то и проблемы как таковой не было (документы /213213/ создавались, но имели canonical на основной пост).
С 4.4 (не так уж и давно) стали не только создаваться, но и индексироваться подобные страницы, которые, на самом деле, не существует. Это более серьезно.
Kanapiya, добавьте к URL записи любую цифру и закройте слэш. Проиндексированные такие документы можно поискать в Яндекс.Вебмастер. Но лучше просто их закрыть от индексации (canonical на основной пост, noindex), отдавать 404 ошибку или настроить 301-редирект.
Sosnovskij,
не, именно эта проблема в 15 или 16-м году муссировалась
Алексей, 4.4 вышел в декабре 2015. Мне такая информация, к сожалению, не попадалась. Пока сам с проблемой не столкнулся, не узнал. Полагаю, что еще очень многие не сталкивались с багом.
подожду обнову)) спасибо.
А у меня другая проблема, в индекс залезали comment-pages-.. И основные вылетали из индекса почему-то. Пока в роботе не прописал костыль, творилась такая фигня. Но самое тупое в этой истории то, что как только прописал робота и дубли commant-pages стали вылетать, на сайте стал падать трафик. Так что тут какая-то каша происходит с Яндексом и WordPress. Делаешь как можно лучше, а оно хуже и хуже.
Сергей спасибо! Месяц назад установил вордпресс на новый сайт, дней через пять проверил через Xenu на исходящие, так вот там столько оказалось дублей! С предыдущими версиями таких проблем не замечал….
А если у меня в статье уже стоит тег canonical, нужно ли еще в СЕО-плагине ставить галочку «Canonical URLs:»?
Наталья, если везде стоят корректные каноникал, то тогда ставить не обязательно.
Привет, Сергей!
Поддержу некоторых комментаторов по поводу недоумения по новым мотивам этой проблемы. Вроде она именно в данном плагине и кроется и его же настройками решается.
Мне она на глаза в 2015 попалась (ktonanovenkogo.ru/wordpress/wordpress_osnovi/problema-all-in-one-seo-pack-ubiraem-relprev-relcanonical-ubrat-indeksa-dubli.html). Сделанные тогда настойки и сейчас вроде все правильно отрабатывают — правильный каноникал и корректный запрет на индексацию в мета-теге роботс.
Просто не понял о влиянии Вордпресса. В смысле, что он такие странички позволяет генерить? Думаете, что поисковики несмотря на указанные мета-теги будут индексировать мусор? В принципе, да, лучше без них, но и так вроде не сильно проблемно или нет?
Спасибо за информацию. У меня блоге тоже стоит All in One SEO Pack, первый пункт у меня был отмечен, а второй не был. Сейчас вот изменил настройки, посмотрим какие будут изменения.
Прочитав статью, пошла в Вебмастер и обнаружила, что AMP-страницы там помечены как неканонические.
Сергей, это надо как-то исправлять или в угоду Яндексу лучше их совсем отключить? Правда, Гугл для сайта тоже имеет значение.
С дублями я долго боролась и очень надеюсь, что на данный момент блог у меня настроен правильно. Удаляю вручную только дубли картинок.
Будьте внимательны с предлагаемым вами плагином!!!
Он добавляет шортлинк (Зачем?) и каноникал принудительно, если стоит сео плагин то их становиться по 2.
Одни дубли убирает — другие создает, чтоб не обидно было =)
Дмитрий, привет! Не говорил, что новая проблема в принципе. Новая для меня и тех, кто не замечал ее Да, это именно wordpress генерирует такие страницы. Они попадают в индексе, то удаляются из него. Это не хорошо.
Надежда, все правильно. Им каноническими быть нельзя, так как они являются дублями
Nobody0, посмотрел. Действительно, есть такое. На мой взгляд, менее критично, но, да, недоработка (или переработка). Добавил информацию в пост.
Получается, если у меня не стоит плагин All in One SEO Pack, я должна поставить для решения проблемы плагин After Last Page Fix? А к чему приводят его недостатки ( дубль rel=canonical и shortlink)?
Ольга, сначала убедитесь, что такие страницы создаются и открыты для индексации. Если да, то ставьте плагин. Небольшой минус будет в создании шортлинка. На мой взгляд, это совсем не страшно. По переходу на него стоит редирект на основную запись. Раньше в вордпресс shotlink стоял по-умолчанию.
У меня все в порядке, пока дублей не обнаружил (хотя и сайт молодой), стоит yoast. Заметил опечаточку: «Добавлялось и удалось сотни подобных «постов».»
Ignab, спасибо, поправил
Sosnovskij, подскажите, как понять, открыты ли они для индексации? Какая должна быть строчка в robots, которая их закрывает?
Не поняла. «Постраничная навигация отдельных постов» — это про многостраничные посты речь? Что правда, у кого то есть такие? Ну тогда писатели, ну тогда глыбы! )))
У меня сейчас свежий WordPress 4.7.4 плюс SEO by Yoas — никаких дублей в никаких ПС нет.
Светлана, да, только эти многостраничные посты, а точнее сами страницы навигации, создаются автоматически.
Баг уже исправлен, ни разу не сталкивался
А можно по подробнее про дубли с шортлинками, у меня они в поиске не мелькают, но сам факт существования дублированых статей, которые вордпресс( обновленный) создает путем добавления номера поста к адресу главной через /p?=номер. Еще заметила, что некоторые сайты-копипастеры ссылаются на такие страницы.
Ольга, дубли в коде, на сайте их нет, так как с них стоит редирект на основной материал.
4.9.2 — баг НЕ ИСПРАВЛЕН!!! приходится хардкодить
имею ввиду несуществующие страницы типа /page/88888
Тут выше указывали про смешное решение через каноникалы!!)) хахаха. пожалейте свой сервер! если конкуренты пронюхают. то вам насоздают миллиард страниц. Сервер усрется от Яшиных ботов… Такие страницы надо искоренять кардинально, только ответ 404!
Олег Пхукетов, не знаю почему не могут его исправить. Ошибка серьезная, а исправление не займет много времени.
А не подскажите, откуда могут браться дубли такого типа
site.ru/?url=https%3A%2F%2Fsite.ru%2Fnazvanie-stranicy%2F
Сергей, к сожалению, не подскажу.
Sosnovskij,
У Вас кстати тоже есть такие ссылки
sosnovskij.ru/?url=https%3A%2F%2https://sosnovskij.ru%2Fwordpress-sozdaet-dubli%2F
Сергей, на примере стоит rel=»canonical» на главную страницу блога.
Sosnovskij,
Получается, если rel=»canonical» указан на главную страницу, то это никак не навредит сайту в плане SEO?
Сергей, если поисковые системы правильно отработают тег, то да — ничего страшного
Ключевое слово если.
Спасибо, помогло решить вопрос с дублями страниц. Благо у вас тут описано как сделать 404 с помощью плагина или в комментариях предложили 301 с помощью .htaccess.
Второй вариант мне показался предпочтительней. А тег каноникал не очень понравился, поисковики могут сами выбрать канонический урл -«Страница является копией. Канонические версии страницы, выбранные Google и пользователем, не совпадают.»