SEO en WordPress: Detén la inflación del índice — Reglas de noindex que no rompen los enlaces internos

¿Te fue útil?

La inflación del índice ocurre cuando Google conoce más URL de tu sitio WordPress de las que tú conoces. Los síntomas son siempre los mismos: «Crawled — currently not indexed» crece como moho, las páginas que realmente te importan tambalean en los rankings y tus registros de servidor parecen una convención de bots.

No solucionas esto «añadiendo más contenido» ni «volviendo a enviar el sitemap». Lo solucionas decidiendo qué merece ser indexado, qué debe ser rastreado pero no indexado y qué no debe rastrearse en absoluto—sin cortar accidentalmente los enlaces internos que ayudan a Google a entender tu sitio.

Qué es realmente la inflación del índice (y por qué WordPress lo facilita)

La inflación del índice no es “Google indexando demasiado” de forma abstracta. Es una discrepancia medible:

  • URLs que Google puede rastrear (descubiertas mediante enlaces internos, sitemaps, enlaces externos, parámetros)
  • URLs que Google elige indexar (mantenidas en el índice y elegibles para posicionar)
  • URLs que tú pretendías que existieran (tu conjunto canónico: las páginas a las que quieres que lleguen los usuarios)

WordPress facilita la inflación porque por defecto genera páginas «útiles»: archivos de etiquetas, archivos por fecha, archivos por autor, páginas de adjuntos, archivos paginados, páginas de resultados de búsqueda internas y, a veces, múltiples versiones de la misma URL mediante parámetros y códigos de seguimiento.

La trampa: muchas de esas páginas aún pueden ser útiles para la navegación y la agrupación temática dentro del sitio. Quieres que Google entienda esa estructura. Simplemente no quieres que Google indexe las variantes de bajo valor.

Tu estado objetivo: Google puede rastrear lo suficiente para entender el sitio, pero indexa un conjunto reducido de URLs canónicas que representan tus mejores páginas.

Operativamente, trata la inflación del índice como cualquier otro problema en producción: define el estado deseado, mide la deriva y aplica cambios con protecciones. El SEO es básicamente SRE para contenido.

Hechos y contexto: cómo llegamos aquí

Un poco de contexto histórico ayuda porque el consejo de SEO para WordPress tiende a fosilizarse. Aquí hay algunos hechos concretos que siguen importando:

  1. Robots.txt comenzó en 1994 como una convención voluntaria; nunca fue un mecanismo de «control de acceso». Es una señal educada, no una cerradura.
  2. Meta robots «noindex» precede a las herramientas modernas de SEO y sigue siendo la forma más limpia de decir «puedes rastrear esto, pero no lo indexes».
  3. Las etiquetas canonical se popularizaron en 2009 para reducir el caos de contenido duplicado. Son una sugerencia, no una garantía, pero siguen siendo críticas.
  4. Las conversaciones sobre presupuesto de rastreo de Google se hicieron populares en los 2010s, pero la conclusión práctica es anterior: desperdicia menos tiempo del rastreador en basura.
  5. Las páginas de adjuntos de WordPress han sido una trampa SEO durante años porque cada elemento multimedia puede convertirse en una página delgada de valor casi nulo.
  6. Los archivos de etiquetas fueron creados para navegación y descubrimiento, no para ser la página número 40 que compite por la misma palabra clave.
  7. La navegación facetada explotó con la UX del comercio electrónico, y con ella, la inflación de URL parametrizadas; los «filtros» de WordPress y las facetas creadas por plugins reproducen ese desastre.
  8. «Crawled — currently not indexed» no es un castigo; es Google siendo selectivo. Tu trabajo es facilitar la selección.
  9. Google moderno puede descubrir URLs sin sitemaps a través de enlaces y feeds; los sitemaps son guía, no una dependencia de descubrimiento.

Una cita que vale la pena mantener sobre tu escritorio:

“La esperanza no es una estrategia.” — Gene Kranz

No se trata de ser ingenioso. Se trata de ser explícito.

Reglas de la carretera: noindex, canonical, robots y la equidad de enlaces

Noindex trata sobre la indexación, no sobre el rastreo

noindex dice: «No incluyas esta página en los resultados de búsqueda.» No detiene automáticamente el rastreo. Google puede seguir rastreándola periódicamente para volver a comprobar señales, enlaces y directivas.

Disallow trata sobre el rastreo, no sobre la indexación (en su mayoría)

Disallow en robots.txt dice: «No rastrear.» Pero si una URL se descubre desde enlaces externos, Google aún puede indexar la URL sin contenido (los temidos patrones «indexed, though blocked by robots.txt»). Así es como obtienes entradas fantasma que nunca consolidan señales correctamente.

Canonical consolida duplicados—cuando resulta creíble

Una etiqueta canonical es tu propuesta de URL «principal». Funciona mejor cuando:

  • El contenido es sustancialmente el mismo.
  • Los enlaces internos refuerzan la canonical.
  • El objetivo canonical es accesible e indexable.

Los enlaces internos aún pueden apuntar a páginas noindex—pero hazlo con intención

Noindex no «mata» un enlace. Pero cambia cuán valioso es esa URL como destino. El patrón correcto suele ser:

  • Enlaza páginas indexables cuando sea posible (posts, categorías principales que quieres posicionar).
  • Usa noindex en colecciones de bajo valor mientras las mantienes para usuarios.
  • No te obsesiones con el «link juice» como si fuera un fluido que derramas por el suelo. Piensa en rutas de rastreo y objetivos canónicos.

Broma #1: El presupuesto de rastreo es como tu calendario de reuniones—si aceptas todas las invitaciones, estarás ocupado y no harás nada.

El «conjunto indexable» es una decisión de producto, no una configuración de plugin

Antes de tocar reglas, escribe qué debe ser indexable:

  • ¿Todos los posts? ¿Todas las páginas? ¿Solo productos?
  • Archivos de categoría: sí/no (a menudo sí, pero solo los que tienen intención editorial real).
  • Archivos de etiquetas: generalmente no, a menos que trates las etiquetas como hubs curados.
  • Archivos de autor/fecha: casi siempre no para blogs de un solo autor o equipos editoriales pequeños.
  • Resultados de búsqueda: no.
  • Paginación: depende, pero usualmente indexar la página 1 y noindex páginas 2+ (o canonicalizar con cuidado).

Guía de diagnóstico rápido: encuentra el verdadero cuello de botella rápido

Cuando un equipo de SEO dice «inflación del índice», puede significar tres fallos operativos distintos. Revisa en este orden.

Primero: ¿es un problema de descubrimiento, duplicación o calidad?

  • Problema de descubrimiento: URLs importantes no encontradas/rastreables. Síntomas: páginas clave ausentes, sitemap ignorado, enlaces internos débiles.
  • Problema de duplicación: demasiadas variantes de URL para el mismo contenido. Síntomas: parámetros, múltiples rutas, canonicals inconsistentes.
  • Problema de calidad: Google ve muchas páginas delgadas. Síntomas: «Crawled — currently not indexed», «Duplicate without user-selected canonical».

Segundo: valida directivas y sus conflictos

Encuentra contradicciones como:

  • Páginas con noindex incluidas en el sitemap XML
  • Disallow bloqueando páginas que quieres indexar
  • Canonical apunta a una URL que hace 301, 404 o está noindexada
  • noindex combinado con nofollow por todas partes (una gran forma de dejar ciego a Google)

Tercero: revisa la carga del rastreador (logs), no tus sensaciones

Los registros de acceso del servidor te dirán en qué pasa tiempo Googlebot: páginas de etiquetas, búsqueda, páginas de adjuntos o parámetros infinitos. Arregla los puntos calientes primero.

Tareas prácticas: comandos, salidas y decisiones (12+)

Estas son las tareas que realmente ejecuto cuando diagnostico inflación del índice en WordPress en producción. Cada una incluye: comando, salida de ejemplo, qué significa y qué decisión tomar después.

Task 1: Count unique URL patterns Googlebot is hitting (top offenders)

cr0x@server:~$ zcat -f /var/log/nginx/access.log* | awk '$0 ~ /Googlebot/ {print $7}' | sed 's/\?.*$//' | awk -F/ '{print "/"$2"/"}' | sort | uniq -c | sort -nr | head
  18231 /tag/
  12044 /wp-content/
   9312 /page/
   7441 /category/
   5220 /?s=
   4109 /author/

Qué significa: Googlebot está pasando tiempo real en archivos de etiquetas, paginación, búsqueda, autores e incluso en activos estáticos.

Decisión: Prioriza directivas para /tag/, /?s= y archivos de autor. También confirma que los activos estáticos no estén siendo enlazados como páginas rastreables (no deberían estar en sitemaps).

Task 2: Identify parameter-heavy crawling (possible faceted/filter bloat)

cr0x@server:~$ zcat -f /var/log/nginx/access.log* | awk '$0 ~ /Googlebot/ {print $7}' | grep -E '\?.+=' | sed 's/.*?/?/' | cut -d'&' -f1 | sort | uniq -c | sort -nr | head
   6421 ?replytocom=
   3220 ?utm_source=
   1411 ?amp=
   1207 ?orderby=
    988 ?filter=

Qué significa: Parámetros como replytocom y UTM están creando URLs alternativas. Son acelerantes clásicos de la inflación del índice.

Decisión: Normaliza con manejo canonical, reglas de parámetros (cuando estén disponibles) y considera redirigir o eliminar parámetros específicos en el borde si es seguro.

Task 3: Check sitemap URLs vs indexable directives (sample with curl)

cr0x@server:~$ curl -sS -I https://example.com/post-sitemap.xml | head
HTTP/2 200
content-type: application/xml; charset=UTF-8
cache-control: max-age=300, must-revalidate

Qué significa: El sitemap es accesible. Ahora confirma que contenga solo URLs indexables.

Decisión: Obtén algunas URLs del sitemap y verifica que no sean noindex y que devuelvan 200 con la canonical correcta.

Task 4: Validate a page’s robots meta and canonical (headers + HTML grep)

cr0x@server:~$ curl -sS -D- https://example.com/tag/widgets/ | sed -n '1,25p'
HTTP/2 200
content-type: text/html; charset=UTF-8
cr0x@server:~$ curl -sS https://example.com/tag/widgets/ | grep -iE 'robots|canonical' | head
<meta name="robots" content="noindex,follow">
<link rel="canonical" href="https://example.com/tag/widgets/" />

Qué significa: La página de etiqueta está configurada como noindex,follow. Eso suele ser correcto si las etiquetas no deben posicionar pero sí ayudar a la navegación de usuarios.

Decisión: Mantén el follow para que los enlaces internos sigan siendo descubribles. Asegura que las páginas de etiqueta no estén incluidas en sitemaps.

Task 5: Confirm robots.txt isn’t blocking something you want indexed

cr0x@server:~$ curl -sS https://example.com/robots.txt
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-json/
Disallow: /tag/
Sitemap: https://example.com/sitemap_index.xml

Qué significa: /tag/ está bloqueado, lo que impide el rastreo y puede dejar las URLs de etiqueta indexadas sin contenido si se descubren externamente.

Decisión: Es preferible permitir el rastreo y usar noindex para archivos de etiquetas, a menos que tengas una razón fuerte para bloquear el rastreo. Elimina Disallow: /tag/ y gestiona mediante meta robots.

Task 6: Find attachment pages returning 200 (thin content candidates)

cr0x@server:~$ wp --path=/var/www/html --allow-root post list --post_type=attachment --post_status=inherit --fields=ID,post_title,post_date --format=table | head
+------+------------------------+------------+
| ID   | post_title             | post_date  |
+------+------------------------+------------+
| 4123 | datasheet-widget-01    | 2023-05-10 |
| 4124 | widget-diagram         | 2023-05-10 |
+------+------------------------+------------+

Qué significa: Existen adjuntos y probablemente tengan páginas de adjunto a menos que estén deshabilitadas/redireccionadas por el tema o un plugin.

Decisión: Redirige páginas de adjuntos al archivo multimedia o al post padre, y/o aplica noindex a adjuntos en todo el sitio.

Task 7: List public post types and taxonomies (what can generate archives)

cr0x@server:~$ wp --path=/var/www/html --allow-root eval 'print_r(get_post_types(["public"=>true]));'
Array
(
    [post] => post
    [page] => page
    [attachment] => attachment
    [product] => product
)
cr0x@server:~$ wp --path=/var/www/html --allow-root eval 'print_r(get_taxonomies(["public"=>true]));'
Array
(
    [category] => category
    [post_tag] => post_tag
    [product_cat] => product_cat
    [product_tag] => product_tag
)

Qué significa: Tienes taxonomías que pueden crear archivos: post_tag, product_tag, etc.

Decisión: Decide qué archivos de taxonomía deben ser indexables. La mayoría de sitios solo necesitan un subconjunto (a menudo categorías/product_cat).

Task 8: Detect near-duplicate URL versions (http/https, www/non-www)

cr0x@server:~$ curl -sS -I http://example.com/ | head -n 5
HTTP/1.1 301 Moved Permanently
Location: https://example.com/
cr0x@server:~$ curl -sS -I https://www.example.com/ | head -n 5
HTTP/2 301
location: https://example.com/

Qué significa: Las redirecciones están en su lugar. Bien. La duplicación aquí está controlada.

Decisión: Confirma que todas las variantes se consoliden en un host y esquema canónico en todas partes, incluidos sitemaps y etiquetas canonical.

Task 9: Check for trailing slash inconsistencies (duplicate paths)

cr0x@server:~$ curl -sS -I https://example.com/category/widgets | head -n 6
HTTP/2 301
location: https://example.com/category/widgets/

Qué significa: WordPress está normalizando a la versión con barra final mediante una redirección.

Decisión: Asegura que las etiquetas canonical siempre usen la versión normalizada para evitar ruido de «duplicado, Google eligió otra canonical».

Task 10: Find “thin” archives by counting posts per term

cr0x@server:~$ wp --path=/var/www/html --allow-root term list post_tag --fields=term_id,name,count --format=csv | awk -F',' 'NR>1 && $3+0<3 {print}' | head
102,blue-widgets,1
141,widget-ideas,2
177,old-campaign,1

Qué significa: Muchas etiquetas tienen 1–2 posts. Indexar esas páginas de archivo suele ser inútil y aumenta la inflación del índice.

Decisión: Establece archivos de etiquetas como noindex,follow, o cura un pequeño subconjunto de «etiquetas hub» y noindexa el resto (avanzado).

Task 11: Confirm internal search pages exist and are indexable (they shouldn’t be)

cr0x@server:~$ curl -sS -I "https://example.com/?s=widgets" | head -n 12
HTTP/2 200
content-type: text/html; charset=UTF-8
cr0x@server:~$ curl -sS "https://example.com/?s=widgets" | grep -i 'robots' | head
<meta name="robots" content="noindex,follow">

Qué significa: Los resultados de búsqueda están correctamente en noindex. Si no lo estuvieran, obtendrías páginas bajas en calidad infinitas.

Decisión: Manténlas en noindex,follow. También evita enlazar a resultados de búsqueda internos en las plantillas.

Task 12: Spot pagination bloat (page/2, page/3…)

cr0x@server:~$ zcat -f /var/log/nginx/access.log* | awk '$0 ~ /Googlebot/ {print $7}' | grep -E '/page/[0-9]+/' | sed 's/[0-9]\+/\{n\}/' | sort | uniq -c | sort -nr | head
   8022 /category/{n}/
   2210 /tag/{n}/

Qué significa: Googlebot está rastreando paginación profunda, especialmente páginas de categoría. Eso puede ser normal, pero a menudo es desperdicio si las páginas paginadas tienen poco valor único.

Decisión: Generalmente: mantiene la página 1 indexable y establece páginas 2+ en noindex,follow. Asegura que los enlaces de paginación sean rastreables para que Google pueda alcanzar posts más profundos si es necesario.

Task 13: Check response codes for suspicious URL families (404/soft 404)

cr0x@server:~$ zcat -f /var/log/nginx/access.log* | awk '$9 ~ /404|410/ {print $7}' | head
/tag/obsolete/
/category/typoo/
/wp-content/uploads/2019/ghost.png

Qué significa: Archivos rotos y medios faltantes pueden crear desperdicio de rastreo y ruido en el índice.

Decisión: Arregla enlaces internos, redirige cuando sea intencional y devuelve 410 para conjuntos de URLs realmente eliminadas cuando corresponda.

Task 14: Confirm you’re not shipping “noindex” on pages you want ranking

cr0x@server:~$ curl -sS https://example.com/important-landing-page/ | grep -i 'meta name="robots"' -n
24:<meta name="robots" content="noindex,nofollow">

Qué significa: Alguien (ajuste de plugin, conmutador de entorno o plantilla) noindexó una página de valor. Esto es un incendio.

Decisión: Elimina el noindex inmediatamente, purga caches, reenvía para indexación y audita la configuración que lo causó para que no se repita.

Reglas de noindex que no matan los enlaces internos (la lista práctica)

Aquí está el conjunto de reglas que despliego con más frecuencia en WordPress. Están sesgadas hacia sitios editoriales y de marketing de contenido, pero la lógica es amplia. En comercio electrónico mantendrás más páginas de taxonomía indexables, pero todavía noindexarás las variantes basura.

1) Resultados de búsqueda internos: noindex, follow

Haz: noindex,follow en /?s=query y en cualquier ruta de búsqueda «bonita» que uses.

Por qué: Los resultados de búsqueda son infinitos, inestables y a menudo delgados. Además, son fácilmente objeto de spam con permutaciones de consultas.

Mantén los enlaces internos: follow permite que Google aún recorra hacia posts reales desde esas páginas si las rastrea.

2) Archivos de etiquetas: por defecto noindex, follow

Haz: noindex en archivos de etiquetas a menos que los cures activamente.

Por qué: Las etiquetas suelen ser indisciplinadas. La gente crea «blue-widget», «blue-widgets», «bluewidget» y las deja con un post cada una.

Excepción: Si tienes un vocabulario controlado y cada etiqueta es una página hub con texto introductorio único y curación significativa, indexa. La mayoría de equipos no lo hacen.

3) Archivos de autor: noindex para blogs de autor único o equipos pequeños

Haz: noindex en archivos de autor si no ofrecen valor único más allá de «posts por X».

Por qué: Duplican listados de posts. También crean páginas delgadas extrañas para «Admin» o cuentas heredadas.

Mantén los enlaces internos: Deja los enlaces de autor para usuarios si es necesario, pero asegura que el archivo esté noindexado.

4) Archivos por fecha: noindex casi siempre

Haz: noindex en archivos por fecha (archivos mensuales/diarios).

Por qué: Las fechas no son temáticas. Crean una navegación paralela inútil para la búsqueda y producen toneladas de páginas de bajo valor.

5) Páginas de adjuntos: redirige o noindexa con firmeza

Haz: o bien:

  • 301 redirige páginas de adjuntos al post padre (preferido cuando existe el padre), o
  • Redirige a la URL del archivo multimedia, o
  • Noindexa páginas de adjuntos en todo el sitio.

Por qué: Las páginas de adjuntos son el equivalente SEO de un pasillo sin puertas.

6) Paginación: normalmente indexa la página 1, noindex páginas 2+

Haz: aplica noindex,follow en archivos paginados más allá de la página 1 (por ejemplo, /category/widgets/page/2/).

Por qué: Las páginas paginadas suelen ser «más de la misma lista» y la inflación del índice aumenta rápido. Pero aún quieres que se rastreen para descubrir posts más profundos.

Cuidado: Si la página 2 tiene contenido único o la categoría es enorme y la página 1 no la representa, puede permitirse indexación. Eso no es común en blogs; más común en grandes catálogos.

7) URLs parametrizadas: canonicaliza y reduce en origen

Haz:

  • Mantén la canonical apuntando a la URL limpia (sin parámetros de seguimiento).
  • Deja de generar enlaces con parámetros UTM dentro de tu propio sitio.
  • Para parámetros notorios como replytocom, deshabilita el comportamiento o redirígelo.

Por qué: Los parámetros se multiplican. Google es bueno, pero no está para resolver tus deberes de matemáticas.

8) Páginas de filtro/faceta (generadas por plugins): decide explícitamente las «facetas indexables»

Si tienes WooCommerce o un plugin de navegación facetada, debes decidir qué filtros representan páginas de destino reales.

  • Facetas indexables: combinaciones de alta intención que puedes mantener, con contenido estable y demanda.
  • Facetas noindex: todo lo demás, especialmente permutaciones multi-filtro que crean millones de páginas.

Mantén los enlaces internos: Está bien que los usuarios filtren; no está bien que Google indexe cada permutación. Usa noindex,follow o canonical hacia una categoría padre cuando corresponda.

9) Archivos de taxonomías duplicados entre tipos de post: consolida

Las configuraciones de WordPress a veces crean múltiples taxonomías idénticas («temas», «etiquetas», «labels»). Si dos archivos compiten por la misma intención, elige uno y noindexa o redirige el otro.

10) Previsualizaciones, staging y páginas de consulta: bloquea correctamente

Haz: Asegura que staging esté bloqueado en el servidor (auth) y también con robots, y nunca expuesto en sitemaps.

Y para vistas previas como ?preview=true: canonicaliza a la URL publicada y evita la indexación. Estas URLs se filtran.

Broma #2: Si dejas indexar todas las páginas de etiquetas, tu estrategia SERP se vuelve «esperemos que el algoritmo nos adopte». Eso no es un plan; es un grito de ayuda.

Qué significa realmente «reglas de noindex que no matan los enlaces internos»

Significa que evitas nofollow por defecto. El patrón para páginas de bajo valor es:

  • noindex,follow para páginas que pueden ayudar al descubrimiento pero no deben posicionar.
  • 301 redirect para duplicados y familias de URLs obsoletas.
  • Disallow solo cuando rastrear el contenido sea activamente dañino (espacios infinitos, áreas privadas, endpoints pesados), y aceptas los efectos secundarios en indexación.

Tres mini-historias corporativas desde el frente

Mini-historia 1: El incidente causado por una suposición equivocada

La empresa estaba en medio de una replatform, pero «en medio de una replatform» es corporativo para «todo está en llamas, solo que educadamente». Su blog WordPress estaba detrás de un CDN y una capa de caché, y alguien notó que Googlebot golpeaba URLs /?s=. La solución rápida pareció obvia: bloquear la búsqueda interna en robots.txt.

Añadieron Disallow: /?s= y se fueron a casa sintiéndose productivos. Durante una semana pareció bien—el volumen de rastreo bajó y los dashboards se calmaron. Luego el tráfico orgánico empezó a caer, lenta pero sostenidamente, como un arreglo de almacenamiento que pierde un disco cada viernes.

La suposición equivocada: «Si bloqueamos el rastreo, no indexará.» Lo que pasó fue peor. Google ya había descubierto miles de URLs de búsqueda a través de enlaces internos y referers externos. Con el rastreo bloqueado, no podía volver a solicitarlas para ver un noindex o canonical, y no podía consolidar señales limpiamente.

Search Console empezó a mostrar una mezcla fea de «Indexed, though blocked by robots.txt» y confusión de canonical. El conjunto indexado se contaminó con entradas solo-URL y fragmentos de baja calidad. Mientras tanto, algunos posts reales se rastrearon menos porque Googlebot seguía descubriendo basura, solo que con menor capacidad para evaluarla.

La solución fue aburrida y exacta: quitar el disallow, aplicar noindex,follow a las páginas de búsqueda y dejar de enlazar a URLs de búsqueda en la navegación. El rastreo subió brevemente y luego se normalizó. El índice se limpió en las semanas siguientes. La lección: no uses robots.txt como escoba; es más bien un cartel de «prohibido el paso» que aún deja a la gente anotar tu dirección.

Mini-historia 2: La optimización que salió mal

Un equipo de marketing empresarial decidió «simplificar el SEO» poniendo noindex,nofollow en todas las páginas de etiquetas, categorías y autores. La idea era: solo los posts deben posicionar, así que todo lo demás es ruido.

Funcionó—hasta cierto punto. La inflación del índice bajó. Pero también disminuyó el descubrimiento de posts antiguos. El sitio tenía años de contenido y la navegación interna principal era basada en categorías. Las categorías eran el tejido conectivo que llevaba a los rastreadores y usuarios a archivos profundos.

Con nofollow por todas partes en esas páginas, el grafo de rastreo se afinó. Google empezó a tratar partes del sitio como islas aisladas. Varios posts long-tail perdieron impresiones silenciosamente porque no se accedía tan frecuentemente, y el contexto de los anchors internos se debilitó.

Retrocedieron la parte de nofollow, dejando noindex,follow en archivos de bajo valor. Para categorías clave que servían como páginas de destino reales, las hicieron indexables y añadieron introducciones editoriales cortas. El resultado no fue espectacular, pero fue estable: menos URLs basura indexadas y los enlaces internos volvieron a hacer su trabajo.

Mini-historia 3: La práctica aburrida pero correcta que salvó el día

Un editor gestionaba WordPress a escala con múltiples tipos de post personalizados y un carrusel de plugins. Su equipo SEO quería noindexar agresivamente para reducir «Crawled — currently not indexed.» El equipo de SRE respondió: «De acuerdo, pero lo haremos con control de cambios.» Todos refunfuñaron, como es tradición.

Mantuvieron un documento de inventario simple: qué tipos de URL existen, cuáles son indexables, cuáles están noindex, cuáles redirigen y cuáles están bloqueadas. No era una hoja de cálculo magistral—solo un mapa vivo. Cada cambio propuesto tenía que nombrar la familia de URLs y los resultados esperados en logs y Search Console.

También hicieron muestreos semanales de logs: principales rutas de Googlebot, principales 404 y principales URLs parametrizadas. Cuando una actualización de plugin introdujo de repente variantes ?amp=1 y comenzó a enlazarlas internamente, se detectó en días, no meses.

Esa práctica aburrida evitó un gran desastre. No necesitaron heroísmos. Necesitaron un bucle de retroalimentación: desplegar, observar, ajustar. Es la misma disciplina que aplicarías a retrocesos de rendimiento de almacenamiento—mide antes y después, y no confíes en «debería estar bien».

Errores comunes: síntomas → causa raíz → solución

1) Síntoma: crece «Indexed, though blocked by robots.txt»

Causa raíz: Bloqueaste el rastreo de URLs que son descubiertas por enlaces, así que Google indexa la URL sin poder evaluar contenido o directivas.

Solución: Elimina el disallow para esa familia de URLs y usa noindex en la página. Para espacios verdaderamente infinitos, considera bloquear más, eliminar enlaces internos y devolver 404/410 cuando corresponda.

2) Síntoma: Páginas importantes muestran «Duplicate without user-selected canonical»

Causa raíz: Existen múltiples variantes de URL (parámetros, barra final, http/https, www/non-www, rarezas de paginación) y las canonicals son inconsistentes o poco plausibles.

Solución: Normaliza con redirecciones, asegura que las etiquetas canonical apunten a la URL final 200 y deja de enlazar internamente a variantes no canónicas.

3) Síntoma: Las páginas de etiquetas superan a los posts (y las conversiones caen)

Causa raíz: Las etiquetas están indexadas, son delgadas y coinciden accidentalmente con consultas amplias. Google las elige como la «mejor» página porque todo lo demás está diluido o duplicado.

Solución: Noindexa archivos de etiquetas por defecto; haz indexables solo hubs curados. Refuerza enlaces internos hacia la página de destino prevista.

4) Síntoma: Muchas «Crawled — currently not indexed» para archivos y paginación

Causa raíz: Google las rastrea pero no ve suficiente valor único, o detecta señales de duplicación.

Solución: Noindexa archivos de bajo valor y paginación profunda; añade canonical cuando la duplicación es el problema principal; reduce la cantidad de URLs basura descubribles.

5) Síntoma: Desindexación súbita después de una actualización de plugin

Causa raíz: El plugin de SEO o el tema cambió meta robots globalmente, o activó la opción «desalentar motores de búsqueda».

Solución: Audita meta robots en plantillas clave, bloquea la configuración mediante comprobaciones de entorno y añade una prueba de monitorización que haga curl a unas páginas críticas para comprobar index,follow.

6) Síntoma: Las páginas de adjuntos están indexadas con fragmentos raros

Causa raíz: Las páginas de adjuntos son delgadas y a veces generadas automáticamente con poco contexto; pueden estar enlazadas desde búsqueda de imágenes o listados de medios internos.

Solución: Redirige páginas de adjuntos a posts padre o archivos multimedia; noindex como medida de reserva.

7) Síntoma: La tasa de rastreo es alta pero los rankings no mejoran

Causa raíz: El esfuerzo de rastreo se gasta en conjuntos de URLs de bajo valor: parámetros, páginas de etiquetas, búsqueda interna y archivos delgados.

Solución: Reduce la descubribilidad de la basura y ajusta el conjunto indexable. Luego mejora las páginas que permanecen indexables.

Listas de verificación / plan paso a paso

Paso 1: Define tu conjunto indexable (ponlo por escrito)

  • Indexable: posts, páginas, productos, categorías/product_cat seleccionadas.
  • Noindex: búsqueda interna, archivos de etiquetas, archivos por fecha, la mayoría de archivos de autor, páginas de adjuntos, páginas paginadas 2+ (por lo general).
  • Redirigir: duplicados (http→https, www→non-www), páginas de adjuntos (preferido), conjuntos de URLs obsoletas.
  • Bloquear rastreo: admin, login, endpoints API pesados que nunca quieres rastrear.

Paso 2: Alinea sitemaps con ese conjunto

  • Sólo URLs indexables pertenecen a sitemaps XML.
  • Elimina tipos de URLs noindexadas de sitemaps mediante ajustes de plugin.
  • Confirma que las URLs del sitemap devuelvan 200 y sean canónicas.

Paso 3: Arregla primero los mayores multiplicadores de inflación

  • Páginas de búsqueda interna: asegura noindex,follow.
  • Etiquetas: establece noindex,follow salvo que estén curadas.
  • Adjuntos: redirige o noindexa.
  • Parámetros: deja de generarlos internamente; canonicaliza; considera normalización en el borde para parámetros basura conocidos.
  • Paginación: noindex páginas 2+ (por lo general).

Paso 4: Valida mediante logs y comprobaciones puntuales

  • Muestra solicitudes de Googlebot semanalmente y sigue las principales familias de URLs.
  • Haz curl a un puñado de páginas representativas y confirma meta robots + canonical.
  • Vigila nuevas familias de URLs después de lanzamientos de plugins/temas.

Paso 5: Añade protecciones (monitorización)

  • Automatiza comprobaciones para meta robots en 10–20 páginas clave.
  • Alerta sobre picos en rastreo parametrizado o 404s.
  • Mantén un «inventario de directivas SEO» junto a la documentación de infraestructura.

Preguntas frecuentes

¿Debo noindexar las páginas de categoría?

Normalmente no. Las categorías a menudo representan temas reales y pueden ser páginas de destino sólidas. Indexa las categorías que estés dispuesto a curar; noindex solo si son delgadas y redundantes.

¿Sigue siendo válido noindex,follow, o Google lo ignora?

Sigue siendo válido. La matización es que Google puede tratar nofollow como una sugerencia en algunos contextos, pero noindex sigue siendo la directiva correcta para «no indexes esta página».

¿Qué es mejor: noindex o canonical para duplicados?

Si la página es una variante duplicada que no debe existir como destino, prefiere redirecciones y canonicalización. Usa noindex para páginas que tienen un propósito para el usuario pero no deben posicionar (resultados de búsqueda, algunos archivos).

¿Noindexar las páginas de etiquetas dañará los enlaces internos?

Si usas noindex,follow, mantienes las rutas de rastreo. El mayor riesgo es poner nofollow por todas partes o bloquear el rastreo en robots.txt.

¿Debo bloquear archivos de etiquetas en robots.txt para ahorrar presupuesto de rastreo?

Rara vez. Disallow impide el rastreo, lo que puede crear artefactos «indexado pero bloqueado» si las URLs de etiqueta se descubren en otros lugares. Déjalas rastrear y noindexa en su lugar.

¿Cuánto tarda en reducirse la inflación del índice después de los cambios?

Espera semanas, no días. Google tiene que recrawlear las páginas para ver las directivas, y la limpieza del índice no es instantánea. Tus logs reflejarán cambios en el comportamiento antes que el índice.

¿Necesito eliminar URLs noindexadas de los sitemaps?

Sí. Los sitemaps son una lista de «por favor, indexa esto». Incluir URLs noindexadas envía señales mezcladas y desperdicia atención.

¿Y la paginación—debo canonicalizar la página 2+ a la página 1?

Cuidado. Canonicalizar página 2 a página 1 puede ocultar elementos más profundos y confundir a Google sobre listas distintas. Un patrón más seguro común es noindex,follow en página 2+ mientras se mantienen enlaces de paginación adecuados.

¿Puedo simplemente eliminar páginas de etiqueta?

Puedes dejar de enlazarlas internamente y dejar de generarlas, pero las URLs existentes pueden persistir externamente. Noindex y/o redirecciones son más limpias que fingir que nunca existieron.

¿Bloquear /wp-json/ ayuda?

A veces. Para muchos sitios está bien disallow si genera ruido de rastreo, pero ten cuidado: algunas características front-end y plugins dependen de ello. Prueba antes de cerrar la puerta de golpe.

Conclusión: próximos pasos que realmente funcionan

Deja de tratar la inflación del índice como una maldición mística del SEO. Es solo una superficie de URLs sin control. WordPress seguirá generando páginas hasta la muerte térmica del universo; tu trabajo es decidir cuáles importan.

Haz esto a continuación, en orden:

  1. Inventario de familias de URLs (posts, páginas, categorías, etiquetas, autores, fechas, adjuntos, búsqueda, parámetros, paginación).
  2. Establece valores por defecto: búsqueda, etiquetas, fecha, adjuntos → noindex,follow (o redirige adjuntos). Mantén categorías indexables solo si son hubs reales.
  3. Elimina contradicciones: quita URLs noindexadas de sitemaps; elimina disallows en robots.txt que crean problemas de «indexado pero bloqueado».
  4. Vigila logs semanalmente hasta que la mezcla de rastreo parezca sensata (menos parámetros, menos páginas de etiqueta, menos paginación profunda).
  5. Añade protecciones para que una actualización de plugin no pueda noindexar silenciosamente tus mejores páginas otra vez.

Si haces eso, acabarás con una huella de índice más pequeña y limpia y un sitio que sea más fácil de entender para los rastreadores. Ese es el objetivo: hacer obvia la estructura pretendida y dejar de ofrecer a Google un buffet de sobras.

← Anterior
Instalación de Rocky Linux 10: compatible con RHEL sin el dolor de la suscripción
Siguiente →
Unidad de Recuperación de Windows: la pequeña USB que puede salvar tu fin de semana

Deja un comentario