Alojar imagenes de Wordpress en subdominio.

De forma predeterminada, las imágenes de un sitio están alojadas en el mismo dominio; esto reduce la velocidad de carga de la pagina debido a que casi todos los navegadores crean un máximo de dos a cuatro conexiones al descargar una página desde el servidor web. Así que si la página contiene muchas imagenes, entonces es aconsejable alojar las imágenes en un subdominio para que el navegador pueda descargar las imágenes en paralelo al dominio principal.

En este artículo explicaré cómo alojar las imágenes de un sitio web wordpress en un subdominio.

Para los ejemplos en este articulo se utilizó un servidor con las siguientes caracteristicas:
  • Ubunt 16.04
  • Servidor Web: Apache 2.4
  • Versión de PHP: 7.0
  • Panel de Control ISPConfig 3.1
  • Editor de texto Nano

Crear el subdominio

Debemos crear un subdominio que apunte a nuestro servidor especificamente a la carpeta wp-content/uploads de Wordpress, la forma de realizar este paso puede variar dependiendo del panel de control utilizado, en este caso ISPConfig no permite crear subdominios apuntando a subcarpetas de otro dominio, por tanto la configuración se hara manual;

Primero crearemos un registro DNS A con el nombre del subdominio y apuntando a nuestro servidor, el mecanismo de creación de este registro dependera del panel del proveedor del dominio:

img.midominio.com. IN  A  XX.XX.XX.XX

Siendo img.midominio.com el subdominio para imagenes y XX.XX.XX.XX la dirección IP del servidor.

Luego, en nuestro servidor crearemos un archivo de configuracion de apache en /etc/apache2/sites-available/ con el nombre del subdominio que usaremos para las imagenes:

nano /etc/apache2/sites-available/img.midominio.com.conf

y en el colocaremos lo siguiente:

<Virtualhost *:80>
        DocumentRoot /ruta/a/instalacion/wordpress/wp-content/uploads
        ServerName img.midominio.com
        <Directory /ruta/a/instalacion/wordpress/wp-content/uploads>
                Options -FollowSymLinks
                AllowOverride None
                Require all granted
        </Directory>
</Virtualhost>

Guardamos el archivo presionando Ctrl + O y presionando enter y salimos del editor presionando CTRL + X

Ahora habilitaremos el sitio escribiendo en la consola

a2ensite img.midominio.conf

Posteriormente recargaremos la configuracion de apache con el comando:

service apache2 reload

Cambiar la carpeta de subida de imagenes predeterminada a subdominio en WordPress

Ingrese a su panel de hosting y ejecute phpMyAdmin; seleccione la tabla wp-options y actualice el siguiente registro

Por el siguiente:


Si no tiene phpMyAdmin puede ejecutar la siguiente consulta SQL en su base de datos, reemplazando 'img.domain.com' por el subdominio que ha creado.
UPDATE `wp_options` 
       SET `option_value` = 'http://img.midominio.com' 
   WHERE `option_name` = 'upload_url_path';

Una vez que se le ha asignado valor a este parametro de Wordpress, podra actualizarse en el portal de administración de wordpress en el menú Ajustes -> Medios

Este grupo de opciones solo es visible en el administrador de wordpress cuando el valor de upload_url_path no esta vacio.

Al establecer esta opción, la url de las nuevas images en el administrador de medios sera la del subdominio que hemos establecido:


Aun cuando hemos actualizado esta configuración y en gran parte del sitio las imagenes se actualizaran correctamente, es recomendable actualizar las URL de imagenes en base de datos con las siguientes sentencias SQL

UPDATE `wp_posts`     SET `post_content` = REPLACE(`post_content`,'http://www.midominio.com/wp-content/uploads/','http://img.midominio.com/')

UPDATE `wp_posts`     SET `guid` = REPLACE(`guid`,'http://www.midominio.com/wp-content/uploads/','http://img.midominio.com/')

Redireccionar las imagenes del antiguo enlace al subdominio

Se ha actualizado la url en la base de datos, pero Google ha rastreado e indexado las imágenes antiguas. Así que redirigiremos las URL de la imagen antigua a la nueva URL para que Google sepa que esas imágenes son las mismas. Para ello, agregue la siguiente línea en su archivo .htaccess.

RedirectMatch 301 ^/wp-content/uploads/(.*)$ http://images.midominio.com/$1


Ahora tiene su sitio web ajustado para un mejor rendimiento. :)

Comentarios

Entradas populares de este blog

Instalación y configuración del controlador de video AMD Geode LX en netbook UTECH UX80-WHT en Debian Lenny 5.0.4 y Ubuntu 10.04