Saltar al contenido

Respondemos el mismo día hábil

Solicitar propuestaPropuesta Acceso
Menú

WordPress

SEO en WordPress cuando el hosting te da 128 MB de PHP

Tu sitio da error 500 de vez en cuando. No siempre, no en la misma página, no a la misma hora. Instalaste Rank Math o Yoast y empezó ahí, pero desactivarlo tampoco parece arreglarlo del todo. El culpable no es el plugin de SEO: es que no te queda memoria, y el plugin fue solo la gota.

Esto está escrito desde un caso que medimos con cuatro configuraciones distintas sobre las mismas URLs, y que terminó con un plugin de SEO propio de un solo archivo.

Por qué el 500 es intermitente, que es lo que desconcierta

Un error de memoria no ocurre siempre porque no todas las peticiones consumen lo mismo. Una página simple con la caché caliente puede pasar con 100 MB; la misma página con el carrito activo, un filtro de productos y la caché vacía necesita 140. Si tu tope son 128, una pasa y la otra muere.

Por eso el síntoma parece aleatorio y por eso es tan fácil diagnosticarlo mal: pruebas la URL, carga bien, concluyes que ya está arreglado, y al rato vuelve. Lo que ves no es inestabilidad del servidor, es un margen que a veces alcanza y a veces no.

La combinación que llena 128 MB en Chile es muy común: un constructor visual pesado —Divi, Elementor— más WooCommerce. Los dos juntos se comen el presupuesto antes de que empiece lo tuyo.

La medición: cuatro configuraciones, las mismas URLs

En vez de adivinar, recorrimos el mismo conjunto de páginas con cada configuración y contamos cuántas devolvían 500.

ConfiguraciónFallos 500
Sin ningún plugin de SEO0 de 56 — 0 %
Con Slim SEO (el más liviano del mercado)1 de 41 — 2,4 %
Con Rank Math, módulos al mínimo1 de 31 — 3,2 %
Con un plugin propio de un archivo0 de 56 — 0 %

La lectura importante no es «Rank Math es malo». Es que el sitio tiene cero margen: incluso el plugin de SEO más liviano que existe fue suficiente para empujarlo al límite. Con márgenes así, la comparación de funcionalidades entre plugins es irrelevante — cualquiera de ellos rompe.

La primera opción, siempre: subir la memoria

Antes de cualquier solución creativa, intenta la obvia. En wp-config.php, antes de la línea que carga wp-settings.php:

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '256M' );

Y el detalle que hace que esto no funcione para mucha gente: WordPress no puede subir el límite por encima del que fija PHP. Si tu memory_limit de PHP está en 128 MB, declarar 256 en wp-config.php no cambia nada. Hay que subirlo en el panel del hosting —en cPanel, MultiPHP INI Editor; en DirectAdmin, la configuración de PHP del dominio— o pedírselo al proveedor.

Comprueba el valor efectivo en Herramientas → Salud del sitio → Información → Servidor, no el que crees tener.

Con 256 MB la mayoría de estos casos se resuelve y puedes usar el plugin de SEO que quieras. Lo que sigue es para cuando el proveedor no lo sube y cambiar de hosting no está sobre la mesa hoy.

La salida: un plugin de SEO propio de un archivo

Un plugin de SEO comercial trae análisis de contenido en el editor, redirecciones con interfaz, migas de pan, integraciones, informes. Nada de eso lo ve Google. Lo que Google lee son unas pocas etiquetas, y producirlas cuesta kilobytes.

El plugin que escribimos pesa alrededor de 6,7 KB y hace exactamente esto:

  • <title> y meta description por página
  • Open Graph y Twitter Card
  • La etiqueta robots
  • Schema de Organization en la portada
  • Redirecciones 301 de las páginas huérfanas
  • Filtros wp_sitemaps_* para sacar del sitemap el carrito, el checkout, «mi cuenta» y los archivos de autor

El schema de producto no hace falta programarlo: WooCommerce ya lo pone. Y el sitemap tampoco: WordPress trae uno nativo desde la versión 5.5, y lo único que necesita es que le quites las URLs que no deben estar.

El truco que lo hace reversible

Esta es la parte que vale la pena copiar. En vez de inventar campos propios, el plugin lee los metadatos que Rank Math ya había guardado en la base de datos: rank_math_title y rank_math_description.

add_filter( 'pre_get_document_title', function () {
    if ( ! is_singular() ) return '';
    $t = get_post_meta( get_the_ID(), 'rank_math_title', true );
    return $t ?: '';
} );

Y la descripción, en wp_head:

add_action( 'wp_head', function () {
    if ( ! is_singular() ) return;
    $d = get_post_meta( get_the_ID(), 'rank_math_description', true );
    if ( $d ) printf(
        '<meta name="description" content="%s" />' . "\n",
        esc_attr( $d )
    );
}, 1 );

Por qué importa: esos metadatos sobreviven aunque Rank Math no esté instalado. Así, el día que el hosting suba a 256 MB puedes reinstalar Rank Math y toma los textos tal cual, sin rehacer nada. No es un parche que te deja atrapado: es un puente.

Y un detalle práctico: esos dos campos no empiezan con guion bajo, así que no son metadatos «protegidos» y se pueden escribir por XML-RPC o por la API sin configurar nada extra. Para editar el SEO de una página basta escribir esos dos metadatos.

Bórralos, no los desactives

Cuando resolvimos el caso, eliminamos Rank Math y Slim SEO del servidor en vez de dejarlos desactivados. Es deliberado.

Un plugin pesado instalado pero inactivo es una mina: basta que alguien entre al panel, lo vea apagado, piense «esto debería estar encendido» y lo active, para que el sitio vuelva a dar 500 intermitentes. Y como el síntoma es intermitente, nadie va a relacionarlo con el clic de hace tres semanas.

Si vas por este camino, deja además una nota en el propio plugin explicando por qué existe y qué hay que hacer para volver atrás. El que lo encuentre en dos años —puede que seas tú— va a asumir que es un parche improvisado si no se lo cuentas.

Cuándo esto no es la respuesta

Si tu sitio es una tienda que crece, 128 MB te va a apretar en más cosas que el SEO: importar productos, generar informes, procesar pedidos en lote. Un plugin propio resuelve hoy el síntoma más visible, pero el problema de fondo es el plan de hosting.

El orden sensato es: subir la memoria si se puede, cambiar de proveedor si no se puede y el negocio lo justifica, y el plugin propio cuando ninguna de las dos está disponible esta semana y el sitio está dando errores ahora.

Si tienes 500 intermitentes y no logras aislar la causa, lo medimos: recorrer el sitio contando fallos con y sin cada plugin toma una tarde y deja claro si es memoria o es otra cosa.

Pedir una revisión Ver posicionamiento orgánico

Preguntas

Dudas frecuentes

¿Por qué mi WordPress da error 500 solo a veces?

Porque no todas las peticiones consumen la misma memoria. Una página simple con la caché caliente puede pasar con 100 MB y la misma página con el carrito activo y la caché vacía necesitar 140. Si tu tope son 128, una pasa y la otra muere. Por eso parece aleatorio: no es inestabilidad del servidor, es un margen que a veces alcanza. Compruébalo activando WP_DEBUG_LOG y buscando «Allowed memory size … exhausted» en wp-content/debug.log.

¿Rank Math o Yoast rompen los sitios?

No por sí solos. Lo medimos en un caso con cuatro configuraciones sobre las mismas URLs: sin plugin de SEO, 0 fallos de 56; con Slim SEO —el más liviano que existe— 1 de 41; con Rank Math al mínimo, 1 de 31. Que incluso el más liviano fallara significa que el sitio tenía cero margen de memoria. Con 256 MB cualquiera de ellos funciona bien.

¿Qué hace falta de verdad para el SEO técnico de una página?

Mucho menos de lo que trae un plugin comercial. Google lee el title, la meta description, la etiqueta robots, los datos estructurados y el sitemap. El análisis de contenido en el editor, las migas de pan con interfaz y los informes internos no los ve. Si usas WooCommerce, el schema de producto ya lo pone él, y WordPress trae sitemap nativo desde la 5.5: solo hay que excluirle el carrito, el checkout, «mi cuenta» y los archivos de autor.

Si escribo un plugin propio, ¿pierdo los textos de SEO que ya tenía?

No, si lo lees de donde ya están. Los metadatos rank_math_title y rank_math_description quedan guardados en la base de datos y sobreviven aunque desinstales Rank Math. Un plugin propio que los lea mantiene los textos intactos, y el día que subas la memoria puedes reinstalar Rank Math y los toma tal cual, sin rehacer nada. Además esos dos campos no empiezan con guion bajo, así que se pueden escribir por API o XML-RPC sin configuración extra.

¿Conviene dejar el plugin viejo desactivado por si acaso?

No. Un plugin pesado instalado pero inactivo es una mina: basta que alguien lo vea apagado, piense que debería estar encendido y lo active, para que vuelvan los 500 intermitentes. Y como el síntoma no es inmediato ni constante, nadie va a relacionarlo con ese clic. Mejor eliminarlo y dejar una nota en el plugin propio explicando por qué existe.

Seguir leyendo

Contacto

Cuéntanos qué necesitas

Te respondemos el mismo día hábil. Sin compromiso y sin que te llamemos cuatro veces.

Hablemos de tu negocio · te respondemos el mismo día hábil Cuatro campos y listo

Por si es más rápido llamarte.

Al enviar aceptas que te contactemos por este medio. No compartimos tus datos con nadie.

¿Prefieres escribir?

Cuéntanos qué necesitas por WhatsApp. Respondemos el mismo día hábil.

Escribir ahora