Читаемые человеком URL-адреса: желательно иерархические тоже? - PullRequest
6 голосов
/ 25 октября 2010

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

Когда я сталкиваюсь с URL-адресами, такими как http://www.example.com/product/123/subpage/456.html, я всегда думаю, что это попытка создать значимые иерархические URL-адреса, которые, однако, не являются полностью иерархическими. Я имею в виду, что вы должны быть в состоянии отрезать один уровень за раз . В приведенном выше URL-адрес имеет два нарушения по этому принципу:

  1. /product/123 - это один фрагмент информации, представленный в виде двух уровней. Это было бы более правильно представить как /product:123 (или любой другой разделитель, который вам нравится)
  2. /subpage, скорее всего, не является сущностью самой по себе (то есть вы не можете подняться на один уровень с 456.html, поскольку http://www.example.com/product/123/subpage - это "ничто").

Поэтому я считаю более правильным следующее:

http://www.example.com/product:123/456.html

Здесь вы всегда можете перейти на один уровень вверх за один раз:

Следуя той же философии, имеет смысл следующее [и предоставить дополнительную ссылку на список продуктов]:

http://www.example.com/products/123/456.html

Где:

Моя основная мотивация для этого подхода заключается в том, что если каждый «элемент пути» (ограниченный /) является самодостаточным 1 , вы всегда сможете перейти к «родителю», просто удалив последний элемент URL. Это то, что я (иногда) делаю в проводнике, когда хочу перейти в родительский каталог. Следуя той же логике, пользователь (или поисковая система / сканер) может сделать то же самое. Я думаю, довольно умно.

С другой стороны (и это важная часть вопроса): хотя я никогда не могу предотвратить попытки пользователя получить доступ к URL, который он сам ампутировал, я ошибочно утверждаю (и уважая), что поисковая система может сделать то же самое? Т.е., разумно ли ожидать, что ни одна поисковая система (или действительно: Google) не будет пытаться получить доступ к http://www.example.com/product/123/subpage (пункт 2, выше)? (Или я действительно здесь учитываю только человеческий фактор?)

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

Кроме того, структурная "глубина" http://www.example.com/product/123/subpage/456.html равна 4, где http://www.example.com/products/123/456.html - только 3. По слухам, эта глубина влияет на ранжирование в поисковых системах. По крайней мере, так мне сказали. (Сейчас очевидно, что SEO - это , а не , о чем я знаю больше всего.) Верно ли это (все еще?): влияет ли иерархическая глубина (количество каталогов) на рейтинг в поиске?

Итак, мой "догадка" технически обоснована или я должен тратить свое время на что-то еще?


Пример: все (почти) правильно
Добрый старик понимает это почти правильно. Показательный пример: профили, например, http://stackoverflow.com/users/52162:

Тем не менее, канонический URL для профиля на самом деле http://stackoverflow.com/users/52162/jensgram, который кажется избыточным (одна и та же конечная точка представлена ​​на двух иерархических уровнях). Альтернатива: http://stackoverflow.com/users/52162-jensgram (или любой другой последовательно используемый разделитель).


1) Содержит полную информацию, не зависящую от «более глубоких» элементов.

1 Ответ

4 голосов
/ 25 октября 2010

Иерархические URL-адреса такого рода "http://www.example.com/product:123/456.html" так же бесполезны, как и" http://www.example.com/product/123/subpage",, потому что когда пользователи видят ваши URL-адреса, они не заботятся об идентификаторах из вашей базы данных, им нужны осмысленные пути.Вот почему StackOverflow помещает заголовки вопросов в URL: «/2608090/chitaemye-chelovekom-url-adresa-zhelatelno-ierarhicheskie-tozhe".

Google не рекомендует заменять обычные запросы, такие как« http://www.example.com/?product=123&page=456",, потому что, когда каждый сайт разрабатывает свою собственную схему, сканер не знает, что означает каждая часть, еслиэто важно или нет.Google изобрел изощренные механизмы для поиска важных аргументов и игнорирования неважных, что означает, что вы добавите больше страниц в индекс и будет меньше дубликатов.Но эти алгоритмы часто терпят неудачу, когда веб-разработчики изобретают свою собственную схему.

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

http://www.example.com/products/greatest-keyboard - страница продукта http://www.example.com/products - список продуктов http://www.example.com/ -root

Кроме того, поисковые системы дают более высокий рейтинг страницам с ключевыми словами в URL.

...