Cómo evitar descripciones de páginas duplicadas
Una de las cosas que no les gusta a los buscadores es las metadescripciones de páginas duplicadas. Las metadescripciones se codifican en la cabecera de las páginas con la etiqueta meta pero en sistemas de publicación como WordPress, una definición como la siguiente provoca descripciones duplicadas, ya que la página general del blog y el resto de páginas, la de los posts, la de categorías, la de archivos, etc., tendrán también dicha descripción:
<meta name=”description” content=”la descripción de la página aquí” />
Así que para evitar este problema, se puede programar la generación de distintas definiciones para la etiqueta meta en el archivo “header.php“. Solo hay que buscar la etiqueta meta con la descripción y sustituirla por el siguiente código:
<?php if ( (is_home()) || (is_front_page()) ) { ?>
<meta name=”description” content=”la locura de los weblogs dentro de uno” />
<?php
} elseif (is_single()) { ?>
<meta name=”description” content=”este post trata de <?php echo wp_title(’ ‘); ?>” />
<?php
} elseif(is_category()) { ?>
<meta name=”description” content=”pagina de la categoria <?php echo single_cat_title(); ?> para este blog” />
<?php
} elseif(is_tag()) { ?>
<meta name=”description” content=” pagina de la etiquetas <?php echo single_tag_title(); ?> para este blog” />
<?php
} elseif(is_month()) { ?>
<meta name=”description” content=” pagina de los archivos de fecha <?php echo the_time(’F, Y’); ?> para este blog” />
<?php
} else { ?>
<meta name=”description” content=” esta pagina trata de <?php echo wp_title(’ ‘); ?>” />
<?php
}
?>
Hay muchas formas de programar esto pero quizás esta sea la más fácil de entender para principiantes. El código anterior consiste en una serie de IF’s anidados. Recordemos que “<?php” sirve para iniciar el código PHP dentro de una página HTML y con “?>” lo cerramos. Básicamente lo que hacemos es preguntar qué tipo de página de wordpress se está mostrando y para saberlo se utilizan diversas funciones que nos devuelven el valor “verdadero”: is_home(), para saber si la página es la principal, is_single(), para saber si la página corresponde a un post individual, is_category(), para saber si la página es una de categorías, etc.
Por ejemplo, el siguiente código escribe el texto “esta página es de una categoría” si la página a mostrar corresponde al listado de los posts de una categoría concreta:
<?php if (is_category() ) {
echo “esta página es de una categoría”;
}
?>
Y si queremos que aparezca el nombre de la categoría, podemos insertar la función “single_cat_title()”:
<?php if (is_category() ) {
echo “esta página es de la categoría “. single_cat_title() ;
}
?>
Los IF’s anidados se codifican con la sentencia “elseif” y nos sirven para ejecutar instrucciones alternativas para el caso de que no se cumpla la condición inicial. Es decir, para el caso anterior, si no se trata de una página de categorías. Supongamos que pudiera ser una página de Archivos:
<?php if (is_category() ) {
echo “esta página es de la categoría “. single_cat_title() ;
}
elseif (is_month() ) {
echo “esta página es del mes “. the_time(’F, Y’) ;
}
?>
Si encadenamos una serie de IF’s de esta forma, suele existir una alternativa para el caso de que no se cumpla ninguna condición. Por eso, el último bloque se codifica con la sentencia “else” (sin if). En nuestro caso, si la página ni es la principal, ni es de un post individual, ni es de categorías ni tags y ni es de archivos, entonces se pone como descripción el nombre de la página.
Vía | Malcolm Coles


















Minoic.net es un anillo de blogs impulsado desde enero de 2007 por Guillermo Carvajal, Antonio Cambronero, Manuel Almeida y José Luis Orihuela para experimentar nuevas formas de sinergia entre weblogs más allá de los blogs grupales y de las redes comerciales.
December 25th, 2008 a las 11:18 pm
Tengo miles de etiquetas duplicadas en blogs de wordpress, voy a probar este sistema.
Y esperemos que funcione!
Gracias por el dato