Co sprawia, że "przyjazny URL"?

Czytałem ostatnio wiele dyskusji (zarówno na tej stronie, jak i gdzie indziej) na temat "przyjaznych adresów URL", ale nie jestem pewien, co dokładnie sprawia, że adres URL jest "przyjazny" i dlaczego tak naprawdę nam zależy (do pewnego punktu). Ilustracja:

[1]} Poniżej znajduje się przykład adresu URL, który byłby utrzymywany przez większość obecnych programistów jako "przyjazny":

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

Podczas gdy byłoby to uważane za " nieprzyjazne" (tzn. zły, Neandertalczyk, ignorant, głupi):

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

Moje pytania:
  • czy "przyjazny" adres URL nie zawiera duplikatów identyfikujących informacje o wpisie na blogu, o którym mowa? Innymi słowy, gdy już masz id (123) posta, po co ci tytuł? Czy to nie byłoby pogwałceniem mantry "nie powtarzaj się"?
  • jaką różnicę ma forma adresu URL dla użytkowników? Czy użytkownicy czy kiedykolwiek wpisz pełne adresy URL ręcznie (oczywiście poza TLD)? Czy użytkownicy kiedykolwiek szukają adresu URL strony, aby określić, o czym jest strona? Dlaczego potrzebujemy tytułu posta na blogu w adresie URL? Czy nie po to jest strona <title> tag i treść?
  • często słyszę SEO jako powód, dla którego preferowany jest "przyjazny" formularz URL. Dlaczego pająk Wyszukiwarki dba o adres URL? Czy nie są to tylko zautomatyzowane kawałki oprogramowania, które indeksują strony (i linki do innych strony, które są w nich zawarte)? Gdyby Wyszukiwarki były napisane jak inne komponenty oprogramowania (np. komponenty dostępu do bazy danych), adres URL byłby dla nich tylko bezsensownym identyfikatorem (podobnym do rowguid w relacyjnej bazie danych). Gdybym projektował schemat bazy danych z czymś takim jak" przyjazny " adres URL powyżej jako klucz podstawowy tabeli, byłbym (całkiem poprawnie) przegryzany.

Powiedziałem wcześniej "do pewnego stopnia", ponieważ oczywiście adresy URL mogą wymknąć się spod kontroli. Oto rzeczywisty URL z Amazon.com że chyba nikt przy zdrowych zmysłach nie rozważyłby "przyjaznego":

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

Author: Tshepang, 2009-02-07

19 answers

Tim Berners-Lee (architekt WWW) napisał świetny artykuł na ten temat około 10 lat temu.

  • Twój przykład to zły adres URL - ale nie tylko dlatego, że ma zarówno id, jak i "slug" (skrócona, dzielona forma tytułu strony). umieszczenie tytułu strony w adresie URL jest problematyczne na dłuższą metę. zawartość będzie zmieniać się w czasie. Jeśli kiedykolwiek zmienisz tytuł tego posta na blogu, będziesz zmuszony wybrać między utrzymaniem stary adres URL lub zmiana adresu URL, aby pasował do nowego tytułu. Zmiana adresu URL spowoduje uszkodzenie poprzednich linków do tej strony; a nie zmiana oznacza, że będziesz miał adres URL, który nie pasuje do strony. Ani nie jest dobre dla użytkownika. Lepiej po prostu iść z www.myblog.com/posts/123.

  • Użytkownicy często muszą wpisać adres URL, ale co ważniejsze, czasami edytują istniejące adresy URL, aby znaleźć inne strony w witrynie. Tak więc, często dobrze jest mieć wykrywalne adresy URL . Na na przykład, jeśli chcę zobaczyć post #124, mogę łatwo spojrzeć na bieżący adres URL i stwierdzić, że adres URL strony, którą chcę zobaczyć, jest www.myblog.com/posts/124. to poziom przyjazności dla użytkownika, który może być bardzo pomocny dla osób próbujących znaleźć to, czego szukają. Włączenie innych informacji (jak Temat postu) może to uniemożliwić-więc zmniejsza moje możliwości eksploracji.

  • Zapomnij o SEO . Technologia wyszukiwarek redukuje skuteczność SEO hacków od pewnego czasu. Dobra zawartość jest nadal król -- i na dłuższą metę, nie będzie w stanie grać system.

 58
Author: Matt Howell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-07 03:55:04

Dla mnie, przyjazny URL oznacza, że podjęto próbę włączenia informacji semantycznych do adresu URL, aby był bardziej odpowiedni do spożycia przez ludzi. Jest to ciekawy przykład interfejsu Komputer-KOMPUTER, który został rozszerzony i zbudowany w celu stworzenia lepszego interfejsu człowiek-komputer.

Więc, w twoich dwóch przykładach:

  • www.myblog.com/posts/123/this-is-the-name-of-my-blog-post jest przyjazny, ponieważ umieściłeś tytuł w adresie URL-to mówi coś o stronie.
  • www.myblog.com/posts.aspx?id=123 jest nieprzyjazny ponieważ jest to tajemnicze i niejasne: ma to sens dla bazy danych, ale nie dla ciebie ani dla mnie.

Przyjazne adresy URL są w niektórych sytuacjach fantastyczne, a w innych bezużyteczne. Zasadniczo, jeśli użytkownik kiedykolwiek będzie na to narażony, uczyniłbym tworzenie przyjaznych adresów URL priorytetem i nie jest to tylko kwestia estetyki. To sprawia, że znacznie łatwiej jest wrócić do adresów URL z paska adresu, jeśli możesz szybko zobaczyć i zrozumieć, jakie są różne opcje, plus sprawia, że jest to bardziej oczywiste gdzie masz zamiar się udać, jeśli podążasz za linkiem ze strony internetowej.

Połącz to wszystko z niesamowitym paskiem w Firefoksie 3+ (z pewnością pojawiającym się również w innych przeglądarkach), a automatyczne uzupełnianie paska adresu staje się niewiarygodnie potężne, gdy masz do czynienia z przyjaznymi adresami URL.

 18
Author: James Brady,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 23:58:45

Wydaje się, że istnieje wiele sprzecznych informacji o tym, jaki wpływ querystring ma na crawlery, ale konsensus jest taki, że posiadanie więcej niż kilku parametrów szkodzi SEO, ponieważ długa zmienna querystring wskazuje dynamiczną zawartość, a więc większość wyszukiwarek będzie o wiele mniej agresywna indeksowanie strony.

Dodanie ślimaka do adresu url, takiego jak this-is-the-name-of-my-blog-post z twojego przykładu, również sprawia, że twoje linki bardziej różnią się od siebie niż prosty numer id i dodaje więcej znaczących słów do adresu url. Są to wszystkie rzeczy, których szukają Wyszukiwarki.

Osobiście uważam, że takie adresy URL znacznie łatwiej analizować wizualnie, ponieważ jest mniej znaków interpunkcyjnych, a pary nazwa-wartość w querystring mogą być bardzo gadatliwe i trudne do zapamiętania.

 11
Author: Adam Lassek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-09 15:18:23

To dobry punkt o tym, jak umieszczasz niepotrzebne informacje w adresie URL.

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

Gdy znany jest unikalny identyfikator 522466-reszta jest bezużyteczna, więc służy wyłącznie do tego, aby adres URL wyglądał "ładnie" i dawał użytkownikowi wyobrażenie, do czego linkuje strona. Ale to stwarza inny problem. Większość witryn nie "weryfikuje" tej części adresu URL, więc można umieścić --

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

Jednak nadal będzie link do tego posta. Możesz zobaczyć, jak może to spowodować więcej problemów niż są warto, ponieważ mogą być wykorzystywane złośliwie.

Czuję, że Digg dobrze do tego podszedł. Nie używają identyfikatorów w swoich adresach URL. Za kulisami dostają identyfikator z bazy danych wyłącznie z podanego tytułu.
http://digg.com/linux_unix/I_Like_Linux_so_my_aunt_sends_me_this_for_Christmas

To dla mnie jest idealny url. To daje mi wszystkie informacje, których potrzebuję, aby czuć się bezpiecznie klikając link.

W rzeczywistości tytuły odgrywają tak ogromną rolę, że w świecie Digga ludzie "ślepi digg" opierają się wyłącznie na tym, że podoba Ci się tytuł, lub jesteś nim zainteresowany. Jeśli twój adres URL wygląda interesująco, możesz bardzo dobrze uzyskać większy ruch na swojej stronie. Jednocześnie sprawisz, że będzie bardziej przyjazny dla użytkownika, ładniejszy, a Wyszukiwarki Ci podziękują. O ile widzę, przyjazne adresy URL są win win dla wszystkich.
 7
Author: Gary Green,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 23:58:17

Moje myśli o twoich trzech kulach:

  • powiedziałbym, że nie jest to optymalny adres URL. Nie mam pojęcia, po co pokazywać zarówno identyfikator postu, jak i tytuł. Nigdy nie umieszczam identyfikatorów postów w moich adresach URL, tylko tytuły i (czasami) daty
  • Dla użytkowników krótszy jest lepszy.
  • Wyszukiwarki patrzą na adres url. Czy to ma sens, czy nie, mają. Posiadanie słów kluczowych w adresie URL przyniesie pewne korzyści SEO.
 6
Author: ahockley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 22:30:06

Zgadzam się z tobą, ale nie mów nikomu.

To tylko moje skromne zdanie, ale wydaje mi się głupie, że

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

I

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

To ta sama strona. To znaczy, widzę, że dzielony tytuł pytania daje URL jakiś kontekst, ale jeśli nie wiesz, że część jest opcjonalna, adres URL niepotrzebnie się wydłuża.

 4
Author: JMD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 22:28:01

Po pierwsze, są przyjazne dla crawlerów wyszukiwarek. Google i inni kładą wysoką wartość na słowa w adresie URL, które pasują do słów na stronie, więc jeśli tytuł Twojego posta na blogu znajduje się w adresie URL, pomoże to Twojej wyszukiwarce.

Po drugie, są przyjazne ludziom, którzy nie wiedzą, co odwiedzają. Które z linków, które użyłeś do porównania, są bardziej prawdopodobne, aby kliknąć, jeśli natknie się na twitter / e-mail/IM / etc?

 4
Author: John Sheehan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 22:30:46

Ahh...sztuczka polega na tym, do kogo adres URL jest przyjazny. Wyszukiwarki postrzegają pierwszy adres url jako bardziej przyjazny, ponieważ najwyraźniej ma informacje o treści w adresie URL i nie wygląda na to, że ta sama strona jest powtarzana z innym parametrem.

Na przykład, porównując

www.aTvShowSite.com/show.aspx?id=123
www.aTvShowSite.com/show.aspx?id=124
Robot powie ok, Nie wiem co to jest...ale dla mnie wyglądają jak ta sama strona.

Porównując

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

Sprawia, że wyglądają jak różne strony (nawet jeśli może być tą samą stroną aspx obsługującą je), a roboty mają tendencję do ich wyższej rangi.

Edytuj: Ponadto należy zauważyć, że wiele robotów patrzy na tekst adresu url, aby określić przydatność, więc wyszukiwanie "utracone" prawdopodobnie trafi drugi typ adresu url bardziej niż pierwszy, nawet jeśli zawartość strony jest identyczna.

 4
Author: Beska,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-13 22:01:12

Jak dla:

czy to nie byłoby pogwałceniem mantry "nie powtarzaj się"?

To odnosi się do kodu aplikacji !!, nie aplikacja to samo!!

To ma sens mieć

  • tytuł w znaczniku
  • W URL
  • i jako pierwsza linijka w treści.

I prawie wszędzie indziej treści tego potrzebują.

Do czego odnosi się Ta "mantra", jeśli twój kod powinien wygląda tak:

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

Zamiast mieć różne metody z Kopiuj / wklejony kod w całej aplikacji.

 4
Author: OscarRyz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-13 22:31:21

"nieprzyjazny" URL, który pokazujesz, ujawnia szczegóły implementacji: co jeśli kiedyś w przyszłości zdecydujesz się porzucić ASP i użyć czegoś innego? Trzeba by zmienić wszystkie adresy URL (baad!) lub zastosować schemat zmiany nazwy.

Powtarzanie tytułu w adresie URL może nie jest konieczne, ale okazuje się przydatne, gdy robisz wiele wklejania linków, aby dokładnie sprawdzić, czy linkujesz do właściwego miejsca.

 3
Author: UncleZeiv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 22:33:59

Nasza strona internetowa używa tak zwanych "nieprzyjaznych" adresów URL, ale tworzymy specjalne "przyjazne" adresy URL dla określonych lokalizacji, które członkowie społeczeństwa używają do określonych funkcji, zwłaszcza na materiałach drukowanych.

Na przykład, nasze bilety parkingowe mają http://www.dnv.org/parking na nich.

CP

 2
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 22:47:21

Cóż, na początek staraj się trzymać znaki z dala od (a-z,A-Z, 0-9)i oczywiście:/._ - z adresu url. Nie każdy ma je wszystkie na swoich klawiaturach (na przykład, nie mam & na mojej klawiaturze, ani nie mam~)

Gdy na przykład robi parsowanie url lub coś podobnego, pomaga również, jeśli składnia url jest "czysta"

 1
Author: Rook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 22:28:16

Drugi URL wygląda bardziej przyjazny dla użytkownika, podczas gdy pierwszy wygląda przyjazny dla wyszukiwarek.

Wyszukiwarki dają większe znaczenie słowom, które pojawiają się w adresie URL. Nazwa domeny otrzymuje najwyższy (ponieważ nie może się zmienić), reszta adresu URL otrzymuje wysoki priorytet, ponieważ długość jest ograniczona, a następnie analizowana jest treść dokumentu.

Moja odpowiedź jest dość subiektywna, bo zależy od tego, czy jesteś przyjazny człowiekowi (łatwo wpisać ręcznie, czy przeczytać do friend) lub czy jesteś przyjazny dla wyszukiwarek (zwiększenie rankingu.)

 1
Author: Peter Morris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 22:30:20

W tej sytuacji, to tak naprawdę nie łamie suchej zasady, ponieważ jeśli chodzi o wyszukiwarkę, '522466' to nie to samo co 'co-tworzy-przyjazny-url'

Ogólnie rzecz biorąc dla stron takich jak StackOverflow, token jest jedyną ważną informacją; zwykle możesz umieścić co chcesz po tym punkcie i zabierze cię w to samo miejsce (ignorowane przez serwer WWW).

Opis strony jest tylko po to, aby pomóc wyszukiwarkom zidentyfikować to, co strona jest o (co jest miłe)

 1
Author: John,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-06 22:39:02

Kolejna kwestia: ludzie czasami ręcznie edytują adresy URL, aby przejść w górę drzewa katalogów. Więc mogą spróbować załadować stronę jak http://site.com/a/b , uzyskaj błąd" nie znaleziono", a następnie spróbuj http://site.com/a lub http://site.com . oczywiście, jeśli adresy URL nie są oparte na rzeczywistym drzewie katalogów, może to nie działać. Ale nadal możesz próbować go wspierać.

Niektóre przeglądarki nawet zachęcają do tego, jak IE z komunikatami o błędach i Safari z menu, które pojawia się po kliknięciu prawym przyciskiem myszy tytułu strony.

 1
Author: JW.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-07 00:10:53

Matt i @ bigmattyh: SEO to nie "hacki": to zrozumienie, co oznacza "dobra treść"w sieci. Tytuły stron są częścią treści. Dobry tekst kotwicy w linkach to " dobra treść "(zamiast używać słów takich jak" Kliknij tutaj " jako tekst linku). Umieszczanie linków w kontekście, a nie jako lista, jest "dobrą treścią".

Tytuły stron są nisko wiszące owoce, ale pozostają jednym z najprostszych sposobów na poprawę SERP. Tak, linki przychodzące (i ich jakość) są krytyczne, ale tytuły mogą zrobić cuda, szczególnie w perspektywie krótkoterminowej. Nie musisz używać tytułu strony (który może się zmieniać od czasu do czasu) jako tytułu postu: podsumuj zawartość ręcznie.

Nie zgaduj na ten temat: (a) Czytaj źródła jak SEOmoz.org oraz (b) rygorystycznie analizować własną witrynę.

 1
Author: Robbie Mitchell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-29 17:29:44

Termin czytelny url jest również często używany. Używanie przyjaznych / czytelnych adresów URL jest techniką SEO born i to wszystko. W przeciwnym razie im krótsza ścieżka, tym lepiej. Przepisywanie reguł zazwyczaj spowalnia proces szybkiego dotarcia strony do klienta, więc weź to również pod uwagę.

 0
Author: Elzo Valugi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-12 11:55:44

Moim zdaniem identyfikatory i uuid nigdy nie powinny być częścią adresu URL, nigdy.

1) Niektóre bazy danych NoSQL w ogóle nie używają identyfikatorów, używają uuid. UUIDs są długie, porcje są oddzielone za pomocą kresek. Google będzie traktować myślnik jak separator słów: oznacza to, że twój adres url będzie miał 5 więcej bezużytecznych słów kluczowych.

2) człowiek nie rozumie identyfikatorów ani uuid. Osoba rozumie słowa i mówi adresy URL.

3) Jeśli Tytuł się zmieni, możesz po prostu zrobić przekierowanie, takie jak WordPress robi, jak @ Trygon.

4) na koniec pamiętaj, aby użyć daty, dzięki czemu możesz rozróżnić dwa artykuły o tym samym tytule i opublikowane w innym roku, miesiącu lub dniu. Na przykład możesz mieć dwie recenzje (pierwsze i drugie wydanie) tej samej książki.

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

I

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

5) Data pomoże również każdemu użytkownikowi dowiedzieć się, czy zawartość jest najnowsza, czy nie.

6) Data doda ważne słowo kluczowe do adresu URL: rok. Załóżmy, że chcę zobaczyć najpiękniejsze dziewczyny na świecie, będę wpisywać w Google: "najpiękniejsze dziewczyny na świecie 2014". Mój url będzie:

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

7) wreszcie, Chrome buforuje odwiedzoną witrynę, dzięki czemu można znaleźć powyższą witrynę po prostu wpisując w pasku adresu "dziewczyny".

 0
Author: noun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-13 16:43:39

Termin czytelny url jest również często używany. Używanie przyjaznych / czytelnych adresów URL jest techniką SEO born i to wszystko. W przeciwnym razie im krótsza ścieżka, tym lepiej.

 -2
Author: user6537033,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-01 07:42:25