Therefore is it time for Google to separate out the two and offer two search buttons, buy/shop or learn?
Totally agree Huskypup. In fact Google has a 'shopping' section with prominent link and that's where big brands belong (they are already there, too). Freezing out any non brand site and even some smaller branded site is pure manipulation since often they are not the most helpful, they are pushing a sale.
Update, 48 hours later. I've gone through thousands of keyword matches now and checked what now ranks for each that I do not and it's nearly 100% brand name stores (most brick and mortar, some virtual only) in the top 10. Also adding even a single letter or character is enough to break the monopoly and return informational sites too, Google has compiled a list of terms to keep for stores, I'm 100% positive of it.
Informational pages with no products, news pages, even guides... all unchanged. I'm beginning to lose image search now, any image on the product related pages are falling from Google images, I guess images changes are a little slower.
Here's some simple code to grab such data from search visitors yourself, analytics could provide this level of granularity but doesn't. Create a database table with term, rank, url and type fields as well as a timestamp and incremental field.
<?php
$query_string = parse_url($_SERVER["HTTP_REFERER"], PHP_URL_QUERY);
if ($query_string) {
parse_str($query_string, $vars);
$term = $vars['q'];
$rank = $vars['cd'];
$url = $vars['url'];
$type = "web";
if (!$url) { $url = $vars['imgrefurl']; $type = "img"; $rank = '99';}
if ($term && $url) {
$host = "host name";
$user = "user name";
$pass = "password";
$dbname = "database name";
$connection = mysql_connect($host,$user,$pass) or die;
mysql_select_db($dbname);
mysql_query("INSERT INTO tablename (term, rank, url, type) VALUES ('$term','$rank','$url','$type') ON DUPLICATE KEY UPDATE counter = counter + 1;");
$host = "";
$user = "";
$pass = "";
$dbname = "";
mysql_close($connection) ;
}
}
?>
That will assign a rank of 99 on images since Google only provides rank for regular web searches, not images, but will collect the ranking position on web searches. It will store the keywords used, your rank for those keywords, the url the visitor came in on and the type of search img/web. You can place this in a separate file and call on it using...
<?php $refcheck = strtolower($_SERVER['HTTP_REFERER']);if (strpos($refcheck,"google")) { $queries = "trackingfile.php"; include_once($queries); $queries = "";}?>
Now you can gather Google data with zero outside tracking or log file parsing too. I've added additional conditions to mine, such as time on site, IP address and downstream click etc, but that will get you watching your rankings closely. Everyone should be monitoring their rankings like this, you need to know your ranking movement over time to spot this kind of change.
Post Panda it's time everyone watched Google ranking changes, using actual data, a little more closely. Eventually Google will change up their url's and make it harder to gather data but until then the above works.
Note: I've had several hits from the googleplex IP range today, someone's peeking.