We've developed a dynamic web application which uses URLs such as product.cfm?id=42 but our marketing team says we should use search friendly URLs and put our keywords into the URLs (so it would be product-name.cfm instead). Our developers tell us this will cost more money and take additional time. Is it worth the effort? How important is this to the search engines and will it impact our rankings?

I've answered below, but outside the scope of your question is another question - how to do URL Rewriting cheaply. We did ours in < 8 hours for every product page on our website (I've asked at webmasters.stackexchange.com/questions/341/… and will answer soon)
–
Mark HendersonJul 9 '10 at 0:09

These URLs are usually the result of query strings on dynamic pages. Some search engine crawlers are wary of such URLs because they could potentially be infinite links that would overload the crawler. As a result, they may not index pages that use these URLs, especially when three or more of these characters are included in the address. As Eytan Seidman, MSN Search Program Manager, states, "The algorithm starts to wonder whether it is going to get stuck in a loop endlessly crawling every single permutation of the query parameters. Thus, URLs with many (definitely more than 5) query parameters have a very low chance of ever being crawled." (Eytan Seidman, Crawling the Internet..., msnsearch's WebLog (November 18, 2004).) Here's an example of the kind of URL Mr Seidman's talking about:

URL Rewriting won't Eradicate the Endless Loop
Although you can use URL rewriting to eliminate the problem characters and create more human-friendly URLs, you won't be eliminating much bigger potential problems—it's critically important to ensure that search engine crawlers won't get stuck in an endless loop that would overload them.

In short, from a web crawler's perspective. The more complex the query is, the more likely the crawler will ignore it.

The major technical barrier to creating an effecting URL rewriting scheme is having a concrete plan/policy of how it's going to be organized/implemented and how many links that already exist on the site point to the querystring style links.

It's definitely easier to implement earlier on in the design process as an overall function of the site's structure. That's part of the reason it's inherently supported by most of the mainstream web development frameworks (Zend, Django, Drupal, etc...).

And our SEO was very, very poor because that URL tells me nothing about what's on that page (And I'm a human). A search engine knows even less than a human than what's on that page.

So yes, it's important if you're running a sales-driven website. Spending the money to do the URL rewriting was worth every cent. Our search engine presence went from being non-existant to being the top organic result when searching for the services we offer.

What else is important though is making sure that your page titles and meta tags are set correctly, becuase even if you have a crappy URL the search engine results will still display accurate information for when it does show up.

The bottom line is that you're probably better off trusting a survey of experts than a debate on StackExchange on this, since nobody knows if/how Google treats URL's and you can basically find someone to support whatever opinion you started with.

Personally, I think keywords in the URL are a usability MUST and an SEO nice-to-have. They make your pages more click-worthy when they appear in the SERP's, they're easier to promote for link building, and they provide a visual cue to help communicate what content is on the page just by reading them.

PS: Notice the URL for the search ranking factors article. Take a hint from that.

If you use a sitemap you should be fine with query strings. Google can index them. That said, I'm unsure about how other search engines handle them and friendly URLs are certainly nicer looking, but they may not be worth the cost of the switch.

If you do a Google search for "fast food franchise". You will see that almost all of the results highlight the words "fast", "food" and "franchise" in the domain name as well the name of the page.

I didn't see any parameter/values in the results. This suggests that Google doesn't look at the string. It also suggests that the string is ignored but the page is still indexed. It also suggests that Google gives ugly URLs lower scores.

No matter what Google says they do, you need to look at the evidence. Do you find ugly URLs in the top ten pages for any of your searches?

I have made it a practice to use keywords throughout the entire URL and to make the URLs completely readable. Here's one of my pages. Can you guess at what you are going to find on this page?

Your conclusions are based on guesses, poor logic, and incomplete thought processes. There are plenty of pages that rank well with ugly query strings. And plenty that don't. But the odds are it's not the query string that causes pages to rank well or poorly by themselves, but the content and resulting links (or lack of) that causes them to rank where they do. Not to mention you left out lots of other rankings factors. To say it;s the URL alone that gets a page to the top is one heck of misguided leap.
–
John Conde♦Mar 9 '11 at 21:27

And they do use query strings in their algorithm. In fact your examples show two URLs with query strings. They don't have name/value pairs but they are most definitely query strings. And a big reason why don't see as many ugly query strings is they aren't user friendly. What's easier for human beings? Name value pairs or words and slashes? The usable one of course. Not coincidentally, usability is one of the major tenants of SEO (usability, accessibility, quality content).
–
John Conde♦Mar 9 '11 at 21:28

Saying the top ten results rank where they do because of they don't have name value pairs in their query string is like saying all Ferraris are fast because they are red. You're overlooked a lot more important factors.
–
John Conde♦Mar 9 '11 at 21:33

Wow! It sounds like you didn't read what I wrote. "My conclusions are based on guesses"? What conclusions? I cited fact. If you search for this, this will be your result set. Period. I used the phrase "this suggests" several times. Is that what you meant by "poor logic"? If I say this Ferrari is fast, it can suggest a lot of things. Some of those things may or may not be true. But their truth most surely was suggested. Were you REALLY expecting me to include every important factor in this post? REALLY?
–
Evik JamesMar 9 '11 at 21:44

I didn't state that Google doesn't look at query strings. I didn't say or suggest that my URLs didn't use a query string. I tried to make it clear that when I ran specific search on a specific engine I didn't find results of the type in question. It that wasn't perfectly clear, it's because you either didn't read what I wrote or you weren't paying attention while you were reading.
–
Evik JamesMar 9 '11 at 21:48