Capturar las palabras clave de los buscadores

Hay veces que para algunas funcionalidades, o para personalizar más las páginas en función de los intereses de los lectores, nos interesa recoger en el código de la página la palabra clave que han escrito en el buscador y que les ha llevado a nuestra web o blog.

Si estamos usando wordpress, haciendo uso del Php, que es el lenguaje con el que están programadas las páginas en esa plataforma, podremos recoger esas palabras e incluso mostrarlas mediante un mensaje en nuestra página.

Un ejemplo de un posible uso de esta técnica es el que he habilitado en mi blog para mostrar un contenido extra en caso de que los usuarios vengan de Google buscando una serie de palabras que he definido. Por ejemplo si buscan las palabras «dinero facil» en google, y pulsan en el resultado que se refiere a mi blog, al entrar verás que te sale lo siguiente:

mostrar keywords de google
donde vereis en azul la palabra que han escrito en el buscador.

Esto te puede abrir un abanico de posibilidades en cuanto a la interacción que puedes tener con tus lectores, asi como podrá permitirte el personalizar algunos de los contenidos en función de lo que realmente están buscando en tu página, como es el caso del ejemplo que os he mostrado que he aplicado en mi página.

Como sé de qué keyword han llegado a mi blog desde google?

Para ello tendremos que hacer un par de pasos.

Parto de la suposición de que sabeis moveros un poco entre el código php de wordpress. Sino fuera asi y tuvierais alguna duda, podeis preguntar e intentaré ayudaros.

Lo primero que tendrás que hacer es crear un archivo nuevo que llamarás keywords_class.php (puedes llamarlo como quieras, pero asi lo pongo para el ejemplo).

En él copiarás el siguiente código:

<?php
class keywords
{
private $referer;
private $_e;
public $keywords;

 

public function __construct()
{
if($_SERVER['HTTP_REFERER'])
{
if(preg_match("#.google|search.yahoo|.bing#", $_SERVER['HTTP_REFERER']))
{
$this->referer = urldecode($_SERVER['HTTP_REFERER']);
}
else
{
return;
}
}
else
{
return;
}
}

private function getSeparators()
{
$this->_e = (preg_match("#?q=|?p=#", $this->referer)) ? "?" : "&";
}

public function getKeywords()
{
if(!empty($this->referer))
{
$this->getSeparators();
//google
if(preg_match("#.google#", $this->referer))
{
$m_ = preg_match("#{$this->_e}q=(.+?)&#si", $this->referer, $this->keywords);

 

if($m_ == 0)
{
return false;
}
}
//yahoo
elseif(preg_match("#search.yahoo#", $this->referer))
{
$m_ = preg_match("#{$this->_e}p=(.+?)&#si", $this->referer, $this->keywords);

if($m_ == 0)
{
return false;
}
}
//bing
elseif(preg_match("#.bing#", $this->referer))
{
$m_ = preg_match("#{$this->_e}q=(.+?)&#si", $this->referer, $this->keywords);

if($m_ == 0)
{
return false;
}
}
else
{
return false;
}

return $this->keywords[1];
}
else
{
return false;
}
}
}
?>

 

Ese archivo lo guardas y lo subes por ftp a tu servidor en el mismo directorio donde esté el archivo index.php de la carpeta de tu theme actual. Otra opción podría ser guardarlo en otro sitio para luego hacer referencia a él desde cualquier otro theme que puedas usar. Esto es elección de cada uno.

Después lo que tendrás que hacer para mostrar la palabra clave por la que han encontrado tu web desde el buscador será escribir lo siguiente en el sitio dentro del código donde quieras que aparezca.

<?php
require_once('keywords_class.php');

$keywordsObj = new keywords();
$keys = $keywordsObj->getKeywords();


if($keys)
print $keys;
?>

De esa forma podréis capturar las palabras por las que han llegado a vuestra página.

¿ Habéis usado esta técnica alguna vez para algo? Agradecería un comentario donde nos lo cuentes!

Fuente: CodeProject

Rate this post

Esta entrada tiene 14 comentarios

  1. Pingback:
    Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Capturar las palabras clave de los buscadores

  2. Pingback:
    Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Tweets that mention Capturar las palabras clave de los buscadores -- Topsy.com

  3. Pingback:
    Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    SEO Web


  4. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    pintor economico

    gracias por la informacion, me viene muy bien


  5. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    SEO Marketing

    También es muy interesante, una vez hemos visto cómo acceden a nuestra página, contrastar qué búsquedas dejan dinero y cuáles, aunque se reciban muchas visitas, no dejan nada. Esto te puede orientar si lo que buscas es aumentar tus ingresos. Si usas AdSense, Google Analytics tiene una nueva función que te permite combinar toda la información de Analytics con tus propios ingresos de AdSense, y si sabes interpretar todos estos datos, te aseguro que mejorarás tu rendimiento.

    Enhorabuena por tu blog, muy interesante! Saludossss!


    1. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
      Javier Elices

      Tienes toda la razón. Sabiendo interpretar los resultados que ves en Google Analytics sobre Adsense puedes mejorar tus ganancias dando una mayor visibilidad a las páginas que ves que te están generando más ingresos. Muchas gracias por tu comentario y espero verte por aquí de nuevo. Un saludo!


  6. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    crystyta

    Hola que tal? verás soy un poco novata en esto y el segundo códgigo que pones no sé donde tengo que ponerlo. ¿Podrias decirme donde? Es que intente pegarlo en un widget de texto pero no funcionó. ¿Supongo que debo pegarlo en el fichero php que he subido anteriormente por ftp? pero ¿como visualizo despues las palabras clave?

    Gracias de antemano


  7. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Javier Elices

    Hola Crystyta, el código tienes que pegarlo donde quieres que aparezca la palabra desde la que han llegado del buscador. Este código se trata de un código php, por tanto en principio no se puede poner en ningún widget. Si tu blog lo tienes en wordpress, existe un plugin que te permite insertar php en los widgets, así que con ese podrías hacerlo. Este widget se llama «Executable PHP widget». Las palabras se visualizarán gracias a la línea que ves que pone «print $keys;» .
    Si no entiendes bien, o no consigues hacerlo pregúntame otra vez y te ayudaré! Un saludo y gracias por comentar!


  8. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    crystyta

    hola
    instalé el plugin y metí el codigo en un widget y me aparece en el widget esto: getKeywords(); if($keys) print $keys; ?> No sé si es lo que debe aparecer o que.


  9. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Javier Elices

    Si te aparece eso es que no te está interpretando el código php ya que te está poniendo directamente el código y no los valores que este debería devolver. Para que veas un ejemplo de lo que debería poner, vete a google y pon las palabras «dinero facil» . Donde veas en los resultados este blog, pulsa sobre él para entrar. Verás una parte nueva en la que pone «Si has llegado a esta página buscando las palabras: dinero facil , te recomiendo… » . Ahí está capturando la palabra «dinero facil» que es la palabra desde la que has encontrado este blog buscando en google. Por tanto eso es lo que te debería salir. Un saludo.


  10. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    crystyta

    Ok pues entonces yo creo que es fallo del widget o fallo del plugin.

    Olvidemonos del plugin. Dime donde podria pegar el el segundo codigo php a ver si así sale.

    saludos


  11. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Javier Elices

    Pues puedes ponerlo por ejemplo en el archivo index.php y te aparecerá en la pantalla principal de tu blog. Ponlo al final del fichero (antes del simbolo «?>» ) y verás como te sale en la parte de abajo del blog, justo arriba del pie de página (footer).Luego ya lo moverías a la parte que quisieras que apareciera(si quieres te puedo ayudar con eso también) Si quieres que aparezca solo en la página de los artículos, y no en la principal, puedes ponerlo en single.php . Suerte y ya nos cuentas! Un saludo.


  12. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    crystyta

    Verás. Mi archivo index.php demi theme muestra el siguiente código:

    <?php
    get_header();

    if (have_posts())
    {
    while (have_posts())
    {
    art_post();
    }
    art_page_navi();
    } else {
    art_post_box(
    __('Not Found', 'kubrick'),
    '’ . __(‘Sorry, but you are looking for something that isn’t here.’, ‘kubrick’) . »
    . «rn» . art_get_search());
    }

    get_footer();

    ¿Dónde crees tú que debería pegarlo? Me he sorprendido de que venga tan poco código.

    Gracias por tu grandísima ayudaaaaa


  13. Notice: Only variables should be assigned by reference in /home/monetizados/web/monetizados.com/public_html/wp-content/plugins/subscribe-to-comments/subscribe-to-comments.php on line 590
    Javier Elices

    Hola Crystyta, te he escrito un mail para responderte y seguir ayudándote por ahí! un saludo!

Deja una respuesta

  Acepto la política de privacidad