There is been a lot of hype of late about having Friendly URLs, or in short furl. What is so fancy about these ? Oh yeah! they help the search engines, they help your visitors. On an after thought, do they help the search engines? I would say no and a big blatant NO.
Why? First of all, search engines as the biggest of it all claims, they do not have a difference between a url that has a query string or that does not have a query string, other than that bots will be a bit more light on any url with a query string, ie a ‘?‘, with inducing a small delay between queries. And those with query strings will be considered as changing content, whereas those with out query strings are considered as static or stationery content. So by forcing a search bot to index your site using furl, you would be deceiving the bot by showing it the furl, where as internally you would be using dynamic content.
Now a days most of the content management systems, blog packs, and open packages do offer furl as an integrated part.Â Most of the packages implement this using some sort of pluggable techniques, but some notably do have neatly planned and implemented furl support. Actually the furl support is provided to help you and not the search engine. Once you enable this in the software, the search bots will be deceived to index your pages as static content, inducing heavy load on your servers. This does not imply that we should avoid using furls, no but we should plan well ahead to make sure that our servers are the least loaded.
For implementing furl in your package or application, either you should design it from the basics, or you should revert to some sort of plugs, but still if you can redo the basic parts of your application, use some global replaces for durls, to corresponding furls, and take the pains to absolute link all media, I mean images, css, swf etc. I would recommend doing so, and giving it a full integrated test before releasing the pack.
Two methods are being practiced the most, though there are other derivatives being used.Â The first one being using mod_rewrite (a plug), to change the url into a var=value pair internally. The second one is to force all calls through a single php file, and to parse the QUERY_STRING super global. Still both methods require the durl to furl conversion in the code.