Los co­n­ta­do­res de visitas web o we­b­cou­n­te­rs registran las veces que se visita una página, pre­se­n­ta­n­do esta cifra en el borde inferior de la página principal ge­ne­ra­l­me­n­te y, mientras que su vi­sua­li­za­ción obedece sobre todo a una finalidad re­pre­se­n­ta­ti­va, muchos ad­mi­ni­s­tra­do­res también la utilizan en el marco del análisis web. La mayor parte de los pro­pie­ta­rios de páginas web recurren a las funciones de we­b­cou­n­ter que incluyen los sistemas de gestión de co­n­te­ni­dos y los website builders o los adquieren de alguno de los diversos pro­vee­do­res di­s­po­ni­bles online. Estas so­lu­cio­nes, uti­li­za­n­do a menudo los web bugs fre­cue­n­tes en el análisis de archivos de registro (logfile analysis) o apli­ca­cio­nes Ja­va­S­cri­pt similares, registran datos es­pe­cí­fi­cos sobre cada usuario, que se suman a la simple cifra de visitas.

Si prefieres no depender de un proveedor externo y mantener un control más férreo sobre tus datos, puedes optar por crear un contador de visitas tú mismo e in­te­grar­lo en tu proyecto. Lo único que necesitas es una base de datos y co­no­ci­mie­n­tos básicos de PHP.

Dominios web
Compra y registra tu dominio ideal
  • Domina el mercado con nuestra oferta 3x1 en dominios
  • Función Domain Connect para una co­n­fi­gu­ra­ción DNS si­m­pli­fi­ca­da gratis
  • Registro privado y gratis para mayor seguridad

Descargar un contador de visitas: so­lu­cio­nes gratis y de pago

La opción más sencilla a la hora de instalar un contador de visitas en tu web es, sin duda, descargar una solución ya co­di­fi­ca­da, que puede ser gratuita o de pago. La principal di­fe­re­n­cia entre un modelo y el otro radica en su abanico de funciones. Si se opta por una solución de pago suelen obtenerse a cambio es­ta­dí­s­ti­cas en formato gráfico con datos que van más allá de la mera cifra de tráfico. El grado de exhau­s­ti­vi­dad de esta in­fo­r­ma­ción depende de si el registro de la actividad de los usuarios tiene lugar ex­clu­si­va­me­n­te del lado del servidor o también del lado del cliente. Con todo, en ambos casos se recaban de forma estándar los si­guie­n­tes pa­rá­me­tros fu­n­da­me­n­ta­les:

  • Momento del acceso a la página
  • Dirección IP del usuario
  • Cliente del usuario
  • URL de origen

En función de cómo esté co­n­fi­gu­ra­do, el servidor puede asignar a cada visitante un ide­n­ti­fi­ca­dor ine­quí­vo­co, una cookie de sesión, la primera vez que entra en una página, de forma que en la es­ta­dí­s­ti­ca pueda di­fe­re­n­ciar­se si se trata de la primera página que abre un usuario o ya ha visitado otras antes. Con recursos del lado del cliente como Ja­va­S­cri­pt o Adobe Flash se puede obtener aún más in­fo­r­ma­ción. Gracias a las te­c­no­lo­gías de rastreo puede saberse, por ejemplo, el sistema operativo o las ex­te­n­sio­nes del navegador que utiliza el usuario o incluso la re­so­lu­ción de pantalla de su equipo, in­fo­r­ma­ción que puede de­sem­pe­ñar un papel decisivo en la op­ti­mi­za­ción de la página para di­s­po­si­ti­vos móviles.

No­r­ma­l­me­n­te, los pro­vee­do­res permiten escoger entre una gran variedad de diseños y tamaños. Cuando has escogido el modelo adecuado solo tienes que generar el código HTML para el contador de visitas, para luego in­se­r­tar­lo en el lugar que has reservado para él en la página web.

Crear un contador de visitas: manual paso a paso

Antes de comenzar con el diseño en sí del contador de visitas, se ha de crear la es­tru­c­tu­ra necesaria para ello. No hay que olvidar que los datos que recaba un we­b­cou­n­ter, como los accesos a la página, se han de almacenar en algún lugar para que más tarde pueda mostrar la cifra ac­tua­li­za­da y entregar es­ta­dí­s­ti­cas fiables. Los proyectos pequeños suelen tener su­fi­cie­n­te con un archivo de texto alojado en el servidor e ide­n­ti­fi­ca­do es­pe­cí­fi­ca­me­n­te en el script como su lugar de al­ma­ce­na­mie­n­to, pero a medida que aumenta tanto el tamaño de la página como su tráfico se hace co­n­ve­nie­n­te utilizar una base de datos como MySQL para guardar toda esta in­fo­r­ma­ción. Por eso, antes de comenzar con el script en sí, el siguiente apartado se ocupa de la co­n­fi­gu­ra­ción de la base de datos.

Co­n­fi­gu­rar una base de datos MySQL para un contador de visitas

Enlazar a un contador de visitas con una base de datos conlleva la ge­ne­ra­ción de más pe­ti­cio­nes y por este motivo es mucho más complejo que tomar la in­fo­r­ma­ción de un simple archivo de texto, lo que obliga a evaluar de antemano si su uso es útil en el proyecto o un freno in­ne­ce­sa­rio.

Las celdas que se co­n­fi­gu­ren en la tabla dependen de los datos que se van a registrar y analizar con el contador de visitas, pero cuatro son es­pe­cia­l­me­n­te re­le­va­n­tes:

  • id: la primera celda de la tabla conviene que sea “id”, aunque su uso no es obli­ga­to­rio, y sirve para mantener la claridad y manejar fá­ci­l­me­n­te los registros cuando sea necesario or­de­nar­los, por ejemplo. Para que la base de datos ordene los registros que se vayan generando de forma co­rre­la­ti­va y solo asigne cada número una única vez se han de indicar los pa­rá­me­tros AUTO_INCREMENT y PRIMARY KEY.
  • access_page: esta columna es im­pre­s­ci­n­di­ble porque indica el título de la página en la que se inserta el contador de visitas. Con los pa­rá­me­tros NOT NULL y UNIQUE ga­ra­n­ti­zas que no se creen registros du­pli­ca­dos. Como tipo de datos se puede optar por VARCHAR o por TEXT. Se re­co­mie­n­da, además, indicar la co­di­fi­ca­ción utf8_bin para que puedan vi­sua­li­zar­se co­rre­c­ta­me­n­te las diéresis, tildes, puntos, etc.
  • access_counter: el contador de visitas en sí se alberga en la celda INTEGER “access_counter”. Cada vez que se accede a la “Access-page” aumenta el valor de forma au­to­má­ti­ca de uno en uno.
  • access_date: la fecha y la hora de la visita de una página no es un valor im­pre­s­ci­n­di­ble en la base de datos pero se cuenta no­r­ma­l­me­n­te entre los primeros valores que se recaban cuando se instala un we­b­cou­n­ter. Uti­li­za­n­do el formato TIMESTAMP con el atributo CURRENT_TIMESTAMP se obtienen registros actuales que contienen tanto la fecha como el momento exacto. Si se añade la regla ON UPDATE CURRENT_TIMESTAMP la base de datos introduce la fecha y la hora de forma autónoma sin requerir más acciones de pro­gra­ma­ción.

Crear la función de PHP para el contador de visitas

El lenguaje de pro­gra­ma­ción PHP se ajusta a la pe­r­fe­c­ción para enviar los datos de los usuarios a la base de datos y se­le­c­cio­nar después los datos que el we­b­cou­n­ter necesita. Para poder hacerlo, el script ha de contener una función que sea capaz de llevar a cabo estas tres tareas:

  1. Conectar con la base de datos y poder abrirla.
  2. Su­pe­r­vi­sar co­n­s­ta­n­te­me­n­te la tabla para detectar si un registro ya existe y decidir si aumenta el contador en 1 o crea un registro nuevo con el valor 1.
  3. Responder con el valor actual para que el contador de visitas pueda mostrarlo co­rre­c­ta­me­n­te en la página principal.

Dada la co­m­ple­ji­dad del script, en los si­guie­n­tes párrafos se tratará por separado cada paso de la creación de esta función, que en este manual va a llevar el nombre de “Visitante”.

El código de un contador de visitas en PHP comienza con los pa­rá­me­tros ne­ce­sa­rios para ini­cia­li­zar la base de datos: servidor y pro­pie­ta­rio de la base de datos, sus co­n­tra­se­ñas y nombres de registro así como nombre de la tabla y las celdas que la componen (access_page, etc.). Para que pueda es­ta­ble­ce­r­se la conexión po­s­te­rio­r­me­n­te es necesario in­tro­du­cir los datos correctos.

<?php
function visitante($record) {
    $db_host = "localhost";
    $db_username = "nombre-de-usuario"; 
    $db_password = "contraseña";
    $db_name = "nombre-de-la-base-de-datos";
    $db_table = "nombre-de-la-tabla";
    $counter_page = "access_page";
    $counter_field = "access_counter";

A este fragmento sigue la in­s­tru­c­ción para abrir la base de datos o emitir un mensaje de error si la conexión no se puede es­ta­ble­cer:

$db = mysqli_connect($db_host, $db_username, $db_password, $db_name) or die("Host no disponible")
$db = mysql_select_db ($db_name, $link) or die("Base de datos no disponible")

Hecho esto, ahora se trata de ampliar el script con las líneas con las que se cu­m­pli­me­n­ta la tabla. En este punto es decisiva la de­cla­ra­ción “INSERT…ON DUPLICATE KEY UPDATE” que, combinada con el aumento del valor de la celda en 1, se ocupa de que el we­b­cou­n­ter se actualice co­rre­c­ta­me­n­te si ya existe el registro:

$sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1"
mysqli_query($db, $sql_call) or die("Error al introducir los datos");

Con todo lo dicho hasta ahora la función cumple ya dos de las tres tareas me­n­cio­na­das arriba: es­ta­ble­cer la conexión con la base de datos y crear el registro co­rre­s­po­n­die­n­te o ac­tua­li­zar uno ya presente en la tabla. Ahora el script aún tiene que en­ca­r­gar­se de una tercera misión co­n­si­s­te­n­te en informar a la página web del estado actual del contador de visitas. Para ello debes añadir la petición co­rre­s­po­n­die­n­te a la base de datos (mysql_query) y definir el orden numérico de los re­su­l­ta­dos (mysql_fetch_assoc). En el último paso la función ha de cerrar la base de datos y devolver el resultado por return con las si­guie­n­tes líneas de código:

$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("Error en la petición SQL");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];
mysqli_close($db);
return $x;
    }
?>

Script de PHP para un contador de visitas: código completo

Hasta este punto se ha explicado cada uno de los fra­g­me­n­tos de la función PHP por separado. En este apartado se muestra el script completo con el que añadir un contador de visitas gratis a una página web.

<?php
function visitante($record) {
    $db_host = "localhost";
    $db_username = "nombre-de-usuario"; 
    $db_password = "contraseña";
    $db_name = "nombre-de-la-base-de-datos";
    $db_table = "nombre-de-la-tabla";
    $counter_page = "access_page";
    $counter_field = "access_counter";
    $db = mysqli_connect ($db_host, $db_username, $db_password, $db_name) or die("Host o base de datos no disponible");
    $sql_call = "INSERT INTO ".$db_table." (".$counter_page.", ".$counter_field.") VALUES ('".$record."', 1) ON DUPLICATE KEY UPDATE ".$counter_field." = ".$counter_field." + 1"; 
    mysqli_query($db, $sql_call) or die("Error al introducir los datos");
$sql_call = "SELECT ".$counter_field. " FROM ".$db_table." WHERE ".$counter_page. " = '".$record. "'";
$sql_result = mysqli_query($db, $sql_call) or die("Error en la petición SQL");
$row = mysqli_fetch_assoc($sql_result);
$x = $row[$counter_field];
mysqli_close($db);
return $x;
    }
?>

Integra el script en el documento HTML

Antes de instalar tu contador de visitas PHP en una página, la hoja HTML requiere de algunas mo­di­fi­ca­cio­nes. La primera de ellas consiste en sustituir la te­r­mi­na­ción .html por .php. En segundo lugar, la variable de PHP $page_name en el en­ca­be­za­do de la página ha de recibir un nombre su­fi­cie­n­te­me­n­te explícito:

<?php
    $page_name = "Nombre de la página";
?>

Este nombre, que es el que aparecerá en la celda Access_page de la base de datos, puede co­n­ve­r­ti­r­se en el título de la página con ayuda de la función PHP echo:

<title><?php echo $page_name  ?></title>

Para integrar el script del contador de visitas, llamado aquí we­b­cou­n­ter.php, escribe el comando PHP include en la posición de la web donde tenga que situarse. Al mismo tiempo, envía el contenido de la variable $page_name a la función “Vi­si­ta­n­tes”:

<?php
include "webcounter.php";
$número_accesos = visitantes($page_name);
?>

Tan pronto como el código se encuentra integrado en la página, el script de PHP entra en acción creando el registro co­rre­s­po­n­die­n­te si el título de la página (el contenido de la función $page_name) no existe en la tabla de la base de datos. La celda access_counter acepta el valor 1 y la función informa a la web de que se ha producido un acceso. Si ya figura un registro, el counter de la base de datos aumenta en 1.

Pre­se­n­ta­ción de las cifras de tráfico en la página web

Cuando ya has creado el contador de visitas y este ha comenzado a registrar las visitas de tus usuarios, puedes mostrar la cifra ac­tua­li­za­da en la web. La opción más sencilla es una no­ti­fi­ca­ción en el pie de la página. Para ello solo es necesario un elemento Footer. Mediante un comando echo se añade al texto el valor actual de la variable $número_accesos:

< footer>
    <p>
<?php
        echo "¡Eres el visitante ", $anzahl_zugriffe, ". en esta página!";
        ?>
</p>
</footer>
Ir al menú principal