Что делает "дружественный 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-адрес был бы просто бессмысленным идентификатором (похожим на rowguid в реляционной базе данных) для них. Если бы я разрабатывал схему базы данных с чем-то вроде "дружественного" URL выше в качестве первичного ключа таблицы, я бы (совершенно правильно) разжевал.

I сказал ранее "до определенного момента", потому что, очевидно, 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

19 56

19 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

это хороший момент о том, как вы помещаете ненужную информацию в 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-адреса-это победа для всех.

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

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

Я с вами согласен, но тссс никому не говори.

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

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

и

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

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

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

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

Аааа...хитрость заключается в том, кто 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

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

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

для:

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

это относится к приложению код!!, а не само приложение!!

это имеет полный смысл иметь

  • заголовок в теге
  • в URL
  • и как первая строка в содержании.

и в значительной степени везде содержание понадобиться.

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

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

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

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

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

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

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

CP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

на мой взгляд, идентификаторы и UUIDs никогда не должны быть частью URL, никогда.

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

2) человек не понимает идентификаторы или UUIDs. Человек понимает слова и говорит по-русски.

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 кэширует сайт, который вы посетили, поэтому вы можете найти вышеуказанный сайт, просто набрав в адресной строке "девушки".

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