Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

Дублирование контента

Дублирование контента
, by

Здравствуйте! Подскажите, как избавиться от одинаковых страниц контента. При поиске одной информации выходит 3 одинаковые страницы, с товаром такое не происходит. Может нужно с views поколдавать? Подскажите в каком направлении двигаться?

Вот так выглядит дублируемая информация,найденая через поиск сайта.

1 answer
votes: 503
Answer

Как вариант меняйте заголовки страниц через модуль page title. Если заголовок разный, то страница уже не дубликат. В модуле page title есть возможность настройки шаблонов, через шаблоны (используя термины таксономии, поля) можно настроит разные тайтлы. Еще есть модуль views page title, он тоже самое делает для тайтлов views.
Скиньте какие одинаковые URL'ы выводит, возможно у вас стоит модуль votes up down, он создает дубликаты страниц.

 


Меньше месяца назад установила модуль page title и действительно дублей не стало у новых материалов. А материал,который на скрине, был создан до установки этого модуля. Дубли пока не исчезли, удалить и снова создать материал:  "Замки | Магазин", не могу,  т.к изменится его адрес в целом, сейчас www.site/org1602/замки-магазин , где org№ присваивается новым организациям, и в последующем все товары этой фирмы в адресной строке идут с данным org. Модуль votes up down не стоит на сайте. У всех трех страниц одинаковый адрес, 0, либо / в конце строки нет. Может есть еще какие-нибудь варианты решения этой проблемы Frown. Use left and right arrows to navigate.?


Попробуйте в модуле global redirect поставить галочку, чтобы последний слэш не ставился.


 

Поставила модуль (global redirect), настроила. Заметила еще вот такие дубли по товарам (скриншот). Где-то и по три дубля встречается.

 

Я думаю такая проблема у многих возникает, прямо головная боль по дублям.

 

Возможно это получается в следствии настройки представления материала, т. к в Аргументах: (при выборе) Таксономия: ID Термина ,есть настройка с описанием:

Галка стоит. Устранить дубликаты

*Из-за этого фильтра элементы, удовлетворяющие нескольким условиям, могут отобразиться дважды и более. Если такое происходит, эта опция может устранить дубликаты. Однако, чем больше вариантов доступно в фильтре, тем медленнее будет запрос. Поэтому используйте с осторожностью. Не следует включать для полей, имеющих только одно значение, поскольку это может привести к исчезновению значений поля из представления*
 
.В фильтрах стоят настройки:
Материал: Опубликовано Да
Материал: Тип = Товары и Услуги
 
Возможно нужен какой-то дополнительный фильтр, помогите, пожалуйста, разобраться. Спасибо!
 
 


Если используются фильтры, то эти фильтры должны указываться в title страницы и по тексту страницы, например:

<head>
...
<title>Поиск товаров: изумруд,золото | Мой магазин</title>
...
</head>
...
<body>
...
Поиск товаров: изумруд,золото 
...
</body>

Тогда даже если по разным критериям товары выводятся одинаковые, то страницы будут отличаться в местах где указаны критерии поиска.


Скажите , заголовки обязательно должны отличаться от основного названия?

Я их создаю по подобию "Название"

 

В настройках Page Title

стоит: Глобальный Материал Таксономия :  [title-raw] (галочка включена)

 

Глобальный Материал Таксономия :  [title-raw] (галочка включена)

 

 

В коде просматривается следующее:

<head>
...

<title>Кольцо с ИЗУМРУДОМ</title>

</head>
...
<body>
<h2 class="art-postheader">
<img width="26" height="28" alt="" src="/themes/fant1/images/postheadericon.png">
Кольцо с ИЗУМРУДОМ
</h2>
...
</body>

 


 


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


кажется все дело в поисковике на сайте (он самописный), ведь если страницы дубли, то в конце ссылки они должны отличаться, или я не права? ну, хотя бы у одной слеш в конце, или цыфра /2 например. А они абсолютно одинаковые. Спасибо за совет (про ключевые слова ), так будет действительно больше шансов вывести товары в поисковики: яндекс ,например.


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


Увидела у Вас на сайте вот эту информацию https://drupalbook.org/ru/drupal/views-kak-ubrat-dublirovanie-nod-kogda-ispolzuyutsya-polya-so-mnozhestvennymi-znacheniyami, кажется проблема действительно в выводе материала ,в представлении, опишите, пожалуйста ,подробнее по шагам, как реализовать этот способ, т.к я  модули не пишу. Спасибо!


В папке модулей
sites/all/modules/

создайте свою папку, допустим sitemade. А в папке sitemade создайте два файла sitemade.info, sitemade.module.

sites/all/modules/sitemade

sites/all/modules/sitemade/sitemade.info

sites/all/modules/sitemade/sitemade.modules

В файле sitemade.info напишите:

name = sitemade module

description = custom module

package = custom modules

core = 6.x

Для 7го друпала соответственно core = 7.x . И вставьте потом код в файл sitemade.module:

<?php
function sitemade_views_pre_render(&$view){
  $used_nids = array();
  if ($view->name == 'companies'){
    if ($view->current_display == 'page_1'){
      foreach ($view->result as $row){
        if (!in_array($row->nid, $used_nids)){
          $new_view_result[] = $row;
          $used_nids[] = $row->nid;
        }
      }  
      $view->result = $new_view_result;
    }
  }
}

 


$view->name == 'companies'

Здесь нужно будет написать имя своего View (у меня это был companies).

$view->current_display == 'page_1'

Здесь пишем имя дисплея, если это страница, то page_1, page_2,  смотря какой по счету этот дисплей, если блок, то block_1, block_2. В настройках view можно посмотреть имя дисплея, чтобы не гадать.


у меня получается $view->name == 'uc_products'

$view->current_display == 'page'

 вышло предупреждение:

warning: Cannot modify header information - headers already sent by (output started at /home/h2672/data/www/мой-сайт.ru/modules/sitemade/sitemade.module:1) in /home/h2672/data/www/мой сайт.ru/includes/common.inc on line 152.

Что она может означать?


Это означает, что в неположенном месте выводится информация через функцию print, echo. Очистите текст в sitemade.module. Если ошибка не пропадет, то отключите модуль. Если не получится через админку модуль отключить, тогда через phpmyadmin зайдите в БД и в таблице system поменяйте status модуля sitemade с 1 на 0. Надо искать ошибку. Возможно код сниппета уже устарел.

 


Хорошо, спасибо! Буду пробовать!


Проблема решилась с помощью настройки представления : : search_views


Установила параметр "уникальность: Да", и дубли исчезли в выводе материалов через поиск. Может кто-то сталкивался с такой проблемой, я решила таким способом.