The extension (.htm, .aspx, etc) does not matter to a search engine. The words in the URL should be relevant to the content of the page as they help a user to recognise this relevance, e.g. blah/widget-user-guide is more intuitive than blah/index.php?page=345
No extension at all is probably best for usability. Its the easiest to remember and type in.
I have seen some evidence that having .html on your urls increases click through rate from the SERPs a small amount. That was measured before Google started showing bread crumbs in place of the URL in SERPs, so even that probably doesn't apply anymore.
i agree that no extension (or trailing slash) is better, because it is neater and shorter.
i totally disagree with the oft mentioned reason that you see repeated here continually: eg. in case you change underlying technology in the future
any server that can support no extensions will have the ability to parse any file as directed. for instance i have an old .asp site that i moved to an apache server and converted it to php, i kept all the urls the same 'example.asp' and just instructed the server to parse .asp as php
That article is incorrect. Sorry to be so blunt but there is incorrect advice given there.
This is a document level URI...
This is a directory level URI...
Years ago, the advice was to put everything at a directory level URI. That was before we all started discussing Content Negotiation, Extensionless URIs, etc.
Use /directory/ for directory level and use /document for document level. Don't be misled into the whole trailing slash myth. Go extensionless and serve your documents from their appropriate directory.
There are plenty of proactive options you can take to make sure the above works 100%.
Are Yahoo! and Bing still stripping the trailing slashes from Display URIs? ;)
A URL ending in a slash is for a folder or the index page of a folder.
URLs for pages do not end with a slash.
URLs for pages can have an extension or can be extensionless.
Images and media files (nearly) always require an extension.
If you use URL rewriting, extensionless URLs are best as you can then detect that any URL without a period needs to be rewritten to fetch the content from your dynamic script. The RegEx pattern matching is very simple.
This also completely avoids those inefficient -f and -d server filesystem "exists" checks that slow so many dynamic sites down.
URLs ending in .html will not be rewritten and the server will fetch the content from the matching static .html file. Extensionless URLs get rewritten to the dynamic script.