Добавляем rel="canonical" в шаблоны материалов Joomla 1.7 - 2.5

  • 123 Ответов
  • 51638 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн AmdAveO

Пост обновлен 06.04.2012
Во все файлы шаблона, КРОМЕ index.php, и html/com_content/form/edit.php, добавлено условие запрета генерации ссылки каноникал для главной страницы.
Это сделанно для избежания дублирования ссылки каноникал на главной и редиректа, если в качестве главной указывается определенный материал.

Что такое каноническая страница? Зачем нужно указывать rel="canonical"?
Спойлер
[свернуть]

Пример работы

Приступим к убийству страниц-дублей.
1. Не используйте ссылку тега base в качестве canonical! Это вредно.
2. Читайте комментарии в коде.
3. Нашли ошибку? Пишите, попробуем разобраться.
4. При обновлении заменяем весь код находящийся между строками
// ------------ Start Canonical-Modи
// ------------ End Canonical-Mod
Ссылка Canonical для главной страницы.
Открываем файл templates/МОЙ ШАБЛОН/index.php
Спойлер
[свернуть]

Ссылка Canonical для страниц компонента материалов (com_content)
Открываем файл templates/МОЙ ШАБЛОН/html/com_content/archive/default.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/article/default.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/categories/default.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/category/blog.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/category/default.php
Спойлер
[свернуть]

Открываем файл templates/МОЙ ШАБЛОН/html/com_content/featured/default.php
Спойлер
[свернуть]

Необязательный шаг. Чисто для указания запрета индексации формы добавления/редактирования материала.
Открываем файл templates/МОЙ ШАБЛОН/html/com_content/form/edit.php
Спойлер
[свернуть]


//------------------------------------------------------------------------------------------------------------------------------------------//


Как дополнение желательно делать запрет на индексацию страниц с параметрами ?limitstart и ?limit добавив их в файл robots.txt
Disallow: *?limitstart
Disallow: *?limit

Для тех у кого нет файлов-шаблонов в templates/МОЙ ШАБЛОН/html/com_content/ и они не знают где их взять
Спойлер
[свернуть]

PS. Следите за обновлениями поста, возможны правки!
« Последнее редактирование: 07.04.2012, 01:54:34 от AmdAveO »
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

*

Оффлайн gstarr

Подскажите, что делать Joomla 1.7 уже много материалов но без canonical , как сейчас можно добавить его,?

*

Оффлайн AmdAveO

Эээм, а что мешает сделать как описанно выше?
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

*

Оффлайн gstarr

те этим мы  добавим в уже существующие материалы  - canonical?  например  у меня заглавная страница мойсайт.ру/категория/    а мне надо чтобы она была canonical для мойсайт.ру/категория/34-материял ...правильно я понял? спасибо

*

Оффлайн AmdAveO

...например  у меня заглавная страница мойсайт.ру/категория/    а мне надо чтобы она была canonical для мойсайт.ру/категория/34-материял...
Это что за безобразие такое?

Как описанно выше будут выдаваться ссылки каноникал следующим образом
для главной страницы http://мойсайт.ру/
для категории сайта http://мойсайт.ру/категория
для материала сайта http://мойсайт.ру/категория/материал

ПС. Под категорией имеется в виду пункт меню привязанный к категории материалов. Обязательно читаем комментарии в коде по поводу постраничной разбивки.
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

*

Оффлайн gstarr

спасибо, да имел ввиду http://мойсайт.ру/категория  - у меня пункт меню, как потом это все проверить можно что все работает?

*

Оффлайн AmdAveO

как потом это все проверить можно что все работает?
Посмотрев код нужной страницы.
В нем между тегами <head></head> должен быть тег типа <link href="http://мойсайт.ру/нужная/страница" rel="canonical"  />
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

*

Оффлайн gstarr

захожу на линк материала, смотрю и у меня показывает "страница материяла" - canonical, так же неправильно?

*

Оффлайн igorksan

захожу на линк материала, смотрю и у меня показывает "страница материяла" - canonical, так же неправильно?
Нуда. надо "страница материяала" 8)

*

Оффлайн gstarr

вот, как сделать "категория" - rel=canonical , если находишься на странице материала?
вставил во все  файлы как описано. получилось что на какой странице находишься на ту и canonical
ребят помогите пожалуйста. или уже тока в robots.txt все линки вписывать
« Последнее редактирование: 24.12.2011, 01:33:37 от gstarr »

*

Оффлайн AmdAveO

gstarr
А ты вообще понимаешь, что, и для чего делаешь? Может лучше для начала почитать маны на эту тему?
По идеи, у каждой страницы должен быть свой линк canonical.
У одинаковых страниц, если таковые имеются, лучше делать один схожий линк canonical, или закрывать одну из таких страниц от индексации.
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

*

Оффлайн gstarr

конечно понимаю, вот у меня категория в ней материял = ссылка , Google же видит и категорию и материял отдельно те получается 2 разных ссылки с одинаковым содержанием = дубль,  мне надо чтоб ссылка материяла не была видна Google.

*

Оффлайн voland

  • ********
  • 9334
  • [+]520 / [-]101
  • СКАЙП утерян! Пишите в телеграм @volandku
    • Просмотр профиля
    • webstudio.pro
конечно понимаю, вот у меня категория в ней материял = ссылка , Google же видит и категорию и материял отдельно те получается 2 разных ссылки с одинаковым содержанием = дубль,  мне надо чтоб ссылка материяла не была видна Google.
Тут надо структуру сайта переделывать, а не хаки применять.
И да, понимать что есть категория,а что материал

*

Оффлайн gstarr

какой подскажите выход,? я вроде ничего сверх нового не придумал везде именно с такой проблемой как у меня и сталкиваются, ищут плагины для 1.7 canonical и т.д. 
« Последнее редактирование: 24.12.2011, 02:12:15 от gstarr »

*

Оффлайн voland

  • ********
  • 9334
  • [+]520 / [-]101
  • СКАЙП утерян! Пишите в телеграм @volandku
    • Просмотр профиля
    • webstudio.pro

*

Оффлайн AmdAveO

gstarr
Т.е. у тебя на странице категории выводятся материалы с полным содержанием? Жестокая замута однако!
В категории нужно выводить либо список ссылок на материалы, либо список анонсов с ссылками на материалы (блог),
Причем в случае категорий с анонсами, так же как и в категориях с выводом полного содержания материалов, в индекс лучше отдавать только первую страницу категории.
Т.к. страницы категорий формируются динамично, в зависимости от часоты подачи материала в них.
У материалов же должен быть свой оригинальный линк. Иначе рискуешь запутать всех и вся.

ПС. Да, как уже сказано, особое внимание нужно уделять структуре.
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

*

Оффлайн oriol

Зашел глянуть а здесь страсти !
Люди творят сами не понимают что, и  еще при этом возмущаются!
Одним дополнительное поле подавай без вмешательства в код, другим плагин canonical  для J...1.7, 
типа он ему там все по полочкам разложит и что то другое напишет. ))))
Еще бы интеллектуальный скрипт написать что бы сам сайты создавал и продвигал, как щука у Емели  :laugh:
« Последнее редактирование: 24.12.2011, 15:03:49 от oriol »

*

Оффлайн igorksan


Еще бы интеллектуальный скрипт написать что бы сам сайты создавал и продвигал, как щука у Емели  :laugh:
Мдя. И еще ты забыл- чтоб уникальным контентом сайт сам наполнял круглосуточно.... ))))

*

Оффлайн vveco

Поясните малограмотному:
1. Что есть сейчас - Joomla 1.7.3 + ее локализация, Zoo 2.5.2, sh404SEF (последний). + плагин Zoo для него (последний с оф. Сайта). Весь контент планируется делать на Zoo. sh404SEF предполагается использовать для контроля за дублями, в основном. В указанной конфигурации имею не решенную проблему с site.ru/ru/ на главной. Приемлемого решения я пока не нашел + ко всему постоянный вынос мозга с этим sh404.
2. Транслитерация в Zoo работает нормально, внешний вид ссылок тоже вроде можно настроить штатными средствами. Вопрос в том - будет ли работать приведенный здесь метод для Zoo?

Очень уж хочется снести этот sh404.

*

Оффлайн AmdAveO

vveco
Данный метод работает с родным компонентом Joomla, com_content.
Если проследить алгоритмы генерации ссылок в Zoo, то этот способ можно применить и в его шаблонах.
При помощи ссылки каноникал можно убить если не все дубли, то по крайней мере большую их часть.
За исключением конечно таких моментов, как сознательное создание разного рода дублирующих линков, т.н. перелинковка.
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

*

Оффлайн ChaosHead

Очень полезная штука. Оказывается ещё и обновляется.
« Последнее редактирование: 26.01.2012, 22:33:58 от ChaosHead »

*

Оффлайн Marques

В Joomla 2.5.1 некорректно работает 301 редирект и 401 ошибка. При попытке зайти по ссылке вида index.php?option=com_content&view=article&id=NN
при 301 редиректе выдает в браузере - Неверное перенаправление на странице. Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.

при 404 ошибке - страница с материалом открывается, но появляется голая переменная "PAGE COULD NOT BE FOUND" т.е. открывает не страницу 404 стандартную джумловскую , а именно материал с ID=NN

Если убрать или закоментить строки отвечающие за редирект и 404 - rel="canonical" работает правильно.
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru

*

Оффлайн AmdAveO

Marques
У меня в J 2.5.1 включены SEF, реврайтмод, расширение HTML, все работает.
У тебя в htaccess не стоит никаких редиректов на страницы ошибок?

Хотя в данном случае редирект 301 это чисто косметика.
Главное чтобы каноникал корректно работал, ПС будут брать страницу по нему.
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

*

Оффлайн Marques

У меня тоже все перечисленные компоненты включены, htaccess не менял, стоит родной от 2.5.1. Никаких дополнительных SEF, SEO и всяких похожих компонентов нет. Проверял и на денвере, и на своем хостинге. Ну да ладно, мне редирект не нужен, а вот rel="canonical" штука бесспорно нужная и полезная. (она-то как раз и работает отлично)
P.S.
Немного разобрался в чем дело... у меня стоит Feed Gator 2.3.6 (граббер RSS) он создает статьи и алиасы в них. Так вот, если статья создана в ручную - то перечисленных мной ошибок нет. Если же ее создал Feed Gator (стоит автопубликация и cron задание), то именно с этими статьями и возникают проблемы. Как только открываешь для редактирования эти статьи и ничего не меняя сохраняешь - то они тоже начинают нормально открываться. Так что тут какая-то непонятка... в 1.7.3 этого не было. Поковыряю на досуге.
Зануда перфекционист, не признающий авторитетов, ищет легкую работу за большие деньги - http://dtkp.ru/ s@dtkp.ru

Добрый вечер, у меня Joomla 2.5.1, сделал всё как описано выше.

На главной странице у меня отображаются материалы одной из категорий.
Проблема в следующем:
Ко всем страницам размещенным на главной странице прописывается link href="http://главная.ru/" rel="canonical" />
Что не совсем хорошо, из за этого все страницы данной категории вылетают из индекса яндекса по причине "Документ не является каноническим".

Заранее спасибо.
« Последнее редактирование: 27.02.2012, 23:05:48 от accacaserega »

*

Оффлайн AmdAveO

Удали код добавленный в файл templates/МОЙ ШАБЛОН/index.php, в этом случае должен отрабатываться код добавленный в шаблон категории  ;)
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

Огромное вам человеческое спасибо!  *DRINK*

Я так понял, что теперь у страниц

http://главная.ru/название.html
появятся дубли
http://главная.ru/категория/название.html

Возможно это можно исправить каким-либо способом?

*

Оффлайн AmdAveO

Если категория привязана только к пункту меню главной страницы, то ссылки будут выглядеть так http://главная.ru/название1.html, http://главная.ru/название2.html...
Если категория привязана еще и к другому пункту меню типа http://главная.ru/категория.html, то будут дубли типа, http://главная.ru/категория/название.html, http://главная.ru/название.html...
В этом случае, на мой взгляд, код для главной страницы лучше оставить. По крайней мере, так будет меньше дублей, в индекс уйдет категория.
Просить не буду! Сами дадите, когда совесть замучает. R336340187313

Категория привязана только к пункту меню главной страницы, а страницы доступны по адресам
http://главная.ru/название.html
http://главная.ru/категория/название.html

А также
http://главная.ru/ЛЮБОЙ-ТЕКСТ/название.html

*

Оффлайн AmdAveO

А что выводится в каноникал на такой странице http://главная.ru/ЛЮБОЙ-ТЕКСТ/название.html ?
Просить не буду! Сами дадите, когда совесть замучает. R336340187313