Categorías
sysadmin

Site Slow or Unreachable (High Number of 404’s)

Voiced by Amazon Polly

Introduccion

Al trabajar con WordPress una situación a la que puedes llegar es que ingreses a la pagina y se demore en cargar o que no cargue.

Ante esto lo tipico como Sysadmin vas a proceder a revisar las métricas típicas del servidor como el consumo de CPU, memoria RAM o Load Average, al hacer esto vas a observar que hay un consumo alto de CPU y memoria RAM

Cuando empiezas a depurar los proceso que se están ejecutando observas que el mayor consumo esta dado por apache, php o nginx dependiendo del tipo de despliegue sin embargo se hace claro que hay un problema con WordPress.

Como administrador del sitio depuras el sitio, revisas los plugins de cache, pruebas los plugins para comprobar si hay alguno que presenta error o mal funcionamiento, recargas cache, pruebas varios plugins de cache y no encuentras nada.

He pasado por esta situación y tras un tiempo de investigar y buscar posibles causas encontré que este problema esta relacionado a respuestas 404 y accesos no autorizados, en mayor parte debido a campañas de SEO o bots que consultan paginas que no existen, cambiaron o que están.

Debido a la cantidad de URLs que va a rastrear y la cantidad de llamadas que realiza el o los bots, termina con el sitio respondiendo con una velocidad muy lenta o incluso inhabilitando el sitio.

Seguimientos

Como seguimiento que se puede realizar en el sitio se puede verificar dos datos, el log del servidor web (Apache, Nginx …) y buscar las peticiones con codigo de respuesta 4xx y comparalo con las metricas historicas de CPU y memoria RAM

Otra opcion es usando WP SuperCache, activando el modo de depuracion el cual va a registrar un log, este log es el que vas a revisar y comparar los consumos

Posibles soluciones

Manejo de accesos a archivos no existentes

Dentro del .htaccess agrega lo siguiente

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(robots\.txt|sitemap\.xml(\.gz)?)
RewriteCond %{REQUEST_FILENAME} \.(css|js|html|htm|rtf|rtx|svg
|svgz|txt|xsd|xsl|xml|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc
|docx|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|mdb|mid|midi|mov|qt|mp3|
m4a|mp4|m4v|mpeg|mpg|mpe|mpp|odb|odc|odf|odg|odp|ods|odt|ogg|pdf
|png|pot|pps|ppt|pptx|ra|ram|rar|swf|tar|tif|tiff|wav|wma|wri|
xla|xls|xlsx|xlt|xlw|zip)$ [NC]
RewriteRule .* – [L]

Acceso a URLs que no existen

Dentro del .htaccess agrega lo siguiente

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} www\.facebook\.com/plugins [NC]
RewriteRule .* 404.html [L,R=404]

Esto va a resultar en que si se esta accediento a a “www.facebook.com/plugins” emita directamente la respuesta 404 sin cargar WordPress, mejorando la velocidad de respuesta y disminuyendo la carga en el servidor.

Referencias

https://support.pagely.com/hc/en-us/articles/115002704391-Site-Slow-or-Unreachable-High-Number-of-404-s-

https://mywifequitherjob.com/speed-up-wordpress-and-reduce-server-load/

https://www.elementpack.pro/how-to-fix-the-404-error-in-wordpress-and-improve-speed/

https://medium.com/@jayaprakashaadhira/a-complete-guide-to-wordpress-error-404-pages-ac9041e84350