How to: Display adsense to search engines visitors only

November 19, 2008 at 8:46 am

It’s a fact: People who click on your ads are people comming from search engines, not regular readers. In order to avoid being “Smart Priced” by Google Adsense, you should definitely display ads to search engines visitors only. Here’s how to do it.

First, we have to create a function. paste the code below in your theme functions.php file. Create that file if it doesn’t exists.

function scratch99_fromasearchengine(){
  $ref = $_SERVER['HTTP_REFERER'];
  $SE = array('/search?', '', '', 'search.', '', '', '/search/', '.yahoo.');
  foreach ($SE as $source) {
    if (strpos($ref,$source)!==false) return true;
  return false;

The $SE array is where you specify search engines. You can easily ad new search engines by adding new elements to the array.

Then, paste the following code anywhere on your template where you want your adsense ads to appear. They’ll be displayed only to visitors comming from search engines results.

if (function_exists('scratch99_fromasearchengine')) {
  if (scratch99_fromasearchengine()) {

Credits goes to Stephen Cronin for this awesome recipe!