webew
Войти » Регистрация
 
Интернет-маркетинг :: SEO

Делаем ссылки sape устойчивыми к GET-параметрам

22 февраля 2009, 14:48

На большинстве сайтов, адреса типа http://example.com/page.html и http://example.com/page.html?abra=cadabra имеют эквивалентное содержимое. Если поисковик увидит оба этих URL, то склеит их и будет считать одним и тем же ресусом. Sape различает все URL с разными GET-параметрами, так как некоторые GET-параметры существенно меняют содержимое страницы. В результате, если на странице http://example.com/page.html будет размещена ссылка sape, то на странице http://example.com/page.html?abra=cadabra ее не будет. Такое поведение нежелательно, так как может помешать корректной склейке эквивалентных страниц и может использоваться для обнаружения "продажных ссылок" на странице.

Наша задача в том, чтобы ссылка присутствовала как вкопанная на всех страницах, эквивалентных по содержимому исходной странице. Один из способов достичь этого — исключить все эквивалентные страницы. Для этого достаточно отдавать код 404, если страница содержит неопознанный GET-параметр. Такой подход обычно не практикуется, так как небольшая ошибка может привести к недоступности нужных динамических страниц. Кроме того, "паразитные" GET-параметры часто бывают полезны, например, они используются системой контекстной рекламы для отслеживания ее эффективности через сторонние системы статистики (так называемые метки openstat).

Мы опишем другой подход: модифицируем код вызова sape так, чтобы одни и те же ссылки присутствовали на всех страницах, эквивалентных данной. При этом необходимо сохранить все GET-параметры, которые существенно меняют содержимое страницы. Для упрощения кода, будем считать, что полезные GET-параметры в URL (если их несколько) всегда следуют в одном и том же порядке. Решение приведем для php-кода sape. Sape позволяет при вызове указывать явно URL, для которого требуется получить код ссылки. Пусть код вызова sape выглядит так:

  require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
  $o['charset'] = 'UTF-8';
  $sape = new SAPE_client($o);

Нам необходимо, чтобы sape оперировал URL, очищенным от всех лишних GET-параметров. Все разрешенные GET-параметры в порядке их следования, перечисленны в массиве $FRIENDLY_GET_PARAMS. Сформируем очищенный URL и передадим его sape с помощью опции 'request_uri'. Код вызова sape будет выглядеть так::

  require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
  $o['charset'] = 'UTF-8';
  $FRIENDLY_GET_PARAMS = array('id','p', 'f');
  $o['request_uri'] = reset(explode('?', $_SERVER['REQUEST_URI']));
  $params = array();
  foreach($FRIENDLY_GET_PARAMS as $k) {
    if(isset($_GET[$k])) {
        $params[] = urlencode($k) . '=' . urlencode($_GET[$k]);
     }
  }
  if($params) {
    $o['request_uri'] .= "?" . implode('&', $params);
  }
  $sape = new SAPE_client($o);
Внимание: Код протестирован на сайтах с минимальным количеством полезных GET-параметров. Если у вас GET-параметры используются интенсивно и принимают з3амысловатые значения, просим внимательно протестировать корректность отображения ссылок на таких страницах. Логику потребуется усложнить, если URL может содержать несколько полезных GET-параметров и порядок их следования не фиксирован.

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


© Все права на данную статью принадлежат порталу webew.ru. Перепечатка в интернет-изданиях разрешается только с указанием автора и прямой ссылки на оригинальную статью. Перепечатка в печатных изданиях допускается только с разрешения редакции.
Добавить комментарий

ohmaster

Спасибо!!! За статью. Потому как я уже не знал как бороться с таким явлением
Http://www.ohmaster.ru/
08.04.2009, 12:40
Ответить
NO USERPIC

seo-lenta

Что это даст? ПС как определяла продажную ссылку так и будет, не в GET дело, дело в совокупности многих факторов по которым ПС и считает ссылку продажной
http://seo-lenta.ru
15.02.2010, 15:49
Ответить
NO USERPIC

rgbeast

Статья описывать как защититься от одного явного способа детектирования sape-ссылок. Другие факторы можно пытаться обойти - подбором тематических ссылок, аккуратным размещением ссылок по одной в разных частях документа и.т.д. Разведчика можно вычислить многими способами, но лучше, если парашют за ним не волочится.
15.02.2010, 16:15
Ответить
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100

Реклама: