Beginner's Guide for WordPress / Start your WordPress Blog in minutes

How to Display Ads Only to Search Engine Visitors in WordPress

From our experience and research of many industry experts, it seems that Search Engine visitors are more likely to click on targeted advertisements then your regular readers. In this article, we will share a technique that will let you make more money from your blogs by simply displaying ads to your Search Engine Visitors ONLY. Whereas your regular visitors do not see these ads. This works very well with targeted Pay-Per-Click (PPC) ad units such as Google Adsense.

Note: The technique shown in this article can be used to display other content aside from ads that targets Search Engine visitors for your site. Perhaps a special discount code, welcome message, etc.

First thing you need to do is open your functions.php file and paste the following code:

$SE = array('/search?', '', '', 'search.', '', '', '/search/', '.yahoo.');
foreach ($SE as $source) {
  if (strpos($ref,$source)!==false) {
    setcookie("sevisitor", 1, time()+3600, "/", ""); 
function wpbeginner_from_searchengine(){
  global $sevisitor;
  if ($sevisitor==true || $_COOKIE["sevisitor"]==1) {
    return true;
  return false;

Note: In the setcookie line, be sure to change to your own site domain.

Then simply open where you want to place this ad or special content (mostly in single.php however it can be any other file like sidebar.php etc), and paste the following:

<?php if (function_exists('wpbeginner_from_searchengine')) {
  if (wpbeginner_from_searchengine()) { ?>
<?php } } ?>

The code above analyzes whether the Referrer agent is from any type of Search URL which includes Google, Yahoo, Delicious, etc. If a visitor’s browser says that the Referrer Agent is from any search site that we have specified, it will store a cookie on their browser called ‘sevisitor’ for a duration of 1 hour from the time they visited your site. Most search visitors do not go on the second page, but if your site is optimized to increase pageviews or has interesting content then, they will visit additional pages. In that case, WordPress will display the Search Engine Specific Ad that you have specified to these users for the duration of one hour from the time they first visited your site. If this user bookmarks your site and comes back to it one day later because they like your site, then they will be considered your regular reader and will not see the Search Engine specific content.

We hope that you will utilize this code to increase your ad revenue. Feel free to share this article with your friends if you like it.

Source: Scratch99

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit – a collection of WordPress related products and resources that every professional should have!

Reader Interactions

19 CommentsLeave a Reply

  1. Would be great setting a shortcode for this, then you can set it on a widget or in any post/page…

    Nice piece of code brow!

    • We’ll certainly consider a method for that the next time we review this code :)


    • Your cache would show users the standard version of the site as that is what it would normally have saved for most users


  2. Can I face a google penalty if I disable “facebook comments widget” or any widget section of my WP site for search visitors…

    PS: You can add .bing. to your code.

  3. I’ve used this for a while. It also works in blogger blogs. But the problem is, if the ads aren’t shown, then either that space has to be collapsible or some other ad or image should be shown, or else, the ad space looks blank.

  4. This is a really cool idea, but its biggest drawback is that it won’t work properly if you’re using any sort of WP cache plugin (as most are, or should be!).

    I took the concept and reworked it with JavaScript instead, but I wonder if there’s a better way…

      • I am not if my ads are showing. I have try this code but I don’t have other computer to preview my ads. Right now it is not showing even if I browse it coming from Google search engine.

  5. Great idea lowering impressions whilst increasing click-throughs can only help your earning potential.

    A nice simple piece of code which is easily integrated.

Leave A Reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.