[РЕШЕНО] Как для некоторых страниц избавиться от тега <link rel="canonical".... ?

Главные вкладки

Аватар пользователя AlekGy AlekGy 2 октября 2012 в 22:51

доброго времени суток!

уже год пишу разные выборки для своего сайта на Друпал,а именно прямо в тексте материала идут обращения к БД, которые выбирают другие материалы по условиям и формируют некий многостраничный каталог ссылок на материалы. все красиво, всем нравится.

и вот сегодня случайно обнаружил что поисковики не индексируют мои выборки потому что у всех страниц, например у
site.ru/katalog
site.ru/katalog?page=2
site.ru/katalog?page=3
...
site.ru/katalog?page=n (это разные страницы, содержащие разную информацию!)

есть такой тег [link rel="canonical" href="/site.ru/katalog" /] (фактически это ссылка на ту страницу со скриптом, формирующим каталог)

и поэтому поисковики отказываются индексировать сами страницы каталога материалов, индексируя только первую.....

я в шоке. срочно погуглил, ничего не нашел - как убрать запись этого тега только для некоторых страниц?

спасибо большое за ответы заранее!!!

Комментарии

Аватар пользователя fr1end fr1end 3 октября 2012 в 8:33

rel cannonical может ставить path auto или global redirect,по моему все таки в global redirect была галочка на составление канонических ссылок.

Аватар пользователя AlekGy AlekGy 3 октября 2012 в 9:22

global redirect у меня не установлен, в path auto такой галочки нет, да и, как я понял, в 7ке простановка rel cannonical зашита в ядро...

все оказалось еще хуже (проснулся, чуть успокоился, анализирую) - там не только этот тег надо убирать, там их два, например для страницы /node/99?page=2 будет такое:

<link rel="shortlink" href="/node/99" />
<meta name="Generator" content="Drupal 7 (http://drupal.org)" />
<link rel="canonical" href="/node/99" />

формально Друпал прав, это действительно одна страница, просто в зависимости от значения page= она отдает разные данные и хотелось бы чтобы поисковики это видели....

Аватар пользователя natbampo natbampo 3 октября 2012 в 10:58

В template.php

<?php
function имяТемы_html_head_alter(&$head_elements) {
  if (
arg(0) == 'node') { // для страниц нод
    
$delkey null;
    foreach (
$head_elements as $key => $element) {
      if (
mb_stripos($key'drupal_add_html_head_link:canonical:</'0'utf-8') === 0) {
        
$delkey $key;
      } 
 
    }
    if (
$delkey) unset($head_elements[$delkey]);
  }
}
?>
Аватар пользователя AlekGy AlekGy 3 октября 2012 в 11:04

natbampo

Спасибо!!! помоему (сейчас займусь) это то что я искал! думаю по тому же принципу я смогу избавиться и от тега shortlink... и дополнительное условие вставить, чтобы удалялось не для всех страниц...

Аватар пользователя AlekGy AlekGy 3 октября 2012 в 19:45

да я уже все сделал, еще раз спасибо natbampo

просто чуть модифицировал его пример, добавил проверку на номер ноды и добавил удаление тега shortlink - все работает просто идеально! Smile

Аватар пользователя chocho chocho 7 октября 2012 в 17:18

У вас отображалось все так как надо

Вы неправильно поняли смысл работы rel=canonical.

Как правило, CMS (системы управления контентом, в тч. для интернет-магазинов) разбивая контент на страницы делают практически полный дубль оных, то есть отличается только список товаров, а заголовки, тексты и пр. остаются теми же. То есть по сути, у страницы каталога получается 20 схожих страниц: страница каталога 1, страница каталога 2, страница каталога 3, страница n, страница 20. Все они абсолютно одинаковы, за исключением списка товаров. Для поисковика это не очень хорошо.

Суть rel=canonical в том, чтобы на страницах 2, 3, 4, 5, n, 20 в хедере ( явным образом указать первую (главную) страницу ""), дабы поисковик видел, что из этих 20 страниц первая - основная.

Аватар пользователя tikson tikson 17 декабря 2012 в 15:28

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

Аватар пользователя Ampleev Ampleev 17 декабря 2012 в 15:34

По-моему chocho прав, тем более, что товары Вашего каталога индексируются ПС отдельно (если не закрыто в robots)

Аватар пользователя tikson tikson 17 декабря 2012 в 16:49

нашёл этот модуль у себя /admin/content/nodewords , но там или включить или выключить рел каноникал
Sad
мне нужно исправить примерно 160 страниц как быть?

Аватар пользователя Ampleev Ampleev 17 декабря 2012 в 16:53

у меня в типе ноды можно его проставлять, в каждой ноде можно проставлять и глобальные настройки имеются

Аватар пользователя Ampleev Ampleev 18 декабря 2012 в 11:50

не пойму вопроса... нода и есть страничка
например, у вас есть страницы (ноды) типа Product, заходите в редактирование типов содержимого и по-умолчанию ставите, что хотите, в поле rel-canoncial для всех нод типа Product

либо копируете node.tpl.php в node-product.tpl.php - и тут уже можно в header'е наменять, что хотите

а есть глобальные настройки nodewords, где прописываются теги по-умолчанию
здесь admin/content/nodewords/meta-tags/custom - для определенных нод или типов материала
и здесь admin/content/nodewords/meta-tags - глобальные

Аватар пользователя tikson tikson 19 декабря 2012 в 10:17

у меня есть страничка /content/reshetka-dekorativna
Там ест вкладки Просмотр Редактировать Удалить
когда жму редактировать то попадаю на страничку http://site123.ru/node/2062/edit
и там можно редактировать тег рел каноникал

Там где этих трех вкладок нет(Просмотр Редактировать Удалить) - соответственно я не могу каноникал редактировать (просто нет поля рел каноникал)

Вот здесь admin/content/nodewords/meta-tags/custom - у меня есть странички в которых прописан рел каноникал, но не во всех.
Может нужно создать новую страничку (Добавить мета-теги для новой страницы.) и как-то её привязать к уже существующей, для которой нужно поправить каноникал....

Аватар пользователя Ampleev Ampleev 19 декабря 2012 в 12:42

Для каких конкретно страниц нет "редактировать"?
может в конце /edit попробовать дописать?

reshetka-dekorativna - у ноды ведь есть определенный тип материала?

Аватар пользователя tikson tikson 19 декабря 2012 в 14:39

нет вкладки "редактировать" для вот этих например

/catalog/blok-upravleniya
/catalog/blok-upravleniya/bloki-upravleniya-um-1
/catalog/blok-upravleniya/bloki-upravleniya-um-2
/catalog/blok-upravleniya/bloki-upravleniya-za
/catalog/blok-upravleniya/datchiki-davleniya
/catalog/blok-upravleniya/datchiki-temperatury
/catalog/blok-upravleniya/detektor-so2
/catalog/blok-upravleniya/gidrostaty
/catalog/blok-upravleniya/regulyatory-oborotov
/catalog/blok-upravleniya/regulyatory-oborotov-0

если подставить вконце /edit, например /catalog/blok-upravleniya/edit - меня перебрасывает на главную

Теперь вопрос Smile как определить тип материала в ноде?....

А вот если каноникал сам на себя указывает - это плохо или нет?

Аватар пользователя Ampleev Ampleev 19 декабря 2012 в 17:08

tikson wrote:
нет вкладки "редактировать" для вот этих например

/catalog/blok-upravleniya
/catalog/blok-upravleniya/bloki-upravleniya-um-1
/catalog/blok-upravleniya/bloki-upravleniya-um-2
/catalog/blok-upravleniya/bloki-upravleniya-za
/catalog/blok-upravleniya/datchiki-davleniya
/catalog/blok-upravleniya/datchiki-temperatury
/catalog/blok-upravleniya/detektor-so2
/catalog/blok-upravleniya/gidrostaty
/catalog/blok-upravleniya/regulyatory-oborotov
/catalog/blok-upravleniya/regulyatory-oborotov-0

если подставить вконце /edit, например /catalog/blok-upravleniya/edit - меня перебрасывает на главную


blok-upravleniya - это вообще что? покажите сайт, не могу угадать
tikson wrote:
Теперь вопрос Smile как определить тип материала в ноде?....

откройте исходный код страницы
найдите в html такую строку - body class="
так вот в body class="node-type-...
... - вот Ваш тип ноды
tikson wrote:
А вот если каноникал сам на себя указывает - это плохо или нет?

У меня тоже так, я думаю это нормально))) почитайте, зачем нужен canoncial

Аватар пользователя Ampleev Ampleev 24 декабря 2012 в 12:38

tikson wrote:
нет вкладки "редактировать" для вот этих например

/catalog/blok-upravleniya
/catalog/blok-upravleniya/bloki-upravleniya-um-1
/catalog/blok-upravleniya/bloki-upravleniya-um-2
/catalog/blok-upravleniya/bloki-upravleniya-za
/catalog/blok-upravleniya/datchiki-davleniya
/catalog/blok-upravleniya/datchiki-temperatury
/catalog/blok-upravleniya/detektor-so2
/catalog/blok-upravleniya/gidrostaty
/catalog/blok-upravleniya/regulyatory-oborotov
/catalog/blok-upravleniya/regulyatory-oborotov-0

если подставить вконце /edit, например /catalog/blok-upravleniya/edit - меня перебрасывает на главную


У Вас, я так понял, это пути к вьюсинам, а когда просматриваешь сам материал, путь немного другой: product/blok-upravleniya-um-21, например. Вот тут и надо rel=canoncial искать и редактировать.
А те страницы, которые Вы привели - там в настройках вьюсины уже общий задается, так как страница одинаковая, меняется только наименование в сетке, то каноническим должен быть catalog, по идее, ну или catalog/blok-upravleniya.
Мне вообще кажется, что лучше и не трогать этот тег. ПС сама разберется, что ей индексировать и как. Главное, чтобы контент уник был и сайт user-friendly.

Аватар пользователя tikson tikson 21 декабря 2012 в 16:55

node-type - нет такой строчки...
Зачем нужен рел каноникал я вкурсе Smile
На серче я создал тему http://forum.searchengines.ru/showthread.php?t=762457 , где задал этот вопрос.Так же активная тема тут => http://forum.searchengines.ru/showthread.php?t=762429

Аватар пользователя Ampleev Ampleev 25 декабря 2012 в 16:30

И еще, вот Ваш тип материала/вьюхи/панели
<body class="not-front not-logged-in page-catalog one-sidebar sidebar-left with-navigation page-catalog-blok-upravleniya section-catalog">

page-catalog и/или page-catalog-blok-upravleniya