---
title: "FS_METHOD en WordPress: cómo elegirlo y solucionar errores"
description: "Guía de FS_METHOD en WordPress: cuándo cambiarlo, qué significan direct, SSH2 y FTP, y cómo corregir errores de actualización sin exponer credenciales."
url: https://wpdirecto.com/configuracion-fs_method-wp-config-php/
date: 2023-09-27
modified: 2026-09-09
author: "David Carrero Fernández-Baillo"
image: https://wpdirecto.com/wp-content/uploads/2023/09/wpconfig-wordpress-unsplash.jpg
categories: ["Actualidad"]
tags: ["actualizaciones", "FS_METHOD", "seguridad", "wp-config.php"]
type: post
lang: es
---

# FS_METHOD en WordPress: cómo elegirlo y solucionar errores

**FS_METHOD es una constante de WordPress que indica cómo debe acceder el CMS a los archivos cuando instala, actualiza o modifica componentes.** Normalmente no tienes que tocarla: WordPress comprueba qué transporte puede usar y elige el que encaja con los permisos del servidor. Solo merece la pena fijarla cuando aparecen errores de actualización, problemas de propiedad de archivos o una configuración de alojamiento poco habitual.

Esta guía sustituye el enfoque antiguo de copiar credenciales FTP sin más. En la mayoría de instalaciones actuales conviene corregir primero los permisos y la propiedad de los archivos. Si eso no basta, entonces puedes elegir el método adecuado en `wp-config.php`, siempre con una copia de seguridad y sin guardar contraseñas en un repositorio público.

## Las claves de FS_METHOD en 20 segundos

- Los valores válidos son `direct`, `ssh2`, `ftpext` y `ftpsockets`.
- WordPress prioriza el acceso directo y después prueba transportes SSH o FTP según el servidor.
- No fuerces un método si las actualizaciones ya funcionan; puedes crear un problema que antes no existía.
- FTP seguro mediante SSL no es lo mismo que SFTP por SSH.

## Qué hace WordPress cuando actualiza un plugin o el núcleo

WordPress utiliza su [Filesystem API](https://developer.wordpress.org/apis/filesystem/) para abstraer la lectura, escritura, modificación y eliminación de archivos. La función `get_filesystem_method()` comprueba el entorno y devuelve el transporte que puede utilizar. El orden documentado es `direct`, `ssh2`, `ftpext` y `ftpsockets`, aunque el resultado depende de los permisos, las extensiones de PHP y la configuración del alojamiento.

Por eso un aviso como «No se pudo crear el directorio» o una pantalla que pide credenciales FTP no significa automáticamente que debas añadir `FS_METHOD`. Puede haber un propietario incorrecto, permisos demasiado restrictivos, una ruta equivocada o una extensión que falta. Consulta primero el registro del servidor y el estado de la carpeta `wp-content`.

## Los cuatro valores válidos

| Valor | Cuándo se utiliza | Qué necesita |
| --- | --- | --- |
| `direct` | PHP puede escribir directamente en los archivos. | Propiedad y permisos correctos en el servidor. |
| `ssh2` | La conexión se hace mediante SSH. | Extensión SSH2 y datos de conexión o claves. |
| `ftpext` | Se usa la extensión FTP de PHP. | Extensión FTP y credenciales FTP. |
| `ftpsockets` | Se conecta mediante la clase de sockets de PHP. | Acceso FTP y soporte para sockets. |

## Cómo configurar FS_METHOD en wp-config.php

Si necesitas probar un método concreto, coloca la constante en `wp-config.php`, antes de la línea que indica que dejes de editar el archivo. El ejemplo mínimo sería:

```
define( 'FS_METHOD', 'direct' );
```

Sustituye `direct` por `ssh2`, `ftpext` o `ftpsockets` según tu servidor. Haz una sola prueba cada vez y vuelve a dejar que WordPress elija el transporte si el cambio no resuelve el error. La documentación oficial recomienda definir el menor número posible de constantes de actualización y cambiar `FS_METHOD` solo cuando haya problemas.

## Cuándo usar direct

`direct` es el método más sencillo cuando el proceso PHP pertenece al mismo usuario que los archivos de WordPress o tiene permisos de escritura controlados. No es malo por sí mismo ni conviene presentarlo como un riesgo automático: el problema aparece cuando el servidor permite escribir más de lo necesario o cuando los archivos tienen una propiedad incoherente.

Si WordPress solicita credenciales en cada actualización, revisa primero el propietario y el grupo de los archivos, la ruta real de la instalación y las reglas del alojamiento. Cambiar a `direct` puede ocultar el problema de permisos y dejar una configuración difícil de mantener.

## Cuándo usar SSH2 o FTP

`ssh2` tiene sentido cuando tu alojamiento ofrece acceso SSH y la extensión correspondiente está disponible para la versión de PHP que usa la web. También puedes autenticarte mediante claves, una opción preferible a escribir una contraseña en el archivo de configuración. Si el proveedor solo ofrece FTP, `ftpext` y `ftpsockets` son los transportes previstos por WordPress.

FTP mediante SSL se configura con `FTP_SSL`, pero no convierte la conexión en SFTP. SFTP utiliza SSH y se relaciona con el transporte `ssh2`. Confundir ambos protocolos suele terminar en credenciales correctas que no funcionan porque se está usando el puerto o el método equivocado.

## Constantes de conexión y rutas

Cuando el método necesita conexión, WordPress admite constantes como `FTP_HOST`, `FTP_USER`, `FTP_PASS`, `FTP_SSL`, `FTP_BASE`, `FTP_CONTENT_DIR` y `FTP_PLUGIN_DIR`. Un ejemplo orientativo sería:

```
define( 'FS_METHOD', 'ftpext' );
define( 'FTP_HOST', 'ftp.example.org' );
define( 'FTP_USER', 'usuario-ftp' );
define( 'FTP_PASS', 'contraseña-solo-como-ejemplo' );
define( 'FTP_BASE', '/ruta/a/wordpress/' );
define( 'FTP_SSL', true );
```

No copies este bloque sin adaptarlo. La ruta y el puerto dependen del proveedor. Además, evita subir `wp-config.php` a GitHub, enviarlo por correo o reutilizar la misma contraseña en otros servicios. Si ya has expuesto una contraseña real, cámbiala desde el panel del alojamiento.

Para claves SSH existen `FTP_PUBKEY` y `FTP_PRIKEY`. Deben apuntar a las rutas correctas y el usuario del servidor tiene que poder leerlas. El equipo que administra el alojamiento puede confirmar si la extensión SSH2 está activa y qué transporte soporta.

## Cómo diagnosticar el error sin empeorar la instalación

- Haz una copia de los archivos y la base de datos antes de editar `wp-config.php`. Puedes revisar nuestra [guía de copias con Duplicator](https://wpdirecto.com/duplicator-plugin-copias-seguridad/).
- Anota el mensaje exacto y comprueba si afecta a un plugin, al tema, al núcleo o a la carpeta de idiomas.
- Revisa propietario, grupo y permisos de `wp-content` y de las carpetas que WordPress intenta modificar.
- Confirma la versión de PHP y las extensiones SSH2 o FTP disponibles.
- Prueba un solo método y repite la actualización. Si no cambia nada, elimina la constante y vuelve a la configuración automática.

Si el sitio muestra errores de escritura después de un cambio, no amplíes los permisos a todo el servidor para salir del paso. Es más seguro pedir al proveedor una configuración de propiedad coherente y mantener actualizados WordPress, PHP y los plugins. La [guía de requisitos de WordPress y PHP](https://wpdirecto.com/wordpress-7-php/) ayuda a comprobar esa parte.

## Preguntas frecuentes

**¿Tengo que definir siempre FS_METHOD?**
No. Si las actualizaciones funcionan, deja que WordPress elija el transporte automáticamente.

**¿Qué valor debo usar?**
Depende del servidor. `direct` suele ser suficiente cuando PHP puede escribir con permisos correctos; `ssh2`, `ftpext` y `ftpsockets` requieren sus transportes y credenciales correspondientes.

**¿Es más seguro usar FTP que direct?**
No hay una respuesta universal. La seguridad depende de la propiedad de los archivos, los permisos, el protocolo y la configuración del servidor. Forzar FTP no arregla por sí solo una instalación mal configurada.

**¿FTP_SSL es lo mismo que SFTP?**
No. FTP_SSL protege una conexión FTP mediante SSL, mientras que SFTP funciona sobre SSH y se relaciona con el transporte `ssh2`.

**¿Puedo guardar la contraseña FTP en wp-config.php?**
WordPress admite `FTP_PASS`, pero debes proteger el archivo y evitar que llegue a repositorios o copias compartidas. Siempre que sea posible, usa claves SSH o las credenciales temporales del panel del proveedor.

Fuentes: [get_filesystem_method()](https://developer.wordpress.org/reference/functions/get_filesystem_method/); [edición de wp-config.php](https://developer.wordpress.org/advanced-administration/wordpress/wp-config/); [Filesystem API de WordPress](https://developer.wordpress.org/apis/filesystem/).
