Что делает «дружественный 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-адресе? Разве это не те тег </code> и его содержание? </li> <li> Я часто слышу SEO как причину, по которой предпочтительна «дружественная» форма URL. Почему <a href="https://www.bilee.com/key/%d0%bf%d0%be%d0%b8%d1%81%d0%ba" title="View all posts in поиск" target="_blank">поиск</a>овый робот заботится о URL-адресе? Разве это не просто автоматизированные части программного обеспечения, которые сканируют страницы (и ссылки на другие страницы, которые содержатся в них)? Если поисковые системы были написаны как другие программные компоненты (например, компоненты доступа к базам данных), URL-адрес был бы просто бессмысленным идентификатором (похожим на строку строк в реляционной базе данных). Если бы я разрабатывал схему базы данных с чем-то вроде «дружественного» URL-адреса выше в качестве первичного ключа таблицы, я бы (совершенно правильно) пережевал бы. </li> </ul> <p> Я сказал ранее «до определенного момента», потому что, очевидно, URL-адреса могут выйти из-под контроля. Вот фактический URL от Amazon.com, который я не думаю, что кто-то в здравом уме считал бы «дружественным»: </p> <blockquote> <p> 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 </p> </blockquote> </p> <div class='row'> <div class='col'> <ul><li><a class="text-dark" href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%be%d0%b1%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-%d0%b8%d0%b7%d0%be%d0%b1%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-%d1%80%d0%b0%d1%81%d1%88%d0%b8%d1%80%d1%8f%d0%b5%d0%bc.html" rel="bookmark" class="text-dark" title="Как добавить изображение в расширяемый список в parent в android?">Как добавить изображение в расширяемый список в parent в android?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%be%d0%b1%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-%d0%bf%d0%b0%d0%bf%d0%ba%d1%83-%d0%b2-%d0%bf%d1%83%d1%82%d1%8c-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0-%d1%81%d0%b1%d0%be%d1%80%d0%ba.html" rel="bookmark" class="text-dark" title="Как добавить папку в путь поиска сборки во время выполнения в .NET?">Как добавить папку в путь поиска сборки во время выполнения в .NET?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%ba%d0%b0%d0%ba-%d1%80%d0%b5%d0%b0%d0%bb%d0%b8%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d1%8c-autocompletetextview-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-listview.html" rel="bookmark" class="text-dark" title="Как реализовать autocompletetextview с помощью listview?">Как реализовать autocompletetextview с помощью listview?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%be%d0%b1%d1%89%d0%b5%d0%b5-%d1%80%d0%b5%d1%88%d0%b5%d0%bd%d0%b8%d0%b5-ruby-%d0%b4%d0%bb%d1%8f-sqlite3-like-%d0%b8%d0%bb%d0%b8-postgresql-%d0%b8%d0%bb%d0%b8%d0%ba%d0%b5.html" rel="bookmark" class="text-dark" title="Общее решение Ruby для SQLite3 «LIKE» или PostgreSQL «ИЛИКЕ»?">Общее решение Ruby для SQLite3 «LIKE» или PostgreSQL «ИЛИКЕ»?</a></li><li><a class="text-dark" href="https://www.bilee.com/grep-%d1%84%d0%b0%d0%b9%d0%bb-%d0%bd%d0%be-%d0%bf%d0%be%d0%ba%d0%b0%d0%b7%d1%8b%d0%b2%d0%b0%d1%82%d1%8c-%d0%bd%d0%b5%d1%81%d0%ba%d0%be%d0%bb%d1%8c%d0%ba%d0%be-%d0%be%d0%ba%d1%80%d1%83%d0%b6%d0%b0.html" rel="bookmark" class="text-dark" title="grep файл, но показывать несколько окружающих линий?">grep файл, но показывать несколько окружающих линий?</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%b8%d1%81%d0%ba%d0%bb%d1%8e%d1%87%d0%b8%d1%82%d1%8c-%d0%bf%d0%b0%d0%bf%d0%ba%d0%b8-%d0%b8%d0%b7-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0-eclipse.html" rel="bookmark" class="text-dark" title="Исключить папки из поиска Eclipse">Исключить папки из поиска Eclipse</a></li><li><a class="text-dark" href="https://www.bilee.com/%d1%80%d0%b5%d0%b3%d1%83%d0%bb%d1%8f%d1%80%d0%bd%d0%be%d0%b5-%d0%b2%d1%8b%d1%80%d0%b0%d0%b6%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b4%d0%bb%d1%8f-%d0%b8%d0%b4%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0.html" rel="bookmark" class="text-dark" title="Регулярное выражение для идентификации слов CamelCased с ведущей буквой верхнего регистра">Регулярное выражение для идентификации слов CamelCased с ведущей буквой верхнего регистра</a></li><li><a class="text-dark" href="https://www.bilee.com/%d0%b0%d0%bb%d0%b3%d0%be%d1%80%d0%b8%d1%82%d0%bc-%d0%bf%d0%be%d0%b8%d1%81%d0%ba%d0%b0-%d0%b4%d0%b2%d1%83%d1%85-%d0%bf%d0%be%d0%b2%d1%82%d0%be%d1%80%d1%8f%d1%8e%d1%89%d0%b8%d1%85%d1%81%d1%8f-%d1%87.html" rel="bookmark" class="text-dark" title="Алгоритм поиска двух повторяющихся чисел в массиве без сортировки">Алгоритм поиска двух повторяющихся чисел в массиве без сортировки</a></li></ul> </div> </div> <div class="list-group"> <!-- You can start editing here. --> <div class="panel panel-default"> <div class="panel-body"> <p> Тим Бернерс-Ли (архитектор WWW) написал большую статью об этой теме около 10 лет назад. </p> <ul> <li> <p> Ваш пример – плохой URL-адрес, но не только потому, что он имеет как id, так и «slug» (сокращенная, дефисная форма названия страницы). <strong>Включение заголовка страницы в ваш URL-адрес проблематично в долгосрочной перспективе.</strong> Со <em>временем</em> контент <em>будет</em> меняться. Если вы когда-либо измените заголовок этого сообщения в блоге, вам придется выбирать между сохранением старого URL-адреса или изменением URL-адреса в соответствии с новым заголовком. Изменение URL-адреса приведет к поломке любых предыдущих ссылок на эту страницу; и не меняя это означает, что у вас будет URL-адрес, который не соответствует странице. Ни один из них не подходит для пользователя. Лучше всего пойти с <em><a href="http://www.myblog.com/posts/123" rel="nofollow ugc">http://www.myblog.com/posts/123</a></em> . </p> </li> <li> <p> Пользователям часто нужно вводить URL-адрес, но что более важно, иногда они также могут редактировать существующие URL-адреса, чтобы найти другие страницы на вашем сайте. Таким образом, <strong>часто бывает полезно обнаруживать URL-адреса</strong> . Например, если я хочу видеть сообщение № 124, я мог бы легко просмотреть текущий URL-адрес и указать, что URL-адрес страницы, которую я хочу увидеть, – <a href="http://www.myblog.com/posts/124" rel="nofollow ugc">http://www.myblog.com/posts/124</a>. Это уровень удобства пользователя, который может быть большой помощью для людей, пытающихся найти то, что они ищут. Включение другой информации (например, темы сообщения) может сделать это невозможным – поэтому он уменьшает мои возможности поиска. </p> </li> <li> <p> <strong>Забудьте о SEO</strong> . Поисковая технология снижает эффективность SEO-хаков в течение некоторого времени. Хороший контент по-прежнему остается королем – и в конечном итоге вы не сможете играть в систему. </p> </li> </ul> </div></div> </li><!-- #comment-## --> <div class="panel panel-default"> <div class="panel-body"> <p> Для меня, <em>дружественный URL-адрес</em> означает, что была некоторая попытка включить семантическую информацию в URL-адрес, чтобы сделать его более подходящим для потребления человеком. Это интересный пример того, как компьютерно-компьютерный интерфейс дополняется и строится, чтобы улучшить человеко-компьютерный интерфейс. </p> <p> Итак, в ваших двух примерах: </p> <ul> <li> <code>www.myblog.com/posts/123/this-is-the-name-of-my-blog-post</code> является дружественным, потому что вы включили заголовок в URL-адрес – он <em>сообщает</em> вам что-то о странице. </li> <li> <code>www.myblog.com/posts.aspx?id=123</code> недружелюбен, потому что он загадочен и неясен: он имеет смысл в базе данных, но никому или вам или мне. </li> </ul> <p> Дружественные URL-адреса являются фантастическими в некоторых ситуациях и бесполезны в других. В принципе, если пользователь когда-либо будет подвергаться этому воздействию, я бы сделал дружественное создание URL приоритетом, и это не просто вопрос эстетики. Это облегчает возврат к URL-адресам из адресной строки, если вы можете быстро увидеть и понять, что представляют собой различные параметры, а также делает его более очевидным, когда вы собираетесь идти, если вы следуете ссылке из Интернета стр. </p> <p> Объедините все это с потрясающим баром в Firefox 3+ (безусловно, и в других браузерах), и автоматическое заполнение в адресной строке становится невероятно мощным, когда вы имеете дело с дружественными URL-адресами. </p> </div></div> </li><!-- #comment-## --> <div class="panel panel-default"> <div class="panel-body"> <p> Кажется, что существует много противоречивой информации о том, что именно такое действие querystring имеет на сканерах, но консенсус в том, что наличие более чем пара параметров вредит вашему SEO, потому что длинная переменная запроса указывает динамический контент, и поэтому большинство поисковых систем будет много менее агрессивная индексация вашей страницы. </p> <p> Добавление пула к вашему URL-адресу, например, <em>это-это-имя-my-blog-post</em> из вашего примера, также делает ваши ссылки более отличными друг от друга, чем простой номер id, и добавляет более значимые слова в URL-адрес. Это все, что ищут поисковые системы. </p> <p> Лично я считаю, что такие URL намного проще обрабатывать визуально, потому что используется меньшее количество символов пунктуации, а пары имя-значение в querystring могут быть очень многословными и трудно запоминающимися. </p> </div></div> </li><!-- #comment-## --> <div class="panel panel-default"> <div class="panel-body"> <p> Это хороший момент о том, как вы помещаете ненужную информацию в URL-адрес. </p> <pre> <code>http://stackoverflow.com/questions/522466/what-makes-a-friendly-url</code> </pre> <p> Как только уникальный идентификатор 522466 известен, остальное бесполезно, поэтому оно чисто служит для того, чтобы сделать URL-адрес «приятным» и предоставить пользователю представление о том, к чему относится страница. Но это создает еще одну проблему. Большинство сайтов не «проверяют» эту часть URL-адреса, поэтому вы можете указать – </p> <pre> <code>http://stackoverflow.com/questions/522466/omg-goatse-bought-by-bill-gates</code> </pre> <p> Тем не менее он по-прежнему будет ссылаться на эту должность. Вы можете видеть, как это может вызвать <em>больше</em> проблем, чем они стоят, потому что они могут быть использованы злонамеренно. </p> <p> Я чувствую, что Digg правильно подходили к этому. Они не используют идентификаторы в своих URL-адресах. За кулисами они получают идентификатор из своей базы данных исключительно из указанного названия. </p> <pre> <code>http://digg.com/linux_unix/I_Like_Linux_so_my_aunt_sends_me_this_for_Christmas</code> </pre> <p> Это для меня <strong>идеальный</strong> URL. Это дает мне всю информацию, которую мне нужно, чтобы чувствовать себя в безопасности, нажав на ссылку. </p> <p> На самом деле, названия играют такую ​​огромную роль, что в мире digg люди «слепые digg» чисто основаны на том, что им нравится титул или они заинтересованы в нем. Если ваш URL-адрес выглядит интересным, вы вполне можете получить больше трафика на свой сайт. В то же время вы сделаете его более удобным для пользователя, красивее, и поисковые системы будут вам благодарны. Насколько я вижу, дружественные URL-адреса выигрывают победу для всех. </p> </div></div> </li><!-- #comment-## --> <div class="panel panel-default"> <div class="panel-body"> <p> Мои мысли о ваших трех пулях: </p> <ul> <li> Я бы сказал, что это не оптимальный URL. Я понятия не имею, почему можно было бы указать как идентификатор сообщения, так и заголовок. Я вообще не добавляю почтовые идентификаторы в свои URL-адреса, только заголовки и (иногда) даты </li> <li> Для пользователей, короче, лучше. </li> <li> Поисковые системы смотрят на URL. Независимо от того, имеет ли это смысл или нет, они это делают. Наличие ключевых слов в URL-адресе будет предлагать некоторые преимущества SEO. </li> </ul> </div></div> </li><!-- #comment-## --> <div class="panel panel-default"> <div class="panel-body"> <p> Я, случается, согласен с вами, но <em>shhh</em> никому не рассказываю. </p> <p> Это просто мое скромное мнение, но мне кажется глупым, что </p> <pre> <code>http://stackoverflow.com/questions/522466/</code> </pre> <p> а также </p> <pre> <code>http://stackoverflow.com/questions/522466/what-makes-a-friendly-url</code> </pre> <p> это одна и та же страница. Я имею в виду, я могу видеть, что заголовок вопроса с делением переносит URL-адрес в какой-то контекст, но если вы не знаете, что эта опция необязательна, URL-адрес просто становится излишним без необходимости. </p> </div></div> </li><!-- #comment-## --> <div class="panel panel-default"> <div class="panel-body"> <p> Во-первых, они дружелюбны к поисковым роботам. Google и другие высоко ценят слова в URL-адресе, которые соответствуют словам на странице, поэтому, если заголовок вашего сообщения в блоге находится в URL-адресе, это поможет вашему соку поисковой системы. </p> <p> Во-вторых, они дружелюбны к людям, которые не знают, что они посещают. Какая из ссылок, которые вы использовали для сравнения, вы, скорее всего, нажмете, если это произойдет через ваш твиттер / email / IM / и т. Д.? </p> </div></div> </li><!-- #comment-## --> <div class="panel panel-default"> <div class="panel-body"> <p> Ahh … трюк, с которым URL-адрес дружелюбен. Поисковые системы воспринимают первый URL как более дружественный, поскольку он, по-видимому, имеет информацию о содержании в URL-адресе, и это не похоже на повторение той же страницы с другим параметром. </p> <p> Например, сравнение </p> <pre> <code>www.aTvShowSite.com/show.aspx?id=123 www.aTvShowSite.com/show.aspx?id=124</code> </pre> <p> робот скажет хорошо, я не знаю, что это такое … но они выглядят как одна страница для меня. </p> <p> Если сравнивать </p> <pre> <code>www.aTvShowSite.com/shows/AmericanIdol www.aTvShowSite.com/shows/Lost</code> </pre> <p> делает их похожими на разные страницы (хотя это может быть одна и та же самая страница aspx, обслуживающая их), а роботы имеют тенденцию оценивать их выше. </p> <p> EDIT: Кроме того, следует отметить, что многие роботы рассматривают текст URL-адреса для определения полезности, поэтому поиск «Lost», скорее всего, ударит по второму типу url больше, чем первый, даже если содержимое страницы идентично. </p> </div></div> </li><!-- #comment-## --> <div class="panel panel-default"> <div class="panel-body"> <p> Что касается: </p> <blockquote> <p> <em>Разве это не было бы нарушением мантры «не повторяй себя»?</em> </p> </blockquote> <p> Это относится к приложению <strong>CODE !!</strong> , а не его применение! </p> <p> Имеет смысл иметь </p> <ul> <li> Заголовок в теге <title>
  • В URL-адресе
  • И как первая строка в контенте.

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

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

  <%=obj.getTitle()%> Reading:

<%=obj.getTitle()%>

Link to this:obj.getTitle() Etc. etc.

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

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

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

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

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

CP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3) Если название изменено, вы можете просто сделать redirect, например, 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. В противном случае чем короче путь, тем лучше.

  • Функция с тем же именем, но другая подпись в производном classе
  • Поиск в ArrayList с пользовательскими объектами для определенных строк
  • Как искать материалы «R»?
  • mongodb найти несколько элементов массива
  • Как работает Google Instant?
  • Реализация расстояния Левенштейна для mysql / нечеткого поиска?
  • MySQL find_in_set с несколькими поисковыми строками
  • Изменение размера текстового поля UISearchBar?
  • Поиск сериализованных данных с использованием активной записи
  • Найдите массив объектов для переменной соответствия входа и проверьте, соответствуют ли они другим полям
  • Ближайшие соседи по высокоразмерным данным?
  • Давайте будем гением компьютера.