Основные правила формирования URL страниц при создании сайта
При создании любого более-менее сложного сайта почти всегда встает вопрос касательно того, как формировать URL-адреса страниц. Если речь идет о простеньком корпоративном ресурсе, где есть только несколько страничек максимум с одним уровнем вложенности, то вполне можно обойтись следующей схемой - конечный URL формируется на основе краткого названия страницы, переведенного на английский язык или транслит. К примеру, страница называется “Контактная информация”. Адрес в данном случае может быть такой - /contacts или /kontakty. Для какого-нибудь “Прайс-листа” вполне подойдет адрес /prices. При наличии в URL нескольких слов они, как правило, разделяются дефисом. К примеру, /prices-and-goods. Для генерации таких URL воспользуйтесь нашим Генератором ЧПУ (человеко-понятных URL).
Однако, далеко не всегда сайты настолько примитивны в плане своей структуры. И чем более сложной и разветвленной она является, тем лучше надо продумывать правила, по которым будут формироваться адреса отдельных страничек.
К примеру, на сайте имеется регистрация пользователей. Соответственно, могут быть страницы с профилями, списком всех / каких-то отдельных групп пользователей, страницы с личными переписками, настройками и т.д. Если функционал сайта подразумевает реализацию каких-то товаров, услуг или платных подписок, то для них также приходится делать страницы разных типов - саму страницу с описанием товара / услуги, страницы категорий, поиска, список отзывов, вопросов. В данном случае будет большой ошибкой формировать URL-адреса по тому же принципу, по которому они формировались на простом сайте с одним уровнем вложенности. И вот почему.
Высокий риск повтора URL. К примеру, при наличии страницы с контактными данными (/contacts) и какого-то товара / услуги с аналогичным названием может произойти коллизия - совпадение адреса.
Плохое юзабилити. Пользователю может быть сложно ориентироваться на сайте по подобному URL (не очень понятно, в каком именно разделе сайта он находится сейчас и как далеко он ушел от главной страницы).
Возможные проблемы с SEO. Поисковикам также будет сложно различать страницы разных типов, если их URL-адреса формируются по одному принципу.
Как же правильно продумать систему URL на сложных и разветвленных сайтах?
Прежде всего, следует придерживаться принципа деления адресов по категориям. К примеру, страница профиля пользователя может иметь такой паттерн - /user/{user_id}, где user_id - идентификатор конкретного пользователя из базы данных. Страница товара может иметь паттерн вида /product/{product_id}. Страница отзывов на конкретный товар - /product/{product_id}/reviews. В-общем, всё по аналогии.
Описанный выше подход исключит совпадения URL, а сам адрес будет понятен для посетителей и поисковых роботов. Что касается уровня вложенности (количество частей URL, разделенных слэшем), то здесь особых ограничений нет. Главное - соблюдать разумные границы в плане конечной длины и читабельности адреса. К примеру, если уровней будет слишком много, то это также может привести к проблемам с юзабилити. Да и в плане SEO не исключены сложности (плохая индексация страницы и ее последующее ранжирование в выдаче по нужным вам запросам).
Еще один интересный вопрос - стоит ли использовать транслит в ссылках или лучше переводить слова в URL на английский язык? На самом деле, это не так важно. Единственный фактор, влияющий на выбор того или иного способа перевода слов в адресе ссылки - это структурный состав аудитории сайта в плане страны и языка. Если основной поток посетителей идет из стран СНГ, то есть смысл делать ссылки именно на транслите. Если же люди заходят к вам из других регионов (Европа, Азия, США и т.д.), то транслит, по понятным причинам, лучше не использовать.
В разделах сайта, предназначенных для отображения каких-то конкретных сущностей из базы данных, например, товаров, услуг, пользователей, статей, при формировании ссылки могут использоваться как числовые идентификаторы, так и строковые.
Последние часто именуют англоязычным термином slug. Пример slug’a на транслите - stiralnaya-mashina-indezit. Выглядит достаточно дружелюбно как в плане SEO, так и в плане юзабилити. Проблема строковых идентификаторов заключается в том, что они не всегда являются уникальными, поэтому при генерации slug’a могут использоваться дополнительные числовые индексы, к примеру, stiralnaya-mashina-indezit-2. Довольно часто строковые id комбинируют с числовыми при генерации конечного URL. Это позволяет добиться 100-процентной уникальности ссылки, сохранив при этом дружественное SEO. Кроме того, данный подход исключит возможность автоматического перебора страниц внешними парсерами (в случае, если в ссылке используется только числовой идентификатор).