Long ago, it was the consensus in the search engine industry that dynamic URLs (those with a question mark in them) weren't indexed by the major search engines. Later, consensus was that Google indexed some URLs with question marks, but ranked them lower.
Currently it seems that the search engine industry consensus is that Google indexes dynamic URLs just fine and ranks them right along with other URLs, unless there is a long number after the question mark or an "id=" in it which might indicate a session ID.
That's a lot of theories. It's probably time to get the facts. The methodology used to find this answer is very simple. I gathered the results of the queries naturally performed last month by myself and four associates using Yahoo! and Google. I then tallied the URLs that contained a question mark for each ranking.
Those results were further refined by converting them into a percentage of the total pages found. Here is the graph showing Google and Yahoo results:
The X-axis shows the rankings from 1 through 8. The Y-axis shows the percentage of URLs found that contained a question mark.
The first thing I note is that both Yahoo! and Google do contain URLs that contain a question mark. Thosemajor search engines do include some URLs with question marks.
The second thing to notice is the small percentages for both Google and Yahoo!. The average percentage of URLs with question marks is only about 5% on Google and 3% on Yahoo!. It isn't known what percentage of total URLs have question marks, but it seems very likely that it is a much higher percentage. The difference between Yahoo! and Google further shows that Yahoo! doesn't include as many dynamic URLs as Google.
It is clear from the data that Google ranks dynamic URLs (those containing a question mark) lower on average than other URLs. The ranking correlation is a -42 on a scale of -100 to +100. That same bias doesn't seem to occur on Yahoo! where the ranking correlation is a -7 on the same scale. If dynamic URLs make it into the Yahoo! index, they rank as well as other URLs.
Don't use dynamic URLs (URLs with question marks in them). If you have dynamic URLs on your website read this Webmaster World post about how to redirect them to static URLs.