0+ Материал без явных возрастных ограничений

Наверняка, когда ты создаешь сайт, ты просматриваешь его исходный код. Одним из главных недостатков Joomla 3 является то, что она еще с версии 1.7 пишет в исходном коде страницы Joomla – Open source content management, чем уже доставляет много хлопот web-мастерам.

Загрузка...

Делать полный обзор всех тех SEO и программных изменений, которые я сделал в Joomla 3 мне лень. Поделюсь хотя бы частью.

Например, мы можем найти безполезный тег rel="canonical", который ровным счетом делает только хуже. Поисковые системы не настолько глупые, чтобы не понимать какая именно страница является канонической и на сегодняшний день делают присвоение «каноническая страница» именно той, которая наиболее им нравится.

Например, у тебя есть сайт с 500 статьями. Некоторые из них могут иметь разные URL, например, http://site.org/staya-1 и http://site.org/statya-1?option-tra-la-la

Некоторым «мега»-SEO оптимизаторам истерически хочется, чтобы данные ссылки распознавались роботами Яндекса, Гугла и других поисковых систем, как разные. Но эти времена уже прошли. ПС (поисковые системы) с каждым днем или неделей становятся умнее, их разработчики добавляют все больше алгоритмов, а вместе с тем и НУЖНО менять структуру сайта (или не менять, в зависимости от оптимизации сайта).

Вот и разработчики Joomla, вместо того, чтобы заняться оптимизацией кода, добавлением функций безопасности в стандартной сборке (это они делают, но слабо), решают УЛУЧШИТЬ свою любимую CMS, на которой сегодня создано много миллионов сайтов. Однако, не всегда шаги разработчиков являются обоснованными, порой они гонятся за «наворотами», в ущерб нам с тобой. Что я имею ввиду? Например, файл template.css, который в стандартном шаблоне «побогател» настолько, что просто нет слов для описания. Его тысячи ненужных никому строк постоянно будут лишней обузой для твоих посетителей, лишней нагрузкой для серверов. Но это еще не все. Они решили свести меня с ума и добавили столько JS файлов на страницу, что становится вопрос о адекватности этих самых разработчиков. Такое впечатление, что Google Search живет отдельной страной от всех остальных, кто создает в его резиденции различные программные компоненты.

Продолжу тем, что в стандартной версии сборки в стандартном шаблоне protostar, а также при выводе материала при использовании стандартных средств (блог категории - материал) допущены SEO-ошибки. Например, вообще отсутствует тег H1, который поисковики считают главным. Хотя, это можно пропустить, учитывая, что есть хотя бы тег H2 и по аналогии с rel="canonical", ПС используют его, как H1, подстраивая свои алгоритмы под каждый отдельный сайт. Но и это еще не все. Честно, мне уже не вспомнить сколько всего я переделал, когда строил новый сайт на J3, но поверь мне, дело было долгим. Например, я поубирал: индекс печатной версии статьи, opensearch, много строк из css файлов, переделал страницу ошибки 404 (там был плохой перевод и странные возможные варианты решения проблем для пользователя) и т.п.

Итак, преступим к rel="canonical"

Все началось с того, что я поставил J3 и посмотрел исходный код, кроме стандартного Open suorce... я обнаружил этот самых rel... и посмотрел как он работает. Дело все в том, что почему-то разработчики сделали (как-будто специально) многие ошибки и «нагрузили» J3 так, чтобы потом пришлось изрядно постараться над своей сборкой. Так вот, если ввести URL http://site.org/300 , где 300 – это ID материала, то rel="canonical" выдавал запрошенную ссылку вместо реальной ссылки на материал, которую можно посмотреть в блоге категории. Например, она должна быть такой: http://site.org/video/300-videoklip-loya . Однако, этот самый каноникал не хотел правильно работать. Я его переделал. Для начала убрал его вызов в файле:

../plugins/system/sef/sef.php

закомментировал строку:

//$doc->addHeadLink(htmlspecialchars($link), 'canonical');

После чего, произвел некоторые манипуляции с выводом данных из БД. Условие: стандартная J3, вывод стандартного материала (т.е. ни K2, ни ZOO, просто Joomla и её файлы в components/com_content/views/article/tmpl)
Нужно найти файл

../components/com_content/views/article/tmpl/default.php

и в любое его место (желательно почти вверху, после $user = JFactory::getUser(); $info = $params->get('info_block_position', 0);) вставить код:

//достаем ID материала, который запросили
$id_content = JRequest::getInt('id', 0);

//достаем псевдоним ссылки (alias) материала
$db = JFactory::getDBO();
$query = 'SELECT alias,catid FROM #__content WHERE state=1 AND id = "'.$id_content.'"';
$db->setQuery($query);
$rows = $db->loadObjectList();

foreach ( $rows as $row )
{
$cont_alias = $row->alias;
$cont_catid = $row->catid;
}

//достаем alias категории
$query2 = 'SELECT path FROM #__menu WHERE catid_my = "'.$cont_catid.'"';
$db->setQuery($query2);
$rows2 = $db->loadObjectList();

foreach ( $rows2 as $row2 )
{
$cont_path = $row2->path;
}

//подставляем для своего сайта. можно, конечно, сделать универсальный код и вместо домена подставлять, например, JUri::base(), но зачем лишний раз нагружать PHP в статике?
$href = "http://site.org/".$cont_path."/".$id_content."-".$cont_alias;
//можно проверить вывод link в шапке так: echo $doc->addHeadLink("123");
$doc =& JFactory::getDocument();
//собственно выводим результат:
$doc->addHeadLink( $href, 'canonical', 'rel');

Внимание catid_my - это вручную созданная в структуре таблицы _menu, которой присвоены ID категорий. Логика: каждому меню присваиваю соответствующее ID категории. Например, у нас есть категория Яблоки с ID 26, я иду в базу данных, создаю новую ячейку в ПРЕФИКС_menu, после чего вручную прописываю ID категорий в соответствующее название пункта меню Яблоки, которое собственно и выводит эту категорию на сайте. Иначе я не знаю как сделать, но сделать стоит это всего 1 раз, даже если у тебя много категорий.

Теперь как бы мы не запрашивали URL http://site.org/300 или http://site.org/video/300-videoklip-loya, всегда будет выводится тот URL, который должен, а именно – http://site.org/video/300-videoklip-loya в rel="canonical"

Но на этом, удивительные приключения в коде Joomla не заканчиваются Оо ;-)

В данной ситуации мы присваиваем канонические ссылки только для материалов, а для категорий их не будет. Возможно, стоит сделать тоже самое только в файле ../plugins/system/sef/sef.php


Поделитесь в социльных сетях:

Информация:

Категория:
Web
Просмотров:
1075


Метки:

joomla

Случайный материал: Еще

Большой брат следит за тобой
Подробнее
18+

Все мы уже практически привыкли к некоторым иногда шокирующим новостям о том, что следят за известными политиками, за гражданами и не гражданами. Но настолько ли?


Последние 5 материалов:

Раскрыть все
SpyHunter
0+
SpyHunter
Подробнее

SpyHunter – программа, которая поможет избавиться от навязчивой рекламы на рабочем столе и в браузерах (интернет-обозревателях).

TeamViewer
0+
TeamViewer
Подробнее

TeamViewer – это программа, которая позволяет получить полный безопасный доступ к удаленному компьютеру. При этом, на обоих компьютерах должна быть установлена или запущена одна и та же версия программы.

Яндекс Браузер - проблемы с видео
0+
Яндекс Браузер - проблемы с видео
Подробнее

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

Advanced Installer
0+
Advanced Installer
Подробнее

Advanced Installer – программа для создания установочных файлов. С её помощью Вы сможете собрать программу из исходников, а также создать установочный пакет файлов: EXE, MSI для Windows.

Физика духа и основы практической магии
0+
Физика духа и основы практической магии
Подробнее

Андрей Скляров (вечная память!) – основатель лаборатории альтернативной были. Посвятил свою жизнь смелым исследованиям, нестандартным и выходящим за общепринятые рамки теориям, многочисленным книгам, фильмам. Он пытался донести до нас одну идею: не все так, как нам привычно преподносят.


Следите за обновлениями VK:

Добавить комментарий

Комментариев пока нет