Si desarrollas temas a medida para WordPress, es muy probable que en algún momento te pidan ofuscar enlaces internos por motivos de SEO. Ya sea por parte del equipo de marketing o del técnico SEO, controlar qué enlaces puede rastrear Google es clave para mejorar el posicionamiento de un sitio web grande.
Aunque esta técnica se puede aplicar en menús, bloques de filtros o listados personalizados, en esta publicación nos vamos a centrar en la paginación, un elemento habitual en los bloques Query Loop de WordPress. Verás cómo modificar su comportamiento para que los rastreadores no sigan los enlaces profundos, sin afectar al usuario ni romper el diseño o la accesibilidad.
¿Qué significa ofuscar enlaces en WordPress y por qué importa?
Ofuscar enlaces en WordPress significa modificar cómo se presentan en el HTML para que los rastreadores web —especialmente los que no ejecutan JavaScript— no puedan seguirlos fácilmente. No se trata de ocultar contenido, sino de orientar el rastreo hacia lo que realmente importa.
Esta técnica se ha vuelto cada vez más relevante en proyectos con muchas URLs internas, donde el control del presupuesto de rastreo (crawl budget) es fundamental. Si Google dedica tiempo a rastrear enlaces sin valor SEO —como paginaciones profundas, filtros automáticos o combinaciones generadas por plugins—, puede acabar ignorando otras páginas más importantes.
Aplicar ofuscación te permite:
- Reducir la carga de rastreo en páginas poco relevantes.
- Evitar la dispersión del link juice.
- Mejorar el control de indexación sin necesidad de bloquear URLs desde el robots.txt.
No es una técnica milagrosa, pero bien usada, ayuda a mejorar la eficiencia del rastreo y enfocar la autoridad interna donde más importa.
¿En qué situaciones es útil ofuscar enlaces?
Aunque pueda parecer una sofisticación innecesaria, ofuscar enlaces en WordPress tiene aplicaciones muy concretas cuando hablamos de proyectos grandes o con mucha profundidad de navegación.
Estas son algunas situaciones donde puede marcar la diferencia:
- Blogs con alta frecuencia de publicación: evita que Google se pierda en paginaciones profundas, rastreando páginas que ya no aportan nada nuevo.
- E-commerce con filtros automáticos: muchos plugins generan URLs combinadas sin valor SEO. La ofuscación puede impedir su rastreo masivo.
- Directorios, listados o portales: cuando hay navegación por categorías, regiones o tags que generan cientos de páginas internas.
- Sitios multilingües o multirregión: para evitar rastreo duplicado en versiones idénticas del contenido.
Un caso típico es el de los listados paginados. Si tienes un blog con decenas de entradas por categoría, no tiene sentido que Google rastree hasta la página 150 cuando cada post ya está indexado por su propia URL. En ese caso, ofuscar los enlaces a partir de cierta profundidad (por ejemplo, desde la página 6) puede ayudarte a conservar presupuesto de rastreo para nuevas publicaciones o páginas clave.
Beneficios y límites de esta estrategia SEO
Modificar la forma en que se presentan los enlaces en el HTML —sin eliminar su funcionalidad— puede ofrecer ventajas muy concretas si se aplica con criterio y en las zonas adecuadas del sitio. No es una técnica milagrosa, pero bien implementada, puede ayudarte a controlar el rastreo y enfocar la autoridad interna donde más lo necesitas.
A continuación, te resumo los principales beneficios y limitaciones de esta estrategia técnica:
| Beneficios | Limitaciones |
|---|---|
| Optimiza el crawl budget evitando que Google rastree URLs poco útiles. | No todos los bots respetan la ofuscación, especialmente si ejecutan JS. |
| Refuerza el link juice hacia páginas estratégicas. | No garantiza que Google no descubra esas URLs por otras vías. |
| Reduce el contenido duplicado rastreado en filtros o taxonomías. | Puede afectar la accesibilidad si no se implementa bien. |
| Permite aplicar reglas dinámicas según profundidad o contexto. | No sustituye una estrategia de arquitectura o indexación bien pensada. |
Como ves, y según mi experiencia trabajando con sitios WordPress complejos, no se trata de esconder enlaces a toda costa, sino de aplicar un enfoque estratégico y técnico que mejore la eficiencia del rastreo sin romper la experiencia de usuario ni la accesibilidad. En los siguientes apartados veremos cómo hacerlo con distintos métodos, tanto con código como con plugins.
La clave está en usar esta técnica como una ayuda más dentro del SEO técnico, no como un atajo para ocultar errores estructurales.
Técnicas y métodos: JavaScript, Base64, ASCII y eventos onclick
A la hora de ocultar enlaces a los rastreadores sin romper la navegación del usuario, existen diferentes métodos que puedes aplicar directamente en WordPress. Cada uno tiene sus ventajas y limitaciones, y en muchos casos se pueden combinar.
Estos son los más habituales:
- JavaScript básico: elimina el atributo href y usa onclick o addEventListener para activar la navegación. Útil si quieres que solo los usuarios humanos puedan hacer clic.
- Codificación Base64: convierte la URL real en una cadena codificada y la almacenas en un atributo personalizado (data-info, por ejemplo). Luego, la decodificas al hacer clic.
- ASCII Entities: reemplaza caracteres como /, : o ? por sus equivalentes en entidades HTML (/, ?, etc.). Es menos fiable, pero puede evitar que parsers simples detecten el enlace.
- Uso de rel=»nofollow» o bloquear desde robots.txt: técnicamente no es ofuscación, pero se usa para evitar que Google siga ciertos enlaces. No siempre es efectivo.
En mi caso, la combinación Base64 + JavaScript es la que mejores resultados me ha dado. Es limpia, accesible y no rompe el diseño. Además, permite un control granular sobre qué enlaces se ofuscan y cómo se comportan.
Implementación paso a paso: cómo ofuscar los enlaces de la paginación en WordPress
Vamos a aplicar la ofuscación sobre un elemento muy concreto: el bloque de paginación (core/query-pagination) que WordPress incluye por defecto cuando usas un bloque de consulta (Query Loop). Este bloque genera automáticamente los enlaces de paginación en listados de entradas, productos o contenidos personalizados.
La idea es interceptar su HTML en el momento de renderizarse, revisar cada enlace, y si apunta a una página profunda (por ejemplo, superior a la 5), eliminar el href y sustituirlo por un atributo data-info con la URL codificada en Base64.
Interceptar el HTML del bloque antes de mostrarlo
WordPress permite modificar el HTML de un bloque usando el filtro render_block_core/query-pagination. Aquí tienes el código para hacerlo:
/**
* Ofusca los enlaces de paginación (>5) del bloque core/query-pagination.
* Añade atributos de accesibilidad como aria-label, role, tabindex.
*/
add_filter( 'render_block_core/query-pagination', 'prefix_obfuscator_pagination', 10, 2 );
function prefix_obfuscator_pagination( $html, $block ) {
if ( ! str_contains( $html, '<a' ) ) {
return $html;
}
$processor = new WP_HTML_Tag_Processor( $html );
while ( $processor->next_tag( 'a' ) ) {
// Extraer el número de página del href
$href = $processor->get_attribute( 'href' );
if ( ! $href ) {
continue;
}
preg_match( '/page\/(\d+)/', $href, $matches );
$page_num = isset( $matches[1] ) ? (int) $matches[1] : 0;
if ( $page_num <= 5 ) {
continue;
}
/* Ofuscación */
$processor->remove_attribute( 'href' );
$processor->set_attribute( 'data-info', base64_encode( $href ) );
$processor->add_class( 'js-nav-info' );
/* Accesibilidad */
$processor->set_attribute( 'role', 'link' );
$processor->set_attribute( 'tabindex', '0' );
$processor->set_attribute(
'aria-label',
sprintf( 'Ir a la página %d. Pulsa Enter o haz clic para navegar.', $page_num )
);
}
return $processor->get_updated_html();
}
Este filtro se asegura de que los enlaces de paginación hacia páginas profundas —por ejemplo, a partir de la página 6— no contengan el atributo href visible para los rastreadores, sino que almacenen esa URL en un atributo data-info, codificada en Base64.
De esta forma, los bots que no ejecutan JavaScript no podrán seguirlos. Además, el script añade una clase especial para identificar esos enlaces (js-nav-info) y atributos de accesibilidad, como role="link", tabindex="0" y aria-label descriptivo. Esto garantiza que los usuarios puedan navegar con teclado o lectores de pantalla sin notar diferencia.

HTML original del bloque de paginación en WordPress con los enlaces visibles mediante href, sin aplicar aún el filtro de ocultación con Base64.

Código HTML resultante tras aplicar el filtro en WordPress, donde los enlaces de paginación se ocultan en atributos data-info codificados en Base64 y se añaden mejoras de accesibilidad.
Este código requiere WordPress 6.5 o superior para usar WP_HTML_Tag_Processor. Si trabajas con versiones anteriores, deberías actualizar o usar técnicas alternativas.
JavaScript para navegar al enlace ofuscado
Una vez hemos eliminado el atributo href y lo hemos sustituido por «data-info», necesitamos un pequeño script en JavaScript que capture el clic o pulsación de tecla y realice la redirección manual.
Este código se puede insertar como archivo en cola, o directamente en el footer del tema:
function irALinkObfuscado(el) {
const url = atob(el.dataset.info);
window.location.href = url;
}
document.addEventListener('click', (e) => {
const link = e.target.closest('a.js-nav-info');
if (link) {
e.preventDefault();
irALinkObfuscado(link);
}
});
document.addEventListener('keydown', (e) => {
if (e.key !== 'Enter' && e.key !== ' ') return;
const link = e.target.closest('a.js-nav-info');
if (link) {
e.preventDefault();
irALinkObfuscado(link);
}
});
Este script se encarga de capturar los eventos de clic y pulsación de teclado (Enter o barra espaciadora) sobre los enlaces que hemos marcado con la clase .js-nav-info. Cuando detecta una interacción, evita el comportamiento por defecto y decodifica la URL original desde el atributo data-info, que está en Base64. Una vez recuperada, redirige al usuario de forma natural, como si hubiese hecho clic en un enlace estándar.
Esto permite mantener la funcionalidad esperada sin depender de href, y es totalmente compatible con accesibilidad y navegación por teclado.
Además, como el script busca elementos con la clase .js-nav-info, puedes aplicarlo fácilmente a otros enlaces del sitio si decides extender la técnica más allá de la paginación.
Mejora de accesibilidad aplicada al sistema de ofuscación
Cuando eliminamos el atributo href de un enlace para evitar que sea seguido por los rastreadores, también perdemos parte de su semántica HTML. Para el navegador y, sobre todo, para las tecnologías de asistencia, ese elemento ya no se comporta como un enlace convencional.
Por eso es importante añadir una capa de accesibilidad que mantenga la experiencia de usuario, incluso sin href. En el ejemplo anterior, añadimos atributos que cumplen ese propósito:
- role=»link»: indica que el elemento sigue actuando como un enlace.
- tabindex=»0″: permite que se pueda alcanzar con el teclado.
- aria-label: proporciona un texto descriptivo que indica qué ocurre si se pulsa.
Esto asegura que un lector de pantalla anuncie correctamente el propósito del enlace, y que los usuarios con navegación por teclado puedan interactuar con él sin problemas.
En nuestro caso, el aria-label se construye dinámicamente para indicar el número de página y la acción esperada. Por ejemplo: “Ir a la página 6. Pulsa Enter o haz clic para navegar.”
Estos pequeños detalles marcan una gran diferencia para la accesibilidad, y además evitan errores de validación o experiencias frustrantes para usuarios reales.
¿Deberías ofuscar todos los enlaces o solo algunos?
No todos los enlaces son candidatos a ser ofuscados. Como toda técnica SEO, debe aplicarse con un objetivo claro y sin excesos. Usarla de forma masiva puede ser contraproducente y complicar la navegación sin necesidad.
La regla general es sencilla: solo deberías ofuscar enlaces que no te interesa que Google rastree ni indexe, pero que siguen siendo útiles para el usuario. Este equilibrio es clave.
| Buenos candidatos | No deberías ofuscar |
|---|---|
| Paginación a partir de la página 6 o más. | Menús y enlaces principales de navegación. |
| Filtros automáticos que generan URLs duplicadas o combinadas. | Rutas clave para la conversión (fichas, contacto, checkout). |
| Enlaces generados en bucles poco relevantes (etiquetas masivas, etc.). | Enlaces internos que estructuran el enlazado lógico del sitio. |
Un uso medido y bien orientado te ayudará a optimizar el rastreo sin dañar la arquitectura interna ni la experiencia de usuario.
¿Hay plugins para ofuscar enlaces en WordPress?
Si prefieres una solución sin tocar código, te recomiendo el plugin Link Juice Optimizer, desarrollado por Fede Gómez, experto en WordPress y SEO técnico.
Este plugin te permite controlar fácilmente qué enlaces quieres ofuscar desde el panel de administración, sin tener que modificar el tema ni añadir funciones personalizadas. Es compatible con la mayoría de temas y constructores visuales, por lo que puede integrarse bien incluso en sitios ya montados.
Eso sí, ten en cuenta que algunos plugins de caché o minificación pueden interferir en la ejecución de los scripts, así que conviene probarlo primero en un entorno de staging.
Riesgos si aplicas esta técnica sin criterio
Como toda técnica avanzada, la ofuscación de enlaces puede volverse en tu contra si no se aplica con criterio. Aunque suene tentador usarla para «limpiar el rastreo», hacerlo de forma indiscriminada puede afectar negativamente al SEO y a la experiencia de usuario.
Entre los principales riesgos están:
- Romper la navegación interna si los enlaces dejan de ser accesibles por error.
- Perder posicionamiento al cortar rutas importantes para el rastreo e indexación.
- Complicar el mantenimiento del sitio al introducir lógica extra en la renderización.
- Afectar la accesibilidad si se eliminan atributos sin ofrecer alternativas correctas.
En algunos casos, incluso podrías provocar que Google detecte patrones de manipulación si aplicas ofuscación masiva en zonas que normalmente deberían ser rastreables (como menús o enlaces contextuales).
Por eso, mi recomendación es clara: usa esta técnica solo en contextos controlados, donde sepas exactamente qué efecto buscas y puedas medir el impacto. No es un sustituto del robots.txt, ni de una arquitectura bien diseñada.
Claves finales para usar la ofuscación de enlaces de forma efectiva
Ofuscar enlaces en WordPress no es una técnica que debas aplicar por defecto, pero puede marcar la diferencia en proyectos grandes o con problemas de rastreo. Si sabes dónde aplicarla —y por qué—, es una herramienta potente para optimizar el crawl budget y mejorar la eficiencia del rastreo sin tocar el archivo robots.txt.
Recuerda que:
- No todos los enlaces merecen ser ofuscados.
- La accesibilidad y la navegación siempre deben mantenerse.
- Es importante medir el impacto y revisar el comportamiento del rastreo tras aplicarla.
- Puedes hacerlo con código o mediante un plugin como Link Juice Optimizer, según el tipo de proyecto.
Si tienes dudas sobre cómo aplicar esto en tu web o necesitas una solución adaptada a tu arquitectura, en Bubuku trabajamos cada día en mejorar la conversión y el rendimiento de nuestros clientes. Te invitamos a conocer nuestro servicio de mantenimiento WordPress, donde también te ayudamos con ajustes técnicos como este.
Recursos relacionados
Si quieres profundizar más o aplicar esta técnica en otros contextos, aquí tienes algunos enlaces útiles:
- Documentación oficial de WP_HTML_Tag_Processor – para manipular HTML en bloques.
- Pautas de WCAG 2.1 sobre enlaces sin href – clave para evitar errores de accesibilidad.
- Explicación oficial de Google sobre el crawl budget – comprende cómo funciona el rastreo e indexación.
- Tips y snippets para insertar JavaScript en un tema o plugin de WordPress – recursos prácticos desde Bubuku.



