Extraer palabras clave de la URL de la página de resultados de Google con PHP

La transparencia con la que Google nos muestra las variables utilizadas para sus búsquedas en la URL de la página de resultados puede sernos de gran utilidad a la hora de conocer las palabras clave con las que se busca y, a veces, encuentra nuestro sitio web.

Analizando la URL de la Página de Resultados Google

La mejor forma de verlo y entenderlo es con un ejemplo. Si insertamos la palabra «búsqueda» en el formulario, obtendremos la siguiente URL en la página de Resultados:
http://www.google.es/search?hl=es&q=busqueda&btnG=Buscar&meta=

Podemos observar que consta de cuatro variables:

hl= Es el idioma que nos será mostrado en la página de resultados. Podemos probrar cambiando el valor por eu (euskera), en (inglés), ca (catalán), de (alemán) … Para más información www.google.cl/language_tools.
q= Contiene el Query_String o la cadena de consulta, que el motor de búsqueda utiliza para mostrar los registros mostrados en las páginas de resultados.
btnG= Muestra el value del botón del formulario de búsqueda.
meta= Utilizada para acotar las búsquedas. Puede contener valores que limiten el resultado de la búsqueda a páginas de un determinado país (meta=cr%3DcountryES) o a páginas escritas en determinado idioma (meta=lr%3DDlang_es).

El valor que nos interesa aquí es el de la variable q, es decir, la variable que contiene la cadena de consulta que el usuario a utilizado a la hora de realizar la búsqueda.

La Matriz $_SERVER de PHP

PHP tiene una serie de variables y matrices predefinidas entre las cuales se encuentra el array $_SERVER.

Se trata de una variable ‘superglobal’, o global automática de tipo array. Esto simplemente quiere decir que está disponible en todos los contextos a lo largo de un script. Contiene información tal como cabeceras, rutas y ubicaciones de scripts y sus entradas son creadas por el servidor web en el que está alojado el site.

La entrada «HTTP_REFERER» del array $_SERVER contiene la dirección de la página (incluidas variables enviadas mediante GET) desde la que el navegador saltó a la página actual.

Aquí os dejo una función que utiliza la entrada «HTTP_REFERER» y analiza su contenido para extraer el valor de la variable q contenida en la URL de la página de resultados de Google.

<?php
function GoogleQuery ()
{

//Comprobamos que la pagina referente pertenece a Google
if (strpos ($_SERVER[«HTTP_REFERER»], «google»))
{

//Almacenamos en la variable $string el contenido de la variable $_SERVER[«HTTP_REFERER»]
$string = $_SERVER[«HTTP_REFERER»];

//Inicialimamos a 0 el valor de la variable que nos indicara la longitud de la cadena contenida en la variable q.
$longQuery = 0;

// — Encontramos la variable q y su final delimitado por &
for ($i=0; $i < strlen ($string); $i++){
if ($string[$i] == ‘q’)
{
for ($n=$i; $n < strlen ($string) ;$n++)
{
if ($string[$n] == ‘&’)
{
// — Extraemos la subcadena a partir de las posiciones de (inicio)$i+2 [excluimos ‘q=’] y (fin)$n-2 [adelantamos 2 posiciones el final de la cadena resultante]
$q = substr ($string, $i+2, $longQuery-2);
break;
}
$longQuery ++;
}
break;

}

}

//reemplazamos los símbolos + por espacios en blanco
$q = str_replace(‘+’,’ ‘,$q);

}

return $q;

}

//Mostramos el resultado haciendo una llamada a la función
echo GoogleQuery ();
?>

Podéis encontrar la clase Google Query, aprobada por la comunidad de Programadores PHP phpclasses.org AQUÍ.

Funcion GoogleQuery:
GoogleQuery

5 Responses to Extraer palabras clave de la URL de la página de resultados de Google con PHP

  1. […] Query, clase de PHP aprobada por PHPClasses Google Query se trata de una sencilla clase que publiqué hace algunos días en este […]

  2. diego romero dice:

    la verdad no entendi absolutamente nada
    pero igual bale el post
    chao y gracias de todas maneras

    PD:para otra ves explayate mas simple
    porfi 😉

  3. Fernando dice:

    Hola

    Gracias es muy interesante y util.

    No es por ser exigente pero se podria poner un texto y las palabras con las que vino de Google.

    Cuando entran a nuestra web, nos podrias mostrar el codigo para hacerlo?

    La otra duda uso supercache eso no afecta a mi pagina no?

    Saludos

  4. pablo dice:

    Que yo sepa Google no realiza busquedas en gallego ni en euskera, en catalán si. De hecho, he probado la url con eu y con gl y los resultados no cambian.Lo que si modifica es el idioma de la interfaz de búsqueda.
    En cuanto al post me ha resultado muy didáctico y muy útil.
    Muchas Gracias.

  5. accesomayores25 dice:

    Muy interesante y util. gracias

Deja un comentario