Feb 122015
 
Artículo Administración de Servidores

Google Webmaster Tools ofrece una abundante información sobre el estado de un sitio web. Pero para integrar esta información en un sistema que permita, por ejemplo, generar alertas cuando se cumplan determinadas condiciones, es necesario disponer de un procedimiento que permita descargar esta información de manera automatizada.

En este artículo se presenta una utilidad escrita en PHP que implementa esta funcionalidad.

1. Descarga de la aplicación

La aplicación GWTData está disponible en github. Para descargarla, accedemos a la página:

https://github.com/eyecatchup/php-webmaster-tools-downloads

Desde allí podemos descargar un fichero zip “php-webmaster-tools-downloads-master.zip”. En su interior se encuentra el fichero “gwtdata.php”, que contiene la clase GWTdata.

2. script de descarga

Para descargar un informe de GWT, en el mismo directorio en el que se encuentra el fichero “gwtdata.php”, preparamos un script “descarga.php”, que utilizará la clase GWTdata:

<?php
    include 'gwtdata.php';
    try {
        $email = "username@gmail.com";
        $password = "******";

        # If hardcoded, don't forget trailing slash!
        $website = "http://www.domain.com/";

        # Valid values are "TOP_PAGES", "TOP_QUERIES", 
        # "CONTENT_KEYWORDS", "INTERNAL_LINKS",
        # "EXTERNAL_LINKS", "SOCIAL_ACTIVITY", and "LATEST_BACKLINKS".
        $tables = array("TOP_QUERIES");

        $gdata = new GWTdata();
        if($gdata->LogIn($email, $password) === true)
        {
            $gdata->SetTables($tables);
            $gdata->DownloadCSV($website);
        } else {
            echo "Login incorrecto\n";
        }
    } catch (Exception $e) {
        die($e->getMessage());
    }

Deberemos editar el script para introducir nuestro usuario y contraseña de acceso a GWT (líneas 4  5), y el sitio web (línea 8)

En la línea 13 se especifican los informes que deseamos descargar, en un array $tables. Actualmente, la librería no permite especificar más de dos informes en este array.

3. Habilitar el acceso a GWT desde aplicaciones menos seguras

Cuando probamos por primera vez a descargar un informe, puede ocurrir que el script finalice su ejecución con el mensaje “Login incorrecto”, a pesar de haber introducido el usuario y la contraseña correctas en las líneas 4 y 5. Esto puede deberse a que la cuenta tiene inhabilitado el acceso desde aplicaciones menos seguras, y sólo permite conectarse desde un navegador web con protocolo HTTPS. Si es así, Google nos enviará un mensaje de correo informándonos del intento de acceso:

Hi Openalfa, 

We recently blocked a sign-in attempt to your Google Account [openalfa@gmail.com]. 

Sign-in attempt details
Date & Time: Thursday 12 February, 8:04 pm CET 
Location: Madrid, Spain 

If this wasn't you
Please review your Account Activity page at https://security.google.com/settings/security/activity to
see if anything looks suspicious. Whoever tried to sign in to your account knows your password;
we recommend that you change it right away. 

If this was you
You can switch to an app made by Google such as Gmail to access your account (recommended) or change
your settings at https://www.google.com/settings/security/lesssecureapps so that your account is no
longer protected by modern security standards. 

To learn more, see https://support.google.com/accounts/answer/6010255.

Como vemos, en el propio mensaje explica cómo corregir el problema, accediendo a la configuración de seguridad de la cuenta en la url:

https://www.google.com/settings/security/lesssecureapps

enable-lesssecure-app

 

y seleccionando “Turn on”.

4. Informes descargables

4.1. TOP_PAGES

El fichero descargado se llama TOP_PAGES-website-YYYYmmDD-HHMMSS.csv, y contiene un informe en formato CSV, con la relación de las páginas del sitio web que han tenido un mayor número de accesos.

Ejemplo:

TOP_PAGES-blog.openalfa.com-20150212-191957.csv

Page,Impressions,Change,Clicks,Change,CTR,Change,Avg. position,Change
http://blog.openalfa.com/como-implementar-wsdl-soap-en-php,4954,40%,821,38%,17%,-0.2,6.0,-0.2
http://blog.openalfa.com/como-renombrar-una-base-de-datos-en-mysql,2515,44%,776,35%,31%,-2.0,3.3,
http://blog.openalfa.com/restricciones-de-clave-externa-en-mysql,5911,42%,709,29%,12%,-1.0,7.6,-0.3
http://blog.openalfa.com/como-cambiar-de-nombre-un-fichero-en-java,2606,36%,685,22%,26%,-3.0,2.8,-0.4
http://blog.openalfa.com/como-leer-y-escribir-ficheros-json-en-java,3651,25%,666,30%,18%,0.6,4.7,-0.2
...

4.2. TOP_QUERIES

Este informe en formato CSV contiene las búsquedas realizadas por los usuarios en Google para las que aparecieron páginas del sitio en los resultados de búsqueda, y el total de ocasiones en que se hizo click para acceder a ellas.

Ejemplo:

TOP_QUERIES-blog.openalfa.com-20150212-191957.csv

Query,Impressions,Change,Clicks,Change,CTR,Change,Avg. position,Change
captura de pantalla sony xperia sp,165,-9%,111,5%,67%,9.0,1.1,0.2
captura de pantalla xperia sp,175,-9%,92,-29%,53%,-10,1.2,-0.2
renombrar base de datos mysql,116,13%,83,4%,72%,-6.0,1.0,
xsd,1265,23%,69,28%,5%,0.2,5.4,
...

4.3. CONTENT_KEYWORDS

Este informe contiene una serie de registros con los siguientes campos:

  • Keyword – La palabra clave presente en el contenido del sitio
  • Occurences – El número de veces que aparece dicha palabra clave en el contenido del sitio
  • Variants encountered – La palabra clave en plural, sinónimos y otras variaciones encontradas, separadas por comas y encerradas entre comillas
  • Top URLs – Las URLs de las páginas en las que la palabra clave es más relevante. las urls están separadas por el carácter “:”, y la lista está encerrada entre corchetes cuadrados “[” y “]”

Ejemplo:

CONTENT_KEYWORDS-blog.openalfa.com-20150212-152943.csv

 Keyword,Occurrences,Variants encountered,Top URLs
 blog,2448,"blog, blogs",[http://blog.openalfa.com/como-configurar-un-feed-rss-en-un-blog-wordpress:
 http://blog.openalfa.com/como-implementar-suscripciones-por-correo-en-wordpress-con-jetpack:
 http://blog.openalfa.com/como-instalar-y-configurar-wordpress:
 http://blog.openalfa.com/introduccion-a-jetpack-de-wordpress:
 http://blog.openalfa.com/como-incluir-un-video-en-un-blog-de-wordpress:
 http://blog.openalfa.com/como-recuperar-un-sitio-wordpress-que-ha-sido-atacado:
 http://blog.openalfa.com/como-hacer-el-seguimiento-de-un-sitio-web-con-subdominios-en-analytics:
 http://blog.openalfa.com/como-instalar-un-blog-multi-idioma-con-wordpress]

Nota: Aunque el registro que aparece en el ejemplo está en una única línea, aquí lo hemos dividido en varias para hacerlo más legible.

En el registro se indica que la palabra “blog”, en singular o en plural “blogs”, aparece 2448 veces en el contenido del sitio indexado por Google.

4.4. INTERNAL_LINKS

Este informe contiene la relación de páginas del sitio, con el número de enlaces hacia ellas desde otras páginas del sitio.

Ejemplo:

INTERNAL_LINKS-blog.openalfa.com-20150213-154247.csv

Target pages,Links
http://blog.openalfa.com/,203
/informacion,201
/indice-de-articulos-sobre-programacion-en-php,52
/indice-de-articulos-sobre-programacion-en-java,22
/como-enviar-emails-desde-un-script-php,14

4.5. EXTERNAL_LINKS

Este informe contiene la relación de dominios desde los cuales se enlaza a páginas del sitio, indicando el número de enlaces encontrados en ellos, y el número de páginas del sitio enlazadas.

Ejemplo:

EXTERNAL_LINKS-blog.openalfa.com-20150213-154247.csv

Domains,Links,Linked pages
blogspot.com,18,7
wordpress.com,17,5
tumblr.com,11,1
...

En este ejemplo, en el primer registro vemos que hay 18 enlaces encontrados en páginas de blogspot.com, apuntando a 7 páginas distintas de nuestro sitio.

4.6. LATEST_BACKLINKS

En este informe se relacionan las urls de otros dominios en las que se han encontrado enlaces a páginas del sitio, indicando la fecha en la que fueron descubiertos.

Ejemplo:

LATEST_BACKLINKS-blog.openalfa.com-20150213-154247.csv

Links,First discovered
"http://forumsmysql.helloresource.com/read.php?71,603681,603681,quote=1",2015-02-08

Descarga del  informe de errores de rastreo

Las primeras versiones de la clase GWTdata permitían también descargar el informe de errores de rastreo del sitio (CRAWL_ERRORS), pero el autor ha movido esta funcionalidad a un script específico, que se puede descargar desde:

https://github.com/eyecatchup/GWT_CrawlErrors-php

Artículos relacionados

Indice de artículos sobre programación en PHP

 Publicado por en 6:58 pm

 Deja un comentario

(requerido)

(requerido)