Клоакинг с использованием UserAgent
Данный способ использует значение параметра UserAgent, передаваемое серверу при обращении к нему. Каждый из роботов имеет свое имя, и если документ с сервера запрашивается агентом, чье имя есть в списке, то ему выдается оптимизированная страница. Если имени агента нет в списке, то сервер (а, точнее, скрипт) считает, что на сайт зашел человек и показывает нормальную страницу. Вот, в принципе и весь принцип работы скрипта.
Вот примеры данных в User-agent для некоторых поисковых роботов:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Yandex/1.01.001 (compatible; Win16; I)
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
У скрипта, выполняющего «подмену», есть список таких строк, чаще даже подстрок, если подстрока есть в User-agent, скрипт выдает оптимизированную страницу, а может выдавать каждому роботу свою оптимизированную страницу специально для него.
Такой клоакинг довольно просто «отловить» — достаточно с помощью специальных программ или расширений к веб-браузерам, представиться роботом, и, вуаля! Получаем оптимизированную страницу вместо обычной.
Клоакинг по IP-адресу
Более хитроумный метод, основанный на проверке IP-адреса, откуда приходит запрос. IP-адрес практически невозможно подделать. Зная корпоративные подсети (диапазоны адресов) поисковых систем, можно выдавать оптимизированные страницы всем веб-клиентам из указанных подсетей.
Но и в этом случае определить клоакинг достаточно просто. Сотруднику поисковой системы достаточно запросить страницу через прокси-сервер из другого диапазона адресов, достаточно воспользоваться каким-нибудь анонимным прокси.
Большинство скриптов, осуществляющих клоакинг, работает именно по такому принципу. Как правило, они дорого стоят, в основном, из-за постоянного обновления базы данных по IP роботов.
Комбинированный метод
При определении робота можно пользоваться одновременно двумя вышеописанными методами — сначала определять запрос из определенной сети адресов, сразу после чего выполнять проверку данных в User-agent.
Когда нужен клоакинг?
Если Вам необходимо преуспеть, обогнав большое количество конкурентов на рынке, где действительно высоки ставки, то Вам действительно нужна эта технология. Не стоит заниматься клоакингом, если ваша задача - просто привлечь посетителей на сайт. Очень многие люди достигали гораздо большего, раскручивая свой сайт другими способами, помимо поисковиков. При этом также стоит учесть, что использование клоакинга требует очень много времени, так как необходимо постоянно следить за обновлениями базы, корректностью работы скрипта и пр.
Реализация
Для клоакинга используются серверные скрипты. Язык скрипта может быть любой - PERL, PHP и т. д. Можно, например, написать такой скрипт, который бы выполнял такие действия:
1. Определить робот посещает страницу или человек
2. Если робот, проверить REMOTE_ADDR и USER_AGENT из базы
3. Если значения этих переменных совпали, выдать страницу для роботов
4. Если этих значений нет в базе, но имеется подозрение что на страницу зашел робот, выдать страницу для робота, а его REMOTE_ADDR и USER_AGENT занести в базу
5. Если это робот, определить какой именно и сгенерировать страницу исходя из особенностей поисковой системы