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