Tiempo de lectura: 5 min
Valencia, 08/09/2026, G.B.
Hay comandos que uno lanza casi por rutina y que, sin embargo, acaban destapando cosas interesantes. La semana pasada me tocó revisar el sitemap nativo de uno de mis sitios en WordPress y, de paso, aproveché para repasar algo que tenía pendiente desde hace tiempo: los feeds del sitio y una cabecera HTTP que no debería estar ahí.
Table of Contents
Qué es el feed de un sitio en WordPress
El feed es una versión del contenido en XML —normalmente RSS 2.0, aunque WordPress también sabe hablar Atom— pensada para que lectores de noticias, agregadores o scripts consuman las entradas sin tener que «leer» el HTML de la página. Es una de esas piezas del núcleo de WordPress que llevan ahí desde siempre y que casi nadie mira hasta que algo deja de funcionar (a mí me pasó hace poco con un gadget de Blogger de terceros que dejó de refrescar entradas porque un Disallow: */feed/ en el robots.txt se lo estaba impidiendo).
Lo interesante es que WordPress no genera un único feed, sino uno por cada «vista» relevante del sitio:
- Feed general, con todas las entradas:
/feed/ - Feed de comentarios de todo el sitio:
/comments/feed/ - Feed de una categoría:
/category/nombre-categoria/feed/ - Feed de una etiqueta:
/tag/nombre-etiqueta/feed/ - Feed de un autor:
/author/nombre-autor/feed/ - Feed de comentarios de una entrada concreta:
/nombre-entrada/feed/ - Feed de una búsqueda:
/?s=termino&feed=rss2 - Feed de un tipo de contenido personalizado, si el CPT lo soporta:
/tipo-contenido/feed/
Y todavía hay una capa más: dentro de cada uno de esos ámbitos, el formato de salida se puede forzar con el parámetro ?feed=, con hasta cuatro variantes: rss2 (el que usa WordPress por defecto), rss (RSS 0.92, un formato ya legado), atom y rdf (RSS 1.0). En total, contando ámbitos y formatos, un sitio WordPress típico expone bastantes más «puertas de entrada» XML de las que uno recuerda a primera vista.
El sitemap no es un feed
Conviene no confundir los feeds con el sitemap. Desde WordPress 5.5 (2020), el núcleo genera automáticamente un sitemap XML nativo en /wp-sitemap.xml, sin necesidad de plugins de SEO. No es RSS ni Atom: es un índice que agrupa entradas, páginas, taxonomías y usuarios en sub-sitemaps independientes (wp-sitemap-posts-post-1.xml, wp-sitemap-users-1.xml, etc.), pensado para que los buscadores rastreen el sitio de forma eficiente.
Para comprobar rápidamente si el sitemap responde bien, sin descargarlo entero, uso el comando curl:
curl -I https://midominio.com/wp-sitemap.xmlEl -I fuerza una petición HEAD: solo pide las cabeceras HTTP de la respuesta, no el cuerpo. Es la forma más rápida de saber si una URL existe, qué código de estado devuelve y qué tipo de contenido sirve, sin gastar ancho de banda en el XML completo.
Lo que las cabeceras cuentan (y lo que delatan)
Al lanzar ese curl -I contra uno de mis sitios, obtuve algo así (he sustituido la versión de PHP que aparecía por X.X.XX en el código que adjunto por motivos de seguridad):
HTTP/2 200
content-type: text/xml;charset=UTF-8
date: Fri, 04 Sep 2026 06:42:34 GMT
server: Apache
x-powered-by: PHP/X.X.XXTodo correcto salvo un detalle: x-powered-by: PHP/X.X.XX está anunciando al mundo, con número de versión exacto, qué motor PHP corre detrás. No es una vulnerabilidad en sí misma, pero sí información gratuita para cualquiera que esté buscando qué CVEs probar contra esa versión concreta. Es el tipo de cabecera que no aporta nada al visitante legítimo y sí algo a quien está reconociendo el terreno.
La buena noticia es que server: Apache ya venía sin número de versión, así que esa parte no hacía falta tocarla.
Cómo quitar la cabecera con php.ini
Yo tengo creado el archivo php.ini (o .user.ini) propio en el directorio del sitio. El mío ya incluía algunos ajustes habituales:
upload_max_filesize = 128M
post_max_size = 128M
max_execution_time = 300
memory_limit = 512M
zlib.output_compression = 1
zlib.output_compression_level = 9Simplemente basta con añadir una línea más:
expose_php = OffTras guardar el archivo -y en algunos casos esperar unos minutos a que el hosting recargue la configuración- un nuevo curl -I me ha confirmado que la cabecera x-powered-by había desaparecido. Un cambio de una sola línea, pero de esos que conviene no dejar pendientes.
Resumiendo
- Un sitio WordPress puede exponer más de media docena de feeds distintos, cada uno con hasta cuatro formatos posibles.
- El sitemap nativo (
/wp-sitemap.xml) es una pieza distinta, propia del núcleo desde la versión 5.5. curl -Ies la herramienta de cabecera rápida para auditar cualquier URL sin descargar su contenido.- Si tu hosting lo permite,
expose_php = Offen tuphp.inio.user.inies un cambio mínimo con un beneficio de seguridad nada despreciable.

