Что делает "дружественный URL"?

Недавно я прочитал много дискуссий (как на этом сайте, так и в других местах) о "дружественных URL-адресах", но я не уверен, что именно делает URL "дружественным" и почему мы действительно даже заботимся (до определенная точка). Иллюстрация:

Ниже приведен пример URL-адреса, который будет поддерживаться большинством существующих веб-разработчиков как "дружественный":

www.myblog.com/posts/123/this-is-the-name-of-my-blog-post

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

www.myblog.com/posts.aspx?id=123

Мои вопросы:

  • Не содержит ли "дружественный" URL дублирующаяся идентификационная информация об этом сообщении в блоге? Другими словами, если у вас есть идентификатор (123) сообщения, зачем вам нужен заголовок? Разве это не было бы нарушением мантры "не повторяй себя"?
  • Какая разница в форме URL-адреса в отношении пользователей? Действительно ли пользователи когда-либо на самом деле набирают полные URL-адреса вручную (кроме, конечно, TLD)? Пользователи когда-либо смотрят на URL страницы, чтобы определить, о чем идет речь? Зачем нам нужно название блога в URL-адресе? Разве это не тег и содержание страницы <title> для?
  • Я часто слышу SEO как причину, по которой предпочтительна "дружественная" форма URL. Почему поисковый робот заботится о URL-адресе? Разве это не просто автоматизированные части программного обеспечения, которые сканируют страницы (и ссылки на другие страницы, которые содержатся в них)? Если поисковые системы были написаны как другие программные компоненты (например, компоненты доступа к базе данных), URL-адрес просто будет бессмысленным идентификатором (похожим на строку строк в реляционной базе данных). Если бы я разрабатывал схему базы данных с чем-то вроде "дружественного" URL-адреса выше в качестве основного первичного ключа таблицы, я бы (совершенно правильно) получил разжечь.

Я сказал ранее "до определенной точки", потому что, очевидно, URL-адреса могут выйти из-под контроля. Вот фактический URL от Amazon.com, который я не думаю, что кто-то в здравом уме считал бы "дружественным":

http://www.amazon.com/Bissell-Kitchen-Housewares/b/ref=amb_link_5001972_17?ie=UTF8&node=694500&pf_rd_m=ATVPDKIKX0DER&pf_rd_s=gp-center-5&pf_rd_r=1ZXNJFE0CCFFDH4B9HGH&pf_rd_t=101&pf_rd_p=405478901&pf_rd_i=510080

Ответы

Ответ 1

Тим Бернерс-Ли (архитектор WWW) написал отличную статью об этой теме около 10 лет назад.

  • Ваш пример - плохой URL-адрес, но не только потому, что у него есть как id, так и "slug" (сокращенная, дефисная форма названия страницы). Включение заголовка страницы в ваш URL-адрес проблематично в долгосрочной перспективе. Содержимое со временем будет меняться. Если вы когда-либо измените заголовок этого сообщения в блоге, вам придется выбирать между сохранением старого URL-адреса или изменением URL-адреса в соответствии с новым заголовком. Изменение URL-адреса приведет к поломке любых предыдущих ссылок на эту страницу; и не меняя это означает, что у вас будет URL-адрес, который не соответствует странице. Ни один из них не подходит для пользователя. Лучше всего перейти на www.myblog.com/posts/123.

  • Пользователям часто нужно вводить URL-адрес, но что более важно, иногда они также могут редактировать существующие URL-адреса, чтобы найти другие страницы на вашем сайте. Таким образом, часто бывает полезно обнаруживать URL-адреса. Например, если я хочу видеть сообщение № 124, я мог бы легко просмотреть текущий URL-адрес и указать, что URL-адрес страницы, которую я хочу увидеть, - www.myblog.com/posts/124. Это уровень удобства пользователя, который может быть большой помощью для людей, пытающихся найти то, что они ищут. Включение другой информации (например, темы сообщения) может сделать это невозможным - поэтому он уменьшает мои возможности поиска.

  • Забудьте о SEO. Поисковая технология снижает эффективность SEO-хаков в течение некоторого времени. Хороший контент по-прежнему остается королем - и в конечном итоге вы не сможете играть в систему.

Ответ 2

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

Итак, в ваших двух примерах:

  • www.myblog.com/posts/123/this-is-the-name-of-my-blog-post является дружественным, потому что вы включили заголовок в URL-адрес - он сообщает вам что-то о странице.
  • www.myblog.com/posts.aspx?id=123 является недружественным, потому что он загадочен и неясен: он имеет смысл для базы данных, но никому для вас или меня.

Дружественные URL-адреса в некоторых ситуациях являются фантастическими и бесполезны в других. В принципе, если пользователь когда-либо будет подвергаться этому воздействию, я бы сделал дружественный URL-адрес приоритетом, и это не просто вопрос эстетики. Это облегчает возврат к URL-адресам из адресной строки, если вы можете быстро увидеть и понять, что представляют собой различные параметры, а также делает его более очевидным, когда вы собираетесь идти, если вы следуете ссылке из Интернета стр.

Объедините все это с удивительным баром в Firefox 3+ (конечно же, в других браузерах), и автоматическое заполнение в адресной строке становится невероятно мощным, когда вы имеете дело с дружественными URL-адресами.

Ответ 3

Кажется, что существует много противоречивой информации о том, что именно происходит с помощью querystring на сканерах, но консенсус заключается в том, что наличие более чем пара параметров вредит вашему SEO, потому что длинная переменная запроса указывает динамический контент, и поэтому большинство поисковых систем быть намного менее агрессивным индексированием вашей страницы.

Добавление пула к вашему URL-адресу, например, this-is-name-of-my-blog-post из вашего примера, также делает ваши ссылки более отличными друг от друга, чем простой идентификационный номер, и добавляет более важные слова в URL. Это все, что ищут поисковые системы.

Лично я считаю, что такие URL-адреса намного проще обрабатывать визуально, потому что используется меньшее количество символов пунктуации, а пары имени-значения в querystring могут быть очень многословными и трудно запоминающимися.

Ответ 4

Это хороший момент о том, как вы помещаете ненужную информацию в URL-адрес.

http://stackoverflow.com/questions/522466/what-makes-a-friendly-url

Как только уникальный идентификатор 522466 известен, остальное бесполезно, поэтому оно чисто служит для того, чтобы сделать URL-адрес "хорошим" и предоставить пользователю представление о том, к какой ссылке ссылается страница. Но это создает еще одну проблему. Большинство сайтов не "проверяют" эту часть URL-адреса, поэтому вы можете поставить -

http://stackoverflow.com/questions/522466/omg-goatse-bought-by-bill-gates

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

Я чувствую, что Digg правильно подходили к этому. Они не используют идентификаторы в своих URL-адресах. За кулисами они получают идентификатор из своей базы данных исключительно из указанного названия.

http://digg.com/linux_unix/I_Like_Linux_so_my_aunt_sends_me_this_for_Christmas

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

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

Ответ 5

Мои мысли о ваших трех пулях:

  • Я бы сказал, что это не оптимальный URL. Я понятия не имею, почему можно было бы указать как идентификатор сообщения, так и заголовок. Я вообще не добавляю идентификаторы сообщений в свои URL-адреса, только заголовки и (иногда) даты
  • Для пользователей короче лучше.
  • Поисковые системы смотрят на URL. Независимо от того, имеет ли это смысл или нет, они это делают. Наличие ключевых слов в URL-адресе будет предлагать некоторые преимущества SEO.

Ответ 6

Я согласен с вами, но shhh никому не рассказываю.

Это просто мое скромное мнение, но мне кажется глупо, что

http://stackoverflow.com/questions/522466/

и

http://stackoverflow.com/questions/522466/what-makes-a-friendly-url

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

Ответ 7

Во-первых, они дружелюбны к поисковым роботам. Google и другие высоко ценят слова в URL-адресе, которые соответствуют словам на странице, поэтому, если заголовок вашего сообщения в блоге находится в URL-адресе, это поможет вашему поисковому соку.

Во-вторых, они дружелюбны к людям, которые не знают, что они посещают. Какую из ссылок, которые вы использовали для сравнения, вы, скорее всего, нажмете, если это произойдет через ваш твиттер/email/IM/etc?

Ответ 8

Ах... трюк в том, с кем этот URL дружелюбен. Поисковые системы воспринимают первый URL как более дружелюбный, поскольку он, по-видимому, содержит информацию о содержании в URL-адресе, и это не похоже на повторение той же страницы с другим параметром.

Например, сравнение

www.aTvShowSite.com/show.aspx?id=123
www.aTvShowSite.com/show.aspx?id=124

робот скажет "хорошо", я не знаю, что это такое... но они похожи на меня на одну страницу.

В то время как сравнение

www.aTvShowSite.com/shows/AmericanIdol
www.aTvShowSite.com/shows/Lost

делает их похожими на разные страницы (хотя это может быть та же самая страница, что и px, обслуживающая их), а роботы имеют тенденцию оценивать их выше.

EDIT: Кроме того, следует отметить, что многие роботы рассматривают текст URL-адреса для определения полезности, поэтому поиск "Lost", скорее всего, ударит по второму типу URL-адреса больше, чем первый, даже если содержимое страницы идентично.

Ответ 9

Что касается:

Разве это не было бы нарушением мантры "не повторяй себя"?

Это относится к приложению CODE!!, а не к приложению.

Имеет смысл иметь

  • Заголовок в заголовке <title> Тег
  • В URL
  • И как первая строка в контенте.

И в значительной степени везде, где это нужно.

Что означает эта "мантра", если ваш код должен выглядеть так:

  <title><%=obj.getTitle()%></title>
  Reading:<h1><%=obj.getTitle()%></h1>
  Link to this:<a href="getHrefFor( object.getTitle() )">obj.getTitle()</a>
  Etc. etc.

Вместо использования разных методов с копированием/вставкой кода вокруг вашего приложения.

Ответ 10

"Недружественный" URL-адрес, который вы показываете, раскрывает детали реализации: что, если в будущем вы решите отказаться от ASP и использовать что-то еще? Вам нужно будет изменить все URL-адреса (baad!) Или использовать схему переименования.

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

Ответ 11

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

Например, наши парковочные билеты http://www.dnv.org/parking на них.

CP

Ответ 12

Ну, для начала попробуйте сохранить символы отдельно от (a-z, A-Z, 0-9) и, конечно же:/._- из URL-адреса. Не у всех есть все на своих клавиатурах (например, у меня нет и на клавиатуре, и у меня нет)

Когда, например, выполнение синтаксиса url или что-то подобное также помогает, если синтаксис url является "чистым"

Ответ 13

Второй URL-адрес выглядит более удобным, тогда как первый выглядит дружественным поисковым системам.

Поисковые системы дают более высокую актуальность для слов, отображаемых в URL-адресе. Имя домена получает наибольшее значение (поскольку оно не может измениться), остальная часть URL-адреса получает высокий приоритет, поскольку длина ограничена, а затем анализируется тело документа.

Мой ответ довольно субъективен, потому что это зависит от того, насколько вы дружите с человеком (легко вводить вручную или читать другу), или вы дружите с поисковой системой (повышая рейтинг).

Ответ 14

В этой ситуации он действительно не нарушает принцип DRY, поскольку в отношении поисковой системы "522466" - это не то же самое, что "what-make-a-friendly-url"

Как правило, для таких сайтов, как StackOverflow, токен - единственная часть информации, которая имеет значение; как правило, вы можете поместить все, что захотите, после этого, и оно приведет вас к тому же месту (игнорируется веб-сервером).

Описание страницы доступно только для того, чтобы поисковые системы могли определить, о чем идет страница (что приятно)

Ответ 15

Другой момент: люди иногда вручную редактируют URL-адреса, чтобы перейти в дерево каталогов. Поэтому они могут попытаться загрузить страницу, например http://site.com/a/b, получить ошибку "Не найдено", а затем попробовать http://site.com/a или http://site.com. Конечно, если ваши URL-адреса не основаны на фактическом дереве каталогов, это может не сработать. Но вы все равно можете его поддержать.

Некоторые браузеры даже рекомендуют это, например IE с сообщениями об ошибках, и Safari с меню, которое появляется, когда вы щелкните правой кнопкой мыши заголовок страницы.

Ответ 16

Matt и @bigmattyh: SEO не "хаки": он понимает, что означает "хороший контент" в Интернете. Названия страниц являются частью содержимого. Хороший якорный текст в ссылках - "хороший контент" (вместо использования таких слов, как "нажмите здесь" в качестве текста ссылки). Размещение ссылок в контексте, а не в виде списка - это "хороший контент" .

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

Не угадывайте этот материал: (a) читайте источники, такие как SEOmoz.org, и (б) тщательно анализируйте свой сайт.

Ответ 17

Термин читаемый url также используется много. Использование дружественных/читаемых URL-адресов - это технология, основанная на SEO. В противном случае чем короче путь, тем лучше. Выполнение правил перезаписи обычно замедляет процесс быстрого доступа к клиенту, поэтому также учитывайте это.

Ответ 18

По-моему, идентификаторы и UUID никогда не должны быть частью URL-адреса, никогда.

1) Некоторые базы данных NoSQL вообще не используют идентификаторы, они используют UUID. UUID длинны, части разделены с помощью тире. Google будет относиться к тире как разделитель слов: это означает, что ваш URL будет иметь еще 5 бесполезных ключевых слов.

2) Человек не понимает идентификаторы или UUID. Человек понимает слова и говорящие URL-адреса.

3) Если название изменено, вы можете просто сделать переадресацию, как это делает WordPress, например, указатель @TRiG.

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

http://example.com/2013/02/11/data-mining-concepts-and-techniques

и

http://example.com/2011/05/23/data-mining-concepts-and-techniques

5) Дата также поможет любому пользователю выяснить, является ли контент последним или нет.

6) Дата добавит к вашему URL ключевое ключевое слово: год. Предположим, что я хочу увидеть самых красивых девушек в мире, я буду печатать в Google: "Самые красивые девушки в мире 2014 года". Мой url будет:

http://example.com/2014/07/10/the-most-beatiful-girls-in-the-world

7) И последнее, но не менее важное: Chrome кэширует сайт, который вы посетили, поэтому вы можете найти вышеуказанный сайт, просто набрав адресную строку "девушки".

Ответ 19

Термин читаемый URL также используется много. Использование дружественных/читаемых URL-адресов - это технология, основанная на SEO. В противном случае чем короче путь, тем лучше.