Holy cow! Do not over think SEO please. It is not that complicated. I read this article some time ago and I did not take it too seriously. It is not junk mind you, just take with a healthy dose of salt. There is some value to the article of course. I just think the author has missed the mark on this point.
As far as hyphens and underscores, back in my heavy coding days, we did not distinguish between separators, instead we blindly used the word boundaries of the system/language we were using. Word boundaries are not recognition of actual words, but a mechanism by which values can be extracted from strings. In the case of your example, hyphens and underscores, both are word boundaries in any system or language that likely are ignored equally. If a regular expression is used instead of a natural word boundary, then the result would be the same.
As far as a personal recommendation. I would use what you think is best. Using underscores makes the words stand out better to the human eye. But this is a URL. Is this really important? I do not think so. But you make that distinction for yourself. I use hyphens. The primary reason is that it is consistent and seems to be the standard naturally determined by web developers and web masters. I would not, however, use double-hyphens. I am sure it will not break any ones code, but it may under some circumstances so why take the chance.
As far as SEO is concerned, I doubt seriously that hyphens verses underscores makes any difference at all. There is the theory in using the pipe character |
for descriptions of course, but the description only effects click-through rates and not SEO per se. Even then, the pipe character I think does nothing at all.
You will notice that the author gives theories tied to programming habits, but does not give metrics or evidence to validate the statement. Even then, I did recognize what he was saying and had to smile. On some level, he is right about coding habits. But to return to what I said before, it is highly likely that a regular expression is used and any URL is split
by word boundaries using \b
or \B
which is a regex anchor that represents a word boundary. Even if this mechanism is not used, then a character class
would likely be used that includes most if not all non-word characters
including the hyphen and underscore therefore making this theory kinda ridiculous. To code so that an hyphen and underscore are not equal, requires significant and deliberate work that adds bloat and inefficiency. Just a quick hint about programmers. They are lazy... code wise- so I am sure this is not the case.