El futuro del SEO: que debo saber

Photo by ArtsyBee on Pixabay

El SEO se ha convertido en un tema candente estos días. Con tantas prácticas de SEO cambiando a nuevas estrategias y tecnologías, no está claro cuál será la mejor para su negocio. Muchas empresas utilizan la optimización de los motores de búsqueda (SEO) como su principal fuente de marketing para atraer a los clientes y ganar exposición. Esperan que, al mejorar su visibilidad en las redes sociales y otros motores de búsqueda, puedan convertirse algún día en la empresa de marketing en red o en el gimnasio local que da servicio a una zona específica. En esta entrada del blog, hablaremos de algunas de las implicaciones de que Google clasifique mal los sitios web y de cómo puede proteger su empresa para que no sea penalizada por el gigante de los motores de búsqueda. También veremos lo que puede hacer para adelantarse a las últimas actualizaciones de Google y mejorar su rendimiento de SEO. Empecemos…

Malas valoraciones de Google: ¿debería importarte?

Como ya hemos comentado, Google atribuye el mal rendimiento SEO de los sitios web al hecho de que no están haciendo un buen trabajo de posicionamiento en las páginas de resultados de los motores de búsqueda (SERPs). Pero, ¿qué ocurre si usted es el propietario de un sitio web que está haciendo un buen trabajo de clasificación en su nicho? Si Google no clasifica bien su negocio, es probable que le resulte mucho más difícil a largo plazo. Google le penalizará si cree que no ha cumplido los requisitos mínimos para clasificarse en sus sitios. ¿Cuáles son los requisitos mínimos para aparecer en el radar de Google? Puedes encontrar esos requisitos en este artículo sobre las reglas de Google.

Definir el problema y solucionarlo

El problema que Google apunta hacia tu negocio es tu SEO. No es tu contenido, el contenido es el problema. La página de inicio de tu sitio web, la página sobre, e incluso tu sección de reseñas no son el problema. El problema lo tiene Google, no tú.

Entonces, ¿cuál es la solución al problema de Google? Bueno, todos queremos estar posicionados como la autoridad de la página para nuestro nicho, ¿verdad? Así que deberíamos optimizar nuestros sitios web para que se posicionen mejor en las SERPs. Podemos hacerlo investigando las mejores prácticas relacionadas con el SEO.

Mejores prácticas de SEO a tener en cuenta

A continuación, te presentamos algunas de las mejores prácticas de SEO que te ayudarán a recuperar el rumbo si te enfrentas a la lista de penalizaciones de Google:

  • página de inicio: El sitio debe tener el mismo punto focal y la misma información que tiene en la página principal. Puede ser la página principal de su sitio web, su página de empresa o incluso su perfil en Facebook.
  • página sobre: Deshazte de cualquier información que pueda estar vinculada a tu sitio web. La página principal y la página «Acerca de» sólo deben tener información relacionada con su sitio web.
  • sección de reseñas: Elimina toda la información que pueda estar vinculada a tu sitio web, como la puntuación de tus reseñas, los enlaces a tu página de empresa o tus publicaciones en las redes sociales.

¿Por qué es importante el SEO?

El SEO es ahora una estrategia competitiva clave para los negocios locales. Con la actualización de los algoritmos de Google, ahora es legítimo ocupar una posición alta en las páginas de resultados de los motores de búsqueda (SERP) para su zona. Pero, ¿qué significa esto para su SEO? A continuación le presentamos algunas preguntas que debe hacerse y leer nuestras guías sobre la optimización de su sitio para Google y la creación de un sitio web para la retención.

Conceptos básicos de SEO

Este es uno de los mejores temas para los novatos y los avanzados en el marketing de SEO por igual. Aprender a promocionar correctamente un sitio web no es más que algo bueno. Le ayudará a hacer crecer su negocio y a aumentar la visibilidad de su empresa en las páginas de resultados de los motores de búsqueda (SERP). Entonces, ¿cómo empezar? Aquí hay algunos conceptos básicos de SEO que cualquiera puede aprender y aplicar inmediatamente.

Cómo crear un sitio web perfecto para Google: Un error cotidiano de SEO

Conclusión

Bueno, ahí lo tienes. Este es el resumen del artículo. Esperamos que la información de este artículo te haya sido útil. Si tienes alguna pregunta o comentario, ¡no dudes en hacerlo en la sección de comentarios de abajo!

Si buscas más información sobre SEO, consulta estos recursos:

¡Enhorabuena! Has creado con éxito un sitio web de comercio electrónico. Ahora es el momento de empezar a comercializarlo como nunca antes. ¿Y ahora qué? Bueno, ahora debe tener una comprensión básica de cómo la orientación de su sitio web por parte de Google puede beneficiar a su negocio. ¿Y ahora qué? Aquí hay 5 errores de SEO que podrían dejarlo con un tiempo difícil de competir con las mejores prácticas de Google en el largo plazo.

Cómo aumentar el rendimiento de sus análisis utilizando técnicas de aprendizaje automático

Image Source: FreeImages

Es posible que ya haya oído hablar del aprendizaje automático y de otras tecnologías relacionadas con la Inteligencia Artificial (IA). Pues bien, este artículo trata de aumentar la eficacia de sus análisis con técnicas de aprendizaje automático. Veamos cómo puede utilizar el aprendizaje automático en su beneficio. Supongamos que usted es una empresa que necesita comprender el coste y el impacto de varios tipos de inversiones realizadas por sus clientes y socios y elaborar un análisis adecuado teniendo en cuenta las diversas contingencias. Si quiere ser más eficaz en sus actividades de marketing, necesita adoptar nuevas y mejores estrategias de marketing que incluyan el Machine Learning . Puede leer más sobre esto en profundidad en nuestro artículo sobre Cómo aumentar la eficacia de su análisis utilizando técnicas de aprendizaje automático . Veamos cómo puede utilizar las técnicas de Machine Learning para aumentar la eficacia de sus análisis.

¿Qué es el aprendizaje automático?

El aprendizaje automático es una rama de la algoritmia que permite a los programas aprender a través de la experiencia y luego aplicar ese conocimiento a nuevos problemas. En este caso, el algoritmo de aprendizaje automático se entrena con datos de muestra para aprender de ellos sin necesidad de escribir código. Esta técnica da lugar a programas que son mucho más fáciles de mantener, mantienen un solo lugar para el almacenamiento de datos y son lo suficientemente generales como para manejar una amplia variedad de problemas.

Cómo aumentar el rendimiento de sus análisis utilizando técnicas de aprendizaje automático

El aprendizaje automático es una técnica que permite a los programas aprender a través de la experiencia y luego aplicar ese conocimiento a nuevos problemas. Esta técnica da lugar a programas que son mucho más fáciles de mantener, mantienen un solo lugar para el almacenamiento de datos y son lo suficientemente generales como para manejar una amplia variedad de problemas. Para medir el rendimiento de sus análisis, utilice una herramienta de supervisión del rendimiento como Metrics Monitor o Streamline para recopilar datos que permitan analizar e informar sobre el estado de sus datos. A continuación, utilice los datos para mejorar sus algoritmos.

Las ventajas de la IA

El aprendizaje automático tiene el potencial de mejorar la eficiencia y el impacto de muchas actividades diferentes. Por ejemplo, puede mejorar el rendimiento del análisis de varios tipos de inversiones realizadas por sus clientes y socios. También puede mejorar su capacidad para comprender y predecir la demanda de los clientes y responder adecuadamente a ella. El aprendizaje automático también puede mejorar su capacidad para crear ofertas y campañas a medida basadas en las necesidades y el comportamiento de sus clientes. Por ejemplo, puede crear una campaña que destaque las ventajas de la IA y luego ayudar a sus clientes a entender el impacto de su elección de ofertas asistidas por la IA. O puede crear una campaña que destaque las ventajas de la IA y luego muestre cómo las herramientas asistidas por la IA pueden utilizarse para reducir las frustraciones de los clientes.

Lo que los algoritmos de aprendizaje automático pueden hacer por sus análisis

Hay una serie de algoritmos de aprendizaje automático que puede utilizar en sus análisis. A continuación hemos enumerado algunos de los más comunes. RNN – El entrenamiento de redes neuronales regulares es el enfoque más común en el aprendizaje automático. Esta técnica utiliza neuronas regulares y una representación interna para producir patrones a gran escala. Se entrena con un gran número de ejemplos para aprender. El número de tareas que puede manejar es limitado. Aprendizaje profundo – El aprendizaje profundo es el enfoque más antiguo del aprendizaje automático. Se basa en redes neuronales descentralizadas y se utiliza para realizar tareas como el reconocimiento de imágenes y el reconocimiento del habla. SVM – El modelo de árbol de decisión estándar utilizado en el aprendizaje automático. También se conoce como «hembra pegajosa». Se basa en atractores en forma de Y y representa las tareas como puntos y luego como incertidumbres. Otras herramientas que puedes utilizar para entrenar tu modelo de IA son los algoritmos tradicionales, como RNN o SVM. Si quieres utilizar otro enfoque, también puedes utilizar redes neuronales para entrenar tu modelo de IA. Cuando se utilizan redes neuronales, cada capa es una representación independiente de los datos de entrada. Este enfoque le permite entrenar sus modelos de IA con un gran número de ejemplos para aumentar su precisión.

¿Qué datos se necesitan para apoyar un algoritmo de aprendizaje automático en una aplicación?

Puede utilizar cualquier conjunto de datos que admita el aprendizaje automático para crear un modelo de aprendizaje automático. Los siguientes son algunos ejemplos de conjuntos de datos que puede utilizar en sus campañas de aprendizaje automático: – Datos de compra del cliente. Esto incluye el código de pedido, el precio y la cantidad comprada. – Datos del comportamiento del cliente. Esto incluye su comportamiento de compra, incluyendo si compraron el producto al por mayor, o si compraron el producto en una sola pieza. – Otros datos. Incluye datos de asesoramiento, datos de campaña y datos de marketing.

Conclusión

Se espera que el aprendizaje automático desempeñe un papel importante en las tecnologías de aprendizaje automático e IA en un futuro próximo. Actualmente se utiliza para entrenar redes neuronales en grandes cantidades de datos para aprender de ellos. A continuación, hablaremos de cómo puede utilizar el aprendizaje automático en su beneficio para aumentar el rendimiento de sus análisis.

Cómo aumentar el rendimiento de sus análisis con técnicas de aprendizaje automático

– Coloque sus datos en un lugar al que pueda acceder fácilmente. De este modo, tendrá un acceso fácil y constante a los datos. – Asegúrese de que los datos están ordenados según alguna regla común. Esto le permite crear datos limpios. – Utilice funciones para crear marcos de datos. Esto le permite mostrar los datos en tablas o gráficos. – Utilice gráficos para mostrar la información. Esto puede ser una muestra visual o métrica. – Configure una campaña de Hora de Aventuras. Los datos seguirán al héroe a través de su viaje y se utilizarán como un marco de datos para representar su progreso. – Concluir las campañas con resultados positivos. Los marcos de datos son una gran manera de compartir los resultados con la comunidad.

Los beneficios de la IA

El aprendizaje automático puede mejorar la eficiencia y el impacto de muchas actividades diferentes. Por ejemplo, puede mejorar la eficiencia y el impacto del análisis de varios tipos de inversiones realizadas por sus clientes y socios. También puede mejorar su capacidad para comprender y predecir la demanda de los clientes y responder adecuadamente a ella. El aprendizaje automático también puede utilizarse para crear ofertas y campañas a medida basadas en las necesidades y el comportamiento de sus clientes. Por ejemplo, puede crear una campaña que destaque las ventajas de la IA y, a continuación, muestre cómo pueden utilizarse las herramientas asistidas por la IA para reducir las frustraciones de los clientes.

Reflexiones acerca del Posicionamiento web 2021

Posicinamiento SEO, El SERP
Posicinamiento SEO, El SERP

Reflexiones acerca del Posicionamiento Web

Hace ya años que tenemos empresarios cada vez más preocupados por su posicionamiento web y la apariencia de sus empresas en los principales buscadores.

Al igual que yo que llevo cerca de diez años estudiando las distintas formas de posicionamiento orgánico para empresas y sus productos o servicios. Como administrador de sistemas y programador, además de 17 años de experiencia como electricista, siempre he tenido otro punto de vista sobre la formación que debería tener alguien para ofrecer mejoras en nuestras web, ya que mi visión sobre la red siempre ha sido un conjunto gracias a las tres aptitudes, con el objetivo siempre de mejorar el posicionamiento web en las búsquedas de internet he continuado mi formación tanto en programación, como administración y Posicionamiento Web.

Y la verdad, si no tienes un buen equipo detrás, se me hace raro, que alguien que sabe soló de posicionamiento orgánico pueda recomendar ninguna mejora que salga de mejorar las cabeceras de la web, estrategia SEO de los textos, títulos y URL’s.

No lo veo revisando el incremento de gastos para mejorar las capacidades de un servidor, el utilizar o no utilizar WordPress para tú web o tú proyecto, así como en el uso de la web o herramienta a utilizar y la formación de quién la va ha utilizar. Hay tantos detalles en un servidor, su sistema operativo y su uso, que no se pueden dejar atrás y en manos de terceros.

Podemos tener la mejor estrategia SEO aplicada, pero si nuestra web tardá 6 segundos en cargar todo el trabajo no valdrá de nada, sí en nuestra web se hace difícil programar o publicar una serie de post, se nos hará un mundo este proceso. De que nos sirve tener un web hecha exclusivamente a código para nosotros, si luego no podemos tener un backend ameno y universal para facilitar a los editores la distintas publicaciones, la sincronización con redes sociales, automatización de sitemaps y utilizar las distintas herramientas que ya existen.

Un buen estratega SEO además de contar con experiencia en la visión de datos Analytics, controlar Google Search Console, tener un amplio conocimiento en vocabulario, ser una persona dinámica y adaptable a los cambios rápidos; Debe tener aptitudes y conocimientos de administración y programación, sino como crear campañas solventes y adaptables, como utilizar y dar justificaciones de nuestros servicios y servidores.

Un buen estratega SEO debería poder llevar tú máquina a trabajar al 100% de sus posibilidades.

Un buen estratega SEO debería ser capaz de crear un red de páginas y controlarla.

Un buen estratega SEO debe dar indicaciones claras y ser capaz de justificarlas.

Un buen estratega SEO debe tener conocimientos sobre machine-learning para poder tener otros puntos de vista, y es que, debe ser un DataScients debido a la gran cantidad de datos que debe manejar.

Un buen estratega SEO debe saber que herramientas utilizar en cada momento, ¿Estás seguro que tú problema es la competencia?. Primero asegurate de mostrar lo que quierés en la red y como lo estás mostrando actualmente.

El posicionamiento web, más concretamente el posicionamiento orgánico no aporta siempre las mejores estadísticas, el que trae un tráfico de calidad. Le mejora en el SERP no son tres puntos y miles de palabras clave, la mejora en el posicionamiento SEO consta de un conjunto, de un histórico y un trabajo que se aprecia con el tiempo y la constancia.

Ánimo y escuchen al Friki que tienen al lado.

Atentos al nuevo SERP

Posicinamiento SEO, El SERP
Posicinamiento SEO, El SERP

En los últimos meses hemos podido apreciar como el SERP del Google ha ido evolucionando de manera rápida, añadiendo módulos a sus páginas de resultados como localización, preguntas frecuentes o empresas relacionadas con la búsqueda. Esta nueva forma de mostrar el resultado esta trayendo un poco de cabeza a los estrategas del posicionamiento SEO, ya que por ejemplo el módulo de preguntas frecuentes, esta quitando muchos clicks a páginas de recetas o diccionarios.

Google lo único que esta haciendo es mejorar su interfaz para mostrar a los  usuarios lo que se le ha solicitado, así que hemos de tomar decisiones rápidas y claras, tener muy bien estructurada nuestra web y mimar más que nunca  nuestro contenido web con tál de adaptarnos a las novedades

Además viendo los distintos resultados de mis clientes podemos apreciar que la búsquedas son cada vez más exsaustivas y concretas. La mayoría de búsquedas  provienen desde el móvil y se suelen llevar a cabo mediante con el micrófono, siendo esta más profunda que una búsqueda con teclado, indicamos más valores.

Por esta razón seguimos atentos a los cambios y dependiendo de vuestros datos web se tendrá que tomar una decisión de donde queremos posicionar, si en el SERP o en uno de sus módulos, ambos siempre bajo estrategias de posicionamiento SEO.

Si te pareció interesante este artículo, comparte que es gratis! y sobre todo si tienes cualquier duda o necesitas ayuda con tu posicionamiento SEO no dudes en contactar.

Aquí podéis encontrar el artículo relacionado con dichas novedades SERP.

Varnish – Apache2 – WordPress

wordpress logo
Varnish - Apache y WordPress
wordpress logo

Que es Varnish

Varnish es un acelerador HTTP, el cual almacena en caché los recursos de un servidor web y puede
crear la misma página una y otra vez cuando el usuario lo solicite. Se ejecuta frente a un servidor Web y
sirve las páginas mucho más rápido.

Funcionalidades

  • Equilibrio de Carga
  • Reescritura de URL
  • Comprobación de Backends
  • Manejo elegante de backend muertos
  • Soporte parcial para ESI(Edge Side Includes)

Arquitectura

  • Caché monolítica mapeada a memoria virtual
  • Archivos configuración compilados en C
  • Trata todo el ciclo de vida de una petición
  • Cambios de configuración en caliente
  • Logs escritos en memoria compartida

Herramientas

varnishtop ->Lista ocurrencias de los log mÃąs comunes
varnishstat ->Estadísticas en tiempo de real
varnishhist ->Hits y misses en tiempo real
varnishlog / varnishncsa ->Generan logs tradicionales
varnishreplay ->Parsea logs y reduce el trÃąfico
como validar la configuración -> varnishd -C -f /etc/varnish/default.vcl


Compilación de Varnish 4.1 en CentOs7

Para poder compilar sin problemas debemos tener instalados los siguientes paquetes:

pygpgme
yum-utils
epel-release-n
Para instalar epel-release-6 (Servidor de pruebas 6.9)


Vamos al directorio de repositorios y creamos el nuestro para Varnish

/etc/yum.repos.d/

Creamos el archivo varnishcache_varnish41.repo con el siguiente contenido:

[varnishcache_varnish41]

name=varnishcache_varnish41

baseurl=https://packagecloud.io/varnishcache/varnish41/el/6/$basearch

repo_gpgcheck=1

gpgcheck=0

enabled=1

gpgkey=https://packagecloud.io/varnishcache/varnish41/gpgkey

sslverify=1

sslcacert=/etc/pki/tls/certs/ca-bundle.crt

metadata_expire=300

[varnishcache_varnish41-source]

name=varnishcache_varnish41-source

baseurl=https://packagecloud.io/varnishcache/varnish41/el/6/SRPMS

repo_gpgcheck=1

gpgcheck=0

enabled=1

gpgkey=https://packagecloud.io/varnishcache/varnish41/gpgkey

sslverify=1

sslcacert=/etc/pki/tls/certs/ca-bundle.crt

metadata_expire=300


Procedemos a la instalación:

sudo yum -q makecache -y –disablerepo=’*’ –enablerepo=’varnishcache_varnish41′


Configuración Varnish

Parámetros de Arranque

Parámetros de arranque de Varnish, archivos de configuración:
/etc/sysconfig/varnish ->RedHat, CentOS, etc
/etc/default/varnish ->Debian, Ubuntu
# cat /etc/sysconfig/varnish
# Maximum number of open files (for ulimit -n)
NFILES=131072
# Locked shared memory (for ulimit -l)
# Default log size is 82MB + header
MEMLOCK=82000
# Maximum number of threads (for ulimit -u)
NPROCS=»unlimited»
# Maximum size of corefile (for ulimit -c). Default in Fedora is 0
# DAEMON_COREFILE_LIMIT=»unlimited»
# Init script support to reload/switch vcl without restart.
# To make this work, you need to set the following variables
# explicit: VARNISH_VCL_CONF, VARNISH_ADMIN_LISTEN_ADDRESS,
# VARNISH_ADMIN_LISTEN_PORT, VARNISH_SECRET_FILE.
RELOAD_VCL=1
# Set WARMUP_TIME to force a delay in reload-vcl between vcl.load and vcl.use
# This is useful when backend probe definitions need some time before declaring
# configured backends healthy, to avoid routing traffic to a non-healthy backend.
#WARMUP_TIME=0
# Main configuration file.
VARNISH_VCL_CONF=/etc/varnish/default.vc
# Default address and port to bind to
# Blank address means all IPv4 and IPv6 interfaces, otherwise specify
# a host name, an IPv4 dotted quad, or an IPv6 address in brackets.
VARNISH_LISTEN_PORT=80
# Telnet admin interface listen address and port
VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1
VARNISH_ADMIN_LISTEN_PORT=6082
# Shared secret file for admin interface
VARNISH_SECRET_FILE=/etc/varnish/secret
# The minimum number of worker threads to start
VARNISH_MIN_THREADS=50
# The Maximum number of worker threads to start
VARNISH_MAX_THREADS=1000
# Cache file size: in bytes, optionally using k / M / G / T suffix.
VARNISH_STORAGE_SIZE=256M
# Backend storage specification
VARNISH_STORAGE=»malloc,${VARNISH_STORAGE_SIZE}»
# Default TTL used when the backend does not specify one
VARNISH_TTL=120
# DAEMON_OPTS is used by the init script.
DAEMON_OPTS=»-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
-f ${VARNISH_VCL_CONF} \
-T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
-p thread_pool_min=${VARNISH_MIN_THREADS} \
-p thread_pool_max=${VARNISH_MAX_THREADS} \
-S ${VARNISH_SECRET_FILE} \
-s ${VARNISH_STORAGE}»
Las opciones más importantes son VARNISH_PORT Y VARNISH_VLC_CONF, sin estas dos parámetros no funcionará.
 

Funciones Varnish – Rutinas

Cuando una petición HTTP llega a Varnish, éste la procesa llamando a las diferentes rutinas en un orden concreto, y se ejecuta el código que hay dentro de dichas subrutinas. Ese código puede ser el código por defecto de Varnish o bien código personalizado por nosotros.

De estas rutinas las que más vamos a usar son: vcl_recv() y vcl_fetch(), aunque vamos a ver todas las opciones disponibles:*

  • vcl_recv() >Cuando se recibe una petición HTTP Varnish lanza esta subrutina. Nos permite decidir si la aceptamos o no, cómo hacerlo y que backend usar.
  • vcl_fecth() >Se ejecuta después de haber obtenido del backend HTTP los datos solicitados, después de haberse acepta la petición de vcl_recv().

En todas las funciones podemos realizar diferentes acciones, para ello tenemos la función return() con las diferentes acciones dentro de ella:

  • pass ->Si para la petición en curso devolvemos pass, la peticiÃşn se envia al servidor Backend sin buscarse en la caché y la respuesta del backend http se devuelve al usuario sin cachearse.
  • pipe ->Esta acciÃşn çortocircuita. el cliente HTTP y el Backend HTTP de forma que Varnish se limita a transferir datos de uno a otro. Es similar a pass (no se cachea) y ademÃąs Varnish no se dedica a inspeccionar el trÃąfico HTTP ni rellenar los objetos req/beresp/obj por lo que a veces se utiliza para evitar que objetos muy grandes (vÃŋdeos, etc) sean «procesados»por varnish.
  • lookup ->Fuerza a Varnish a que devuelva el objeto desde la caché incluso si la petición en sí mísma está solicitando contenido no cacheado.
  • deliver ->Le indica a Varnish que queremos devolver el objeto cacheado si es posible.
  • hit_for_pass ->Similar a pass (pero accesible desde vcl_fetch) salvo porque crea un objeto de tipo hitforpass y lo que se hace en este caso es cachear la decisión de no cachear.
  • restart ->Una forma de volver a ejecutar la lógica desde el principio.
  • vcl_hash() >Permite alterar el hash que se utiliza para gestionar el objeto en la cachÃľ. Normalmente es la URL pero podemos alterar dicho hash a nuestra voluntad. Un ejemplo sería cachear la página del perfil (/profile/) de cada usuario, aÃśadiendo concatenando la cookie de usuario a la URL, lo que generaría un objeto distinto en cada para cada usuario.
  • vcl_pipe() >Modo Pipe
  • vcl_pass() >Podemos forzar a que se reinicie la transacción, lo cual incrementa un contador interno de restart»que podemos detectar en otras funciones.
  • vcl_hit() >Llamada cuando lookup en la caché encuentra un objeto válido.
  • vcl_miss() >Es llamada cuando lookup no encuentra un objeto válido.
  • vcl_error() >LLamada cuando se encuentra un error por cualquier motivo.
  • vcl_deliver() >Es llamada antes de que un objeto cacheado sea entregado al cliente HTTP.

Configuración Caché

Tenemos el fichero /etc/varnish/default.vlc

Archivo de ejemplo:
# This is a basic VCL configuration file for varnish. See the vcl(7)
# man page for details on VCL syntax and semantics.
#
# Default backend definition. Set this to point to your content
# server.
#
backend default {
.host = «127.0.0.1»;
.port = «8080»;
sub vcl_recv {
# Happens before we check if we have this in cache already.
# Typically you clean up the request here, removing cookies you don’t need,
# rewriting the request, etc.
#Capamos las cookies de wordpress para wp-login y wp-admin
if (!(req.url ~ «wp-(login|admin)»)) {
unset req.http.cookie;
}
#Capamos para el de cookies que podrían afectar al administrador
set req.http.cookie = regsuball(req.http.cookie, «wp-settings-\d+=[^;]+(; )?», «»);
set req.http.cookie = regsuball(req.http.cookie, «wp-settings-time-\d+=[^;]+(; )?», «»);
set req.http.cookie = regsuball(req.http.cookie, «wordpress_test_cookie=[^;]+(; )?», «»);
if (req.http.cookie == «») {
unset req.http.cookie;
}
#No se cachea todo lo que acabe con wp-admin o wp-login
if (req.url ~ «wp-admin|wp-login») {
return (pass);
}
}
sub vcl_backend_response {
# Happens after we have read the response headers from the backend.
# Here you clean the response headers, removing silly Set-Cookie headers
# and other mistakes your backend does.
}
sub vcl_deliver {
# Happens when we have all the pieces we need, and are about to send the
# response to the client.
# You can do accounting or modifying the final object here.
}
 
El lenguaje de configuración de Varnish llamado VCL(Varnish Configuration Language). En esta configuración debemos definir una serie de subrutinas y código dentro de las mismas. Varnish llamará a cada una de esta subrutinas en algún punto de la petición.
Este lenguaje soporta estructuras «tipo if, include, comentarios de como //, /* */ y , salida de funciones con return(), asignaciones con =, comparaciones con ==, negaciÃşn con !, and y or lógico con y ||, matche o contra expresiones regulares con y establecer/eliminar atributos con set y unset. También tenemos funciones como regsub y regsuball (sustituciÃşn por expresiones regulares de una o todas las ocurrencias).
 

Varnish y WordPress

Varnish y el contenido dinámico de WordPress (prácticamente todo) no se llevan muy bien, para ello debemos configurar varnish para que ciertos contenidos los muestre estáticamente.
Ejemplo default.vcl para WordPress

vcl 4.0;

import std;

# Default backend definition. Set this to point to your content server.

backend default {

.host = «127.0.0.1»;

.port = «8080»;

}

#Backend net-lz.com

backend netlz {

.host = «127.0.0.1»;

.port = «8080»;

}

#Backend gamesranking.info

backend gamesranking {

.host = «127.0.0.1»;

.port = «8080»;

}

#Backend trailersdecine.com

backend trailersdecine {

.host = «127.0.0.1»;

.port = «8080»;

}

sub vcl_recv {

#Control para ver que backend utilizar

if (req.http.host == «www.net-lz.com» || req.http.host == «net-lz.com»){

set req.backend_hint = netlz;

} elseif (req.http.host == «www.gamesranking.net» || req.http.host == «gamesranking.net»){

set req.backend_hint = gamesranking;

} elseif (req.http.host == «www.trailersdecine.com» || req.http.host == «trailersdecine.com»){

set req.backend_hint = trailersdecine;

}else {

set req.backend_hint = default;

}

#Si la petición es para 443 nos aseguramos que lo marqué en las cabeceras HTML
if (std.port(server.ip) == 443){
set req.http.X-Proto = «https»;

}

#Tipos de codificaciones aceptadas

if (req.http.Accept-Encoding) {

if (req.url ~ «\.(gif|jpg|jpeg|swf|flv|mp3|mp4|pdf|ico|png|gz|tgz|bz2)(\?.*|)$») {
# remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ «gzip») {

set req.http.Accept-Encoding = «gzip»;

} elsif (req.http.Accept-Encoding ~ "deflate") {

set req.http.Accept-Encoding = «deflate»;

} else {

#remove req.http.Accept-Encoding;

}

}

#Consultas archivos multimedia

if (req.url ~ «wp-content/themes/» && req.url ~ «\.(gif|jpg|jpeg|swf|css|js|flv|mp3|mp4|pdf|ico|png)(\?.*|)$») {

unset req.http.cookie;

set req.url = regsub(req.url, "\?.*$", "");

}

#Consultas a otro tipos de archivos

if (req.url ~ «\?(utm_(campaign|medium|source|term)|adParams|client|cx|eid|fbid|feed|ref(id|src)?|v(er|iew))=») {

set req.url = regsub(req.url, "\?.*$", "");

}

# no cacheamos las cookies de administrador

# soluciona la redirección que se generaba al querer entrar como administrador

if (req.http.cookie) {

if (req.http.cookie ~ «(wordpress_|wp-settings-)») {

return(pass);

} else {

unset req.http.cookie;

}

}

#Desactivamos la cache para esta url

if (!(req.url ~ «wp-(login|admin)»)) {

unset req.http.cookie;

}

#No cacheamos cookies específicas de wordpress

set req.http.cookie = regsuball(req.http.cookie, «wp-settings-\d+=[^;]+(; )?», «»);

set req.http.cookie = regsuball(req.http.cookie, «wp-settings-time-\d+=[^;]+(; )?», «»);

set req.http.cookie = regsuball(req.http.cookie, «wordpress_test_cookie=[^;]+(; )?», «»);

#No cacheamos cookies en general

if (req.http.cookie == «») {

unset req.http.cookie;

}

#Pasamos sin cacheo las url con wp-admin y wp-login

if (req.url ~ «wp-admin|wp-login») {

return (pass);

}

}

#fin vcl_recv


sub vcl_backend_response {

set beresp.ttl = 10s;

set beresp.grace = 1h;

}

#Marcamos que debemos guardar cómo estadísticas

sub vcl_deliver {

if (obj.hits > 0) {

set resp.http.X-Cache = «HIT»;

} else {

set resp.http.X-Cache = «MISS»;

}

return (deliver);

}

Podríamos añadir una configuración para permitir la opción purge desde diferentes sitios, este no se ha hecho debido a que tenemos instalado un plugin en la red multisite de worpdress que nos ofrece esta funcionalidad y la configuración Varnish ha sido diseñada con esta objetivo. Ver: https://varnish-cache.org/trac/wiki/VCLExamples


Configuración Varnish especiales

REMOTE ADDRESS PHP

Para que PHP pueda capturar las Ip de los usuarios que se conectan debemos añadir algunos cambios al archivo default.vcl de varnish.


Añadimos la siguiente configuración dentro del la subrutina vcl_recv:


#Control Varnish para que PHP puede devolver las IP de los usuarios que se conectan

if (req.restarts == 0) {

if (req.http.x-forwarded-for) {


set req.http.X-Forwarded-For =

req.http.X-Forwarded-For + «, » + client.ip;


} else {

set req.http.X-Forwarded-For = client.ip;

}

}


Ahora nos faltará 2 procesos, añadir unas líneas al Vhost de correspondiente y crear un fichero php que se encargará de asegurarnos que cojamos la ip buena.


Vhost de ejemplo:

<VirtualHost *:8080>

DocumentRoot «/web/wordpress/static/trailersdecine»

ServerName trailersdecine.com

ServerAlias www.trailersdecine.com

<Directory /web/wordpress/static/trailersdecine>

#Linea para Varnish

php_value auto_prepend_file «/www/conf/sites/varnish_client_ip.php»

AllowOverride All

Order deny,allow

Allow from all

</Directory>


CustomLog logs/common.trailersdecine combined

ErrorLog logs/error.trailersdecine

#Linea y log para varnish

LogFormat «%{X-Forwarded-For}i %l %u %t \»%r\» %>s %b \»%{Referer}i\» \»%{User-Agent}i\»» varnish


# Other directives here

</VirtualHost>


Como podéis observar dentro de Directory podemos ver como se hace una llamada al archivo varnish_client_ip.php, vamos a crearlo con el siguiente cotenido:


<?phpif( isset( $_SERVER[ ‘HTTP_X_FORWARDED_FOR’ ] ) ) {

$_SERVER[ 'REMOTE_ADDR' ] = $_SERVER[ 'HTTP_X_FORWARDED_FOR' ];

}

?>


Con tal de no parar el servicio vamos a recargar ambos

service varnish reload

/www/bin/apachectl stop

/www/bin/apachectl start


Ya tenemos nuestro servicio ce cacheo listo


MOD HEADERS

Con tal de controlar las cabeceras que viene de http y https y permitir el trasposo de archivos multimedia entre estos dos protocolos debemos añadir configuración tanto a Varnish como en Apache.


Varnish mod_headers.

sub vcl_recv {
# Save Origin in a custom header
set req.http.X-Saved-Origin = req.http.Origin;
# Remove Origin from the request so that backend
# doesn’t add CORS headers.
unset req.http.Origin;
}
sub vcl_deliver {
if (req.http.X-Saved-Origin == «https://www.trailersdecine.com«
|| req.http.X-Saved-Origin == «http://www.trailersdecine.com«
|| req.http.X-Saved-Origin == «https://trailersdecine.com«
|| req.http.X-Saved-Origin == «http://trailersdecine.com«) {
set resp.http.Access-Control-Allow-Origin =
req.http.X-Saved-Origin;
}
if (resp.http.Vary) {
set resp.http.Vary = resp.http.Vary + «,Origin»;
} else {
set resp.http.Vary = «Origin»;
}
}
Apache mod_headers.
Para compilar el módulo si este no esta instalado:
/www/bin/apxs -i -c ./modules/metadata/mod_headers.c
Activación del módulo en Apache
En httpd.conf añadir al final
LoadModule headers_module /www/modules/mod_headers.so
En los Vhost de los dominios a controlar las cabeceras añadimos las línea:
Header set Access-Control-Allow-Origin «*»
Reiniciamos apache y Varnish y ya esta listo
 
 
 
 

Configuración Apache para Varnish

Como Varnish está a la escucha en el puerto 80, debemos indicarle a Apache que escuche en otro puerto, en este caso el 8080.

#Puertos de escucha

Listen *:8080

Listen *:443

#Módulos necesarios

LoadModule proxy_modulemodules/mod_proxy.so

LoadModule proxy_balancer_modulemodules/mod_proxy_balancer.so

LoadModule proxy_http_modulemodules/mod_proxy_http.so

LoadModulos mod_ssl

#NameVirtualHost

Este paso no es estrictamente necesario

NameVirtualHost *:8080NameVirtualHost 217.13.124.73:443


Virtualhost para sitios sin SSL

<VirtualHost *:8080> DocumentRoot «/web/wordpress/static/trailersdecine» ServerName trailersdecine.com ServerAlias www.trailersdecine.com <Directory /web/wordpress/static/trailersdecine> AllowOverride All Order deny,allow Allow from all </Directory> CustomLog logs/common.trailersdecine combined ErrorLog logs/error.trailersdecine # Other directives here</VirtualHost>

Es una configuración típica excepto con los puertos de escucha y con el puerto de escucha a la hora de configurar el Vhost: 8080.


Varnish y HTTPS

Archivo:Image1.png.png


Varnish no soporta HTTPS, no podemos configurar Varnish para que escuche el puerto 443 simplemente.


Para solucionar este problema debemos configurar el virtualhost de la siguiente manera:

Virtualhost 443
<VirtualHost 217.13.124.73:443>
ServerName trailersdecine.com
ServerAlias www.trailersdecine.com
ErrorLog logs/error_https.trailersdecine.com.log
CustomLog logs/access_https.trailersdecine.com.log combined
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile «/etc/letsencrypt/live/trailersdecine.com/fullchain.pem»
SSLCertificateKeyFile «/etc/letsencrypt/live/trailersdecine.com/privkey.pem»
ProxyPreserveHost On
ProxypassReverse/ http://127.0.0.1:8080/
</VirtualHost>
Podemos apreciar varias cosas en este fichero:
No tiene la sentencia DocumentRoot
Creamos la contestación a partir de la dirección interna y el puerto del escucha de Apache2
Una vez creado el VirtualHost para el puerto 443, reiniciamos los servicios y ya tenemos Varnish – Apache – HTTPS funcionando.
En la configuración de apache deberemos añadir:
NameVirtualHost 217.13.124.73:443

Enlaces de referencia

https://bash-prompt.net/guides/apache-varnish/

Let’s encrypt

Comandos

Let’s encrypt

En RomSolutions la seguridad informática es muy importante, tanto o más que el posicionamiento SEO. Para tener un buen posicionamiento SEO debemos tener nuestra web bajo el protocolo HTTPS, sin este protocolo google no nos posicionará en sus listas.

Para obtener un certificado SSL tenemos varias opciones:

  • Como para la forma de obtenerlo,
  • El tipo de certificado que queremos obtener
  • Los dominios que abarcará este certificado.

Tenemos tres modos de ejecucción por defecto:

  • por defecto. letsencrypt-auto …. Este modo obtiene el certificado y lo instalo en el vhost correspondiente.
  • certonly. letsencrypt-auto certonly. Este modo solo obtiene el certificado
  • renew. Este método solo renueva el certificado

Certificado para uno o más dominios

letsencrypt-auto certonly -d dominio1.com -d pepe.dominio1.com -d dominio2.como

Certificado según la vía

letsencrypt-auto certonly –preferred-challenges dns -d dominio1.com
letsencrypt-auto certonly –preferred-challenges http -d dominio1.com
letsencrypt-auto certonly –preferred-challenges tls-sni -d dominio1.com (https)

Certificado via fichero de texto

letsencrypt-auto certonly –manual -d dominio1.com

Certificado indicando webroot

letsencrypt-auto certonly –webroot -w /tmp -d www.pepe.com -d pepe.com

WildCard

letsencrypt-auto certonly –server https://acme-v02.api.letsencrypt.org/directory –manual -d «*.dominio.com»

Nota: Para obtener el wildcard necesitaremos acceso al servidor de nombres DNS.

Renovación simple

letsencrypt-auto renew

Renovación apagando servicios

letsencrypt-auto renew –renew-hook=»/etc/rc.d/init.d/nginx restart»

Revocar un certificado

letsencrypt-auto revoke –cert-path /etc/letsencrypt/archive/${YOUR_DOMAIN}/cert1.pem

Comprobar certificado sin letsencrypt

openssl x509 -in <certificat> -noout -dates

Averiguar Dominios de un certificado

openssl x509 fichero -nouout -text

Let’s encrypt es una de las mejores opciones a la hora de obtener un certificado.

Reglas básicas para el posicionamiento SEO

En RomSolutions basamos nuestra estrategia de marketing online en posicionamiento SEO (Search Engine Optimization). Con las diferentes experiencias que hemos obtenido a lo largo de los años, hemos observado la obsesión que hay por saber que hace la competencia y como lo hace, pero pocos son los que comienzan preguntando que pueden mejorar en sus propias páginas.

Tenemos que comprender que posicionar una web de forma orgánica, de forma natural es lo mejor para nuestra empresa y nuestro futuro en el índice de Google. El SEO es tu mejor herramienta para:

  • Mostrarte a los usuarios que realmente están interesados en tu negocio.

  • Subir escalones en las páginas de google hasta aparecer en la primera página.

  • Ordenar nuestras ideas sobre la web y sus metadatos. Obtener un concepto más claro de lo que Google espera de nosotros como web.

Reglas básicas posicionamiento SEO

  1. Una palabra clave principal (keyword), y otra palabra clave secundaria, máximo dos palabras secundarias. Muy importante no exceder este límite si queremos que Google nos tome en serio.

  2. La palabra clave aparece en nuestra URL. Ya sea por dominios ccTLD o gcTLD.

  3. La palabra clave debe ser incluida en los encabezados de los artículos y las páginas.

  4. En caso de ser un artículo, el primer párrafo debe incluir la palabra clave.

  5. Deben ser artículos y textos propios. Los copiados no indexan.

  6. Generar Tráfico, ya sea hacia otras web o procedente desde otros dominios.

  7. SiteMap.

  8. Geolocalización web

  9. Utilización de Cache web.

  10. SSL -> https

  11. Web responsive

Y sobretodo, antes, después y siempre analítica y más analítica, todo esta sujeto a cambios.