Guía para evitar la indexación involuntaria de páginas en HTTPS

Hará ya unas semanas que tuve un buen susto. Era un lunes al mediodía y procedía a revisar, como cada día, las posiciones que nos ofrece Ahrefs en su sección de Movements dónde podemos ver por día algunos de los cambios que han sufrido las palabras clave por las que posiciona el site. (Ojo que estos cambios no los monitoriza diariamente, por lo que quizás estás viendo cosas que han pasado hace un minuto o una semana).

Curiosamente me fijé en el candado típico del HTTPS y me dio un microinfarto. ¿Cómo era que no tenía esa web en HTTPS y aparecía así?

Lo primero que hice fue pensar que era un error de Ahrefs, o un trolleo de Google. Cualquiera de los dos podía ser factible aunque improbable.

Para comprobar si era cierto o no hice una simple búsqueda con el comando site y un inurl. Tal que así:

site:midominio.com inurl:https

Con esto, me di cuenta que realmente estaba indexando el contenido en HTTPS y no en HTTP. ¿O eran ambos?

Analizando cada URL una por una me di cuenta que no había duplicidad de contenidos, es decir, que si se indexaba la URL en HTTPS, era para sustituir a la de HTTP. ¿Alguien me estaba migrando el site de gratis? No podía ser que alguien fuera tan crack.

Se me ocurrió mirar si este problema se estaba replicando en los otros sites que tiene este servidor, pues entonces sí que era algo más preocupante. Aunque repito, no había duplicidad de indexación.

Pues resultó que sí, gran mayoría de las webs ya tenían bastantes URLs indexadas en HTTPs y eso me preocupaba seriamente, porque realmente si accedías a la web en HTTPS no tenía el certificado bien puesto, algo parecido a esto:

Una vez encontrado el problema, simplemente tenía que solucionarlo. Al principio pensé en pedir ayudar al hosting, para saber si habían hecho alguna actualización al cPanel y se había activado alguna funcionalidad extraña, fue una buena idea pues me lo confirmaron, pero tampoco me supieron ayudar.

Resulta que cPanel te ofrece un certificado HTTPS gratuito para que puedas poner tus sites en verde, sin embargo su manera de ofrecértelo es un extraño, ya que te lo meten de golpe.

La opción se puede encontrar en Lets Encrypt SSL. Para los más técnicos ya sabrán de que va, para los demás, es un servicio de certificado SSL gratuito que puedes implementar en tus páginas web, siempre teniendo en cuenta todo lo que hay que tener en cuenta (es una migración, no nos olvidemos de ello).

Solución al problema de la “indexación HTTPS forzada”

Para solucionar el problema estuve un buen rato buscando, y lo primero que pensaba es que hacer una regla en el htaccess (que ya debería de tener) sería la mejor opción, sin embargo no me funcionó, ya que no hacía las redirecciones bien. ¿Quizás porque es un shared hosting? Se me escapa.

El código a añadir era este, y recomiendo que aunque no tengas este problema lo añadas para evitar futuros problemas, no cuesta apenas nada y te puede evitar este problema.

RewriteEngine On RewriteCond %{HTTPS} on

RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

La cosa es que no me solucionaba el problema, como he comentado antes, y tuve que seguir buscando una alternativa para poder hacer las redirecciones de manera simple.

Tras más de media hora, y gracias a mi compañero Andreas (lo encontró él, no le voy a quitar el mérito), este artículo que habla del problema me solucionó el problema.

* Redirect WordPress front end https URLs to http without a plugin * Necessary when running forced SSL in admin and you don't want links to the front end to remain https. * @link http://blackhillswebworks.com/?p=5088 */ add_action( 'template_redirect', 'bhww_ssl_template_redirect', 1 ); function bhww_ssl_template_redirect() { if ( is_ssl() && ! is_admin() ) { if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) { wp_redirect( preg_replace( '|^https://|', 'http://', $_SERVER['REQUEST_URI'] ), 301 ); exit(); } else { wp_redirect( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301 ); exit(); } } }

Para usarlo se debe de poner en un archivo de PHP de nuestro WordPress que se use en cada petición de página, para que sea efectivo. Se puede poner en un config, en el plugin de caché o en cualquier otro fichero.

Así que sin más, mis páginas vuelven a ser HTTP, no he perdido rankings ni se me ha duplicado el site al tener este error.

Conclusiones

De todo se aprende y este ha sido un problema menor, pues ni problema ha sido casi, y he aprendido cosas sobre el funcionamiento de Google cuando encuentra cosas así.

  • Google NO me duplicó el site aunque se pudiera acceder tanto en HTTP como en HTTPS.

¿Podríamos decir que Google es buena gente? En este caso, yo digo que sí.

Si has llegado aquí es probable que te hayas encontrado con el mismo problema, si te animas, coméntalo para que todos podamos aprender de ello.

¡Hasta pronto!

Originally published at estevecastells.com on January 8, 2017.

Global Growth, SEO & Tech

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store