Борьба с дублированием контента в DLE

Автор: | Кат.: Веб-мастерам | 14.04.2012

 

дублирование контентаНе секрет, что поисковые системы недолюбливают сайты, где много повторяющихся страниц, то есть дублей. Зачастую, к такой ситуации приводит недоработка кода CMS, на которой работает сайт. Борьба с этим явлением — неотъемлемая часть в развитии и продвижении сайта. Грешат дублированием страниц многие системы управления содержимым, не стала исключением всем известная DLE. В этой системе особенно четко прослеживается эта проблема. Поэтому мы, сегодня и займемся устранением недочетов допущенных разработчиком, связанных с дублированием содержимого……

Не секрет, что поисковые системы недолюбливают сайты, где много повторяющихся страниц, то есть дублей. Зачастую, к такой ситуации приводит недоработка кода CMS, на которой работает сайт. Борьба с этим явлением — неотъемлемая часть в развитии и продвижении сайта. Грешат дублированием страниц многие системы управления содержимым, не стала исключением всем известная DLE. В этой системе особенно четко прослеживается эта проблема. Поэтому мы, сегодня и займемся устранением недочетов допущенных разработчиком, связанных с дублированием содержимого.

Прежде чем преступить к решению этой проблемы, давайте рассмотрим последствия дублирования контента на сайте. Начнем с примера. Допустим, вы написали статью и разместили ее на своем ресурсе. Эта статья расположена, как представляется в одном месте, но не так все просто. Во-первых, материал заносится в архивы за текущий день, месяц и год при этом создается несколько дубликатов этой страницы. Во-вторых, система управлением содержимым ведет статистику, имеет в своем арсенале регистрацию на сайте, форму обратной связи, навигацию по страницам, страницы для печати и т.д. Все это создает еще огромное количество ненужных страниц, которые попадут в поисковую выдачу. Такого рода контент не представляет никакого значения и информационности, поэтому, поисковые системы пытаются его отфильтровать. Например, Google на этот счет имеет специальный фильтр под названием «Supplemental» — это выдача второго эшелона. Страницы, попавшие под этот фильтр, чаще всего являются не уникальными, а дубли это и есть не уникальный контент. В конечном итоге в выдаче поисковой системы Google может не остаться ни одной страницы, а это ваши целевые посетители от которых зависит не только популярность сайта, но и зачастую заработок его владельца! Поисковая система Яндекс, относится к такой ситуации более лояльно, но в то же время сайт попадает под подозрение в торговле ссылками. Не секрет, что владельцы сайтов, продающие ссылки пытаются сгенерировать, как можно больше страниц и не важно, какого качества они будут, лишь бы были.  Вся эта ситуация неблагоприятным образом сказывается на развитии и продвижении сайта в целом. Поэтому, проблему нужно решать и решать незамедлительно.

В веб-разработке существуют средства, с помощью которых можно запретить или разрешить индексацию, как отдельной страницы, так и всего сайта. Одним из таких инструментов является файл robots.txt. Но не всегда он в состоянии помочь. Из-за ошибок или по каким-то иным причинам, индексирующих робот Google, иногда, просто игнорирует запреты, прописанные в этом файле. После чего появляется огромное количество ненужных страниц и дублей в поисковой выдаче. Инструменты для веб-мастеров Google не помогают, после запроса на удаление дублированного контента он чуть позже появляется опаять, и так по замкнутому кругу.

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

  • Для этого откройте файлы: /engine/modules/show.full.php и /engine/modules/static.php
  • Найдите строку:
    @header( "HTTP/1.0 404 Not Found" );
  • Ниже этой строки нужно добавить:
    $robots_noindex = "<meta name="robots" content="noindex" />";
  • Теперь откройте файл — /engine/modules/show.short.php
  • В двух местах этого файла найдите:
    msgbox( $lang['all_err_1'], $lang['news_err_27'] );
  • Выше добавьте:
    $robots_noindex = "<meta name="robots" content="noindex" />";
  • Открываем файл: /engine/engine.php
  • Ищем в нем строку, начинающуюся на:
    $metatags = <<<HTML
  • Добавляем выше:
    if(!$robots_noindex) 
    $robots_noindex = "<meta name="robots" content="index,follow" />";
  • В самом низу документа находим мета-тег:
    <meta name="robots" content="all" />
  • Заменяем его на:
    {$robots_noindex}

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

  • Откройте файл: /engine/engine.php
  • В коде страницы найдите закомментированный текст вида: «Новости за год», «Новости за месяц», «Новости за день».
  • В каждом из блоков кода найдите:
    $newsmodule = true;
  • Выше вставьте строку:
    $robots_noindex = "<meta name="robots" content="noindex" />";

После этого сохраните изменения. Архивы больше индексироваться не будут. Настало время запретить остальные не нужные документы от индексации.

  • Откройте файл: /engine/modules/addnews.php
  • Найдите в нем код:
    if( ! defined( 'DATALIFEENGINE' ) ) {
        die( "Hacking attempt!" );
    }
  • Ниже этого кода нужно добавить:
    $robots_noindex = "<meta name="robots" content="noindex" />";

Эту манипуляцию нужно проделать со следующими файлами: /engine/modules/feedback.php; /engine/modules/fullsearch.php; /engine/modules/lostpassword.php; /engine/modules/search.php; /engine/modules/register.php; /engine/modules/stats.php. Если у вас на сайте установлены сторонние модули, то эту же операцию можно провести и с ними, дабы не плодить дублированный контент. Вот и все, теперь на вашем ресурсе значительно уменьшится количество дублированных страниц. Через некоторое время, вы заметите, насколько больше страниц поисковая система Google будет выдавать в основной поиск, что явным образом скажется на увеличении посещаемости вашего сайта и его позициях!

7 комментариев к записи “Борьба с дублированием контента в DLE”

  • Здравствуйте. Благодарю

  • Спасибо за инфо…

    офф топ: о как, дятел сверху себе тиц 30 уже наспамил…

    — Подскажите плиз, у меня нет сироки:
    <meta name="robots" content="all" />
    — надо просто вставить там где мета теги:
    {$robots_noindex}
    — или как то по другому???

  • также нет файла: /engine/modules/fullsearch.php;
    может он в какой-то другой папке? DLE 9.5

  • ussuriyskiy, нет он должен там быть, смотрите внимательно.

  • pavel, пересмотрел где только можно и очень внимательно, кроме того пользовался даже встроенным поиском (даже сократил поисковое слово до первых 3-х букв) — больше чем уверен что такого файла у меня нет. Павел, если я ТОЛЬКО этот файл не изменю — я так понимаю это не критично?

    И еще вопрос: этой строки тоже нет <meta name="robots" content="all" /> У меня там все это дело выглядит так:

    if(!$robots_noindex)
    $robots_noindex = "<meta name=\\"robots\\" content=\\"index,follow\\" />";
    $metatags = <<<HTML
    <meta http-equiv="Content-Type" content="text/html; charset={$config['charset']}" />
    <title>{$metatags['title']}</title>
    <meta name="description" content="{$metatags['description']}" />
    <meta name="keywords" content="{$metatags['keywords']}" />
    <meta name="generator" content="мой сайт (http://мой сайт.ru)" />
    <link rel="search" type="application/opensearchdescription+xml" href="{$config['http_home_url']}engine/opensearch.php" title="{$config['home_title']}" />
    HTML;

    Нужно ли добавлять и куда строку: {$robots_noindex}

  • ussuriyskiy, я посмотрел в движке 9.5 действительно его там нет. Походу скрипт прописан в файл search.php.
    Когда вы сделаете все точно, как написано в статье, рядом с любым мета-тегом перед или после него поставьте {$robots_noindex} и там появится мета-тег запрещающий индексацию. Откройте исходный код моего сайта и посмотрите, как это будет выглядит.

  • ок, благодарю…