Прежде всего, давайте разберемся, что же такое SEF-ссылки и для чего они вообще нужны. SEF – аббревиатура от «Search Engine Friendly», или «дружественные для поисковых систем». Википедия нам подсказывает:
Концепция SEF предполагает максимально лаконичные и интуитивно понятные адреса, которые показывают естественную для человека логическую структуру данных на сервере, а не её программный интерфейс с модулями и параметрами. Структуру обычно представляют в виде иерархии как в обычной файловой системе, к которой привык пользователь:
/articles/tags/summer/ — статьи по меткам, метка summer (лето).
/news/sport/2003/10/ — новости спорта, 2003 год, октябрь.
/catalogue/light/bulbs/GE/ — каталог товаров, отдел «Свет», лампочки, производитель GE.
Или, так:
/статьи/метки/лето/ — статьи по меткам, метка summer (лето).
/новости/спорт/2003/10/ — новости спорта, 2003 год, октябрь.
/каталог/свет/лампочки/GE/ — каталог товаров, отдел «Свет», лампочки, производитель GE.
Т.е. концепция SEF не только дает поисковым роботам больше информации о странице, но и помогает людям ориентироваться на сайте. Пренебрегать SEF-ссылками сегодня просто глупо. Основной вопрос в том, как все грамотно настроить при использовании CMS Joomla.
Активация SEF в Joomla.
Для того чтобы активировать функционал SEF в Joomla, необходимо выполнить несколько простых шагов:
- в корне сайта переименовать htaccess.txt в .htaccess ;
- Зайти в общие настройки Joomla («Система» –> «Общие настройки») и в разделе «Настройки SEO» активировать три опции:
- Включить SEF (ЧПУ);
- Перенаправление URL;
- Добавлять суффикс к URL;
После этого сохраняем настройки и идем на главную страницу сайта. SEF-ссылки активированы.
Настройка вида SEF-ссылок в Joomla. Общие принципы.
Теперь, наконец, перейдем к самому интересному. Одной активации SEF в Joomla зачастую бывает недостаточно. Всё зависит от того, URL какого вида вы хотите получить.
Есть несколько видов SEF URL, обычно используемых на сайте:
- http://site.ru/article.html
- http://site.ru/id-article.html
- http://site.ru/category/article.html
- http://site.ru/id-category/id-article.html
- http://site.ru/category/id-article.html
Каждый из представленных видов хорошо подходит в том или ином случае. Использование ID в URL оправданно тем, что при таком подходе вы можете не беспокоиться о том, что две статьи с одинаковым названием (псевдонимом) будут иметь одинаковые URL, т.к. ID для каждой статьи строго уникален.
Я обычно использую конструкцию:
http://site.ru/article.html
для основных страниц меню сайта, таких как «О нас», «Контакты» и т.д. и конструкцию:
http://site.ru/category/article.html
для остальных материалов сайта. Во втором случае приходится самостоятельно следить, чтобы псевдонимы заголовков были уникальны.
Настройка вида SEF-ссылок в Joomla. Псевдонимы.
Псевдонимы – это как раз тот самый текст, который будет показан в URL. Начиная с Joomla 2.5, псевдонимы генерируются автоматически на основе заголовков материалов, категорий и пунктов меню с использованием транслитерации. Так, к примеру, если вы написали заголовок «Статья», при сохранении автоматически будет сгенерирован псевдоним «statya». Он и будет показываться в URL на нужной позиции. Никто не запрещает задать псевдоним вручную. В статьях, категориях, пунктах меню есть соответствующее поле «Псевдоним». Единственное, я советую вас не заполнять его русскими буквами. Ничего хорошего из таких ссылок не получится, разве что при использовании домена зоны .рф.
Настройка вида SEF-ссылок в Joomla. URL типа http://site.ru/article.html
Теперь перейдем непосредственно к созданию ссылок разных типов. Первым типом будет наиболее простой и удобный:
http://site.ru/article.html
Для создания такой ссылки недостаточно просто создать материал. В Joomla все материалы в обязательном порядке должны иметь категорию. Если категория не указана, то материал будет помещен в категорию uncategorized. В таком случае по умолчанию ссылка будет иметь вид:
http://site.ru/2-uncategorised/2-article.html
где 2 и 2 – ID категории и материала соответственно.
Для того чтобы придать URL красивый вид, необходимо создать пункт меню типа «Материал», выбрать необходимый материал из списка и указать для пункта меню псевдоним «article». После этого URL примет тот самый вид, что описан в начале.
Настройка вида SEF-ссылок в Joomla. URL типа http://site.ru/category/id-article.html
URL материалов категории лучше представлять в виде:
http://site.ru/category/id-article.html
По умолчанию, URL будут иметь вид:
http://site.ru/id-category/id-article.html.Обычно категорий на сайте не так много и можно не волноваться о том, что их названия могут повториться. Поэтому имеет смысл избавиться от ID категории в URL. Для этого, опять же, создаем пункт меню типа «Блог категории» и выбираем из списка нужную категорию. URL’ы всех материалов категории будут преобразованы к виду
http://site.ru/menualias/id-article.html
menualias – это псевдоним пункта меню, который был создан.
Кроме очевидной выгоды для URL создание пункта меню блога категории имеет и другие плюсы. Так для всех материалов категории при переходе в любой из них будет активироваться соответствующий пункт меню на сайте (если это предусмотрено шаблоном). Также для всех материалов категории можно выбрать уникальное отображение модулей, т.к. модули привязываются к пунктам меню и, привязанные к созданному пункту, будут отображаться/скрываться для всех материалов данной категории.
Настройка вида SEF-ссылок в Joomla. А как же создать URL вида http://site.ru/category/article.html
Вопрос в том, как создать URL, содержащий только псевдонимы, но не ID. Интересно, но это, как оказывается, достаточно сложная задача. Если кратко, то нужно переопределять файл router.php в шаблон Joomla и вносить в него исправления. На просторах Интернета по этому вопросу есть несколько подробных инструкций. Но не думаю, что стоит с этим связываться. URL-адреса – это такая вещь, настроить которую можно только при создании сайта. Если что-то изменять во время его работы, это может привести к печальным последствиям вплоть до временного выпадения из индекса поисковых систем большей части страниц. Неизвестно, что будет с таким файлом при обновлении версии Joomla, например, с выходом Joomla 3.2. Я считаю, что лучше не рисковать и оставить ID в URL материала.
Еще одним выходом будет являться установка стороннего SEF-компонента, например, SH404SEF.
UPD.: 19.09.2017. Привет из будущего! Теперь у Joomla новый роутер, позволяющий делать адреса такого вида!
Настройка вида SEF-ссылок в Joomla. Скрытое меню.
Еще один частый вопрос: что делать, если нужно только создать правильный URL, но не показывать пункт меню на сайте? В этом случае все просто. Нужно создать в менеджере меню скрытое меню. «Скрытое» – это просто такое название для удобства. На самом деле оно ничем не отличается от обычного меню. Разница лишь в том, что обычное меню вы показываете на сайте через модуль Joomla. Для скрытого меню просто не публикуйте этот модуль и его никто не увидит. Оно будет использоваться только для служебных целей, а именно создания правильных URL и привязки модулей к определенным страницам сайта.
Настройка вида SEF-ссылок в Joomla. Сторонние компоненты.
Всё, что было описано выше, относится только к основным расширениям Joomla, которые предустановленны сразу с CMS. Для сторонних компонентов SEF делают разработчики этих компонентов. Весь код, относящийся к формированию ссылок, находится в папке с компонентом, в файле router.php. Этот файл можно переопределить в шаблон Joomla и доработать под себя. Хотя потребуются приличные знания PHP. Иначе, либо искать готовый переделанный router, либо использовать то, что есть.