- ЧПУ – что это такое
- Квантификаторы или кванторы
- Экранирование
- Что такое чпу ссылки и как правильно составить
- Как заполнять seo url, понятный человеку
- Подведем итоги
- Разработка сайтов
- Рекомендации по использованию ЧПУ
- Ограничение начала и конца строки (маркеры)
- Обратные связи в mod_rewrite
- Как настроить ЧПУ на сайте WordPress?
- Как правильно написать русское слово латинскими буквами?
- Сайты для онлайн транслитерации слов
- Самостоятельный перевод слов на латиницу
- Флаги
- Создание SEF ссылок с помощью mod_rewrite
- Правила и условия mod_rewrite
ЧПУ – что это такое
Что такое сайт ЧПУ? ЧПУ — что означает человекочитаемый url, это адрес страницы, отображаемый в одну строку, простой и понятный человеку. При посещении вашего сайта пользователь легко запомнит такой URL-адрес ЧПУ, так как адрес является ассоциированным и конкретно отражает суть того, что человек видит на странице. От того, имеет ли ваш ресурс удобочитаемый URL или нет, зависит не только отображение сайта в результатах поиска, но здесь речь идет о многих других факторах ранжирования. Расскажем подробнее, как составить грамотный cnc url для вашего ресурса.
Квантификаторы или кванторы
Все предыдущие примеры обозначали один символ (одну единицу), но что, если мы хотим показать, что символов из этого интервала a-zA-Z может быть не один, а сколько угодно. Для этого нам нужно использовать квантификаторы:
- ? — 0 или 1 символ из предыдущего текста (класс символов, символ и т.д.)
- * — 0 или любое количество символов из предыдущего текста (n>0)
- +-1 или любое количество символов из предыдущего текста (n>1)
- {n} — ровно n символов, где n — конкретное число.
Например:
- {4} — должно состоять ровно из 4 символов предыдущего текста.
- {4,5} — 4 или 5 символов
- {,6} — от нуля до 6 символов
- {4,} — от 4 до бесконечности символов
Пример — наша уже известная строка:
Правило перезаписи ^полезно/(az*)
Где мы использовали квантификатор звездочки (*) после класса символов az. Это означает, что в нашем URL после полезного/ могут быть символы от a до z в любом количестве и, конечно же, в любом порядке, а может и не быть вовсе. Домен в расчет не берем, само собой.
Экранирование
Также при рисовании шаблона не забывайте экранировать. Например, если вы хотите заключить точку в класс символов, вы должны экранировать его, так как без экранирования точка (служебный символ) означает абсолютно любой символ:
a-zA-Z0-9.
То же самое касается квадратных скобок, они обозначают класс символов, поэтому, если ваш URL-адрес может иметь квадратные скобки, их нужно экранировать:
a-zA-Z0-9[.[]]
Что такое чпу ссылки и как правильно составить
Вот пример на нашем сайте:
Как видите, раздел Портфолио в адресной строке явно называется портфолио. Так пользователь сразу понимает, где он находится, адрес соответствует содержанию страницы, а поисковой системе легче понять ваш ресурс и правильно его проиндексировать.
Или так — страница с ценами на услуги «Прайс»:
Подписывайтесь на Telegram-канал автора о предпринимательстве в России.
А вот так выглядят не-NC ссылки, которые пользователь не может прочитать:
Или — где по адресу не совсем понятно, о чем страница:
Что такое URL страницы и какие они, понятно, но уже интереснее сделать грамотный ЧПУ для SEO.
Структура создания ЧПУ может быть совершенно разной, а то, как правильно создать ЧПУ для вашего сайта, напрямую зависит от ресурса CMS, особенностей, спецификаций и архитектуры сайта.
- Пожалуй, известный пример простых ссылок NC похож на многие сайты: fireseo.ru/contacts/ — в разделе «Контакты» url выглядит одинаково для большинства ресурсов.
- Слегка расширенные, понятные человеку SEO-адреса будут выглядеть так: /blog/chto-takoe-mikrorazmetka-sajta-i-dlya-chego-ona-nuzhna/
Также рекомендуем прочитать статью: как скачать отчет из Яндекс Метрики.
При правильном создании ЧПУ важно не углубляться в адресную структуру. Если адрес длинный, он должен быть удобочитаемым. Вот пример довольно длинного, но понятного адреса:
Как заполнять seo url, понятный человеку
Заполните удобочитаемый URL-адрес с использованием транслитерации. Транслитерация url seo отлично подходит для создания ЧПУ онлайн — пользователь без проблем прочитает и поймет такой url, как и поисковые роботы.
Посмотрите, как мы использовали транслитерацию в адресе страницы клиента. Вкладка «Оптовая продажа»:
Также можно указать адрес латиницей, но в этом случае ресурс будет иметь более низкий приоритет, в отличие от тех сайтов, где используется транслитерация. Вам решать ☺
Если хотите, используйте универсальный латинский алфавит, как это сделали мы:
Латинский алфавит чрезвычайно быстро обрабатывается поисковыми системами, он понятен большинству жителей планеты, в том числе и России. Если вы считаете, что этот тип ЧПУ гармонирует с вашим ресурсом, используйте его.
И, конечно же, кириллица — она используется в оформлении ЧПУ многими русскоязычными сайтами. Например, сайт всем известной Википедии:
Подведем итоги
- Мы используем ключевые слова или ключевые фразы в адресах страниц на сайте — таким образом мы упростим путешествие пользователей по ресурсу, сделаем его проще, практичнее и понятнее.
- То же самое относится и к поисковым системам — их понимание ключевых слов в ЧПУ крайне важно, т.к они выявляют и делают адреса ЧПУ более заметными в поисковой выдаче — а это повышает релевантность страниц сайта в разы
- Пользователи будут быстрее запоминать названия страниц и делиться этими адресами ЧПУ с друзьями ☺
- CTR сниппета страницы в поиске будет выше, если он содержит CNC — и это улучшит поведенческие факторы
- SEO страницы увеличится. Страницы ЧПУ есть — это важнейший фактор поисковой оптимизации
Ну и конечно же адрес ЧПУ легко продиктовать по телефону своему знакомому или знакомому. А если у вас интернет-магазин, то не стоит говорить, что это увеличит прибыль. Вы понимаете ☺
Облегчите жизнь поисковым системам и пользователям с ЧПУ! И, конечно же, всегда быть в ТОПе! ☺
- Фейсбук
- Твиттер
- Вконтакте
- Карман
Подпишитесь на рассылку FireSEO и получайте подборки статей, полезных сервисов, анонсов и бонусов. Присоединяйся сейчас!
Настоящим подтверждаю, что прочитал и принимаю условия политики конфиденциальности для отправки данных.
Привлекайте клиентов с помощью интернет-маркетинга
Читайте также: Семантическое ядро сайтов конкурентов: Как узнать, посмотреть
Разработка сайтов
- Целевая страница
- Бизнес-сайты
- Онлайн покупки
- Адаптивные веб-сайты
Рекомендации по использованию ЧПУ
1. Как организовать структуру ЧПУ?
В зависимости от типа сайта структура адресов ЧПУ может быть разной. Начнем с некоторых шаблонов.
Шаблон: /имя страницы/
Пример: /контакт/
Тип сайта: Все
Этот шаблон подходит для всех статических страниц сайта (контакты, о нас, FAQ, доставка, условия использования и так далее), а также для указания разделов или рубрик в интернет-магазинах или контент-проектах (раздел «Ноутбуки» или рубрику «интервью”).
Шаблон: /pagename.html
Пример: /usability-factors.html
Тип сайта: Все
Этот шаблон больше подходит для динамических страниц, если на сайте есть только одна категория (например, статьи и ничего больше), но можно использовать и для статических страниц сайта.
Шаблон: /id/название
Пример: /1034/киркоров-давай-досвидания
Тип сайта: Новостной ресурс (или обзорный
Такой шаблон использует ЧПУ более низкого качества, так как содержит ID поста из базы данных и этот ID сложно запомнить человеку, но он часто используется в сети в новостных проектах, где заголовки могут повторяться, а ID уникальный адрес (обеспечивает один адрес для одной статьи). Этот шаблон рекомендуется для редких случаев, когда нет других вариантов. ID лучше убрать из ЧПУ, а к повторяющимся заголовкам добавить серийный номер, чтобы сделать их уникальными.
Шаблон: /год/месяц/день/название.html
Пример: /2012/04/23/my-first-post.html
Тип сайта: блоги, новостные ресурсы
Использование даты в ЧПУ очень практично для тех проектов, где основной проблемой является актуальность материала. По адресу можно сразу узнать, насколько материал актуален и стоит ли его читать дальше, а также легко найти в поисковике старый материал за конкретный год или месяц. Такой шаблон часто используют новостные порталы и некоторые блоги (дневники).
Шаблон: /категория/подкатегория/название
Пример: /ноутбук/asus/asus-3012
Тип сайта: Интернет-магазины, блоги, новости
В этом шаблоне уже показаны хлебные крошки и иерархия объектов (если их можно так назвать). ЧПУ играет роль хлебных крошек, их удобно использовать как посетителям при навигации, так и вебмастеру для присвоения адресов товарам (или статьям). Единственный минус такой структуры ЧПУ проявляется, когда мы переводим товар (или артикул) в другую категорию, приходится учитывать смену адреса и ставить 301 редирект со старого ЧПУ на новый.
При разработке веб-сайта выберите основные заголовки, их подзаголовки и элементы внутри этих подзаголовков. Легче всего организовать ЧПУ так, чтобы адрес отражал структуру сайта. Например, если у вас есть городской портал, основные разделы будут выглядеть так:
/афиша/
/Новости/
/галерея/
/работа/
/Форум/
и так далее, с подробностями в каждой рубрике:
/афиша/кино/
/афиша/театр/
/афиша/спорт/
и так далее.
/afisha/sport/ledoviy-dvorec/
/афиша/спорт/боулинг-клуб/
…
То же самое можно использовать для любого веб-сайта с иерархической структурой.
2. Кириллица или латиница?
Что лучше выбрать для ЧПУ — кириллицу, латиницу или транслитерацию? Это дело вкуса, но с точки зрения юзабилити смешивать латиницу и кириллицу в одном ЧПУ нецелесообразно, так как для ввода адреса вручную пользователю приходится менять раскладку клавиатуры (хотя Википедия и этим не брезгует) . С точки зрения SEO разницы нет, поисковики понимают и латиницу, и кириллицу, и транслитерацию.
Кириллица для ЧПУ удобна, когда сам домен кириллический или когда эта часть адреса не очень длинная (например в словарях). Единственный недостаток кириллических ЧПУ — вставка закодированных значений пути для адреса при его копировании из браузера.
Латинский CNC (с переводом русских слов) хорошо использовать для заголовков и статических страниц, так как все привыкли к /news/ вместо /novosti/ или /contacts/ вместо /kontakti/. Для названия статей это делается реже, если редактору это не в тягость (я, например, в своем блоге использую латиницу ЧПУ).
Транслитерацию лучше использовать для названий статей. При этом неважно, по какому ГОСТу вы транслитерируете названия статей, поисковики понимают разные варианты. В очень редких случаях, если вы компилируете ЧПУ для частей небольшого сайта, можно проверить подсветку в запросе:
Но, как показывает практика, если поисковик не выделяет ключевое слово в адресе, это не значит, что он его не понимает. Поэтому можете не переживать и использовать любой доступный вам ГОСТ .
3. Длина ЧПУ
Длинные НК неудобны для пользователя: их трудно запомнить, они часто обрезаются при вставке ссылки на старых форумах и часто в социальных сетях (а также в результатах поиска, если хлебные крошки не определены), также затрудняют перемещаться по сайту.
Пример длинного и сложного ЧПУ:
http://korrespondent.net/sport/echampionship/1365520-fotogalereya-ahtung-podruga-igroka-sbornoj-germanii-ispugavshaya-chinovnikov-svoej-seksualnostyu
Настройте CMS таким образом, чтобы длина ЧПУ была не более 60-80 символов (чем меньше, тем лучше и практичнее). Если ваши товарные подкатегории (например, в интернет-магазине) имеют 4-5 уровней вложенности, то в ЧПУ целесообразно отображать только последнюю подкатегорию или первую и последнюю, но не все 4-5, чтобы уменьшить длину ЧПУ.
4. Подчеркивание или дефис?
Что лучше для ЧПУ для разделения слов: подчеркивание или дефис? Оба варианта возможны, но дефисы предпочтительнее, так как для их ввода требуется одно нажатие клавиши и два (плюс Shift) для подчеркивания).
А как насчет пространств? Пробелы в ЧПУ лучше не использовать, так как во многих случаях они могут вызвать только головную боль у веб-мастера. Замените пробелы другими разделителями (дефисами, подчеркиваниями или, в крайнем случае, плюсами). Оптимальные ЧПУ содержат во всех языках однотипные символы и знаки препинания — без пробелов, кавычек, запятых и других служебных символов.
5. Какой ЧПУ выбрать для мультиязычных сайтов?
При добавлении нескольких языковых версий сайта вам сначала нужно решить, хотите ли вы разместить их на поддомене, отдельном домене или все-таки добавить их в ЧПУ? Если последний вариант, то лучше добавить часть, отвечающую за языковую версию, в начало адреса (сразу после имени домена).
http://www.mydomain.com/en/about-us.html
http://www.mittdomene.com/de/about-us.html
http://www.mydomain.com/us/news/our-new-office.html
6. Нужен ли ЧПУ для титров фото и видео?
Если вы планируете получать трафик на сайт еще и с поисков изображений или видео, здесь важно только название изображения (например, hrizantema.jpg вместо 1244_2344.jpg), и сам путь, по которому находится изображение или видео файл хранится, не имеет значения (только Google может найти изображения по имени папки). Адреса изображений также используются не так активно, как адреса страниц.
Ограничение начала и конца строки (маркеры)
Для обозначения начала или конца строки, независимо от домена, используются следующие символы:
- ^ — начало URL
- $ — конец URL
То есть в нашем первом примере мы указали, что наш шаблон начинается именно с начала URL, а не откуда-либо (с середины, с конца):
Правило перезаписи ^полезно/(az)
Обращаю внимание, что ^ внутри квадратных скобок означает отрицание, не путайте!
Обратные связи в mod_rewrite
$n — наша «переменная» в скобках, о них мы уже говорили. Работает для RewriteRule.
%n тоже самое, только в RewriteCond. Мы еще не рассмотрели RewriteCond, он у нас впереди.
Итак, если RewriteRule — это наши правила преобразования URL-адресов, RewriteCond — это условие, аналогичное if в PHP. RewriteCond нужен в ситуациях, когда нужно выполнить преобразование URL (RewriteRule) только при выполнении условия.
У сервера есть свои переменные, которые мы можем использовать в наших условиях RewriteCond:
Заголовки HTTP:
HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT REMOTE_ADDR
Подключение и запрос:
УДАЛЕННЫЙ УЗЕЛ
REMOTE_USER
REMOTE_IDENT
ЗАПРОС_МЕТОД
SCRIPT_FILENAME
PATH_INFO
СТРОКА ЗАПРОСА
AUTH_TYPE
Внутри серверной:
DOCUMENT_ROOT
SERVER_ADMIN
ИМЯ СЕРВЕРА
SERVER_ADDR
ПОРТ СЕРВЕРА
СЕРВЕР_ПРОТОКОЛ
СЕРВЕР_ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Систематический:
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
ВРЕМЯ
Особенный:
API_VERSION
ЗАПРОС
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ
Синтаксис использования переменных сервера следующий:
%{переменная}
Давайте уладим наше первое условие:
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.* RewriteRule …
Если посетитель пришел из браузера Mozilla Firefox, выполняем следующее правило. Как видите, в отличие от PHP, мы не используем фигурные скобки для заключения нашего правила, которое будет выполняться, если условие истинно.
RewriteCond позволяет использовать операторы сравнения: < (меньше), > (больше), = (равно). Существуют также специальные значения, например:
- -d (это каталог)
- -f (это файл)
- -s (это ненулевой файл)
- ! — отрицание.
Как настроить ЧПУ на сайте WordPress?
Чтобы настроить человекочитаемый адрес в WordPress, вам нужно перейти из панели администрирования WordPress в меню «Настройки» / «Постоянные ссылки».
В предложенной форме для выбора шаблона URL необходимо выбрать «Название сообщения». Который автоматически добавляется к вашему URL-адресу после создания страницы или публикации WordPress.
С названием определились, поставили ЧПУ для сайта WordPress, теперь попробуем правильно написать наши имена в транслитерации (русские слова латинскими буквами.
Как правильно написать русское слово латинскими буквами?
Для правильной транслитерации можно использовать следующие методы перевода:
- Воспользуйтесь онлайн-сервисом для перевода русских слов на латиницу.
- Переведите слово сами.
- Плагин транслитерации для WordPress.
Сайты для онлайн транслитерации слов
В Интернете есть много сайтов, которые предлагают транслитерацию слов совершенно бесплатно и быстро.
Ниже приведен пример некоторых из них:
- fotosav.ru/services/transliteration.aspx на этом сайте все очень просто, вводим слово на русском и получаем перевод на латинице.
- kakvse.net/translit.html точно так же переведет ваши слова.
Этих двух страниц вам будет достаточно, чтобы перевести русские слова в транслитерацию.
Самостоятельный перевод слов на латиницу
Самостоятельно провести транслитерацию вполне возможно, для этого достаточно понимать буквы аналогов латинского алфавита, ознакомиться с таблицей транслитерации можно в этой таблице, взятой с сайта egold-money.info.
Флаги
- nocase|NC — можно написать либо nocase, либо NC, это одно и то же, значит регистр не чувствителен. То есть мы уже не можем писать: RewriteRule ^useful/a-zA-Z
Вместо этого напишите так:
RewriteRule ^useful/az [NC]ornext|ИЛИ — если это или следующее условие истинно, выполнить RewriteRule. Пример: RewriteCond %{REMOTE_HOST} ^host1.* [ИЛИ] RewriteCond %{REMOTE_HOST} ^host2.* [ИЛИ] RewriteCond %{REMOTE_HOST} ^host3.* RewriteRule … Last|L — последнее правило. Если правило было использовано, то правила ниже в коде не будут работать next|N — это своего рода аналог continue. Если правило используется, то оно заставляет проигрывать все правила с самого начала, но с уже преобразованной строкой .redirect|R — редирект. По умолчанию 302.
Вы можете указать другой код перенаправления, например: [R=301]запрещено|F — URL становится запрещенным.gone|G — отправляет 410 сервер response.chain|C -link. Если правило не сработало, связанные с ним правила также не будут работать автоматически.type|T – тип MIME. Принудительная установка типа файла. Вы можете передать один тип файла другому 🙂 Например, у нас есть файлы с расширением .zip, но на самом деле они являются изображениями, поэтому, чтобы передать эти файлы как изображение (.png, .gif и т д.), вам нужно чтобы иметь возможность использовать этот флаг .skip|S — пропустить следующее правило, можно указать сразу несколько, например: [S=2]env|E=VAR:VAL — установить переменную окружения.cookie|CO — отправить печенье.
Если вам нужно установить сразу несколько флагов, разделите их запятыми, например:
[НЗ, Л]
Как вы уже догадались, mod_rewrite можно использовать не только для ЧПУ, но и для многих других интересных целей, например, клоакинг — это метод черного SEO, когда страница отдается посетителям по одному и тому же адресу, а для поиска — совершенно разные роботы. Ну а в конце статьи я покажу вам живой пример использования всего написанного выше и как все работает при взаимодействии с PHP.
Создание SEF ссылок с помощью mod_rewrite
mod_rewrite — это модуль веб-сервера Apache, предназначенный для перезаписи URL-адресов. Естественно для начала нужно включить этот модуль в настройках апача, эти настройки находятся в файле httpd.conf, нужно раскомментировать название этого модуля. У 99% хостинг-провайдеров он включен, за исключением совсем ужасного хостинга. Кстати, с Денвером я не мог нормально настроить свои ЧПУ, долго не хотел видеть в чем проблема (собственные редиректы Денвера мешают), и поставил Apache отдельно. Для тех, кто не знает, как установить сервер Apache без использования Денвера, я напишу инструкцию в одной из следующих статей. И вот продолжаем разбирать наш ЧПУ.
Все наши правила преобразования URL-адресов записаны в пресловутый файл .htaccess, который должен находиться в корне нашего сайта.
Для корректной работы mod_rewrite в нем должна быть прописана следующая строка:
Опции +FollowSymLinks
Или специально для моего хостинга:
Опции +SymLinksIfOwnerMatch
Далее привязываем наш модуль перезаписи к определенной папке, то есть к папке, где находится наш .htaccess:
Переписать двигатель на
У нас есть следующий файл .htaccess:
Опции +SymLinksIfOwnerMatch RewriteEngine On
Правила и условия mod_rewrite
Все правила пишутся с помощью команды RewriteRule, после чего ставится пробел и пишется ваш шаблон ЧПУ с помощью регулярных выражений, затем ставится новый пробел и выводится строка, в которую мы хотим преобразовать этот шаблон, где $1, $2, ..$n — наши переменные. Вы можете узнать больше о регулярных выражениях по ссылке выше, а также далее в этой статье. Давайте посмотрим на пример:
RewriteRule ^useful/(az*) /index.php?category=useful&article=$1
Где ^useful/(az*) — ожидаемый шаблон URL,
и /index.php?category=useful&article=$1 — это то, во что мы его конвертируем, если входящий URL соответствует шаблону.
В этом случае $1 равно тому, что написано в скобках, то есть $1 = az* Если скобки встретились 2 раза, то у нас были бы переменные $1 и $2, если скобки встретились 3 раза, то переменные $1, $2 , $3 и так далее. В этом случае переменные создаются в том же порядке, что и скобки.
Ясно? — отличная работа. Не понятно? — Давай, мы еще вернемся к этому. Также хочу обратить ваше внимание на то, что для лучшего понимания статьи у вас уже должны быть базовые знания PHP, а также работа с методами GET и POST. Мы продолжаем.
Чтобы наш обработчик, т.е mod_rewrite, каждый раз не срабатывал без надобности, мы указываем в RewriteRule шаблон, которому должны совпадать входящие URL. Если URL-адрес не соответствует шаблону, mod_rewrite просто не будет работать и не преобразует входящий URL-адрес SEF в URL-адрес, с которым мы можем работать.
То есть на данном этапе вам важно понять саму суть: в ссылках ЧПУ не передаются параметры, а без параметров мы ничего не можем сделать в PHP с этой ссылкой, поэтому с помощью mod_rewrite мы преобразуем ссылку ЧПУ без параметров в ссылка без ЧПУ с параметрами. Что такое параметры? В приведенном выше примере у нас есть 2 параметра:
/index.php?category=useful&article=$1
Параметр категории и параметр статьи.
Еще раз обращаю ваше внимание на то, что о параметрах вы уже должны были знать, я лишь вкратце напомнил вам об этом.
Мы можем использовать символы и классы символов в шаблонах. Символ точки обозначает абсолютно все символы.
- . — любой одиночный символ
- [redf] — класс символов. Указывает на наличие одного из перечисленных символов с учетом регистра.
- az — класс символов. Указывает на наличие одного из символов в промежутках от a до z, то есть всего английского алфавита.
- a-zA-Z — то же самое, только без учета регистра, то есть весь алфавит, включая как прописные, так и строчные буквы.
- Возможно с цифрами: [0-9]
- Естественно все можно комбинировать: [a-zA-Z0-9]
- [^rewfad] — это класс символов, но знак ^ в квадратных скобках означает, что шаблон НЕ ДОЛЖЕН содержать эти символы.
- site|site — указывает альтернативу: подходит site или cite.