Дорвеи под Яндекс, беспаливный редирект, абузоустойчивость, хороший клоакинг

Дорвеи под Яндекс, беспаливный редирект, абузоустойчивость, хороший клоакинг

Вводные параметры: Все, что я расскажу, предназначено для динамических дорвеев под Яндекс, основанных на парсинге выдачи. Для выполнения некоторых условий необходим php или asp.net. Может и perl, я с этим зверем не знаком. Пару правил:

1. Дорвеи не живут вечно. Вообще вечно ничего не живет, но дорвеи уж точно. Поэтому правило номер 1 – не жалейте дорвеи. Все равно попадут в бан, рано или поздно, поэтому выжимайте из них максмум. Но:

2. За что банят дорвеи? За то, что и все другие «говносайты»

a. Чужой контент.

b. Сайты, которые не содержат никакой информации, а только предназначены для показа партнерских программ.

c. Ссылочный спам

d. Скрытый текст.

f. Бессмысленное текстовое содержание.

Пункты b,d,e– вот с этими причинами мы и будем бороться, что бы максимально продлить жизнь дорвея. Именно эти узкие места защитит «правильный» редирект.

Цель любого дорвея – отправить посетителя, зашедшего из поисковой системы, на страницу партнерской программы. (Дорвеи, которые показывают тизеры, и этим живут, я не рассматриваю как «чистый дорвей».) Самые популярные методы - .htaccess и javascript. Считается, что боты - пауки не видят первого и не понимают второго. Это неверно, не такие они и тупые. Оба метода рассчитаны на анализ USER_AGENT.

Да. Это работает. Но недолго. Яндекс давно научился загонять мобильных ботов на ваши сайты.

Причем палиться не само наличие мобильного редиректа, а то, куда он ведет. И ведет он, как правило, на давно известную яндексу партнерку. Бот не обязательно выдаст себя как «Yandex Bot Mobile», или «Google Bot Mobile». Итого: «стандартный» редирект через .htacces уменьшает и без того недолгую жизнь дорвея.

Тоже самое касается и «стандартного» редиректа через javascript.

<script type="text/javascript"><!--if(navigator.userAgent.match(/(android|midp|j2me|symbian|series 60|symbos|windows mobile|windows ce|ppc|smartphone|blackberry|mtk|bada|windows

Этот текст скрипта, если он не закодирован. Закодированный скрипт выглядит примерно так:

Я, к счастью, не работаю в центре разработки Яндекс или, к несчастью, в Гугл. Но работай я там, я бы за наличие «<SCRIPT LANGUAGE="JavaScript"> function Decode()» в алгоритмах ранжирования как минимум бы сделал (-100), плюс еще бы и внес такой сайт в базу для проверки асессором. Поэтому лично я считаю, что этот способ также приводит к быстрой смерти дорвея.

Немного лирики.

Решение задачи клоакинга сводится к тому, что нужно понять, кто заходит на дорвеи, и представить, как они себя там видут. И все становится сразу просто: на дорвеи приходят: боты, как и по базе «сайтов к индексации, так и по ссылкам с других сайтов, пользователи «корм», и всякие дорвейщики, и прочие вебмастера, с целью "спалить", "настучать", и вообще - ничего хорошего они вам не дадут, назовем их "коллеги" (хотя некоторые еще школу не закончили). Получается, что мы должны предусмотреть три алгоритма поведения дорвея в зависимости от того, кто и откуда на него пришел.1. Боты должны видеть текстовое содержимое, не видеть редиректов, не видеть баннеров на "стремные" партнерки, не видеть рекламы. Видеть красоту и полезность. (Это касается и СДЛ. Рекламные скрипты и баннеры элементарно можно и не показывать. Скрыть от бота наличие тизеров, попандеров, и прочей рекламной мути.)2. Пользователи "корм" должны улетать с дорвея, причем как-то так, что бы всякие Яндекс и Гугл Бары, и браузеры, не передавали поисковым системам отсутствие поведения на сайте. 3. Пользователи "коллеги" должны думать "это не конкурент, и не "тема", а гавно какое-то, не работает.Закончим лирику.

Что бы все это работало, клоакинг должен быть на стороне сервера. Потому что "боты" и "коллеги" могут анализировать скрипты, подменять USER AGENT, и так далее.

Теперь самое главное в этом топике - алгоритм. Код php, который у меня есть, и работает - не просите. Я не программист :)

1. Используя HTTP referer, определяем, откуда посетитель зашел на сайт. Варианта три: $ЭтоСайтПоисковаяСистема, $ЭтоСайтНеПоисковаяСистема, $ПрямойВход

2. Использую USER AGENT определяем тип посетиля. Вариантов много, но я упростил себе задачу: $YaBrowser $ОстальныеБраузеры $МобильныеНеiOs $МобильныеiOS $БраузерНеизвестен, $бот

3. Используя данные из HTTP referer, в случае если переход из поисковой системы - определяем поисковый запрос. Варианта два: $ПоисковыйЗапросКорм, $ПоисковыйЗапросКоллеги (содержит, например, вхождения "site=test.ru" или "host:test.ru | host:www.test.ru". Так не ищут "полезные пользователи". Всякие сервисы, которые показывают количество в индексе, используют запрос к Яндекс.Аpi, и следовательно, не содержат USER AGENT.

Нет редиректа:

1. Если IPЗабанен() - ошибка 500.

2. Если $bot - показываем текстовое содержимое сайта. Не показываем рекламные блоки, не показываем javascript партнерских или рекламных программ - только текст и картинки.

3. Если $YaBrowser - показываем сайт, но без "стремного содержимого". Это режим "panic", но пользователей с этим браузером, по моей статистике, меньше процента. Пусть поведенические факторы накручивает. Вообще, если честно - единичные случаи. Да, возможно мы теряем часть потенциального конверта, но эта часть мизерна.

4. Если ($ЭтоСайтНеПоисковаяСистема) и ($YaBrowser или $ОстальныеБраузеры) - показать страницу 500. Это или асессор, или коллега. Пусть думают, что сайт в дауне, и идут дальше. Асессор отложит принятие решения о ручном бане, а "коллега" затупит. IP сразу в бан, потому что упорный асессор или коллега могут и вручную адресочек вбить. Боты, которые перейдут по ссылке с других сайтов, referer не содержат, поэтому бояться забанить случайно IP бота не следует.

5. Если $ЭтоСайтНеПоисковаяСистема, кто бы там не был - показать страницу 500, вызвать функцию ЗабанитьIP(). Варианты, что на ваш дорвей зайдут пользователи по ссылкам, которые вы спамили в профилях хрумером, или там в сапе покупали, или еще где - ничтожен, и конвертить его не стоит. Бот, который возможно перейдет по ссылке с чужого (или вашего другого дорвея), не содержит referer.

6. Если $ПоисковыйЗапросКоллеги - показать страницу 500, вызвать функцию ЗабанитьIP()

7. Если $ЭтоСайтПоисковаяСистема и $БраузерНеизвестен - показываем сайт, но без "стремного содержимого". Это режим "panic" также, потом в логах разберемся, кто это.

Есть редирект. Используется php header('Location: http://www.нужныйадрес.com/');

8. Если $ЭтоСайтПоисковаяСистема и ($ОстальныеБраузеры или $МобильныеiOS) и не IPЗабанен() - редирект на прокладку, или страницу партнерки, или на свой СДЛ.

9. Если $ЭтоСайтПоисковаяСистема и $МобильныеНеiOs и не IPЗабанен() - редирект на мобильную партнерку, или на прокладку. (я лично в этом случае считаю, что прокладку под это условие ставить нет смысла. Могу ошибаться).

Пару дополнительных функций:

Функция банит потенциально опасные для нас IP, полученные из п.п. 4,5,6. Нечего им делать на наших сайтах. База забаненных IP - общая для всех дорвеев. У меня она растет не сильно, и время от времени я анализирую, кого же я забанил. База содержит IP,HTTP referer,USER AGENT. Если вдруг поймете, что забанили какого-то бота - удаляйте IP, разбирайтесь, в результате чего он туда попал, оптимизируйте алгоритм.

IPЗабанен() - если IP в базе - ну его, даем ошибку 500.

ЗаписатьПользователя() - вызывается всегда. Дело в том, что стандартные счетчики на javascript не сработают, потому что многие посетители не дойдут до их загрузки, а предоставляемый многими хостингами WebStat не содержит удобную информацию, поэтому я записываю в базу сам всю нужную информацию:

Дата входа, IP, поисковая система, поисковый запрос, полный referer(если это не поисковая система), станица входы, страница куда ушел. Вообще анализ этой базы полезен весьма, заставляет задуматься, можно понять, когда и в результате чего появляются боты, и так далее.

Остается небольшая часть посетителей, которые не удалось отправить на партнерку, у меня около 10% посетителей ходят по сайтам, среднее "страниц на посетителя" на данный момент 2,4. Опять таки - пусть ПФ мне раскачивают.

📎📎📎📎📎📎📎📎📎📎