AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« : 09.11.2011, 05:10:27 » |
|
Пост обновлен 07.04.2012Добавлен код генерации ссылки каноникал для главной страницы сайта. Во все файлы шаблона, КРОМЕ com_k2/templates/default/itemform.php, добавлено условие запрета генерации ссылки каноникал для главной страницы. Это сделанно для избежания дублирования ссылки каноникал на главной странице и редиректа, если в качестве главной указывается определенный материал. Что такое каноническая страница? Зачем нужно указывать rel="canonical"? Каноническая страница представляет собой предпочитаемую версию из набора страниц с очень похожим содержанием. На сайтах часто бывает несколько страниц, перечисляющих один и тот же набор продуктов. В частности, на одной странице продукты могут быть указаны в алфавитном порядке, а на других – упорядочены по цене или рейтингу. Рассмотрим пример.
http://www.example.com/product.php?item=swedish-fish&trackingid=1234567&sort=alpha&sessionid=5678asfasdfasfd http://www.example.com/product.php?item=swedish-fish&trackingid=1234567&sort=price&sessionid=5678asfasdfasfd
Если Google будет знать о том, что содержание этих страниц одинаково, то сможет добавить в результаты поиска только одну из них. Наши алгоритмы выбирают ту страницу, которая, по нашему мнению, лучше всего отвечает на запрос пользователя. Тем не менее, теперь пользователи могут указывать поисковым системам каноническую страницу, добавив элемент <link> с атрибутом rel="canonical" в раздел <head> неканонической версии страницы. Добавление этой ссылки и атрибута позволяет владельцам сайтов определять наборы идентичного содержания и сообщать Google: "Из всех страниц с идентичным содержанием эта является наиболее полезной. Установите для нее наивысший приоритет в результатах поиска." Атрибут rel="canonical" тега <link> В том случае, если на сайте присутствуют группы схожих по контенту страниц, вебмастер может выбрать предпочитаемый (канонический) url от группы, который будет участвовать в поиске. Например, документ сайта доступен по двум url:
www.examplesite.ru/pages?id=2 www.examplesite.ru/blog
Если предпочитаемый url — /blog, в документе, доступном по неканоническому url, достаточно указать:
<link rel="canonical" href="http://www.examplesite.ru/blog"/> Иными словами, страницы-дубли у которых URL будет отличатся от каноникал, будут исключены из поиска. Приступим к убийству страниц-дублей.1. Не используйте ссылку тега base в качестве canonical! Это вредно. 2. Читайте комментарии в коде. 3. Нашли ошибку? Пишите, попробуем разобраться. 4. При обновлении заменяем весь код находящийся между строками // ------------ Start Canonical-Mod и // ------------ End Canonical-Mod Ссылка Canonical для главной страницы сайта !-!-! Если идентичные изменения для главной уже делались по описанию на странице Добавляем rel="canonical" в шаблоны материалов Joomla 1.7 - 2.5, то этот шаг пропускаем! Открываем файл templates/МОЙ ШАБЛОН/index.phpпосле // no direct access defined( '_JEXEC' ) or die( 'Restricted access' );
добавляем // ------------ Start Canonical-Mod $document = JFactory::getDocument(); $mainmenu =& JSite::getMenu(); if($mainmenu->getActive() == $mainmenu->getDefault()) : $livesite = substr_replace(JURI::root(), '', -1, 1); $docpagenr = ''; $docstart = JRequest::getInt('start',0); if($docstart>0) : // Если хотим чтобы в канонической ссылке прописывалась постраничная разбивка типа start=10..., то раскомментируем сроку ниже. //$docpagenr = '?start='.$docstart; endif; //$docroute = JRoute::_('index.php?Itemid='.$mainmenu->getDefault()->id); // Если в качестве канонической ссылки хотим использовать системную ссылку Joomla типа http://мойсайт.рф/home.html , то раскомментируем сроку выше, и закомментируем строку ниже. $docroute = '/'; $document->addHeadLink( $livesite . $docroute . $docpagenr, 'canonical', 'rel', '' ); endif; // ------------ End Canonical-Mod
Открываем файл components/com_k2/templates/default/category.phpпосле // no direct access defined('_JEXEC') or die('Restricted access'); добавляем // ------------ Start Canonical-Mod $mainmenu =& JSite::getMenu(); if($mainmenu->getActive()!== $mainmenu->getDefault()) : $document = JFactory::getDocument(); $livesite = substr_replace(JURI::root(), '', -1, 1); // Постраничная разбивка $docstart = JRequest::getInt('start',0); $docpagenr = ''; if($docstart>0) { // Если хотим чтобы в канонической ссылке прописывалась постраничная разбивка типа start=10..., то раскомментируем сроку ниже. В противном случае будет индексироваться только главная страница категории //$docpagenr = '?start=' . $docstart; }
// Если это подкатегория if ($this->category->parent >0) : $docroute = JRoute::_(K2HelperRoute::getCategoryRoute($this->category->id.':'.$this->category->alias)); // Если это основная категория else : $k2menulink = JSite::getMenu()->getParams($active->id); $docroute = JRoute::_($k2menulink->link . '&Itemid=' . $k2menulink->id); endif;
$document->addHeadLink( $livesite . $docroute . $docpagenr, 'canonical', 'rel', '' ); endif; // ------------ End Canonical-Mod
Открываем файл components/com_k2/templates/default/item.phpпосле // no direct access defined('_JEXEC') or die('Restricted access'); добавляем // ------------ Start Canonical-Mod $mainmenu =& JSite::getMenu(); if($mainmenu->getActive()!== $mainmenu->getDefault()) : $livesite = substr_replace(JURI::root(), '', -1, 1); $document = &JFactory::getDocument(); $docroute = JRoute::_(K2HelperRoute::getItemRoute($this->item->id.':'.$this->item->alias, $this->item->catid.':'.$this->item->category->alias)); // Начало проверки системной ссылки в запросе $requrl = trim(JFactory::getURI()->toString()); (bool)$valideurl = strpos( $requrl, $docroute ); // Если системная ссылка в запросе отсутствует if ($valideurl === false) : header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$livesite.$docroute); header("Connection: close"); exit(); // Если хотим отдать ошибку 404, то закомментируем 4 строки выше этой, и раскомментируем 1 сроку ниже. //JError::raiseError(404, JText::_('PAGE COULD NOT BE FOUND')); endif; // Конец проверки системной ссылки в запросе
$document->addHeadLink( $livesite . $docroute, 'canonical', 'rel', '' ); endif; // ------------ End Canonical-Mod
Открываем файл components/com_k2/templates/default/latest.phpпосле // no direct access defined('_JEXEC') or die('Restricted access'); добавляем // ------------ Start Canonical-Mod $mainmenu =& JSite::getMenu(); if($mainmenu->getActive()!== $mainmenu->getDefault()) : $document = JFactory::getDocument(); $livesite = substr_replace(JURI::root(), '', -1, 1); // Если это подкатегория if ($this->category->parent >0) : $docroute = JRoute::_(K2HelperRoute::getCategoryRoute($category->id.':'.$category->alias)); // Если это основная категория меню else : $k2menulink = JSite::getMenu()->getParams($active->id); $docroute = JRoute::_($k2menulink->link . '&Itemid=' . $k2menulink->id); endif;
// Начало проверки системной ссылки в запросе $requrl = trim(JFactory::getURI()->toString()); (bool)$valideurl = strpos( $requrl, $docroute ); // Если системная ссылка в запросе отсутствует if ( $valideurl === false) : // отдаем ошибку 404 JError::raiseError(404, JText::_('K2_CATEGORY_NOT_FOUND')); endif; // Конец проверки системной ссылки в запросе
$document->addHeadLink( $livesite . $docroute, 'canonical', 'rel', '' ); endif; // ------------ End Canonical-Mod
Открываем файл components/com_k2/templates/default/tag.phpпосле // no direct access defined('_JEXEC') or die('Restricted access'); добавляем // ------------ Start Canonical-Mod $mainmenu =& JSite::getMenu(); if($mainmenu->getActive()!== $mainmenu->getDefault()) : $document = JFactory::getDocument(); $livesite = substr_replace(JURI::root(), '', -1, 1); $docroute = JRoute::_(K2HelperRoute::getTagRoute(JRequest::getVar('tag')));
// Начало проверки системной ссылки в запросе $requrl = trim(JFactory::getURI()->toString()); (bool)$valideurl = strpos( $requrl, $docroute ); // Если системная ссылка в запросе отсутствует if ( $valideurl === false) : // отдаем ошибку 404 JError::raiseError(404, JText::_('K2_NOT_FOUND')); endif; // Конец проверки системной ссылки в запросе
// Если материал с заданным тегом/меткой не найден, то указываем поисковикам чтобы они не индексировали эту страницу if (count($this->items)<1) : $document->setMetadata('robots', 'noindex, nofollow'); endif; // Если нужно указать поисковикам чтобы они не индексировали страницы тегов/меток то, // раскомментируйте строку идущую сразу под этим комментарием, удалив два слэша "/" в ее начале. //$document->setMetadata('robots', 'noindex, nofollow');
$document->addHeadLink($livesite . $docroute, 'canonical', 'rel', ''); endif; // ------------ End Canonical-Mod
Открываем файл components/com_k2/templates/default/user.phpпосле // no direct access defined('_JEXEC') or die('Restricted access'); добавляем // ------------ Start Canonical-Mod $mainmenu =& JSite::getMenu(); if($mainmenu->getActive()!== $mainmenu->getDefault()) : $document = JFactory::getDocument(); $livesite = substr_replace(JURI::root(), '', -1, 1); $docroute = JRoute::_(K2HelperRoute::getUserRoute($this->user->id));
// Начало проверки системной ссылки в запросе $requrl = trim(JFactory::getURI()->toString()); (bool)$valideurl = strpos( $requrl, $docroute ); // Если системная ссылка в запросе отсутствует if ( $valideurl === false) : // отдаем ошибку 404 JError::raiseError(404, JText::_('K2_USER_NOT_FOUND')); endif; // Конец проверки системной ссылки в запросе
// Если у пользователя нет материала, то указываем поисковикам чтобы они не индексировали его страницу if (count($this->items)<1) : $document->setMetadata('robots', 'noindex, nofollow'); endif; // Если нужно указать поисковикам чтобы они вообще не индексировали страницы пользователей то, // раскомментируйте строку идущую сразу под этим комментарием, удалив два слэша "/" в ее начале. //$document->setMetadata('robots', 'noindex, nofollow');
$document->addHeadLink($livesite . $docroute, 'canonical', 'rel', ''); endif; // ------------ End Canonical-Mod
Необязательное дополнение для указания запрета индексации форм добавления материала. Открываем файл components/com_k2/templates/default/itemform.phpпосле $document = & JFactory::getDocument(); добавляем $document->setMetadata('robots', 'noindex, nofollow'); Ну и, если мы не хотим каждый раз после обновления К2 вносить эти изменения в шаблоны, копируем папку components/com_k2/templates/defaultв папку шаблона Joomla templates/МОЙ ШАБЛОН/html/com_k2/templates/defaultPS. Следите за обновлениями поста, возможны поправки!
|
|
|
|
« Последнее редактирование: 04.01.2013, 13:53:06 от AmdAveO »
|
Записан
|
|
|
|
vodka_pivo
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 58
Ёрш
|
 |
« Ответ #1 : 10.11.2011, 04:23:40 » |
|
Говорим спасибы Skitalec, код работает.
Измененные файлы в прикрепленном архиве.
|
|
|
|
« Последнее редактирование: 11.11.2011, 03:06:19 от vodka_pivo »
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #2 : 11.11.2011, 02:32:33 » |
|
vodka_pivoПеределал инструктаж учтя твои замечания и внес еще дополнения. Тестим дальше 
|
|
|
|
|
Записан
|
|
|
|
vodka_pivo
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 58
Ёрш
|
 |
« Ответ #3 : 11.11.2011, 03:39:54 » |
|
Все ОК! Работает. Если ссылка существует и правильная, то rel="canonical" выставляется правильно.
Т.к. в К2 ссылка формируется по ИД то если после ид изменить путь, т.е. из существующей ссылки сделать несуществующую, то отдает 404 ошибку.
Правильная ссылка на категорию выглядит примерно так http://сайт.ру/главный-пункт-меню/itemlist/category/11-название-категории.html Если перейти по ссылке (по заведомо неправильной) http://сайт.ру/главный-пункт-меню/itemlist/11-название-категории.html то тэг каноникал имеется на ней тоже. Хотя такой ссылки быть не должно.
Если http://сайт.ру/главный-пункт-меню/category/11-название-категории.html то 404 ошибка. Тут все верно.
|
|
|
|
« Последнее редактирование: 14.11.2011, 10:03:33 от vodka_pivo »
|
Записан
|
|
|
|
vodka_pivo
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 58
Ёрш
|
 |
« Ответ #4 : 11.12.2011, 16:33:54 » |
|
Проблемы с разбивкой на страницы. Переход по ссылкам страниц 2,3,4 ... и т.д работает, а вот когда жмешь ссылку "В начало" или "1" то 404 ошибка. Решение простое. Комментируем или удаляем кусок кода в файле components/com_k2/templates/default/category.phpif ( $valideurl === false) : // отдаем ошибку 404 JError::raiseError(404, JText::_('K2_CATEGORY_NOT_FOUND')); endif; Теперь пор канонический тег. Категория настроена так, чтобы выводить на одной страницы 12 материалов. Если переходить по ссылкам "2,3,4" то ссылка на каждой странице выглядит так: <link href=" http://сайт.ru/nazvanie-kategorii.html" rel="canonical" /> если вернуться на страницу "1" то: <link href=" http://сайт.ru/nazvanie-kategorii.html?limitstart=0" rel="canonical" /> Если переходить по ссылкам "Вперед, Назад" то каноническая на всех страницах имеет вид: <link href=" http://сайт.ru/nazvanie-kategorii.html?limit=12" rel="canonical" /> если вернуться на первую, то: <link href=" http://сайт.ru/nazvanie-kategorii.html?limit=12&limitstart=0" rel="canonical" /> Получается что неверно ссылка выставляется.
|
|
|
|
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #5 : 11.12.2011, 21:06:14 » |
|
vodka_pivo Упростил код для components/com_k2/templates/default/category.php, см. первый пост. Добавил возможность вставки в каноникал постраничной разбивки, но закомментировал эту строку. Кому нужно раскомментирует. По мне так это вредно))
Пы.Сы. В последних версиях Joomla криво генерятся ссылки "В начало" и на страницу "1", в них прописывается "limitstart=0" Это косается не только К2.
|
|
|
|
|
Записан
|
|
|
|
vodka_pivo
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 58
Ёрш
|
 |
« Ответ #6 : 12.12.2011, 13:53:52 » |
|
Теперь каноническая ссылка вида: <link href="http://site.ru/kategoriya/itemlist/category/-.html" rel="canonical" /> а должна быть <link href="http://site.ru/kategoriya.html" rel="canonical" />
Если раскомментировать строку то тег ставится правильно, только сама ссылка неправильная. Первая страница категории: <link href="http://site.ru/kategoriya/itemlist/category/-.html" rel="canonical" /> Вторая и третья страницы имеют тег: <link href="http://site.ru/kategoriya/itemlist/category/-.html?start=12" rel="canonical" /> <link href="http://site.ru/kategoriya/itemlist/category/-.html?start=24" rel="canonical" />
|
|
|
|
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #7 : 12.12.2011, 14:01:47 » |
|
Хмм, а кэш чистил? Какая версия Joomla и К2? У меня нормально выводит в J1.7.3 с последним К2 1. категория нулевой вложености <link href="http://joomla17.loc/news3.html" rel="canonical" /> 2. категория вложена в первую категорию <link href="http://joomla17.loc/news/itemlist/category/3-news2.html" rel="canonical" />
|
|
|
|
|
Записан
|
|
|
|
vodka_pivo
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 58
Ёрш
|
 |
« Ответ #8 : 12.12.2011, 17:47:46 » |
|
Ссылка создается в стандартном меню, тип К2 » Категории Если в настройке ссылки указана одна категория то все работает как у вас. А если выбраны несколько категорий то как описал выше. =(
|
|
|
|
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #9 : 12.12.2011, 18:57:49 » |
|
Тогда возвращаем часть предыдущего кода в components/com_k2/templates/default/category.php // ------------ Start Canonical-Mod $document = JFactory::getDocument(); $livesite = JFactory::getConfig()->getValue('live_site'); // Постраничная разбивка $docstart = JRequest::getInt('start',0); $docpagenr = ''; if($docstart>0) { // Если хотим чтобы в канонической ссылке прописывалась постраничная разбивка типа start=10..., то раскомментируем сроку ниже. В противном случае будет индексироваться только главная страница категории //$docpagenr = '?start=' . $docstart; }
// Если это подкатегория if ($this->category->parent >0) : $docroute = JRoute::_(K2HelperRoute::getCategoryRoute($this->category->id.':'.$this->category->alias)); // Если это основная категория else : $k2menulink = JSite::getMenu()->getParams($active->id); $docroute = JRoute::_($k2menulink->link . '&Itemid=' . $k2menulink->id); endif;
$document->addHeadLink( $livesite . $docroute . $docpagenr, 'canonical', 'rel', '' ); // ------------ End Canonical-Mod
|
|
|
|
|
Записан
|
|
|
|
vodka_pivo
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Пол: 
Сообщений: 58
Ёрш
|
 |
« Ответ #10 : 14.12.2011, 14:41:39 » |
|
1. Если в фале components/com_k2/templates/default/category.php закомментирована строка //$docpagenr = '?start=' . $docstart; то при переходе по ссылкам 2,3... <link href="http://site.ru/kategoriya.html" rel="canonical" /> что ВЕРНО! Если переходить Назад-Вперед то (если 12 материалов на странице) <link href="http://site.ru/kategoriya.html?limit=12" rel="canonical" /> а потом еще перейти В начало то <link href="http://site.ru/kategoriya.html?limit=12&limitstart=0" rel="canonical" /> Если В конец то <link href="http://site.ru/kategoriya.html?limit=12" rel="canonical" /> 2. Если раскомментировать в файле строку то при переходе по 2,3... тег каноникал выставляется правильно,и выглядит так <link href="http://site.ru/kategoriya.html?start=12" rel="canonical" /> <link href="http://site.ru/kategoriya.html?start=24" rel="canonical" /> если переходить по ссылке Вперед то тег выглядит неправильно<link href="http://site.ru/kategoriya.html?limit=12?start=12" rel="canonical" /> <link href="http://site.ru/kategoriya.html?limit=12?start=24" rel="canonical" />
|
|
|
|
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #11 : 14.12.2011, 20:08:19 » |
|
Ох уж эти водка с пивом. Все у них на лимитах висит  Для такого случая должно работать сие // ------------ Start Canonical-Mod $document = JFactory::getDocument(); $sef = JFactory::getConfig()->getValue('sef'); $livesite = JFactory::getConfig()->getValue('live_site');
// Постраничная разбивка $docstart = JRequest::getInt('start',0); $docpagenr = ''; if($docstart>0 && $sef >0) : // Если хотим чтобы в канонической ссылке прописывалась постраничная разбивка типа start=10..., то раскомментируем сроку ниже. В противном случае будет индексироваться только главная страница категории $docpagenr = '?start=' . $docstart; endif;
// Если это подкатегория if ($this->category->parent >0) : $docroute = JRoute::_(K2HelperRoute::getCategoryRoute($this->category->id.':'.$this->category->alias)); // Если это основная категория else : $k2menulink = JSite::getMenu()->getParams($active->id); $docroute = JRoute::_($k2menulink->link . '&Itemid=' . $k2menulink->id); endif;
if($sef>0) : $docroute = explode('.html', $docroute); $docroute = $docroute[0] . '.html'; endif;
$document->addHeadLink( $livesite . $docroute . $docpagenr, 'canonical', 'rel', '' ); // ------------ End Canonical-Mod
Пы.Сы. Работает при включенном SEF и добавлении суффикса .html. При отключенном не проверял, да и нет желания извращаться)) А вообще, правильней будет закрывать индексацию всех этих ?limitstart и ?limit в файле robots.txt
|
|
|
|
« Последнее редактирование: 15.12.2011, 06:34:42 от Skitalec »
|
Записан
|
|
|
|
kiryann
Захожу иногда

Репутация: +2/-0
Offline
Сообщений: 16
|
 |
« Ответ #12 : 15.01.2012, 00:42:02 » |
|
vodka_pivo Упростил код для components/com_k2/templates/default/category.php, см. первый пост. Добавил возможность вставки в каноникал постраничной разбивки, но закомментировал эту строку. Кому нужно раскомментирует. По мне так это вредно))
Пы.Сы. В последних версиях Joomla криво генерятся ссылки "В начало" и на страницу "1", в них прописывается "limitstart=0" Это косается не только К2.
"Канонизация - это замещение страницы её каноническим аналогом. Но канонизация должна применяться корректно - только в том случае, когда основной контент страницы действительно имеет место быть на странице, указываемой в качестве канонической." То есть если на второй странице один контент, а каноническая ссылка указывает на страницу с другим контентом - то по идее это вредно...? И как Вы считаете имеет ли смысл закрывать от индексации подкатегории в K2, если в главной категории используется вывод материалов из всех подкатегорий?
|
|
|
|
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #13 : 15.01.2012, 01:42:58 » |
|
Хмм, я не SEOлог.  Я лишь смотрю на сайт как на книгу или журнал. В этом контексте, для меня важны ориентиры, которые я могу найти на странице оглавлений (карта сайта, sitemap). Или как дополнение список материалов на странице раздела (книги, журнала, сайта). Однако, надо учитывать тот факт, что сайт это динамически развивающаяся книга/журнал. Исходя из этого возникает дилема, как нам поступить со страницами категорий. Ведь то, что было сегодня на странице 1, завтра уже будет на странице 2, послезавтра на странице 3... т.е. разные страницы с меняющимся содержанием. Для такого случая я использую два пути. (не факт, что они идеальны) 1. Если в категории выводится просто список материалов, то я отдаю ее в ПС всю, используя в каноникал вставку ?start=, и указываю ПС, что это динамичные (dynamic) страницы. Таким образом моя категория становится как бы дополнительной картой сайта. 2. Если в категории выводятся анонсы типа, блог, новости... то я не вижу смысла отдавать все страницы такой категории в ПС, тем более, что на них присутствует часть самих материалов, а это уже как дубль. Поэтому я отдаю в ПС только первую страницу такой категории, выставив для всех страниц одну ссылку каноникал, и закрыв все следующие страницы от индексации (noindex nofollow), ни также указываю, что страница категории динамичная (dynamic). Все остальное я указываю в картах сайта для ПС. Вредно это или нет? Вопрос конечно холиварный, многие лишились слюны, доказывая друг-другу, что лучше.  Тут нужно смотреть индивидуально, отдавать ли в ПС все страницы категорий, или ограничиться главной, и отдачей основного материала. Немаловажно еще учитывать то, что проход робота ПС по страницам категорий, это доп. нагрузка на сервер. ПыСы. Просьба, не холиварить на эту тему, ато точно закроется 
|
|
|
|
|
Записан
|
|
|
|
kiryann
Захожу иногда

Репутация: +2/-0
Offline
Сообщений: 16
|
 |
« Ответ #14 : 15.01.2012, 06:00:40 » |
|
Спасибо за развёрнутый ответ. Поставил на главные категории - noindex follow, а для подкатегорий для всех страниц одну ссылку каноникал, сайт новостной... Не идеально, зато индивидуально, надеюсь робот заценит  Вот только про "указываю ПС, что это динамичные (dynamic) страницы" не понял, это как? Подправленным K2 Plugin для Xmap 2.хх - J 1.7, K 2.5 можете поделиться), а то у меня ссылки категория/подкатегория/материал , а Xmap выдаёт component/K2/материал, приходится sh404SEF включать, а он всё таки тяжеловат..
|
|
|
|
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #15 : 16.01.2012, 14:41:59 » |
|
Вот только про "указываю ПС, что это динамичные (dynamic) страницы" не понял, это как?
Мета-тегиМета тег Document-stateМета-тег Document-state также имеет значение при индексации страницы в поисковых системах. Тег обладает двумя значениями — Static и Dynamic. Значение «Static» отмечает, что системе нет необходимости индексировать документ в дальнейшем, «Dynamic» позволяет регулярно индексировать Интернет-страницу. <meta name="document-state" content="Dynamic" /> Т.е. например для материала, который мы в дальнейшем не собираемся больше менять, можно указать <meta name="document-state" content="Static" /> для страниц категорий, особенно новостных <meta name="document-state" content="Dynamic" /> За плагин хочу пива без водки.  Пиши в личку, проставляйся. Если что, пиво верну 
|
|
|
|
|
Записан
|
|
|
|
Makc
Осваиваюсь на форуме
 
Репутация: +10/-0
Offline
Пол: 
Сообщений: 60
|
 |
« Ответ #16 : 18.01.2012, 14:53:59 » |
|
За плагин хочу пива без водки.  Пиши в личку, проставляйся. Если что, пиво верну  Поделитесь, пожалуйста, опытом прикручивания K2 Plugin для Xmap 2.хх - J 1.7 дабы избавиться от component/K2 в ссылках на материал в карте. И адресом для получения пива )
|
|
|
|
|
Записан
|
|
|
|
rokka
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 19
|
 |
« Ответ #17 : 24.02.2012, 20:17:16 » |
|
Для Joomla 1.5 есть решение? З.Ы. Врываясь в тему про Xmap и К2, где менять чтоб вместо:
http://***/itemlist/category/4-***.html http://***/item/15-***.html
Генерировалось: http://***/Категория.html http://***/Категория/Материал.html
И реквизиты для пива в студию.
|
|
|
|
« Последнее редактирование: 24.02.2012, 20:23:29 от rokka »
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #18 : 24.02.2012, 20:26:22 » |
|
По идеи это решение должно работать и в Joomla 1.5. Оно скорей от версии К2 зависит. Врываясь в тему про Xmap и К2, где менять чтоб вместо:
http://***/itemlist/category/4-***.html http://***/item/15-***.html
Генерировалось: http://***/Категория.html http://***/Категория/Материал.html Для этого используется сторонний компонент SEF с дополнительным гемороем. Xmap с плагином этого не делают. Реквизиты в подписи 
|
|
|
|
« Последнее редактирование: 24.02.2012, 20:33:05 от AmdAveO »
|
Записан
|
|
|
|
rokka
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 19
|
 |
« Ответ #19 : 24.02.2012, 20:32:51 » |
|
У меня ругается на сточку public $live_site = 'http://МОЙСАЙТ.РФ' з.ы. ответь пожалуйста на пост в другой твоей теме.
|
|
|
|
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #20 : 24.02.2012, 20:47:06 » |
|
В J1.5 var $live_site = 'http://МОЙСАЙТ.РФ';
вместо public $live_site = 'http://МОЙСАЙТ.РФ';
|
|
|
|
|
Записан
|
|
|
|
rokka
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 19
|
 |
« Ответ #21 : 24.02.2012, 20:55:08 » |
|
Fatal error: Cannot redeclare JConfig::$live_site in /home/r/rokka/abris.webtm.ru/public_html/configuration.php on line 21
|
|
|
|
|
Записан
|
|
|
|
rokka
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 19
|
 |
« Ответ #22 : 24.02.2012, 21:11:49 » |
|
Сор, протурил дериктива $live_site уже была в configuration.php а я еще раз добавил.
|
|
|
|
|
Записан
|
|
|
|
NathanD
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Сообщений: 83
|
 |
« Ответ #23 : 01.03.2012, 19:57:58 » |
|
А не подскажите как избавится от дублей которые создаёт модуль gk4 news который крутится на разных страницах? к примеру настоящая ссылка на статью имеет вид: "site.ru/menyu/biblioteka/item/1456-blah-blah" но если перейти в любой раздел ссылка из этого модуля на эту статью превращается в "site.ru/menyu/novosti/item/1456-blah-blah" или в другую в зависимости от раздела из которого на этот материал переходишь
|
|
|
|
« Последнее редактирование: 01.03.2012, 20:06:11 от NathanD »
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #24 : 01.03.2012, 22:45:04 » |
|
NathanD Читай первый пост.
Если каноникал всегда указывает одну и ту же ссылку, то без разницы, какие ссылки будут вести в материал. Проиндексируется только та ссылка, которая указана в каноникал, а дубли отпадут.
Если же дубли созданны сознательно, например одинаковый материал расположен в нескольких разделах/категориях, то тут поможет robots.txt
|
|
|
|
|
Записан
|
|
|
|
NathanD
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Сообщений: 83
|
 |
« Ответ #25 : 02.03.2012, 00:40:42 » |
|
NathanD Читай первый пост.
Если каноникал всегда указывает одну и ту же ссылку, то без разницы, какие ссылки будут вести в материал. Проиндексируется только та ссылка, которая указана в каноникал, а дубли отпадут.
проблема в том что у меня в коде страницы в первом случае отображается: <link rel="canonical" href="http://site.ru /menyu/biblioteka/item/1443-blah-blah"> а во втором <link rel="canonical" href="http://site.ru /menyu/novosti/item/1443-blah-blah"> что совсем неправильно т.к. материал один и тот же, может я что то не так делаю? на всякий случай добавил код и в стандартный шаблон k2 и в свой - всёравно такая же картина. з.ы. а при переходе с главной вообще выглядит так: <link rel="canonical" href="http://site.ru /component/k2/item/1443-blah-blah">
|
|
|
|
« Последнее редактирование: 02.03.2012, 00:47:58 от NathanD »
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #26 : 02.03.2012, 00:56:34 » |
|
При правильной структуре и добавлении материала только в один раздел такого не должно быть.
|
|
|
|
|
Записан
|
|
|
|
NathanD
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Сообщений: 83
|
 |
« Ответ #27 : 02.03.2012, 01:15:25 » |
|
может проблема в том что раздел где находится именно этот материал напрямую из меню недоступен? меню ссылается на весь раздел, а в нём уже различные подразделы с меню не связанные, я собственно так думаю потому что линки на материалы расположенные в разделах куда ведёт меню - отображаются как надо, интересно, это как то можно вылечить? т.к. добавлять эти подразделы в меню слишком ветвисто получается, да и названия не уместишь т.к. длинные p.s. есть же ещё не упомянутые в первом посте файлы: category_item.php, category_item_links.php может в них дело?
|
|
|
|
« Последнее редактирование: 02.03.2012, 01:20:12 от NathanD »
|
Записан
|
|
|
|
AmdAveO
Осваиваюсь на форуме
 
Репутация: +34/-2
Offline
Пол: 
Сообщений: 168
|
 |
« Ответ #28 : 02.03.2012, 01:28:01 » |
|
Нет, в твоем случае за это отвечает файл шаблона материала - components/com_k2/templates/default/item.php Ты неверно создал структуру. Для нормальной работы нужно в меню создать копию структуры разделов К2 с привязкой категорий. Т.е. Категории К2 Главная категория -Подкатегория1 --Подподкатегория1 -Подкатегория2 ...
Меню для категории К2 Главная категория (привязка Главная категория К2) -Подкатегория1 (привязка Подкатегория1 К2) --Подподкатегория1 (привязка Подподкатегория1 К2) -Подкатегория2 (привязка Подкатегория2 К2) ...
|
|
|
|
|
Записан
|
|
|
|
NathanD
Осваиваюсь на форуме
 
Репутация: +4/-0
Offline
Сообщений: 83
|
 |
« Ответ #29 : 24.03.2012, 00:14:22 » |
|
кстати заметил что после редактирования tag.php перестают работать теги, точнее работают только теги из одного слова, а где больше - выводит 404, без кода всё работает, это моя локальная проблема?
|
|
|
|
|
Записан
|
|
|
|
|