Пожалуй, не было сайта под управлением Joomla, которому Яндекс Вебмастер не прислал бы предупреждение о том, что некоторые страницы с GET-параметрами в URL дублируют содержимое других страниц (без GET-параметров). Сегодня предлагаю рассмотреть небольшой плагин, который решает эту проблему.
Начнем с раскрытия вопроса: что же такое GET параметр? И для чего он нужен?
GET параметры нужны для передачи серверу определенных данных.
Они указываются в адресной строке вместе с URL сайта.
Разберем условный сайт: https://example.com/
Предположим с помощью GET параметра мы решили передать логин пользователя, который будет храниться в переменной «LOGIN»
В таком случае URL сайта будет выглядеть так: https://example.com/?LOGIN=you_login
Где «you_login» - логин пользователя, который мы передаем обработчику на сервере.
Передача GET параметров начинается всегда с вопросительного знака. Каждый последующий параметр разделяется символом «&»
Например, если мы хотим передать еще и пароль, то URL страницы будет выглядеть так:
https://example.com/?LOGIN=you_login&PASSWORD=you_password
Итак, мы выяснили, что GET параметры нужны для передачи определенных данных и бывают порой весьма и весьма полезны.
Уходим от GET запросов в Joomla
На сегодняшний день вебмастер и разработчик CMS стараются избегать GET параметров в URL
В первую очередь делается это дабы адрес страницы стал человеко понятным.
Чтобы вместо:
https://example.com/index.php?option=com_content&view=article&id=1
Было, к примеру:
https://example.com/mypage
Согласитесь, второй вариант выглядит значительно приятнее. Более того, второй вариант понравится не только человеку, но и поисковому роботу.
В Joomla произвести такую операцию достаточно просто. Для этого в общих настройках сайта, в разделе «Параметры SEO» необходимо активировать параметры «Включить SEF» и «Перенаправлять URL»
Не забудьте проследовать инструкции и переименовать файл htaccess.txt или web.config.txt (в зависимости от установленной на сервере операционной системы) так, как это показано на рисунке выше.
GET параметры и безопасность
Неконтролируемое использование GET параметров на сайте и их видимость не самым лучшим образом сказывается на безопасности сайта.
Позволяя кому угодно и как угодно добавлять GET параметры к URL вашей страницы, вы упрощаете работу взломщикам и прочим вредителям, имя которым — легион.
Поэтому там, где использование дополнительных GET параметров не требуется, оно должно программным образом пресекаться.
Можно ли отказаться от использования GET параметров?
Бывают случаи, когда использование GET параметров в URL вашей страницы необходимо.
Например, на вашем сайте есть партнерская программа и будущие ваши партнеры для того, чтобы превратиться в партнеров должны перейти по ссылке:
https://example.com/?parthner_id=443
В таком случае, сайт должен принимать и обрабатывать параметр «parthner_id» и игнорировать все остальные.
Ситуаций, где использования GET параметров не избежать — превеликое множество. Однако, правило при работе с ними должно быть одно:
Если параметр необходим для работы сайта и его обработка прописана в коде сайта — обрабатываем.
Если — это чужеродный параметр, игнорируем и редиректим на страницу без этого параметра.
Почему наличие GET параметров в адресе страницы вредно для продвижения сайта?
С точки зрения поисковых систем страница https://example.com/ и страница https://example.com/?param=1 — это две уникальных страницы.
Проблема в том, что, скорее всего. на двух таких страницах одинаковый контент.
Для живого человека — это одна и та же страница, для поисковых роботов — две разные.
Соответственно, в ближайшем будущем Яндекс вебмастер пришлет вам предупреждение о том, что на сайте огромное количество дубликатов и с этим нужно что-то делать.
Резюмирую вышеописанное
1) Адреса страниц вашего сайта должны быть максимально избавлены от GET параметров
2) Если есть острая необходимость принимать и обрабатывать GET параметры, то для этого необходимо выделять отдельные страницы закрытые от индексации поисковыми роботами
Работа с плагином «Очистка GET параметров» для Joomla
Для решения вопросов и проблем, связанных с GET параметрами был разработан плагин «Очистка GET параметров».
Плагин продается в интернет-магазине и доступен по ссылке ниже:
Купить плагин «Очистка GET параметров» для Joomla
После приобретения плагина, необходимо будет скачать архив plg_system_sitogongetredirecter.zip и установить его через стандартный менеджер расширений Joomla.
Далее, в административной панели Joomla переходим в раздел «Плагины». В списке плагинов указываем, что мы ищем плагин тип, которого «system».
Далее откроем плагин на редактирование и приступим к изучению его настроек.
Вкладка «Плагин»
Как видим, настройки плагина разбиты по трем вкладкам и мы начнем изучение с первой, которая посвящена редиректу.
Давайте разберем: как же плагин «сражается» с ненужными и нежелательными GET запросами?
Происходит все очень просто.
Если пользователь откроет ссылку вида: https://example.com/mypage , то не произойдет ровным счетом ничего.
Однако, если открыть ссылку вида: https://example.com/mypage?param=value, то произойдет редирект на страницу https://example.com/mypage.
То есть, на страницу без GET параметров.
Устраивать подобный редирект имеет смысл и нужно только там, где:
1) Адреса страниц приведены к человеко-понятному виду
2) Страницы содержат контент, который необходимо проиндексировать поисковыми роботами и вы очень хотели бы увидеть эти странички в поисковой выдаче Яндекса или Гугла.
Поэтому мы включаем редирект не везде, а только для определенных компонентов. Для этого предназначен параметр «Использовать редирект со страниц с GET параметрами на страницы без параметов в указанных компонентах»
Нужно отметить, что вся эта история с GET параметрами важна и нужна в первую очередь для поисковых роботов. А роботы видят только ту часть сайта, которая разрешена не авторизованным пользователям.
Достаточно часто бывает так, что для авторизованного пользователя на сайте создан мощный личный кабинет с огромным количеством функций, где активно используются GET запросы.
Поэтому имеет смысл отключить редиректы в плагине, за что отвечает переключатель, показанный на рисунке ниже:
Также есть острая необходимость отключать редирект при наличии в URL определенных параметров. В частности, при наличии параметра «tpl» в значении «component» нередко во фреймы или ajax скрипты подгружается определенная часть сторонних страниц. И происходит это с помощью GET запроса.
Для отключения редиректа при наличии определенных параметров в заданных значениях и необходимо текстовое поле, показанное на рисунке ниже:
Наконец, есть необходимость игнорировать определенные параметры в GET запросе.
Постараюсь, привести пример. На странице постраничной навигации (пагинации) в Joomla используется параметр «start».
В итоге ссылка разбиения на страницы может выглядеть так:
https://example.com/mypage?start=20
Мы не желаем производить редирект при данном URL, однако не хотим, чтобы в этом URL оказались другие GET параметры.
Поэтому укажем плагину, что параметр «start» мы игнорируем.
Однако если URL вдруг окажется вот таким:
https://example.com/mypage?start=20¶metr=value
То редирект произойдет, но произойдет он на страницу:
https://example.com/mypage?start=20
Вкладка «Индексация»
В Joomla предустановлено много полезнейших компонентов. Причем, о существовании многих владелец сайта не имеет никакого понятия.
При этом, страницы этих компонентов успешно индексируются поисковыми роботами.
Достаточно распространенная ситуация, когда на 20-30 полезных страниц сайта несущих хоть какую то полезную информацию, поисковые роботы умудрились проиндексировать более 200 страниц с данного сайта. И продолжают это делать.
Нет никакой необходимости индексировать компонент «com_users», отвечающий за регистрацию, авторизацию и работу с зарегистрированными пользователями. Также нет никакого смысла отдавать на индексацию компонент «com_mailto», который в списке статей отображает ссылку на форму «Поделиться с другом»
Поэтому очень рекомендую воспользоваться параметром «Закрыть индексацию от поисковых роботов указанных компонентов» и выбрать все запрещенные к индексации компоненты.
Иногда возникает необходимость закрыть для индексации не весь компонент, а отдельное его представление.
Представление (ВИД или VIEW) — это часть программного кода, которая формирует то, что видит пользователь.
В Joomla имя представления задается параметром VIEW. Увидеть какое представление отвечает за формирование вывода у пункта меню можно в блоке «Ссылка»
В данном случае имя представления — category.
Вернемся в наш плагин.
Рассмотрим параметр, который показан на рисунке ниже и отвечает за запрет индексации для указанных через запятую представлений:
Как видим, в моем случае запрещены к индексации представления «cart» и «orders».
Это означает, что если у любого установленного в системе компонента присутствуют представления с указанными выше названиями, то они будут запрещены к индексации.
Поэтому!
Будьте осторожны с настройкой данного параметра. Если сомневаетесь, задайте вопрос в группе VK по ссылке ниже:
Вкладка «Пагинация»
Пагинация на сайте — это разбиение на страницы и постраничная навигация.
Практически всегда пагинация разрабатывается при использовании GET параметров.
Например, в стандартном менеджере материалов Joomla (com_content) для этого используется параметр «start». Например, ссылка на моем сайте до включения плагина выглядела, как:
https://sitogon.ru/dlya-tech-kto-delaet-internet?start=9
Если запретить GET параметры для этой страницы, то мы каждый раз будем попадать на первую страницу списка статей. И никак не сможем переместиться на вторую, третью и прочие страницы.
Для этого в плагине есть возможность перевода пагинации в режим без GET параметров.
В текстовом поле «Класс списка пагинации» необходимо указать класс, который используется в вашем списке пагинации.
Увидеть его можно при просмотре HTML кода страницы.
Чем плоха пагинация с GET параметрами?
С точки зрения поисковой оптимизации отрицательным моментом является то, что индексируется несколько страниц с одинаковыми заголовками и метаописанием.
Если перейти в режим «Пагинация без GET параметров», то адрес страницы будет всегда один, однако возможность постраничной навигации и перехода с одной страницы останется
Заключение
Честно говоря, не планировал писать целый опус на тему GET параметров в Joomla. В итоге вышло, как вышло.
Я постарался максимально описать не только плагин, но и нюансы при работе с GET параметрами. Очень надеюсь, что я никого не запутал и раскрыл обсуждаемую в статье тему.
При этом, готов ответить на любые вопросы. Пишите в группе VK. Буду рад общению:
С уважением, Владимир Егоров