Optimizing StatpressOptimizando Statpress

Statpress is a plugin for tracking real-time traffic. Currently, its update is a little slow (or completely stopped), which has caused some revamps as StatPress Dashboard Widget Lite , StatPress Reloaded , StatpressCN , StatPress SEOlution and some other versions in development.

The good, the bad, the ugly (?)

I will talk about Statpress , the original version. The information provided by this plugin is very wide and gives a detailed measure of site traffic. It has detailed information from the visitor, its location , pages visited,  operating system and browser used. Also it shows what were the latest returns searches, etc. etc. etc. etc. etc. In short, provides precise indicators for every day use.

To summarize: I recommend it. In future posts I will come back to him and also  Google Analytics and other statistics plugins.

Statpress es un plugin para llevar un seguimiento del tráfico de un sitio WordPress en tiempo real. Actualmente, la actualización de este plugin está un poco lenta (o se detuvo completamente) lo que ha originado algunas secuelas como StatPress Dashboard Widget Lite , StatPress Reloaded , StatpressCN , StatPress SEOlution y algunas versiones más que se encuentran en desarrollo.

Lo bueno, lo malo, lo feo(?)

Hablaré de Statpress, la versión original. La información provista por el plugin es muy amplia y da una medida precisa del tráfico de un sitio. Permite obtener información en detalle de quien accede, de donde procede, que páginas visita, que sistema operativo posee y que navegador usa. Tambien devuelve cuales fueron las últimas búsquedas realizadas, etc. etc. etc. En definitiva, la información es lo suficientemente amplia como para proporcionarnos indicadores muy precisos dia a dia.

Resumamos: lo recomiendo. En próximos posts volveré a hablar de el y tambien de Google Analytics y otros plugins estadísticos.

Heavyweight: data and indexing bots

All the detailed information provided by the plugin is based on a heavy table wp_statpress . This is the nerve center of the plugin and where it stores all the information to compile statistics.

Each site visit is recorded in this table and this is itself the Achilles heel of the system. In a regular site this table growth is alarming.  If the site is indexed correctly, the indexing agents (spiders) enter many times a day to the site to index the content. The spider info is (optionally) recorded.

Y have live example: a site with about 400 unique visitors daily, whose content is updated daily, the income of spiders was as many as 1000 visitors a day. After a period of with daily content updates (a site which is added about one to 5 posts per day) (period= aprox. 6 months)  the number of spiders surged to more than 10,000 bots per day and raising (but the visitors were slowly increasing to 500). A one record per visit, the base grew over 10,000 rows daily.  Unless you are interested in statistics about spiders, it is preferable to avoid registering Statpress agents to save space.

  • Tip 1: If the site begins to have ‘critical mass’ of visitors (> 300 would be an acceptable value), disable the spider statistics.

Now suppose that the spider are disabled. Fast forward to the future in the same site and think we have a site a little more traffic (+1000) unique visitors daily. This implies that at least we have 1000 records per day (in a worst case scenario).

According to the tests I made, after 150,000 –  200,000 records (5-7 or less), the statistical calculation done by the plugin could be seriously compromised by delaying more than reasonable.

  • Tip 2: If possible, index the tables.

This script is valid for Statpress plugin:

alter table wp_statpress
modify column date int(8) NULL NULL,
modify column time time NULL NULL,
modify column ip varchar(15) NULL NULL,
modify column nation varchar(10) NULL NULL,
modify column os varchar(64) NULL NULL,
modify column browser varchar(64) NULL NULL,
modify column searchengine varchar(64) NULL NULL,
modify column spider varchar(64) NULL NULL,
modify column feed varchar(32) NULL NULL,
modify column user varchar(64) NULL NULL,
modify column timestamp timestamp NULL NULL,
add index spider_nation (spider, nation),
add index ip_date (ip, date),
add index (agent(255)),
add index (search(255)),
add index (referrer(255)),
add index feed_spider_os (feed, spider, os),
add index (os),
add index date_feed_spider (date, feed, spider),
add index feed_spider_browser (feed, spider, browser),
add index (browser);

Source: Improve the performance of the WordPress plugin Statpress (and your blog)

  • Tip 3: unless you want to keep the data for historical reasons, clear the data after an acceptable period (3 months or whatever is decided depending on traffic). You can set this in the options page.

Improvements after applying the changes to the table. (Sample of approximately 200,000 records.)

View Gráphic (only last  7 days) 39 seconds -> 17 seconds (x2, 3 faster)

View Details 47 seconds -> 8 seconds (x5, 9 faster)

Spy 56 seconds -> 9 seconds (x6, 2 fast)

So the optimization is worthwhile.

The last thing I did was download the latest version of Statpress and make these changes.
This link it is a modified version with indexing options. Is in BETA, download at your own risk.

El peso pesado: los datos y los robots de indexación

Toda la información detallada que provee el plugin se basa en la recopilación de datos en una pesada tabla wp_statpress. Este es el centro neurálgico del plugin y de donde se almacena toda la  información para elaborar las estadísticas.

Cada visita en el sitio es registrada en esta tabla y esta es a su vez el talón de Aquiles del sistema. En un sitio regular el crecimiento de esta tabla es alarmante. Si el sitio se indexa correctamente, los robots de indexación ingresan numerosas veces para ir indexando el contenido.

Ejemplo: en un sitio de alrededor de 400 visitantes únicos diarios , cuyo contenido se actualizaba a diario, el ingreso de los robots era tanto como 1000 visitas diarias. Luego de un período de de ingreso continuo de contenido (un sitio en el cual se agrega alrededor de una a 5 entradas diarias) la cantidad de robots se disparó a más de 10.000 robots diarios (y en aumento). A un registro por visita, la base crecía más 10.000 registros diarios. A no ser que esté interesado en estadisticas acerca de los robots, es preferible que Statpress evite registrar los agentes para ahorrar espacio.

  • Consejo 1: si el sitio comienza a tener ‘masa critica’ de visitantes (>300 sería un valor aceptable) , desactivar las estadísticas de los agentes.

Supongamos ahora que los agentes están desactivados. Cambiemos de escenario, vayamos al futuro y pensemos que tenemos un sitio de tráfico un poco mayor (+1000) visitantes únicos diarios. Esto implica que como mínimo tendremos 1000 registros diarios (en un perfecto peor caso!).

Segun las pruebas que he realizado, luego de los 150.000 – 200.000 registros el cálculo estadístico que realiza el plugin puede verse seriamente comprometido, demorando más que lo razonable.

  • Consejo 2: si es posible, indexar las tablas.

Esta optimización a la tabla wp_statpress es válida para el plugin Statpress.

alter table wp_statpress
modify column date int(8) NULL NULL,
modify column time time NULL NULL,
modify column ip varchar(15) NULL NULL,
modify column nation varchar(10) NULL NULL,
modify column os varchar(64) NULL NULL,
modify column browser varchar(64) NULL NULL,
modify column searchengine varchar(64) NULL NULL,
modify column spider varchar(64) NULL NULL,
modify column feed varchar(32) NULL NULL,
modify column user varchar(64) NULL NULL,
modify column timestamp timestamp NULL NULL,
add index spider_nation (spider, nation),
add index ip_date (ip, date),
add index (agent(255)),
add index (search(255)),
add index (referrer(255)),
add index feed_spider_os (feed, spider, os),
add index (os),
add index date_feed_spider (date, feed, spider),
add index feed_spider_browser (feed, spider, browser),
add index (browser);

Fuente:  Improve the performance of the WordPress plugin Statpress (and your blog)

  • Consejo 3: a no ser que se deseen mantener los datos por razones históricas, conviene borrar los datos cada un período aceptable (3 meses o lo que se decida en función del tráfico) . Esta opción se establece dentro de las opciones del plugin.

Mejoras luego de aplicar los cambios a la tabla.(muestra de 200.000 registros aprox.)

Ver Gráfico (mostrar 7 días) 39 segundos –>17 segundos (x2,3 más rápido)

Ver Detalles                           47 segundos –>8 segundos  (x5,9 más rápido)

Espiar                                       56 segundos –>9 segundos (x6,2 más rápido)

Asi que la optimización valió la pena.

Lo último que hice fue bajar la última versión de Statpress y hacerle estos cambios.

Este link lleva a una version que realiza el indexado al instalarse. Es una versión BETA, y como tal puede introducir errores.

3 Comments


Leave a Reply

Your email address will not be published Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*