9-11 августа в Калининграде прошла шестая ежегодная конференция по интернет-маркетингу и заработку в сети Baltic Digital Days 2018.
В рамках секции «SEO в Европе и США» Дмитрий Петренко (Head of SEO edu-cash.com) представил доклад «Как загнать сайт под фильтр без ПФ и ссылочного. Конкуренция в сложных нишах и методы защиты».
В ходе выступления Дмитрий рассказал, как он нашел возможный способ загнать под фильтр Google даже самый трастовый сайт.
Дмитрий работает в нише essay – одной из самых конкурентных ниш на Западе. Особенностью этой ниши является то, что многие специалисты здесь занимаются «антимаркетингом» в сети для своих конкурентов. Вместо того чтобы тратить больше времени на развитие своих проектов, они тратят его на то, чтобы пессимизировать проекты конкурентов.
Свой доклад спикер построил в формате истории, чтобы аудитории была видна вся последовательность событий и было понятнее, почему команда совершала те или иные действия.
На старте работ главной задачей был трафик. На протяжении достаточно длительного времени для получения трафика использовались многие источники: SEO (продуктовые сайты, сателлиты, узконишевые сайты), контекстная реклама (AdWords, Facebook, Bing и т.д.), создавались review-сайты и т.д.
Но была также мысль, что НЧ-трафик дает очень хорошую конверсию в силу того, что он более детальный и конкретный. Ведь когда девушка вводит запрос «купить платье», то определенное количество трафика будет явно хуже конвертить по сравнению с запросом «купить зеленое платье 38 размера в горошек диаметром 5 см».
Порядка 15% всех поисковых запросов к Google делаются впервые. Более 400 млрд ключевых слов за 2017 год Google считает новыми, это чуть больше 1 млрд в день. И эти запросы не имеют частотки. А это значит, что нужно получить с них трафик.
Что предприняли: для получения НЧ-трафика сделали сетку со страницами, заточенными под НЧ-запросы.
Сетка сайтов + НЧ-запросы = много трафика
В сетках под НЧ-запросы главная проблема – это контент. А еще более ранний вопрос: где взять столько семантики?
Было найдено следующее решение: все запросы разделили условно на 4 типа (это примерно 90% поисковых запросов в нише essay).
- По типам и видам работ. Основные типы работ, например, Essay, paper, report, coursework, case study, dissertation etc.
- Общие запросы. Например, «buy essay», «Do my homework», «Custom writing services», «Who can write essay for me» и др.
- Subjects. Бóльшая часть предметов собрана тут, например, Literature, Technology, Biology, Geography, Physics etc.
- Темы работы. «Shakespeare essay», «World war essays» etc.
Речь шла о семантике, по которой нет частотки в популярных источниках. По такой семантике, вполне вероятно войти в ТОП, не прикладывая большого количества усилий.
Этапы создания сетки:
- создание шаблона генерации внутренней структуры,
- генерация разделов,
- проектирование размещения внутренних ссылок,
- генерация контента,
- и самое главное – слив трафика.
Какие типы слива трафика наиболее распространены на сегодняшний день:
- при достижении ТОПа сайтом поставить 301,
- клоакинг – 301 редирект для всех, кроме googlebot,
- баннеры, когда любой клик по экрану превращается в переход на лендинг,
- popup – не оставляет вариантов, кроме перехода на другой сайт, хуже всего конвертится, потому что первый порыв пользователя – закрыть сайт,
- кнопка Order – самый низкий CTR, но высокая конверсия и др.
Но ни один из этих способов не устраивал. Стояла задача максимально конвертировать полученный трафик, сделать так, чтобы у пользователей не было шока в момент перехода с домена на домен из-за дизайна или чего-то еще. В результате было принято решение сливать трафик через iframe.
Схема работы такая: сайт, который выходил в ТОП, содержал один контент, а человек, заходивший на этот дор, видел совершенно другой сайт, который выводился поверх экрана.
В результате получили:
- максимум трафика на целевой ленд,
- люди не пугались непривлекательного дизайна,
- повысилась вероятность конверсии трафика за счет UX и дизайна,
- минимизировали потери трафикаа после попадания на order-form.
Трафик начал потихоньку литься и превращаться в конверсии:
Этот эксперимент проводился в конце осени 2017 года и фактический запуск сетки произошел за 4 недели до новогодних праздников.
А 3 января примерно в 10:56 сайт ушел в бан.
Справившись с первым шоком, команда стала рассматривать возможные причины:
- жалобы конкурентов в Google,
- DMCA (англ. Digital Millennium Copyright Act – Закон об авторском праве в цифровую эпоху),
- некачественное ссылочное, которое могли привести конкуренты,
- подклейка зеркала с фильтром.
Ни один из них в итоге не подтвердился.
На следующий день пришло письмо от Google, где говорилось, что страницы сайта удалены из выдачи. И вернуть сайт в ТОП можно только заменив контент (а это ~1500 страниц).
Изучив причины, обнаружили, что этот фильтр можно получить за дублированный, сгенерированный или «нечитабельный» контент. Но дело в том, что тексты были совершенно уникальными даже на момент бана сайта. Контент был написан копирайтерами, вычитан редакторами. И со 100% уверенностью можно утверждать, что контент не был скопирован с какого-то другого сайта.
В такой ситуации логично предположить, что как раз сайт стал жертвой копирования контента. Но анализ страниц с помощью плагиат-чекеров показал, что все страницы на 100% уникальны. Была вероятность, что плагиат-чекеры еще не обновили базу, поэтому начали искать фразы по запросу с оператором «» в Google. Все оказалось идеально, сайт имел совершенно уникальный контент, даже по мнению самого Google.
Есть важный нюанс: когда получаешь сообщение о наложении фильтра от Google, с ним ни в коем случае нельзя вступать в спор. Во-первых, потому что ответят в лучшем случаем через пару недель. А во-вторых, ответ будет шаблонным, никто не подскажет, что же у вас не так.
Так что следующим шагом стала проработка самых нереальных вариантов, анализ всех действий за последние полгода-год. В этот момент команда и вспомнила про сетку с iframe. Но поверить в это было сложно, потому что все возможные варианты касания GoogleBot`а с контентом были закрыты. Отображаемый сайт лежал в JS, а JS был закрыт всеми возможными путями, в т.ч. и в robots , и в .htaccess.
Это было реально только:
- если гуглбот действительно научился читать JavaScript (потому как ранее этот факт имел только мифические подтверждения и, кроме заявления представителей Google, фактически все эксперименты доказывали, что JS GoogleBot не читает или же если и читает, то не корректно);
- если GoogleBot действительно считает robots.txt рекомендациями, а не обязательными указаниями. (Фактические подтверждения этому были, но на практике это были чаще исключения, чем правила).
В Справке Google, уже давно было описано, что «инструкции robots.txt носят рекомендательный характер».
То есть JS, который был закрыт и в robots, и в .htaccess, и вообще везде, все равно был прочитан. Была сделана сетка на 250 сайтов, на каждом из которых было примерно по 30 000 страниц. Каждая страница отображала в iframe главную страницу основного домена, куда должен был сливаться трафик. В результате, когда GoogleBot пришел, он увидел это. Но ему дали рекомендацию не индексировать содержание iframe, поэтому контент он увидел, но в индекс не добавил.
То есть Дмитрий получил фильтр за дублирование своего же контента, который фактически не находится в индексе.
Что можно предположить, зная это?
Получается, если не знать о существовании сетки, было бы просто невозможно предположить, какой именно контент дублируется, потому что в индексе дублей сайта найти невозможно.
Как только убрали iframe и отправили запрос на повторную проверку, фильтр ушел:
Чтобы убедиться, что это не ошибка и не случайность, команда Дмитрия провела эксперимент.
Чтобы обеспечить чистоту выборки, были выбраны сразу два домена, которые лежали в личной сетке, и результат повторился. Наложили санкции – пришло письмо от Google –убрали iframe – запрос на проверку – через 10–14 дней вышли из-под фильтра.
Что удивительно, в момент бана основного домена вся сетка продолжала находиться в индексе и приносила трафик.
Вся разница между исходным кодом сайта, который видит Google и который видит человек, в элементе div id=”preloader”. Если на сайт заходит человек, а не бот, JS-обходчик видит это, запускается функция div id=”preloader” и загружается переменная U. В следующем JS – JQuerry – в самом низу кода лежит продолжение с переменной U. Именно этой переменной U присваивается загрузка страницы, которую нужно показывать человеку. Чисто технически это все. Этим и отличается основной домен, который видит Google, от дорвея. По сути, исходный код не меняется, не используются «сильно палевные» теги.
Исходный код дорвея, который видит бот
Исходный код с iframe
Механика исполнения:
- Происходит загрузка сайта.
- В этот момент обходчик определяет, кто пришел – бот или человек.
- Если бот, то JS не загружается и элемент div id="preloader" остается пустым.
- Если это реальный пользователь, то происходит обращение JS и происходит загрузка функции div id="preloader" в исходном коде.
- При загрузке div id="preloader" происходит следующее: «Основа js»: $( document ).ready(function() {$('#preloader').load(u)}).
- Вторая часть – подключается в другом месте. Т.е. после того как HTML загружен в div id="preloader" загрузить HTML, который указан в переменной "u".
- var u = "/wp-admin/{{theme_name}}/edit.php{% if query is not empty %}?query={{query}}{% endif %}";var style = "";var utm = "";var prc = "";.
Как от этого защититься?
- Всеми возможными способами запретить выкачивать свой сайт (насколько это будет возможно).
- Запретить отображать сайт через iframe.
- Отслеживать автоматом уникальность контента и автоматически отправлять жалобы DMCA (англ. Digital Millennium Copyright Act – Закон об авторском праве в цифровую эпоху).
- Обращать внимание на скачки трафика и изменение конверсий (сайт могут клоачить, используя IP сайта).
Как запретить отображать сайт через iframe:
- Запрет iframe через JavaScript
- Запрет iframe через заголовок X-Frame-Options
Подробнее о том, как это сделать.
Дмитрий Петренко заметил, что одной из самых больших глупостей было то, что они решили отображать основной продвигаемый в ТОП сайт на дорвеях.
Ошибка была сделана на самом старте. Надо было просто положить его на отдельный домен, закрыть от индексации и начать показывать как отдельный сайт. Даже если бы туда прилетел фильтр, это не стало бы такой катастрофой.
Еще больше классных обзоров читайте здесь.