WordPress: Sustituir enlaces mailto en todo el sitio en minutos

Guía para localizar y sustituir enlaces mailto en tu sitio WordPress.

Por qué sustituir enlaces mailto en WordPress

Problemas habituales

Enlaces mailto en WordPress:

  • Exponen el correo a bots que rastrean direcciones
  • No funcionan bien en iPhone Mail (iOS 26.1)
  • Mala experiencia en móvil
  • Sin protección anti-spam
  • Sin seguimiento ni analíticas

Ubicaciones habituales:

  • Plantillas del tema (cabecera, pie)
  • Elementos de menú
  • Áreas de widgets
  • Contenido de páginas y entradas
  • Bloques HTML personalizados
  • Firmas de correo en biografías de autor

Dónde se esconden los mailto en WordPress

Ubicaciones en el tema

1. Cabecera

  • header.php
  • Menús de navegación
  • Información de contacto en la barra superior

2. Pie

  • footer.php
  • Widgets del pie
  • Zona de copyright/contacto

3. Barra lateral

  • sidebar.php
  • Áreas de widgets
  • Widgets de contacto

4. Plantillas de página

  • page.php, single.php
  • Plantilla de página de contacto
  • Plantillas personalizadas

Ubicaciones en el contenido

1. Menús de navegación

  • Apariencia → Menús
  • Menú principal
  • Menú del pie
  • Menú móvil

2. Widgets

  • Apariencia → Widgets
  • Widgets de texto
  • Widgets HTML
  • Widgets personalizados

3. Páginas y entradas

  • Página de contacto
  • Página "Nosotros"
  • Entradas del blog
  • Biografías de autor

4. Campos personalizados

  • Campos ACF
  • Meta boxes
  • Campos de contacto personalizados

Dos formas de sustitución

Enfoque 1: Sustitución manual (recomendado al principio)

Adecuado para:

  • Sitios pequeños (< 50 páginas)
  • Quieres controlar cada sustitución
  • Limpieza puntual

Pasos más abajo.

Enfoque 2: Sustitución automática con JavaScript (recomendado para sitios grandes)

Adecuado para:

  • Sitios grandes (cientos de páginas)
  • Protección continua
  • Configurar y olvidar

Ver el fragmento JavaScript más abajo.

Pasos de sustitución manual

Paso 1: Crear tu formulario (5 minutos)

  1. Regístrate en SupportRetriever
  2. Completa el onboarding
  3. Configura tu formulario de contacto
  4. Obtén la URL del formulario: https://supportretriever.com/form/your-form-id
  5. Tenla a mano para las sustituciones

Paso 2: Localizar enlaces mailto (10 minutos)

Buscar en la base de datos

Con un plugin de buscar y reemplazar:

  1. Instala "Better Search Replace" (plugin gratuito)
  2. Ve a Herramientas → Better Search Replace
  3. Busca: mailto:
  4. Selecciona todas las tablas
  5. No reemplaces aún — solo busca para ver qué tienes
  6. Revisa los resultados

Buscar en archivos del tema

  1. Ve a Apariencia → Editaror del tema
  2. Busca mailto: en:
    • header.php
    • footer.php
    • functions.php
    • Archivos de plantilla

Revisar menús

  1. Ve a Apariencia → Menús
  2. Revisa cada elemento del menú
  3. Busca "Enlaces personalizados" con URLs mailto

Revisar widgets

  1. Ve a Apariencia → Widgets
  2. Abre cada widget
  3. Revisa widgets de texto/HTML en busca de mailto

Revisar contenido

  1. Usa Better Search Replace para buscar en el contenido de entradas
  2. O la búsqueda de WordPress: mailto: en entradas/páginas

Paso 3: Sustituir en menús (5 minutos)

Para elementos del menú de navegación:

  1. Ve a Apariencia → Menús
  2. Localiza elementos con enlaces mailto
  3. Haz clic para expandir cada uno
  4. Sustituye la URL por la URL del formulario:
Antes: mailto:support@example.com
Después: https://supportretriever.com/form/your-form-id?origen=menu
  1. Actualiza la etiqueta del menú si hace falta:
Antes: support@example.com
Después: Contactar soporte
  1. Guarda el menú

Paso 4: Sustituir en widgets (5 minutos)

Para áreas de widgets:

  1. Ve a Apariencia → Widgets
  2. Abre cada widget de texto/HTML
  3. Cambia a la pestaña "Texto" (no Visual)
  4. Busca y reemplaza:
<!-- Antes -->
<a href="mailto:contact@example.com">Contáctanos</a>

<!-- Después -->
<a href="https://supportretriever.com/form/your-form-id?origen=widget">Contáctanos</a>
  1. Guarda cada widget

Paso 5: Sustituir en archivos del tema (10 minutos)

Para header.php:

  1. Ve a Apariencia → Editaror del tema
  2. Abre header.php
  3. Localiza los enlaces mailto
  4. Sustituye por la URL del formulario:
<!-- Antes -->
<a href="mailto:<?php echo get_option('admin_email'); ?>">
  Contact
</a>

<!-- Después -->
<a href="https://supportretriever.com/form/your-form-id?origen=header">
  Contact
</a>
  1. Guarda el archivo

Para footer.php:

<!-- Antes -->
<p>Correo electrónico: <a href="mailto:info@example.com">info@example.com</a></p>

<!-- Después -->
<p><a href="https://supportretriever.com/form/your-form-id?origen=footer">Contáctanos</a></p>

Nota: Valora crear un tema hijo antes de editar archivos del tema.

Paso 6: Sustituir en contenido (10 minutos)

Con Better Search Replace:

  1. Ve a Herramientas → Better Search Replace
  2. Busca: mailto:support@example.com
  3. Reemplaza por: https://supportretriever.com/form/your-form-id?origen=content
  4. Selecciona tablas: wp_posts, wp_postmeta
  5. Ejecuta primero en modo prueba
  6. Revisa qué se cambiará
  7. Si está bien, ejecuta de verdad (desmarca "dry run")
  8. Ejecuta buscar y reemplazar

O edita páginas a mano:

  1. Editara cada página/entrada con mailto
  2. Cambia al "Editaror de código" (o pestaña Texto)
  3. Busca y reemplaza los mailto
  4. Actualiza cada página

Paso 7: Sustituir en campos personalizados (si aplica)

Si usas ACF o campos personalizados:

  1. Ve a Entradas/Páginas con esos campos
  2. Editara cada una
  3. Actualiza los campos de correo con la URL del formulario
  4. Guarda los cambios

Método de sustitución automática con JavaScript

Cuándo usarlo

Usa la sustitución automática con JavaScript si:

  • Tienes cientos de páginas
  • Los mailto están en sitios muy diversos
  • Quieres protección continua
  • El contenido nuevo puede incluir mailto
  • No quieres localizarlos todos a mano

Instalación

Método 1: Pie del tema (el más simple)

  1. Ve a Apariencia → Editaror del tema
  2. Abre footer.php
  3. Añade antes de la etiqueta </body>:
<script>
(function() {
  const FORM_URL = 'https://supportretriever.com/form/your-form-id';
  
  document.querySelectorAll('a[href^="mailto:"]').forEach(link => {
    const originalHref = link.getAttribute('href');
    const emailMatch = originalHref.match(/mailto:([^?]+)/);
    
    if (emailMatch) {
      link.setAttribute('href', FORM_URL + '?origen=autoconvert');
      link.setAttribute('data-original-email', emailMatch[1]);
    }
  });
})();
</script>
  1. Guarda el archivo

Método 2: Plugin Code Snippets (recomendado)

  1. Instala el plugin Code Snippets (gratuito)
  2. Ve a Snippets → Añadir nuevo
  3. Título: "Sustituir enlaces mailto"
  4. Pega este código:
add_action('wp_footer', function() {
    ?>
    <script>
    (function() {
      const FORM_URL = 'https://supportretriever.com/form/your-form-id';
      
      document.querySelectorAll('a[href^="mailto:"]').forEach(link => {
        const originalHref = link.getAttribute('href');
        const emailMatch = originalHref.match(/mailto:([^?]+)/);
        
        if (emailMatch) {
          link.setAttribute('href', FORM_URL + '?origen=autoconvert');
          link.setAttribute('data-original-email', emailMatch[1]);
        }
      });
    })();
    </script>
    <?php
});
  1. Marca "Solo ejecutar en el frontend"
  2. Guarda y activa el snippet

Método 3: functions.php

Solo si usas un tema hijo:

  1. Abre el functions.php del tema hijo
  2. Añade este código:
function replace_mailto_links() {
    ?>
    <script>
    (function() {
      const FORM_URL = 'https://supportretriever.com/form/your-form-id';
      
      document.querySelectorAll('a[href^="mailto:"]').forEach(link => {
        const originalHref = link.getAttribute('href');
        const emailMatch = originalHref.match(/mailto:([^?]+)/);
        
        if (emailMatch) {
          link.setAttribute('href', FORM_URL + '?origen=autoconvert');
          link.setAttribute('data-original-email', emailMatch[1]);
        }
      });
    })();
    </script>
    <?php
}
add_action('wp_footer', 'replace_mailto_links');
  1. Guarda el archivo

Probar el método con JavaScript

  1. Visita tu sitio
  2. Clic derecho en un antiguo enlace mailto
  3. Inspeccionar elemento
  4. Comprueba que href apunta ahora al formulario
  5. Haz clic en el enlace para probar
  6. Comprueba que se abre el formulario

Por qué existen los "plugins de codificación" (y cuándo es mejor sustituir)

Plugins de codificación/ofuscación de correo

Plugins habituales:

  • Correo electrónico Encoder
  • Correo electrónico Obfuscator
  • Hide My Correo electrónico

Qué hacen:

  • Codifican direcciones con JavaScript
  • Intentan ocultarlas de los bots
  • Mantienen la funcionalidad mailto

Ejemplo de codificación:

// En lugar de: support@example.com
// Pasa a: &#115;&#117;&#112;&#112;&#111;&#114;&#116;&#64;...

Cuándo es mejor codificar

Usa plugins de codificación si:

  • DEBES mostrar la dirección real
  • Los usuarios necesitan copiar-pegar el correo
  • No puedes usar un formulario de contacto
  • Tu caso exige que el correo sea visible

Cuándo es mejor sustituir (la mayoría de casos)

Sustituye por el formulario si:

  • Quieres máxima protección anti-spam (99 % frente a 30 %)
  • Importa la experiencia en móvil (problema iOS 26.1)
  • Quieres gestión de conversaciones
  • Quieres analíticas
  • Quieres una solución a largo plazo

Ventajas de sustituir frente a codificar:

Característica Plugin codificación Sustitución por formulario
Protección anti-spam 30-40 % 99 %+
Fiabilidad en móvil Baja Alta
Compatible iOS 26.1 No
Accesibilidad Media Alta
Experiencia de usuario Media Mejor
Eficacia a largo plazo Se degrada Permanente
Gestión de conversaciones No
Analíticas No

Conclusión: En la mayoría de sitios, sustituir por formularios ofrece mejor protección y experiencia que codificar.

Guía paso a paso (texto)

Ruta de navegación:

Buscar mailto en Menú:
Admin WordPress → Apariencia → Menús →
Selecciona menú → Expande elemento → 
Mira el campo URL → Sustituye si contiene "mailto:"

Buscar mailto en Widgets:
Admin WordPress → Apariencia → Widgets →
Clic en widget para expandir → Pestaña Texto →
Busca mailto: en el HTML → Sustituye por URL del formulario

Buscar mailto en el tema:
Admin WordPress → Apariencia → Editaror del tema →
Selecciona header.php o footer.php →
Busca "mailto:" en la página → Sustituye cada caso →
Clic en "Actualizar archivo"

Usar Better Search Replace:
Admin WordPress → Herramientas → Better Search Replace →
Campo "Buscar": mailto:tuemail@example.com →
Campo "Reemplazar por": https://supportretriever.com/form/your-id →
Selecciona tablas: wp_posts →
Marca "Ejecutar en modo prueba" → Clic "Ejecutar buscar/reemplazar" →
Revisa resultados → Desmarca prueba → Ejecuta de nuevo para aplicar

Lista de verificación

Después de sustituir

  • Visita la página de inicio — revisa enlaces del pie y cabecera
  • Revisa la página de contacto — que no queden mailto
  • Revisa los menús de navegación — todos los elementos funcionan
  • Revisa los widgets de la barra lateral — los enlaces al formulario funcionan
  • Ver código fuente — busca "mailto:" (no debería haber ninguno)
  • Prueba en móvil — comprueba que los enlaces abren el formulario
  • Prueba en iPhone — comprueba que el arreglo de iOS 26.1 funciona
  • Envía un mensaje de prueba — comprueba la entrega
  • Revisa la notificación por correo — comprueba que llega

Comandos de prueba

Buscar mailto restantes:

  1. Ver código fuente de la página (Ctrl+U / Cmd+U)
  2. Buscar "mailto:" (Ctrl+F / Cmd+F)
  3. Debería haber: 0 resultados
  4. Si encuentras alguno, anota la ubicación y sustituye

Probar enlaces al formulario:

  1. Haz clic en cada enlace de contacto
  2. Comprueba que se abre el formulario
  3. Envía un mensaje de prueba
  4. Comprueba que llega el correo
  5. Repite en móvil

Solución de problemas

"Sigo viendo enlaces mailto"

Posibles causas:

  • Páginas en caché (borra la caché)
  • Caché de CDN (borra la CDN)
  • Caché del navegador (recarga forzada: Ctrl+Shift+R)
  • Ubicaciones que no revisaste (revisa todas las fuentes)

Soluciones:

  1. Borra todas las cachés
  2. Usa navegación privada/incógnito
  3. Revisa de nuevo todas las ubicaciones

"El método con JavaScript no funciona"

Posibles causas:

  • Error de JavaScript
  • Orden de carga de scripts
  • Plugins en conflicto

Depuración:

  1. Abre la consola del navegador (F12)
  2. Busca errores
  3. Comprueba que el script se carga
  4. Comprueba conflictos con jQuery

Soluciones:

  • Envuelve en jQuery(document).ready()
  • Carga el script en el pie (no en la cabecera)
  • Desactiva plugins uno a uno para localizar el conflicto

"La URL del formulario es incorrecta"

Solución:

  1. Ve al panel de SupportRetriever
  2. Entra en Gestión de formularios
  3. Copia la URL correcta del formulario
  4. Actualiza todas las instancias
  5. Borra la caché

WordPress multisitio

Sustitución en toda la red

Si tienes multisitio:

  1. Usa Better Search Replace en la base de datos de la red
  2. O ejecuta el script en cada subsitio
  3. O añade el JavaScript al tema de la red

Consideraciones:

  • Cada sitio puede necesitar un formulario distinto
  • Usa metadatos para identificar el sitio: ?site=site1
  • Valora un formulario central o un formulario por sitio

Temas relacionados

¿Listo para simplificar tu soporte?
Únete a miles que usan SupportRetriever para gestionar conversaciones con clientes.
Probar gratis

Explorar más

Ver todos los artículos