Generar tags para tus publicaciones.

Resumen.

Se puede decir que las tags son las palabras clave que tiempos atrás debíamos incluir en la cabecera de nuestras páginas para mejorar la posición en los buscadores. Se designaban con la etiqueta “keywords” y aunque esta etiqueta ya no tiene valor SEO, nos puede resultar muy útil a la hora de agrupar contenidos de nuestro sitio Web. En este artículo veremos como podemos hacerlo.

Artículo.

Organizar los contenidos de nuestro sitio Web es algo muy importante que nos puede ayudar a mejorar la tasa de rebote, es decir, aumentar el tiempo de permanencia en nuestro sitio Web de usuarios que buscan algún contenido concreto.

Aunque en el resumen de este artículo nos hemos referido a las “keywords” para hacer una similitud de conceptos, y las “keywords” solo eran visibles para los motores de búsqueda, las tags ahora si son visibles para el usuario, y aparecen en forma de enlaces, como puede verse al final de este mismo artículo y por supuesto, también pueden ser “vistos” por los motores de búsqueda.

El objetivo de los tags, (o las tags) es describir con unas pocas palabras el contenido de una publicación. En términos generales, deberían ser entre 4 y 7 términos, aunque esto es por poner una norma muy general, pero una norma flexible, que puede ser violada. Normalmente menos de 4 conceptos puede resultar muy poco descriptivo, mientras que mas de 7 puede saturar la memoria del usuario, es por tanto una cuestión de equilibrio, entre calidad informativa de las palabras y cantidad de palabras.

Normalmente las tags deberían ser palabras únicas, pero a veces las palabras únicas pueden resultar demasiado generales. Pensemos por ejemplo en este sitio Web en los términos “PHP” y “validación”. Si introducimos por si solo el termino “PHP” nos dará muchísimos resultados, por tanto, saturación para el usuario, si introducimos “validación” por si solo nos pueden aparecer todas las formas de validación existentes en el sitio Web, si introducimos “validación PHP”, solo nos aparecerían los artículos relacionados con la validación en este lenguaje.

Por tanto, las ampliaciones en nuestro sitio Web pueden hacer que las tags que resultaban validas para un artículo cuando se publicó (digamos dos años atrás), a día de hoy pueden no resultar demasiado validas o al menos no tan buenas como lo fueron antes, con lo que su modificación debería ser fácil y rápida.

Con estos conceptos en mente, podemos asumir que las tags son muy importantes, no solo para ofrecer al usuario contenidos de su interés, también para los motores de búsqueda, sugiriendo nuevas URLs para ser indexadas.

Sin más, vamos a ver como podemos generar tags de manera dinámica y generar búsquedas en el buscador de nuestro sitio Web.

El código sería el siguiente:
<?php // Desarrollado por ArtesaniaWeb.ES // Mas info en: https://www.artesaniaweb.es/articulo.php?titulo=generar_tags_para_tus_publicaciones-2gibb // Genera enlaces desde una cadena de palabras         // Eliminamos los acentos para el paso por URL function Elimina_Tildes($Texto){     $valor_htm = array('&aacute;','&Aacute;','&eacute;','&Eacute;','&iacute;','&Iacute;','&oacute;','&Oacute;','&uacute;','&Uacute;',     '&ntilde;','&Ntilde;','&uuml;','&Uuml;',     '&agrave;','&Agrave;','&egrave;','&Egrave;','&igrave;','&Igrave;','&ograve;','&Ograve;','&ugrave;','&Ugrave;',     'á','Á','é','É','í','Í','ó','Ó','ú','Ú','ņ','Ņ','ü','Ü','ā','Ā','č','Č','ė','Ė','ō','Ō','ų','Ų');    // Valores originales        $valor_acent = array('a','A','e','E','i','I','o','O','u','U','ņ','Ņ','u','U','a','A','e','E','i','I','o','O','u','U',     'a','A','e','E','i','I','o','O','u','U','ņ','Ņ','u','U','a','A','e','E','i','I','o','O','u','U');    // Nuevos valores            $Cambia_Texto str_replace($valor_htm,$valor_acent,$Texto);         return $Cambia_Texto; } function Tags($cdn_terminos,$EnlaceA,$EnlaceB,$tit_link,$SepCd,$SepEnl,$Orden){     $array_termin explode($SepCd$cdn_terminos);         $n_ar count($array_termin);             for ($v 0$v $n_ar; ++$v) {                  $terminos trim($array_termin[$v]);    // Eliminamos espacios en blanco al principio y final                     $array_terminos[$v] = $terminos;                 }      $Orden($array_terminos);    // Ordenamos el array segun el parametro recibido     $n_ter count($array_terminos);          for ($x=0$x<$n_ter$x++) {              // Pasamos los terminos a minusculas y eliminamos las tildes             $ver_busq strtolower(Elimina_Tildes($array_terminos[$x]));             $ver_terminos $array_terminos[$x];             $array_busq[$x] = $ver_busq;            // Creamos array a partir del bucle             $array_bucle[$x] = $ver_terminos;            // Creamos array a partir del bucle             // Asi creamos el array que contiene los enlaces             $titulo_link " title=\"$tit_link $ver_terminos\"";             $array_enlaces[$x] = "$EnlaceA".urlencode($ver_busq)."$EnlaceB$titulo_link>$ver_terminos</a> ";         }      $link_tags implode($SepEnl$array_enlaces);    // Creamos cadena a partir del array         return $link_tags;  } // Ejecutamos la funcion $palabras 'programación web, funci&oacute;n, validación, condicionales, MySQL, bases datos'; $enlA '<a target="_blank" href="destino.php?busca=';        // No agregar nada tras el = $enlB '&orden=asc" class="clase1"';    // Agregar otras variables que puedan pasar por GET... $titulo_link 'Artículo relacionado con';    // Sin espacio al final $spr ',';    // Es el separador de los elementos de la cadena inicial $palabras $sep_enlace ' || ';    // Separador para los enlaces generados $ord 'KSORT';    // Orden del array. Con KSORT lo mantiene como esta, con SORT orden ascendente y RSORT descendente $tags Tags($palabras,$enlA,$enlB,$titulo_link,$spr,$sep_enlace,$ord); echo "<p>+ $tags +</p>"; ?>
Para lograr este objetivo precisamos de dos funciones, una para eliminar las tildes (representación gráfica del acento) ya que estas muchas veces nos dan problemas a la hora de realizar búsquedas. Este problema casi siempre está relacionado con una diferente codificación de caracteres entre la página que contiene el buscador y la base de datos que se esta leyendo, si ambas están en la misma codificación, no deben surgir problemas. Recordemos que para nuestro idioma la codificación adecuada es UTF-8.

Una vez superado el problema de la acentuación vamos a nuestra tarea en cuestión, generar los enlaces que realizaran las búsquedas, tal y como puede verse en la parte inferior de este artículo.

Partimos de una cadena de palabras separadas por comas, tal y como se expresaban antes las “keywords”, y con cada una de estas palabras vamos a generar un enlace que envíe por GET esta palabra a la que le quitamos la tilde o posible diéresis por los motivos ya explicados.

Para ello generamos un array mediante la función explode() usando como elemento separador la coma. Mediante la función trim(), eliminamos posibles espacios al principio o final para no alterar la estructura de nuestros enlaces.

Continuamos con un siguiente bucle FOR para generar los enlaces, en el cual tenemos que quitar las posibles tildes mediante la función mencionada anteriormente para su envío por GET. También generamos un title para cada link y la misma palabra, acentuada si así estuviera, como texto del enlace (anchor text).

Así con cada palabra generaremos un enlace como este:
<a target="_blank" href="destino.php?busca=validacion&orden=asc" class="clase1" title="Artículo relacionado con validación">validación</a>
Una vez finalizado el bucle podemos asignar un orden a nuestros tags asignando un orden al array. Para dejarlo en el mismo orden que están, asignamos la función KSORT, que ordena las keys de menor a mayor, que es el mismo orden en que tenemos el array que hemos generado.

Dado que a nuestro código le hemos dado forma de función, podemos ver como precisa de 7 parámetros de entrada que están descritos en el código. Por mencionar uno que quizás pueda arrojar algo de confusión, seria el tercer parámetro $enlB, o finalizaron de la estructura del enlace. Este puede tomar valores como los expresados a modo de ejemplo, pero si no fueran precisos, en lugar de:
$enlB = '&orden=asc" class="clase1"';
debería ser
$enlB = '"';
que es el cierre de la comilla que abrimos “href="destino” en:
$enlA = '<a target="_blank" href="destino.php?busca=';
Por lo demás, aplicar esta función no tiene mas complicaciones siguiendo las notas expresadas en el código.

Por último agregar un dato SEO, en el momento en que este sitio Web se puso en marcha, no estaban implementados los tags, tras su implantación y sin nuevas publicaciones, en el plazo de una semana se aumento el número de URLs indexadas en aproximadamente un 25%, no tomamos nota de los datos precisos.

Dicho esto, esperamos que este artículo os haya gustado tanto como a mí presentároslo.
Tags: Tags || SEO || link || enlaces || buscador || acentos

Comentarios.

Sin comentarios, publica el tuyo.