Seo Advice

Avoid Parameter Based URL

Many content management systems default to a parameter-based URL nomenclature. This is especially true for shopping carts and e-commerce engines that display a lot of products. That’s not a pretty URL. It actually only has a few parameters, but lots of seemingly random numbers and letters. Looking at the URL, you can’t tell what product you’ll find after you click on it. But, on the other hand, Amazon doesn’t have much problem with generating web traffic (of course, they’re a much bigger brand than you). Search engines have become much better at indexing content from parameter-based URLs over the last few years. If you limit yourself to only a few parameters per URL and avoid publishing the same content under multiple URLs, then a parameter-based URL nomenclature won’t be a direct barrier to search engine rankings.

It may, however, have an indirect effect on rankings, primarily as an opportunity cost, since there are many benefits to using keyword-based URLs. Fortunately, a large number of content management systems today offer easily-implemented options to switch your URLs from parameter-based to keyword-based (though much harder to implement on Windows servers). I won’t go into all the technical details of how that’s done, but basically the CMS will automatically rewrite the URL and redirect the parameter-based URL to the new keyword-based URL. This all happens on the server before your website visitors even see it, so it’s a seamless experience for them. Avoiding parameter-based URLs is ideal, but it’s not the most important SEO element to worry about. If you’re starting a new site, do it. If you have an established site and it’s an easy change to make in your current CMS, do it. If you have an established site and it’s going to be a long and laborious project, put this on your list of things to do and take care of other SEO factors first.

Use Keyword-based URLs

Using keywords in your URLs most likely won’t directly improve your search engine rankings, but they offer several advantages over parameter-based URLs.

  • They are easier to remember
  • Visitors who hover over a link to your pages or see the URL on other websites will have an indication of what’s to come after the jump
  • Sometimes people will use your URLs as anchor text, so having the keywords in the URL could provide some ranking benefit

The first two points are pretty straightforward – they don’t contribute to your search engine rankings, but they are important for usability reasons. The last point, however, can affect your rankings indirectly. If your URLs use the keywords that you are trying to rank for on that page, and someone writes about your website and links to your pages with your URL as the anchor text, then those keywords will appear in the link and help you rank better for those keywords.

For example, let’s say I write an article on my website about why I think people should avoid using parameter-based URLs. I name that page Since you like my article a lot and want to share it with the visitors on your site, you might write something like. Since you turned my URL into the anchor text for the link to my page, the search engines will see my keywords (“parameter based urls”) and know what my page is about and give me a better chance at ranking for that phrase.

Use Hyphens to Separate Words in the Filename

Google says they now parse out the words separated by underscores, but using hyphens isn’t any harder and is thus your safest bet.

Use Folders, Not Files, for Forward Compatibility

Using a folder vs. a file extension doesn’t necessarily grant any special ranking privileges. But I suggest using folders for forward compatibility. Why? Let’s say you publish all your pages as ../page-name.html, and then you start adding dynamic content to your pages that require your files to be ../page-name.php, then you have to go back and change all your .html pages to .php and redirect all the old pages to the new ones. There are ways to automate this change, but there is a much simpler solution: use folders instead of file name extensions. This is very easy to do. In the example above, just make a folder called /page-name/ and put your content for that page on a file called index.html in the folder. Basically, every page gets its own folder. If you switch to php, just change the file to index.php and you’re good to go. The page is still named /page-name/ as it always was, your visitors don’t notice any change at all, old links from other websites don’t break and you don’t have to fiddle with .htaccess files or renaming files or any other technical problems.