Выбираем шаблон URL для блога

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

Давайте посмотрим, какие существуют типы шаблонов URL в блогах (т.е. регулярно обновляемых сайтах с основной структурой «запись-за-записью»).

  1. С постоянным префиксом или без него? http://blog.perfectomania.com/posts/postname/ vs. http://blog.perfectomania.com/postname/
  2. С окончанием «/» или без него? http://blog.perfectomania.com/2007/postname/ vs. http://blog.perfectomania.com/2007/postname
  3. С использованием категорий или даты, как основного префикса? http://blog.perfectomania.com/2007/09/postname/ vs. http://blog.perfectomania.com/web-architect/postname/
  4. С указанием имени файла или с указанием только пути? http://blog.perfectomania.com/2007/09/postname.html vs. http://blog.perfectomania.com/2007/09/postname/
  5. С названием материала в качестве определяющего элемента или с номером материала в качестве него? http://blog.perfectomania.com/postname/ vs. http://blog.perfectomania.com/1/
  6. С названием записи на транслите или на английском? http://blog.perfectomania.com/postname/ vs. http://blog.perfectomania.com/nazvanie_posta/

Шаблоны, не использующие «чистые» постоянные ссылки я даже не включаю в обзор. Они по умолчанию хуже. К счастью, таких с каждым годом стает все меньше. Потом, сравнение будет проводиться исключительно для кириллических блогов, поэтому попадания ключевого слова в URL здесь значительно менее вероятно.

Сформулируем требования к идеальному адресу.

  1. В нем должно быть как можно меньше символов.
  2. Он должен описывать материал, на который ссылается.
  3. У пользователя не должно возникать проблем с его пониманием.
  4. Удалив символы до ближайшей косой черты «/» мы должны получить доступный адрес, выше по иерархии и содержащий наш материал вместе с другими аналогичными.
  5. Шаблон URL не должен ограничивать нас при дальнейшем развитии сайта.

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

С постоянным префиксом или без него?

Постоянный префикс нужно использовать тогда, когда возможно появление других разделов сайта, на одном уровне иерархии с корневым для блога. Т.е., для http://blog.perfectomania.com/ в этом нужды нет, так как это отдельный домен третьего уровня и ничего кроме блога на нем быть не может. А вот на сайте типа http://www.dserg.com/ префикс не помешает. Потому что его отсутствие ограничивает автора. Вдруг он решит расширить сайт? Содержи записи префикс blog/, архитектура бы расширялась красиво. А так, при добавлении других разделов придется либо отказываться от элегантности (одинаковый уровень будет у записей блога и других разделов), либо настраивать перенаправление, что тоже не радостная процедура.

С окончанием «/» или без него?

По правде, нужно бы делать адреса без слеша в конце. Потому что слеш указывает на директорию, а его отсутствие — на индивидуальную запись. «Но если это индивидуальная запись, то почему она без расширения, т.е. не указывает на конкретный файл? Что же это тогда такое?» — спросит придирчивый пользователь и будет прав. Ведь в большинстве блоговых движков файлы не создаются вообще, красивые адреса — это не больше, чем стандартизированный вывод из базы данных. Поэтому, раз мы все равно обманываем пользователей, не будем их к тому же и смущать. Лучше использовать слеш, пусть все думают, что у нас здесь развернутая система директорий.

С использованием категорий или даты, как основного префикса?

Самый сложный вопрос. Здесь все решается индивидуальностью вашего сайта. Если вы уверены в полноте и незыблемости вашей системы категорий, в том, что каждую вашу запись с уверенностью можно занести в одну из них… можете их использовать. Категории дадут вашим пользователям возможность точнее определять характер материала по его адресу.

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

Кстати, под «категориями» я понимаю любую возможную разбивку. Это могут быть не только рубрики сайта, но и автора материалов. Или компании, о которых в материалах говорится. Здесь все зависит от того, на чем ваш сайт сконцентрирован.

Еще одно, что нужно сказать о категориях, это то, что они повышают вероятность попаданию в ваш адрес важного ключевого слова. Для кириллических блогов это не так важно, но все равно, существует множество не переводимых понятий, например seo, smo, link. Если они попадут к вам в адрес (в качестве названий категорий), всем, и пользователям, и, возможно, поисковым системам, станет только лучше.

Да и вообще, категории, похоже, отживают свое в блоговых движках. Вот следующий Wordpress уже будет поддерживать теги. Поэтому не нужно на них концентрироваться, если вы не уверены. Я, например, не уверен. И теперь мне придется реструктуризировать свой сайт, потому что я как раз так ошибся.

Надо было использовать разбивку по времени. Например, вот так: http://blog.perfectomania.com/2007/09/postname/ Здесь важно правильно выбрать необходимую разрядность. Имеет смысл указывать дату до той точки, до которой на последнем уровне будет содержаться набор из 10-100 ваших статей. Для моего блога это месяц, так как в день публикуется 0-4 записи, а в год уже больше 100. Многие сайты, почему-то, пользуются полной разрядностью, с указанием дня sitename/year/month/day/postname/, когда по количеству статей им бы указывать только год… вот что значит сделать такой вариант доступным по умолчанию (в Wordpress) ! :)

Также, используя как префикс время, мы повышаем уникальность похожих заголовков и показываем их разрыв во времени. (sitename/google_maps/ + sitename/google_maps_reloaded/ vs. sitename/2006/05/google_maps/ + sitename/2007/12/google_maps_reloaded/)

Можно вообще отказаться от использования префикса. И категорий, и времени. Просто использовать шаблон sitename/postname/. Это позволит уменьшить размер строки и не засорять ее не важной информацией. Но в таком случае теряется одно смысловое звено. В случае с категориями — лишнее указание на характер материала. В случае со временем — указание на регулярность обновления блога и его прошлое. Здесь все очень тонко, авторам блогов нужно много думать.

С указанием имени файла или с указанием только пути?

Скажу так. Если ваша структура — не истинные директории и вы можете указать имя конкретного файла с расширением для материала — указывайте. Но только тогда, когда расширение легко узнаваемо, типа .html, необычные расширения пользователя нервируют.

С названием материала в качестве определяющего элемента или с номером материала в качестве него?

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

С названием записи на транслите или на английском?

Транслит хуже выглядит и часто занимает больше символов. Если ваш домен содержится в домене ru, его лучше не использовать никогда. Возможно, кроме случая, когда ваша аудитория — совершенно не знающие английского люди. Также, возможно, транслит можно использовать для внесения в URL информации о языке материала (для сайтов, расположенных на интернациональном домене). Для националистов. И если вашего собственного знания английского недостаточно для качественного перевода названий.

Как обычно, главная идея статьи — дать понять, как тема важна и обширна, а не высказать супер-авторитетную точку зрения. Буду благодарен за дополнения и исправления в комментариях!

Понравилась запись? Подпишитесь на RSS-трансляцию этого блога. Вы же знаете, что такое RSS?

Lifehacker

Комментарии

  1. GogA 24 Сен 2007 в 17:37 #

    > С окончанием «/» или без него?
    Хоть как, главное чтобы путь был один.
    В друпале например может работать и с «/» или без него, особенность движка. Модуль фиксящий проблему есть :)

  2. GogA 24 Сен 2007 в 17:50 #

    Так, как вижу тобой был выбран вариант /catagory/name/
    Ну да, статьёй озадачил выбор категорий при создании, сменить её не так сложно, как поменять остальные линки :)
    Зато в pathauto (модуль для Drupal) можно настроить что при смени категории новый путь создавался дополнительно к старому, тоесть по старому статья тоже будет находиться, а не возвращаться 404 (кстати, может быть редирект, не тестил).

    Для одного своего проекта, на данный момент структура url была такая
    pub/2007/09/24/name
    news/2007/09/24/name

    и тд. тоесть по типу материала :)

    Хорошо что база ещё не заполнена!
    Буду переделывать на
    pub/2007/09/name
    news/2007/09/name

    Так локаничней, да и если пользователь захочет ручками поменять месяц, то с намного большей вероятностью попадёт на месяц где есть записи… С днями бы фишка не прокатила, статьи на сайт добавляются не ежедневно.

    Так что статья уже полезная! :)
    Спасибо.
    В принципе и ссылки так будут смотреться чуточку лучше! :)

  3. Роман Настенко 24 Сен 2007 в 17:52 #

    GogA, а интересно, есть ли такой модуль для Wordpress??? Очень бы пригодился!

  4. GogA 24 Сен 2007 в 18:07 #

    Роман Настенко, не вкурсе. И скорей всего в ближайшее время не узнаю :)
    Свой блог планирую на друпале запустить.

    1. pub/2007/09/translit
    2. pub/2007/09/translit/
    3. pub/2007/09/translit.html
    4. pub/2007/09/5423
    5. pub/2007/09/3455/
    6. pub/2007/09/1542.html
    7. blog/nameblog/1542.html
    8. pub/nameblog/translit

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

    Опять же продолжная тему про Друпал.
    В стандартном функционале модуля pathauto можно для разных типов материалов сделать автоматическое преобразование по шаблону.

  5. Роман Настенко 24 Сен 2007 в 18:10 #

    Кстати, проголосовать за тему можно здесь:
    http://www.habrahabr.ru/blog/ui_design_and_usability/26005.html

  6. odp 24 Сен 2007 в 18:46 #

    С точки зрения seo традиционно наилучшим вариантом считается складывать все посты к корень, и пользоваться ХТМЛьным “расширением”.

    Мотивируют тем, что /post = /post/ - дублирование контента - путь в сопли. Вариант /2007/09/24/post - слишиком глубокое расположение документа - хуже ранжируется (логика такова, что важные документы находятся ближе к корню). Транслит или англояз - пох.

  7. Роман Настенко 24 Сен 2007 в 19:06 #

    odp, почему это дублирование контента?

  8. Tugarinov Sergey 24 Сен 2007 в 19:38 #

    Ну что такое, уже неделю мусолю эту тему, начал писать текст, и тут на тебе, выходит пост практически посторяющий мои мысли. Обидно :(

  9. GogA 24 Сен 2007 в 20:31 #

    Tugarinov Sergey, кто первый встал, того и сапоги :)
    Я бы и вторую статью прочитал, не бросайте.

  10. Роман Настенко 24 Сен 2007 в 20:31 #

    Tugarinov Sergey, сочувствую, знаю каково это :(

    Но в нашем блогерском деле скорость написания материала — это все :)

  11. Tugarinov Sergey 24 Сен 2007 в 20:56 #

    Я бы и вторую статью прочитал, не бросайте.
    Постараюсь :)

    Но в нашем блогерском деле скорость написания материала — это все
    Согласен, хотя у меня еще нет блога :) Так, задумал серию статей.

  12. Skop 24 Сен 2007 в 22:10 #

    Главное чтобы народ всё-таки задумывался о таких элементарных вещах, а не лепил всё по шаблону. А уж структура конечно вещь индивидуальная, и от разных вещей зависит

  13. rybnadzorro 24 Сен 2007 в 22:57 #

    По поводу третьего пункта - очень позитивно, когда префикс указывает на раздел/тематику статьи. Я столкнулся с этим с другой стороны - забивая разные шаблоны адресов в гугл кооп.

    Никто не заставляет делать эту привязку жёсткой - при распарсивании урла скриптом префикс можно вообще не учитывать.

  14. mari4ek 25 Сен 2007 в 0:22 #

    у меня /category_name/post_name
    причем название на транслите. вот. думаю достаточно оптимально., хотя глубоко, что не есть очень хорошо для сео.
    не вижу причин выставлять дату. врядли кто-то будет калупать URI имхо. легче воспользоваться навигацией по сайту. вот.
    про “/” пользователь don’t care про то есть он в конце или нет…
    2 Роман Настенко красивые адреса — это не больше, чем стандартизированный вывод из базы данных.
    советую изучить вопрос и поправить запись в этом месте…

  15. Роман Настенко 25 Сен 2007 в 0:54 #

    mari4ek, вообще-то, чтобы в этом убедиться, достаточно посмотреть через FTP, есть там директории или нет.

    Интересно, а что же это тогда, если не вывод? Вывод + rewrite.

  16. mari4ek 25 Сен 2007 в 1:50 #

    Роман Настенко
    ну мне можно не расказывать, что это такое)
    просто нужно было упомянуть mod_rewrite и .htaccess - без них ничего не получится, как бы ты линки не формировал и выводил…
    поэтому как раз красивые адреса - это *больше* чем генерация красивых линков (ну или стандартизированный вывод из базы данных, как ты написал)

  17. Роман Настенко 25 Сен 2007 в 1:55 #

    mari4ek, соглашусь, но добавлю, что писал для людей, которым либо уже известны, либо не интересны такие технические подробности :)

    Ведь факта не изменишь, этих файлов нигде нет, они технически сложная иллюзия :)

  18. Алексей Д. 25 Сен 2007 в 12:37 #

    Уже скоро займусь разработкой собственного stand-alone блога, т.к. действительно есть о чем писать, да и опыт в веб достаточно громоздкий, чтобы его использовать и им делиться.

    Статья хорошая, доходчивая, логичная. В общем, ничего особо нового не сказано, зато хорошо систематизировано. Я бы посоветовал добавить внутренние ссылки в вопросах с переходами на ответы в этой статье. А то поначалу я не понял, будут ли ниже в статье ответы или нет.

    Так держать! Читаю вас и радуюсь. :)

  19. mari4ek 25 Сен 2007 в 12:39 #

    файлов нету, но это не повод вводить в заблуждение даже тех людей, которым это не интересно… имхо.
    я так понял ты тоже /category_name/post_name используешь?

  20. Роман Настенко 25 Сен 2007 в 14:58 #

    Алексей Д.

    Спасибо :)

  21. Andy 30 Сен 2007 в 21:43 #

    Спасибо! Хорошая статья.

  22. finl 22 Ноя 2007 в 17:42 #

    Спасибо, что разъяснили, долго искал!

  23. cross 09 Дек 2007 в 11:47 #

    Не будет ли самым удобным и хорошо ранжируемым просто транслит тайтла поста:
    http://blog.itcross.net/o_shablonal_url/ ?

  24. Роман Настенко 09 Дек 2007 в 12:00 #

    cross, идеально было бы http://blog.itcross.ru/about-url-templates/ :)

  25. Вадим 09 Дек 2007 в 17:52 #

    Вы можете заценить, на мой взгляд, лучшую архитектуру - http://biathloncup.ru/
    блог/название_категории/id-имя_поста.html
    id служит для того, чтобы не получилось двух повторяющихся записей с одним титлом.

  26. Роман Настенко 09 Дек 2007 в 21:46 #

    Вадим, честно, это совсем не лучшая архитектура :)
    Проблема повторяющихся записей — это ваша проблема, а не ваших посетителей. Не нужно перекладывать ее частично на них. Им id совершенно не нужен. Это раз. Два — транслит это всегда плохо. Не думаю, что в нем есть нужда, если ваша зона — ru. Что материал на русском — понятно по ней одной.

    Потом, в названиях категорий лучше обходиться без разделителя “-”.

    И, в конце-концов, ваши материалы очень сильно теряют актуальность со временем.

    Думаю идеально для вас было бы не
    http://biathloncup.ru/biathlon-cup/30-velikolepnaya-pobeda-norvezhcev.html
    а что-то типа
    http://www.biathloncup.ru/2007/12/norwegians-great-victory/
    (у вас же нет .html файлов. Если уж дурить пользователей, то можно и так :)
    Это развяжет вам руки с системой категорий и тегов — теперь, при желании, вы вообще можете отказаться от первых :)

  27. Free Soft 15 Дек 2007 в 3:21 #

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

  28. Роман Настенко 15 Дек 2007 в 9:03 #

    Free Soft, на самом деле не так сложно. Wordpress, например, вручную это делает. Т.е. без вреда для поисковиков. Да и самому можно файл .htaccsess (могу в букве ошибиться) написать :)

  29. snow_wons 23 Дек 2007 в 15:15 #

    postname/ vs. postname - Могут быть проблемы с дублирование контента. К томуже, по логике, / указывает на дирректорию, а не на отдельную запись. А вариант без слеша - мне лично совсем не нравиться: непонятно что за файл.
    Как мне кажется правильнее было бы указывать postname.html или postname.htm. Так и поисковикам проще, и людям.
    Указывание id записи в url - это, можно сказать, необходимость. Потому что однажды будут 2 поста с одним именем.
    Оптимальным вариантом может быть:
    /category/id-name.html

    /category/id.html - 302 редирект на основную запись
    /id.html - 302 редирект на основную запись

  30. Sergey 30 Дек 2007 в 11:28 #

    Согласен с предыдущим оратором

  31. {*!ce*} 15 Фев 2008 в 18:23 #

    >вот что значит сделать такой вариант доступным по умолчанию (в Wordpress) !

    Просто ножем по сердцу… Пробел перед восклицательным знаком это фу!

  32. Роман Настенко 15 Фев 2008 в 18:30 #

    Это просто глюк.

  33. Seoner 06 Апр 2008 в 21:51 #

    И все таки я выбрал для себя вид /категория/название статьи.html
    но проблема от которой не смог избавится что когда заходишь в категорию через меню то путь выглядит так /category/blogging
    никак не могу избавится от этой категории - пробовал через плагин специальный, но он не помог

Trackbacks & Pingbacks

  1. KMiNT21’s Blog » How To: и клик съесть, и в поисковой выдаче не просесть 24 Сен 2007 в 18:33

    […] настроил и забыл; никто не комментирует твои посты?, выбираем шаблон URL для блога - […]

  2. Ссылки для вебмастеров, выпуск первый - Perfectomania Blog 25 Сен 2007 в 17:59

    […] у меня автоматическое перенаправление со старых шаблонов URL. Вообще не понимаю, как его настроить. Может кто […]

  3. Design For Masters » Обзор №2, Сентябрь 2007 14 Окт 2007 в 10:11

    […] Выбираем шаблон URL для блога Выбирая шаблон URL нельзя забывать о пословице «семь раз отмерь, один раз отреж». Многие блоги используют для своих материалов неоптимальный шаблон URL. Обычно так происходит потому, что этому вопросу не уделяют достаточно внимания при запуске. Потом, когда блог раскучивается и неоптимальность выбора становиться очевидной, поменять шаблон уже не так просто. Я сам по неопытности выбрал не очень удачные шаблоны ссылок, поэтому актуальность темы не вызывает сомнений. […]

  4. Помощник SEO » Blog Archive SEO - Интересности 29 Окт 2007 в 16:46

    […] - Выделил для себя статью на блоге perfectomania  - Выбираем шаблон URL для блога - Ненароком залез на Введение в терминологию и […]

  5. SEO интересности - замеченное за неделю (#22) 27 Ноя 2007 в 8:15

    […] Настенко публикует статью ”Выбираем шаблон URL для блога”. Отличная статья, правда, если рассмотреть с точки […]

  6. 20 признаком качественного блога - BlogDeluxe.ru 07 Дек 2007 в 23:45

    […] главный признак новичков. Используйте только хорошо продуманные шаблоны ссылок на автономных […]

  7. asdfas | Блог Александра Махомета 18 Мар 2008 в 16:44

    […] Обратите внимание на шаблон ваших url. Я планирую писать в блог несколько раз в неделю, поэтому оптимальным шаблоном для ссылок, по моему мнению, будет /%year%/%monthnum%/%postname%/. […]

Комментировать

Ваш email никогда не будет передан в третьи руки. Обязательные для заполнения поля помечены *