Permuting a Query

Run all permutations of query keywords and phrases to squeeze the last drop of results from the Google index.

Google, ah, Google. Search engine of over 3 billion pages and 3 zillion possibilities. One of Google’s charms, if you’re a search engine geek like me, is trying various tweaks with your Google search to see what exactly makes a difference to the results you get.

It’s amazing what makes a difference. For example, you wouldn’t think that word order would make much of an impact but it does. In fact, buried in Google’s documentation is the admission that the word order of a query will impact search results.

While that’s an interesting thought, who has time to generate and run every possible iteration of a multiword query? The Google API to the rescue! This hack takes a query of up to four keywords or “quoted phrases” (as well as supporting special syntaxes) and runs all possible permutations, showing result counts by permutation and the top results for each permutation.


You’ll need to have the Algorithm::Permute Perl module for this program to work correctly (

The Code

#!/usr/local/bin/perl # order_matters.cgi # Queries Google for every possible permutation of up to 4 query keywords, # returning result counts by permutation and top results across permutations. # order_matters.cgi is called as a CGI with form input # Your Google API developer's key my $google_key='insert key here'; # Location ...

Get Google Hacks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.