Убираем лишнее в хидере страницы Joomla 3.2.1
В свежей версии Joomla (на момент написания статьи это 3.2.1) для чего-то в head страницы впихнули вот такую конструкцию <link href="http://www.afx.ru" rel="canonical" />. Не, на этом сайте такого нет, тут пока более старая версия (еще не обновлялся. P.S. уже обновился), но это не единственный мой сайт. И вот на других, где стоит новая третья версия Joomla такое появилось.
Казалось бы что за беда? А вот оказывается Яндекс эту строчку не любит, причем настолько не любит, что начинает выкидывать страницы их поиска. Мол по стандартам и канонам такое должно быть прописано только если у страницы имеется зеркало, а просто так на основой такое ставить ужос-ужос-ужос, немедленно выкинуть из поиска! Что характерно, Google принимает такие страницы с флегматичным спокойствием, то ли считает что это мелочь не заслуживающая внимания, то ли просто лучше понимает написанное в стандартах на родном англицком языке. С учетом того что разработчики Joomla эту строчку туда впихнули, то наверно есть какой-то глубинный смысл, который просто еще не дошел до наших российских глубин. Но с Яндексом не поспоришь, в наших условиях с него идет примерно половина трафика по поисковым запросам, значит надо как-то эту строчку убрать.
{module Баннер2}
Что же для этого сделать, в настройках это нигде не выключается. Но решение есть, небольшой хак решает эту проблему без потери остального функционала. Идем в plugins/system/sef/sef.php и открываем в редакторе файлик sef.php. Там на 53 строчке находим конструкцию $doc->addHeadLink(htmlspecialchars($link), 'canonical');. И комментируем ее, если кто не знает PHP, то для этого надо впереди добавить //. Получится //$doc->addHeadLink(htmlspecialchars($link), 'canonical');. Все, сохраняем. Теперь в хидере страницы ненужный canonical пропадет и Яндекс останется довольным.
Второе изменение, которое мы можем внести в заголовок страницы на поиск не влияет, но может немного повлиять на безопасность. Joomla (во всех версиях) прописывает в заголовок страницы вот такой метатег <meta content="Joomla! - Open Source Content Management" name="generator">. Так сказать небольшая саморекламка. Считается, что если его не удалить, то коварный хацкер сразу просечет на чем ваш сайт и ему будет проще его ломать. Мне кажется что это бред, в большинстве случаев мне достаточно бегло пробежаться глазами по исходному коду страницы, чтобы понять на каком движке работает сайт. Так что есть подсказка или нет ее - это все равно не помешает вычислить движок, в том же заголовке страницы есть куча загрузок тех же java скриптов или css, по характерным путям к которым сразу узнается Joomla. Но тем не менее если вы вдруг решите удалить эту строчку то это можно сделать так:
Открываете index.php вашего текущего шаблона. Находите там начало заголовка страницы <head>. И сразу после него вписываете <?php unset($this->_generator); ?>. Все. Теперь особо тупой хакер (лет 20 назад была такая шуточная классификация хакеров в фидошном HF, вот там был "хакер херакерный" - это про него) никогда не догадается что сайт на Joomla. А от нормальных - лучше защищаться другими способами :)
Удачных модификаций и не забывайте делать бекапы!