Eliminando oEmbed y Discovery Links en WordPress

PUNTOS CLAVE

  • Los enlaces de descubrimiento actúan como faros que anuncian la ubicación de la REST API y endpoints de oEmbed.
  • Eliminarlos no afecta la previsualización en WhatsApp, Telegram o redes sociales (OpenGraph).
  • Previene que bots automáticos mapeen la estructura de tu sitio y la lista de usuarios.
  • Reduce el ruido visual en el encabezado HTML, manteniendo un enfoque minimalista y técnico.

En el proceso de blindaje de una instalación de WordPress, el encabezado HTML suele ser la zona donde más información se «filtra» hacia el exterior. Por defecto, WordPress añade etiquetas de enlace que indican dónde se encuentra la REST API y cómo pueden otros sitios «descubrir» tu contenido. Aunque estas funciones están diseñadas para la interoperabilidad, en un blog personal o corporativo suelen ser puertas abiertas innecesarias para scrapers y herramientas de reconocimiento automatizado.

Los enlaces de descubrimiento son etiquetas <link rel="alternate"> que se inyectan en el <head> de cada página. Su función es informar a los clientes HTTP (como otros sitios de WordPress o herramientas de auditoría) que existe una versión estructurada de la página en formato JSON o XML disponible a través de la REST API u oEmbed.


DATO TÉCNICO

OEmbed es el protocolo que permite a WordPress transformar un simple enlace (como uno de YouTube) en un reproductor de vídeo o una tarjeta visual de forma automática.

#¿Por qué eliminarlos del Encabezado?

La principal razón es el reconocimiento de la superficie de ataque. Un atacante o un bot de spam utiliza estos enlaces para encontrar rápidamente la lista de usuarios (vía /wp/v2/users) o para clonar contenido de forma automatizada. Al eliminar estos enlaces del encabezado público, obligas a cualquier herramienta a trabajar mucho más duro para encontrar tus endpoints, reduciendo el ruido en tus registros del servidor.

#Mitos sobre las Redes Sociales

Existe el temor de que al eliminar los enlaces de oEmbed se pierda la «tarjeta» que aparece al compartir en WhatsApp o Twitter. Es importante aclarar que esto es falso. Las redes sociales no utilizan oEmbed para generar previsualizaciones; utilizan las etiquetas de OpenGraph (Facebook/WhatsApp) y Twitter Cards. Por lo tanto, tu sitio seguirá viéndose perfecto al ser compartido.


ACLARACIÓN IMPORTANTE

Eliminar los enlaces del encabezado no desactiva la REST API. La API sigue funcionando igual para tus propios scripts, pero deja de «gritar» su ubicación a todo el que visita la web.

Veamos el ejemplo de un desarrollador llamado Álex, que quería un sitio con estética «minimalista radical». Al ver el código fuente de su WordPress, se encontró con una decena de etiquetas que sobraban.

Aplicando una política de limpieza, integró estos filtros en su núcleo de seguridad:

text
// Archivo: inc/security.php

remove_action('wp_head', 'rest_output_link_wp_head');
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');
remove_action('template_redirect', 'rest_output_link_header', 11);

Tras la implementación, Álex notó que su HTML era más liviano, más difícil de escanear para bots de spam y, sobre todo, mucho más profesional a ojos de otros desarrolladores que inspeccionaran su código.

Recuerda que el functions.php apunte a este archivo

text
require get_template_directory() . '/inc/security.php';

#Resumen de Acciones y Efectos

Elemento Eliminado Beneficio Directo
rest_output_link_wp_head Oculta el enlace JSON de la API en el HTML.
wp_oembed_add_discovery_links Evita que otros sitios «descubran» metadatos técnicos.
wp_oembed_add_host_js Elimina el script encargado de gestionar incrustaciones externas.
rest_output_link_header Limpia la cabecera HTTP de la respuesta del servidor.