Configurar administración de WordPress
Después de presentar una pincelada para los Rich snippets, he preparado unas directrices para configurar correctamente las url en nuestro wordpress siempre hemos de intentar que estas ocupen los mínimos carácteres posibles por lo que siempre que realizemos una instalación nueva hemos de evitar las www iniciales y la / final en la construcción de las url’s. Para ello realizaremos las siguientes modificaciones en el panel de administración.
En Ajustes – Enlaces Permanentes utilizaríamos la Estructura personalizada
/%postname%
Al no introducri la / final acortamos la url en un valor
En Ajustes Generales Dirección de WordPress (URL) y Dirección del sitio (URL) introduciremos
http://susitioweb.com
Antiguamente las www tenian sentido ya que identificaban el protocolo como se accedia al servidor pero en la actualidad es mejor prescindir de ellas para poder acortar la url.
Una vez realizadas las modificaciones mencionadas deberemos de introducir en el htaccess de nuestro wordpress lo siguiente
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
Htaccess de WordPress o sitio web
A continuación se detallan algunas modificaciones a realizar en el archivo .htaccess de un wordpress para mejorar varios aspectos del sitio y en muchos casos útilies para cualquier sitio web, al ser htaccess un archivo muy crítico para el funcionamiento de su wordpress aconsejamos realizar una copia de seguridad antes de proceder a cualquier modificación.
Compresión gzip en el htaccess
ExpiresActive On ExpiresDefault A0 <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript application/javascript image/svg+xml BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html </IfModule>
Activar la cache en WordPress
<FilesMatch "\.(css|js|gif|jpeg|png|ico)$"> ExpiresActive On ExpiresDefault "access plus 1 year" </FilesMatch>
Para indicar que no quieres etiquetar con ETag
FileETag none
Páginas de error personalizadas
ErrorDocument 403 /acceso_prohibido.php ErrorDocument 404 /pagina_no_encontrada.php ErrorDocument 500 /pagina_de_error.php
Redirecciones 301 en htaccess
En este video del centro de asistencia de google se dan algunas recomendaciones muy interesantes.
En apache se pueden realizar de tres formas diferentes que brevemente se detallan a continuación
Redirect
Se utiliza para la redirección de pocas url’s estáticas
Redirect 301 /pagina_vieja.php http://tudominio.com/pagina_nueva.php
redirectMatch
Utiliza expresiones regulares lo que permite usar patrones
redirectMatch 301 (.*)\.html$ http://tudominio.com$1.php redirectMatch 301 ^/pagina_vieja.php http://tudominio.com/pagina_nueva.php redirectMatch 301 ^/carpeta_vieja/ http://tudominio.com
RewriteRule
Se utiliza el flag R y es muy similar al redirectMatch pero permite variaciones utilizando el RewriteCond
De www.tudominio.com a tudominio.com
RewriteEngine on RewriteCond %{HTTP_HOST} . RewriteCond %{HTTP_HOST} !^www.tudominio.com\.com RewriteRule (.*) tudominio.com/$1 [R=301,L]
De tudominio.com a www.tudominio.com
RewriteEngine on RewriteCond %{HTTP_HOST} ^midominio.com [NC] RewriteRule ^(.*)$ http://www.midominio.com/$1 [L,R=301]
No permitir el robo de imagenes (hotlinking) mostrando una imagen personalizada
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(.+\.)?tusitioweb\.com/ [NC] RewriteCond %{HTTP_REFERER} !^http://(.+\.)?otrositioweb\.com/ [NC] RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/view/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.google.com/reader/m/view/.*$ [NC] RewriteRule .*\.(jpe?g|gif|bmp|png)$ nuevaimagen.gif [L]
Proteger los comentarios de Páginas y Artículos del Spam
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*yourdomainname.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L] </IfModule>
Proteger contra inyecciones sql
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L]
Restringir accesso al wp-admin de wordpress
<Files wp-login.php> Order Deny, Allow Deny from all Allow from xxx.xxx.xxx.xxx Allow from xxx.xxx.xxx.xxx </Files>
Bloquear ip’s o bots
order allow,deny allow from all deny from xxx.xxx.xxx.xxx
Una vez realizada cualquier de las modificaciones propuestas es aconsejable revisar el correcto funcionamiento de todo el sitio y en caso de mal funcionamiento restarura la copia del .htaccess de su wordpress
Hemos de tener en cuenta que es muy importante que los permisos de nuestro htaccess siempre sean 644 y sobretodo recordad que las modificaciones en este fichero es de las acciones mas críticas que se pueden realizar en un sitio web.
MUCHO CUIDADO cuando toqueis el .htaccess de vuestro wordpress o sitio web. Si necesitáis un poco de asesoramiento, somos una agencia seo especializada en WordPress, no lo dudes somos tu mejor partner en desarrollo de aplicaciones web responsive.
Hola no soy un experto a la hora de modificar el htaccess y me parece un buen post sobre como mejorar el rendimiento de wordpress, ¿pero son todas las modificaciones necesarias?, saludos.
En este post se recogen algunas de las opciones que nos da el .htaccess para nuestros post pero todas son opcionales y para cada necesidad se puede hacer servir la que corresponda.
Muy buen artículo, muchas gracias.
Gracias Eduard. Un gran post para evitar intrusos y ataques en WordPress ;D
De lo mas completo que he encontrado sobre el tema, realmente útil el apartado de hotlinking.
Felicitaciones Eduard por este gran post
Un gran saludo