Yo, robot IV – White/Gray/Black Hat SEO – El Text to HTML ratio


YoRobot4 - Text to HTML ratio

El contenido es el rey para el posicionamiento, rezan muchos SEOs y muchas herramientas para SEOs. He leído por Internet que muchos hablan de que lo más importante para posicionar las páginas web es que el contenido sea bueno, que sea geniuno, interesante para el usuario.

Desde nuestro punto de vista, tenemos varios enfoques para hacernos una idea de si el contenido de una web es bueno. El más sencillo es la tasa que hay entre el texto y el código HTML, CSS y Javascript de nuestra web. Realmente, es la tasa entre el texto y el HTML, CSS y Javascript, aunque muchos se olvidan de que no sólo hay HTML.. Y muchas veces este CSS y Javascript puede ser tanto que la tasa de texto resultante baje demasiado. Todo esto se reduce en la tasa llamada Text to HTML ratio.

Es decir, que tenemos que reducir el código HTML, CSS y Javascript y aumentar el contenido interesante para el usuario. Ten en cuenta que no sólo bastará con rellenar al tun tun con textos, porque ya incluso Google lleva un par de años teniendo en cuenta si realmente el texto es interesante para el usuario o no. Esto lo puede averiguar fácilmente mediant Google Analytics, por ejemplo, si la persona llega a la web, pero sale rebotado en menos de 1 minuto entonces el contenido es obvio que no es interesante.

Pero volvamos al enfoque que llevamos, tenemos que conseguir tener bien de texto en nuestras webs.. He estado buscando y buscando por Internet, y no ha habido manera de encontrar un consenso para construir la fórmula. Algunos SEOs dicen que se calcula con una fórmula, otros con otra bastante distinta. Pero la mayoría van coincidiendo en lo siguiente:

Text to HTML ratio = 100 * longitud del contenido de texto visualizable / longitud total de la página;

Cómo se construye

Con un sencillo ejemplo se verá tan claro que no hará falta muchas explicaciones. Supongamos estos resultados:

Full response length: 123937
Text: 15503
HTML: 108434
Text ratio: 12.51%
HTML ratio: 87.49%
Text to HTML ratio: 12.51%

El Full response lenght es la cantidad de caracteres devueltos por el servidor al navegador en una petición. De éstos 123 937, sólo 15 503 son texto que se visualizan como tal al pintar la web. Es decir, sólo 15 503 caracteres que el usuario que navega puede leer en el navegador de la web en dicha página. El resto, 108 434 letras, son letras en código HTML, CSS y Javascript. Es decir, que el 87.49% de la web se dedica a pintar bonito ese 12.51%. Es poco ¿verdad? Sí, tengo que mejorarlo 😀 no voy a decir de qué web es.. 😀

Esto quiere decir, que para pintarle al usuario en el navegador un contenido de 15 503 caracteres, se han usando 108 434 caracteres en HTML, CSS y Javascript. Recomiendan estar por encima del 15%, si es más del 25% mejor que mejor. Los robots indexadores utilizan este ratio para ponderar las páginas web a priori, para hacerse una idea de si el contenido de las páginas es mejor o peor. Es un gran indicador para tí para hacerte una idea de si tu página está proporcionalmente trabajada.

El código

Una vez más, a modo de code-kata, en PHP es bien sencillo de calcular este ratio:

<?php

include 'vendor/autoload.php';
$curl = new Curl\Curl();
//$dom = new DOMDocument();

$curl->get($argv[1]);
if (preg_match('/text\/html/', $curl->getOpt(CURLINFO_CONTENT_TYPE))) {
    //@$dom->loadHTML($curl->response);

    $fullResponseLength = strlen($curl->response);
    $theText = preg_replace('/(<script.*?>.*?<\/script>|<style.*?>.*?<\/style>|<.*?>|\r|\n|\t)/ms', '', $curl->response);
    $theText = preg_replace('/ +/ms', ' ', $theText);
    $textLength = strlen($theText);
    $htmlLength = $fullResponseLength - $textLength;
    $textRatio = 100 * $textLength / $fullResponseLength;
    $htmlRatio = 100 * $htmlLength / $fullResponseLength;

    echo 'Full response length: '.$fullResponseLength.PHP_EOL
        .'Text: '.$textLength.PHP_EOL
        .'HTML: '.$htmlLength.PHP_EOL
        .'Text ratio: '.number_format($textRatio, 2, '.', '').'%'.PHP_EOL
        .'HTML ratio: '.number_format($htmlRatio, 2, '.', '').'%'.PHP_EOL
        .'Text to HTML ratio: '.number_format($textRatio, 2, '.', '').'%'.PHP_EOL;
} else {
    echo 'No text/html contenty type, we cannot calculate Text to HTML ratio!'.PHP_EOL
        .'Returned. '.$curl->getOpt(CURLINFO_CONTENT_TYPE).PHP_EOL;
}

He metido la librería de Composer para el Wrapper de cURL que tan bien funciona. Para que esto funcione necesitas el fichero de Composer como el siguente:

{
    "require": {
        "curl/curl": "^1.7"
    }
}

Y ejecutar desde línea de comandos lo siguiente para que se actualicen las librerías:

$ composer update

También puedes actualizar tu composer y dejarle a Composer que te lo actualice poniendo lo siguiente desde línea de comandos:

$ composer require curl/curl

Ahora bien, copiando el script de arriba, y poniendolo en un fichero .php, podemos ejecutarlo desde línea de comandos y veremos el resultado del ratio de cualquier página web. Este script se usa de la siguiente forma:

$ php script.php https://tu-dominio.com/tu-pagina.html

Espero que sirva, un saludo!

Compartir..

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *