Question

Many websites, including this one, add what are apparently called slugs - descriptive but as far as I can tell useless bits of text - to the end of URLs.

For example, the URL the site gives for this question is:

https://stackoverflow.com/questions/47427/why-do-some-websites-add-slugs-to-the-end-of-urls

But the following URL works just as well:

https://stackoverflow.com/questions/47427/

Is the point of this text just to somehow make the URL more user friendly or are there some other benefits?

Was it helpful?

Solution

The slugs make the URL more user-friendly and you know what to expect when you click a link. Search engines such as Google, rank the pages higher if the searchword is in the URL.

OTHER TIPS

Usability is one reason, if you receive that link in your e-mail, you know what to expect. SEO (search engine optimization) is another reason. Search engines such as google will rank your page higher for the keywords contained in the url

I recently changed my website url format from:

www.mywebsite.com/index.asp?view=display&postid=100

To

www.mywebsite.com/this-is-the-title-of-the-post

and noticed that click through rates to article increased about 300% after the change. It certainly helps the user decide if what they're thinking of clicking on is relevant, in terms of SEO purposes though I have to say I've seen little impact after the change

I agree with other responses that any mis-typed slug should 301-redirect to the proper form. In other words, https://stackoverflow.com/questions/47427/wh should redirect to https://stackoverflow.com/questions/47427/why-do-some-websites-add-slugs-to-the-end-of-urls . It has one other benefit that hasn't been mentioned--if you do not do a redirect to a canonical URL, it will appear that you have a near-infinite number of duplicate pages. Google hates duplicate content.

That said, you should really only care about the content ID and allow any input for the slug as long as you redirect. Why?

https://stackoverflow.com/questions/47427/why-do-some-websites-add-slugs-to-the-end-of-urls

... Oops, the mail software cut off the end of the URL! No problem though because you still can roll with just https://stackoverflow.com/questions/47427

The one big problem with this approach is if you derive the slug from the title of your content, how are you going to deal with non-ASCII, UTF-8 titles?

The reason most sites use it is probably SEO (Search Engine Optimization). Yahoo used to give a reasonable weighting to the presence of the search keyword in the URL itself, and it also helped in the Google result as well.

More recently the search engines have lowered the weighting given to keywords in the URL, likely because the technique is now more common on spam sites than legitimate. Keywords in the URL now have only a very minor impact on the search results, if at all.

As for stackoverflow itself, SEO might be a motivation (old habits die hard) or simply for usability.

It's basically a more meaningful location for the resource. Using the ID is perfectly valid but it means more to machines than people.

Strictly speaking the ID shouldn't be needed if the slug is unique, you can more easily ensure unique slugs by scoping them inside dates.

ie:

/2008/sept/06/why-some-websites-add-slugs-end-of-urls/

Basically this exploits the low likelihood of two identical slugs being in use on the same day. If there is a clash the general convention is to add a counter at the end of the slug but it's rare that you ever see these:

/2008/sept/06/why-some-websites-add-slugs-end-of-urls/
/2008/sept/06/why-some-websites-add-slugs-end-of-urls-1/
/2008/sept/06/why-some-websites-add-slugs-end-of-urls-2/

A lot of slug algorithms also get rid of common words like "the" and "a" to assist in keeping the URL short. This scoped approach also makes it very straightforward to find all resources for a given day, month or year - you simply chop off segments.

Additionally, stackoverflow URLs are bad in the sense that they introduce an additional segment in order to feature the slug, which is a violation of the idea that each segment should represent descending a resource hierarchy.

The term slug comes from the newspaper/publishing business. It's a short title that's used to identify a story in progress. People interested in URL semantics started using a short, abbreviated title in their URLs. It also pays off in SEO land, as keywords in URLs add importance to a page.

Ironically, lots of websites have started place a full serialized-with-hyphens version of the titles in their URLs for strictly SEO purposes, which means the term slug no longer quite applies. This also rankles semantic purists, as many implementations just tack this serialized version of the title at the end of their URLs.

I note that you can change the text freely. This URL appears to work just as well.

https://stackoverflow.com/questions/47427/why-is-billpg-so-very-awesome

As already stated, the 'slug' helps people and the search engines...

Something worth noticing, is that in the source of the page there is a canonical url

This stops the page from being index multiple times.

Example:

<link rel="canonical" href="http://stackoverflow.com/questions/47427/why-do-some-websites-add-slugs-to-the-end-of-urls">

Remove the formatting from your question, and you'll see part of the answer:

https://stackoverflow.com/questions/47427/

vs

https://stackoverflow.com/questions/47427/why-do-some-websites-add-slugs-to-the-end-of-urls

With no markup, the second one is self-descriptive.

Don't forget readability when sending a link, not just in search engines. If you email someone the first link they can look at the URL and get a general idea of what it is about. The second one gives no indication of the content of that page before they click.

If you emailed someone a link wouldn't it make more sense to include a description by actually writing out a description rather than making the other person parse to the URL where the description exists, and try-to-read-a-bunch-of-hyphenated-words-stuck-together.

First off, it's SEO and user friendly, but in the case of the example (this site), it's not done well or correctly (as it is open to black hat tricks and rank poisoning by others, which would reflect badly on this site).

If

https://stackoverflow.com/questions/47427/why-do-some-websites-add-slugs-to-the-end-of-urls

has the content, then

https://stackoverflow.com/questions/47427/

and

https://stackoverflow.com/questions/47427/any-other-bollix

should not be duplicates. They should actually automatically detect the link followed is not using the current text (as obviously the slug is defined by the question title and can be later edited) and they should redirect 301 automatically to

https://stackoverflow.com/questions/47427/why-do-some-websites-add-slugs-to-the-end-of-urls

thus ensuring the "one piece of content to one URI" rule, and if the URI moves/changes, ensure the old bookmarks follow/move with it through 301 redirects (so intelligent browsers can update the bookmarks).

Ideally, the "slug" should be the only identifier needed. In practice, on dynamic sites such as this, you either have to have a unique numerical identifier or start appending/incrementing numbers to the "slug" like Digg does.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top