Cómo evitar contenido duplicado en WordPress

Matts Cutts. Google

Matts Cutts. Google

Actualmente parece que WordPress es el CMS perfecto, pero hay que tener en cuenta que WordPress no es Google friendly (como dicen en blogpocket.com), aunque haya quien crea que no hay que preocuparse por el contenido duplicado en WordPress, y que ni por la penalización de Google, y que es un asunto del theme… veámoslo en profundidad.

 

¿Por qué evitar contenido duplicado?

En las Directrices para Webmasters de las Herramientas de Google, una de las reglas básicas que se indican para mejorar el ranking de búsquedas es la ausencia de contenido duplicado. En WordPress se repite el contenido de los posts en las páginas de categorías, archivo, etiquetas… Eso es contenido duplicado, y Google lo penaliza.

En este post hablaré solamente de contenido duplicado involuntariamente, pues se supone que el webmaster no es malicioso.

¿Dónde hay contenido duplicado en WordPress?

Las direcciones que pueden ser consideradas duplicaciones en WordPress son las siguientes:

  • Feeds (por ejemplo, www.kaosklub.com/alejo-y-valentina/feed/)
  • Trackbacks (por ejemplo, www.kaosklub.com/feed/)
  • Páginación (por ejemplo, www.kaosklub.com/page/2/)
  • Páginas de categorías (por ejemplo, www.kaosklub.com/category/california/)
  • Páginas de archivos: anuales, mensuales, semanales y diarios (por ejemplo, www.kaosklub.com/2009/ o www.kaosklub.com/2008/02/)
  • Páginas de tags (por ejemplo, www.kaosklub.com/tag/google/)
  • Páginas de autor (por ejemplo, www.kaosklub.com/author/pol/)
  • Resultados de búsqueda (por ejemplo, www.kaosklub.com/index.php?s=wordpress)
  • Posts repetidos (por ejemplo, si www.kaosklub.com/prueba1/ y www.kaosklub.com/prueba2/ tuvieran el mismo contenido)
  • Paginación de comentarios (por ejemplo, www.kaosklub.com/nombredelpost/comment-page-1/)

¿Como evitar contenido duplicado?

En Google Webmasters > Contenido Duplicado, nos dicen algunas reglas a seguir. Estas reglas son demasiado genéricas para ser aplicadas, y juntándolas con las indicaciones más específicas de Sigt.net > Como arreglar el problema de contenido duplicado en WordPress (post basado en este otro), otras webs y experiencia personal he realizado el siguiente esquema problema-solución sobre la duplicación de contenido en WordPress:

  • Evitar contenido repetido en otras webs.
    • Como solucionarlo? No copiar posts de otros
  • Evitar enlaces diferentesque apunten a un mismo sitio. Por ejemplo, no enlazar a www.ejemplo.es/pagina/, www.ejemplo.es/pagina y www.ejemplo.es/pagina/indice.htm a la vez. Google las leerá como diferentes y las considerará una duplicación, cuando en realidad son la misma página.
    • Como solucionarlo? Mediante la redirección 301 para tus páginas no-www y sin las barras finales.
  • No publicar páginas vacías ni esbozos
  • Evitar la repetición de textoen páginas diferentes (por ejemplo, la información sobre derechos de autor en cada página)
    • Como solucionarlo? Eliminando ese texto repetido y recudiendo el número de posts por página (también el número de entradas mostradas en el home, a 4 o 5)
  • Evitar contenido duplicado en tu propia web. Normalmente, sucede debido al uso de un CMS como WordPress
    • Cómo solucionarlo? Básicamente hay 2 métodos:
    • Evitar que el Web crawler (por ejemplo Googlebot) acceda a páginas que puedan ser consideradas duplicaciones. Solo cuando sea necesario; si por ejemplo sólo se muestran los títulos de los posts en la búsqueda por categorías, no es necesario evitar el acceso del web crawler.
      • Método 1: Añadiendo la etiqueta metatag noindex,followen todas las páginas donde haya contenido duplicado (ver cuáles son arriba). Para que funcionara debería aplicarse la etiqueta en cada página, aunque hay plugins como All in One SEO Pack o HeadSpace que lo hacen automáticamente. Las meta tags SEO, explicadas por Google, son:
        • NOINDEX tag tells Google not to index a specific page
        • NOFOLLOW tag tells Google not to follow the links on a specific page
        • NOARCHIVE tag tells Google not to store a cached copy of your page
        • NOSNIPPET tag tells Google not to show a snippet (description) under your Google listing, it will also not show a cached link in the search results
      • Método 2: Impedir el paso a los web crawlers mediante el archivo robots.txt
      • Método 3: Impedir el paso a los web crawlers mediante el archivo sitemap.xml.
      • En dailyseoblog.com recomiendan no marcar un post en más de una categoría.
    • Modificar el contenido duplicado
      • Método 1: Asegurarse que todos los posts tienen un meta description (excerpt) único.
      • Método 2: Añadir meta keywords al home, a las páginas de archivos, tags, vategorías, posts individuales (que serían tags)…
      • Método 3: Utilizar extractos (excerpts) en el home y otras páginas en vez de entradas completas.

 

Solución 1. Plugins para gestionar meta tags

En Kaos Klub aún no utilizamos Platinum SEO Pack porque no incluye la función de Canonical URLs, que la nueva versión de All in One SEO Pack sí tiene y porque nos duplica las keywords del home. También utilizamos HeadSpace2 para añadir la meta tag noindex (y meta descriptions, aunque no prácticas) a aquellas páginas que nos interesan, y que no permite añadir All in One SEO Pack (como resultados de búsquedas).

All in One SEO Pack [en wordpress.org]

Lo que tiene este plugin respecto al posicionamiento en buscadores es:

  1. Añade la metatag noindex a urls de categorías, archivos y tags
  2. Optimiza los títulos para los buscadores (sobreescribe los títulos de las páginas de tags, categorías, archivos y home, y también permite modificarlos para cada post)
  3. Permite fijar META descriptions a home y posts individuales. Si el campo está vacío, la autogenera (importante para evitar la duplicación de meta descriptions)
  4. Permite fijar META keywords a home y posts individuales (en adición a las tags… es una función innecesaria si utilizamos las tags de los posts de WordPress) y también las genera
  5. Canonical URLs

 

Platinum SEO Pack [en wordpress.org]

Extensión de All in One SEO Pack, que contiene todas sus funciones y además:

  • Permite fijar la META tag noindex a feeds, comentarios de feeds, páginas de autor, resultados de búsquedas y subpáginas
  • Añade las META tags noodp y noydir, que evitan que las meta descriptions se apliquen desde los directorios de Open Directory y Yahoo.

 

HeadSpace2 [en wordpress.org]

En principio el plugin HeadSpace2 tiene más opciones que All in One SEO Pack (permite seleccionar plugins y themes en posts concretos y agregar CSS personalizado según el post). Sus posibilidades son infinitas, pero para evitar contenido duplicado es mejor All in One SEO Pack porque HeadSpace2 no añade la metatag noindex a las categorías, archivos y tags.

  1. Optimiza los títulos de todas las páginas (aunque bastante mal)
  2. Permite fijar META descriptions a home y posts individuales
  3. Permite fijar META keywords a home, posts individuales y archivos, categorías, tags, posts individuales, etc.
  4. Permite fijar META tags para robots (noindex, nofollow, no-archive, noodp y noydr) a posts individuales, categorías, archivos, resultados de búsquedas, páginas, páginas de autor, páginas de login, home…

 

Google XML Sitemaps

Este plugin permite que el sitemap.xml incluya o no el home, artículos, multi-page posts, páginas estáticas, categorías, archivos, páginas de tags y páginas de autor.

 

Solución 2. Robots.txt

Webs como ShaMoneyMaker afirman que es mejor utilizar robots.txt para bloquear páginas con tal de obtener más visitas. Nuestro robots.txt es el siguiente (ver online-tech-tips.com para una opinión contraria):

# BEGIN XML-SITEMAP-PLUGIN
 Sitemap: http://www.kaosklub.com/sitemap.xml.gz
 # END XML-SITEMAP-PLUGIN

User-Agent: *

Disallow: /cgi-bin/
 Disallow: /wp-admin/
 Disallow: /wp-content/plugins/
 Disallow: /wp-content/themes/
 Disallow: /wp-content/cache/
 Allow: /wp-content/uploads/
 Disallow: /wp-includes/
 Disallow: /search
 Disallow: /?s=
 Disallow: /*?*
 Disallow: /*?
 Disallow: /rss/
 Disallow: /feed/
 Disallow: /trackback/
 Disallow: */trackback
 Allow: /

User-agent: Googlebot
 Disallow: /hi/
 Disallow: /ro/
 Disallow: /ca/
 Disallow: /tl/
 Disallow: /id/
 Disallow: /lv/
 Disallow: /lt/
 Disallow: /sl/
 Disallow: /uk/
 Disallow: /vi/
 Disallow: /feed
 Disallow: /comments/feed
 Disallow: /feed/$
 Disallow: /*/feed/$
 Disallow: /*/feed/rss/$
 Disallow: /*/trackback/$
 Disallow: /*/*/feed/$
 Disallow: /*/*/feed/rss/$
 Disallow: /*/*/trackback/$
 Disallow: */trackback/
 Disallow: */feed/
 Disallow: /*.php$
 Disallow: /*.js$
 Disallow: /*.inc$
 Disallow: /*.css$
 Disallow: /*.wmv$
 Disallow: /*.avi$
 Disallow: /*.cgi$
 Disallow: /*.txt$

Solución 3. Excerpts

En la opción Editar Post (o crear Post) del panel de administración de WordPress, abajo siempre aparece un campo personalizado llamado “Extracto” o “Excerpt”. Este sirve para que los buscadores (o tu misma web) muestre ese texto como resumen del post.

Este texto también sirve para resumir el post (normalmente en 160 caracteres o menos), atraer la atención y para evitar contenido duplicado. Debido a la pereza, plugins como All in One SEO Pack permiten autogenerar este extracto, de modo que se genere a partir de un trozo de texto relevante del post de forma automática.

Los excerpts también pueden ser utilizados en tu propia página, de modo que en las páginas de tags, categorías o archivos aparezcan extractos de los posts en vez de los posts completos (y, por lo tanto, no sea necesario evitar la indexación por parte de robot de Google, puesto que son diferentes al post original). Publicar excerpts en vez de posts completos, ya sea en el home o en páginas de tags, categorías, búsquedas… es beneficioso para el SEO de tu web porque no solo evita la duplicación, sino que multiplica las páginas indexadas en Google.

Como utilizar el Excerpt? Los podéis ver en los siguientes enlaces:

 

También existen plugins como WordPress Excerpt Editor que, además de permitir usar HTML en el excerpt, tienen opciones como esta:

imagen-21

 

O sea, utilizar excerpts en todas las páginas en las que aparezcan posts completos. También podemos preparar nuestro theme para que utilice excerpts en todos lados, aunque yo en vez de ello he buscado el código <?php the_content(__(‘Read more’));?> en tags, archivos y categorías y los he sustituido por el código de mi Excerpt Reloaded (además justificando el texto).

En las páginas de tags lo he sustituido (en el archivo tag.php del theme) por:

<div align="justify"><br />
<?php the_excerpt_reloaded(50, '<a><strong><div><form><b><i><u><li><ul><em><blockquote>', 'none', TRUE, 'Leer más...', TRUE, 1, TRUE, TRUE); ?><br />
</div>

Y en archivos y categorías (en el archivo archive.php del theme):

<div align="justify"><br />
<?php the_excerpt_reloaded(50, '<a><strong><div><form><b><i><u><li><ul><em><blockquote>', 'none', TRUE, 'Leer más...', TRUE, 1, TRUE, TRUE); ?><br />
</div>

Una pregunta que no me queda clara es: si uno utiliza un Excerpt Automático (y no creado especialmente para la ocasión, sino simplemente autogenerado), también es bueno para Google o se considera contenido duplicado?

Solución 4. Canonical URIs

Hace un mes y pico Google, Microsoft y Yahoo decidieron crear algo similar a una meta tag llamada Canonical. Esta informa de cuál es la página original que tiene la información mostrada en un blog. Aquí lo explica Matt Cutts, Google engineer:

Aquí Matt Cutts habla sobre una opción en Herramientas para Webmasters de Google que es la siguiente:

imagen-4

También habla sobre un posible plugin para WordPress que añada rel=”canonical” al head de tu web… ya lo puedes hacer con Canonical URL Plugin (Yoast.com, sirve para indicar la url principal) y con SEO No Duplicate (para indicar a cada post individual la url original, mediante el campo “canonical”)

Si lo he entendido bien, las redirecciones 301 para evitar que las www. o las / del final afecten al contenido duplicado de Google son innecesarias si se utiliza rel=canonical. Aunque siempre podemos utilizar plugins como 301 Redirection Plugin for WordPress para redirigir automáticamente al usuario de un post a una url especificada por nosotros.

 

Enlaces relacionados

Comments
  1. zinvia | Reply
  2. juan gomez | Reply
  3. Toni Menorca | Reply
  4. error code 30088-4 | Reply
  5. RobertAccew | Reply

Leave a Reply

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