Volver a Proyectos Listado de Artículos

Cómo solucionar el problema de que los cambios no se guardan en WordPress

Luis Ruiz

Escrito por Luis Ruiz Actualizado el

Es muy frustrante cuando haces cambios en tu sitio de WordPress y no se guardan.

En este artículo, te mostraré cómo solucionar el problema si has cambiado el archivo .htaccess para que las url finalicen en barra inclinada, y WordPress no te guarda los cambios

El otro día tuvimos que hacer que todas las url de una web terminaran en una barra diagonal, o trailing slash, siguiendo las recomendaciones del equipo de SEO y al hacerlo WordPress no guardaba los cambios.

El equipo de SEO nos dio como referencia el artículo ¿Deberías Tener una Barra al Final de las URLs?, en el cual te cuenta las ventajas y te indica como hacerlo, pero no funciona correctamente.

La importancia de poner, o no, la barra diagonal

Puedes decidir si ponerla, o no. Nosotros tenemos distintas web con url que acaban con la barra inclinada y otras no, en función de las indicaciones de los equipos de SEO con los que colaboramos.

Es importante seguir sus indicaciones para que Google no las interprete como urls distintas, y las tome como contenido duplicado, por ej.

  1. https://www.tu-dominio.com/pagina/
  2. https://www.tu-dominio.com/pagina

Tienes más información en El dilema de las barras.

Como añadir barra de slash al final de la url

Según las indicaciones del artículo antes mencionado hay que insertar el siguiente código en el archivo .htaccess

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

…pero incluyes ese código WordPress deja de guardar los cambios debido a que al guardar hace una petición errónea a la API y no guarda las modificaciones.

Solucionar el problema cuando WordPress no guarda los cambios

Para solucionarlo lo que tenemos que hacer es excluir la llamada a la API de WordPress «wp-json», y como en la zona de administración tampoco necesitamos realizar esa redirección, aprovechamos para también excluir «wp-admin»

El código que da solución el problema es:

<IfModule mod_expires.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !/wp-json/ [NC]
RewriteCond %{REQUEST_URI} !/wp-admin/ [NC]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]
</IfModule>

Tengo instalado WP Rocket y NO funciona la redirección

Si tienes el plugin de caché WP Rocket sólo te funcionará la redirección si estas logado. Poco efectivo porque los bots, o el tráfico que tenga tu web, no estará logado y no funcionará correctamente.

WP Rocket tiene un plugin que soluciona este problema, y no tienes que tocar código puesto que el plugin lo hace por ti!

En el artículo «Redirection to Enforce/Remove Trailing Slash on URLs» tienes toda la información de su funcionamiento, y los diferentes plugin según tus necesidades.

Por ejemplo, nosotros que queremos añadir la barra inclinada al final de las URLs, hemos instalado «Add a trailing slash for Apache/LiteSpeed»

Mirando en el código, lo que hace es añadir en el archivo .htaccess el siguiente código:

/**
 * Forces a trailing slash on GET requests.
 *
 * @author Caspar Hübinger
 * @param  string $marker Block of WP Rocket rules
 * @return string Extended block of WP Rocket rules
 */
function render_rewrite_rules( $marker ) {
	
	$redirection = '# Force trailing slash' . PHP_EOL;
	$redirection .= 'RewriteEngine On' . PHP_EOL;
	$redirection .= 'RewriteCond %{REQUEST_FILENAME} !-f' . PHP_EOL;
	$redirection .= 'RewriteCond %{REQUEST_METHOD} GET' . PHP_EOL;
	$redirection .= 'RewriteCond %{REQUEST_URI} !(.*)/$' . PHP_EOL;
	$redirection .= 'RewriteCond %{REQUEST_URI} !^/wp-json/' . PHP_EOL;
	$redirection .= 'RewriteCond %{REQUEST_FILENAME} !\.(gif|jpg|png|jpeg|css|xml|txt|js|php|scss|webp|mp3|avi|wav|mp4|mov|pdf|html|htm|xst)$ [NC]' . PHP_EOL;
	$redirection .= 'RewriteRule ^(.*)$ http' . ( is_ssl() ? 's' : '' ) . '://%{HTTP_HOST}/$1/ [L,R=301]' . PHP_EOL . PHP_EOL;
	
	// Prepend redirection rules to WP Rocket block.
	$marker = $redirection . $marker;
	
	return $marker;
}
add_filter( 'before_rocket_htaccess_rules', __NAMESPACE__ . '\render_rewrite_rules' );

Para terminar

En conclusión, si estás experimentando problemas al guardar tus entradas en WordPress, no te preocupes, es un problema que tiene solución. En este artículo te hemos enseñado como solucionar esta incidencia y asegurarte de que tus entradas sean guardadas correctamente.

Además, es importante mencionar que al realizar cambios en la estructura de tu sitio web, es fundamental seguir las recomendaciones del equipo de SEO y verificar que todo funcione correctamente después de implementarlo.

Si tienes dudas, o necesitas ayuda adicional, lo ideal es contactar con un experto en WordPress, o en SEO para recibir asistencia especializada.

¡Esperamos que esta información te haya sido útil!