Рекомендации по созданию ЧПУ URL

Автор: команда Magic Trust Group

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

Для чего же нужен ЧПУ?

В первую очередь, создание человеко-понятного URLа страницы сайта положительно влияет на ее индексацию и ранжирование поисковыми системами. Так же ЧПУ адрес ссылки помогает понять пользователю о чем страница, уровень ее вложенности. А при указании четкой структуры, может служить навигацией по сайту.

Адрес страницы можно прописывать как кириллицей, так и латиницей. Мы рекомендуем транслитерировать его латиницей, так как кириллица при копировании, либо проверке, часто становится нечитабельной.

Как создать ЧПУ?

На большинстве сайтов реализованы функции фильтров. Как правило, реализованы они через GET параметры. Этот факт усложняет продвижение таких страниц в поисковых системах. Для исправления ситуации, рекомендуем на указанные страницы внедрять ЧПУ, но при этом важно учитывать особенности каждой CMS.

Мы используем универсальный метод, который работает практически для всех CMS.

Пошагово выполняя этапы, описанные ниже, необходимость участия программиста в задаче отпадет. Основываясь на наших инструкциях, оптимизатор сможет выполнить задачу самостоятельно.

Итак, все что необходимо — установка модуля генерации ЧПУ на сайт (скачать модуль ЧПУ). Данный модуль функционирует в рамках установки Seo Shield Client (модуль для продвижения сайтов с помощью сервиса Seo Shield).

Рассмотрим пример генерации ЧПУ для CMS Bitrix версии 15.0.6.

ШАГ 1

Необходимо найти главный файл системы, то есть файл, с которого начинается работа системы. Как правило, это index.php.

В данном случае, этот файл urlrewtire.php.

Узнать файл, который является главным можно через .htaccess (лежит в корне сайта). Наш файл .htaccess выглядит следующим образом:

Options -Indexes

ErrorDocument 404 /404.php

Options +FollowSymLinks

RewriteEngine On

# редирект с www на без www

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-l

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$

RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]

RewriteRule .* — [E=REMOTE_USER:%{HTTP:Authorization}]

DirectoryIndex index.php index.html

Строка RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L] — указывает на то, что все запросы, прошедшие ряд проверок, необходимо перенаправлять на — urlrewrite.php, который находится в директории /bitrix/

ШАГ 2

Загрузить папку seoshield-seo-url в корень сайта

ШАГ 3

Подключить модуль в главный файл системы.

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

if(file_exists($_SERVER[«DOCUMENT_ROOT»].’/seoshield-seo-url/main.php’))

{

require_once($_SERVER[«DOCUMENT_ROOT»].’/seoshield-seo-url/main.php’); if(function_exists(‘seo_url_start’))

seo_url_start();

}

ШАГ 4

Заполнить массив URLов в файле seo_urls.cache.php, который находится в seoshield-seo-url/data/. следующим образом:

«Не_ЧПУ» => «ЧПУ»

ВАЖНО:

В качестве ключа «Не_ЧПУ» необходимо вставлять URL без указания доменного имени.

К примеру, если в браузере у вас:

http://brandremen.ru/catalog/vse_remni/?set_filter=y&arrFilter_40_4217994138=Y

То вам нужна та часть, которая указана после доменного имени. В данном случае это /catalog/vse_remni/?set_filter=y&arrFilter_40_4217994138=Y

Как видим, присутствуют GET параметры set_filter и arrFilter.

Для того чтобы убрать данные параметры, необходимо в файл seo_urls.cache.php добавить пару:

«Ключ» => «Значение», где

«Ключ» — это /catalog/vse_remni/?set_filter=y&arrFilter_40_4217994138=Y,

«Значение» — новый URL, для примера — /catalog/vse_remni/kozha_krokodila/» або «/kozha_krokodila/

То есть, в конечном результате мы получаем:

/catalog/vse_remni/?set_filter=y&arrFilter_40_4217994138=Y =>

/catalog/vse_remni/kozha_krokodila/

либо

/catalog/vse_remni/?set_filter=y&arrFilter_40_4217994138=Y» => /kozha_krokodila/

Запомните правила заполнения:

  • URLы должны быть внутри кавычек
  • Обязательно ставить символ => (между «=» и «>» не должно быть пробелов)
  • В конце после последней кавычки указывается запятая

Выполнив все указанные шаги, URL http://brandremen.ru/catalog/vse_remni/?set_filter=y&arrFilter_40_4217994138=Y перенаправит на http://brandremen.ru/catalog/vse_remni/kozha_krokodila/

А при переходе на http://brandremen.ru/catalog/vse_remni/kozha_krokodila/ система отобразит нужный контент.

Принцип работы

Перед запуском самой системы запускается модуль seo_url_start, который проверяет текущий URL на наличие для него ЧПУ. И редиректит его в случае, если ЧПУ существует.

if(array_key_exists($_SERVER[‘REQUEST_URI’], $data))

{

header(‘HTTP/1.1 301 Moved Permanently’);

header(‘Location: ‘ . $data[$_SERVER[‘REQUEST_URI’]]);

exit;

}

Если текущий URL ЧПУ, то модуль делает подмену переменных для системы.

$_SERVER[‘REQUEST_URI’] и $_GET , после чего CMS понимает, какую конкретно html страницу необходимо отдать браузеру, роботу и т.д

if(($key = array_search($_SERVER[‘REQUEST_URI’], $data)) !== false)

{

$GLOBALS[‘SEOSHIELD_CONFIG’][‘page_uri_seo’] = $_SERVER[‘REQUEST_URI’];

$uri = $key;

$_SERVER[‘REQUEST_URI’] = $uri;

if(strpos($uri, ‘?’) !== false)

{

list(, $query) = explode(‘?’, $uri);

parse_str($query, $_GET);

}

}

if(strpos($uri, ‘?’) !== false)

{

list(, $query) = explode(‘?’, $uri);

parse_str($query, $_GET);

}

}

Помните о том, что выполнив данную задачу, вы улучшите результаты ранжирования страниц и поможете пользователям лучше ориентироваться на сайте.

Скачать модуль генерации ЧПУ

Журналист, новостной редактор, работает на сайте с 2009 года. Специализация: интернет-маркетинг, SEO, поисковые системы, обзоры профильных мероприятий, отраслевые новости рунета. Языки: румынский, испанский. Кредо: Арфы нет, возьмите бубен.