Quitar fecha y extensión de los enlaces en Blogger

Los enlaces permanentes son el identificador que nuestra entrada tendrá en nuestro blog. Esta se crea dependiendo al título que se le ponga al post. Aunque es modificable en el proceso.

Como sabemos, los enlaces permanentes de Blogger tiene por defecto una singular estructura que consta de nuestro dominio, seguido del año y mes (fecha de publicación). Con una extensión .html al final. Más o menos así:

https://abloguers.blogspot.com/año/mes/titulo-de-mi-post.html.

De la misma forma en las páginas estáticas:

https://abloguers.blogspot.com/p/titulo-de-mi-pagina.html.

En lo personal, esta estructura aparte de alargar bastante el enlace, le da una apariencia (diría) algo sucia. Un problema que no existe para nada WordPress, el cual desde ya, tienes la opción de modificarla a tu antojo.

Lo que vamos a hacer no será cambiar de raíz la estructura de los enlaces, porque esta función no existe en Blogger, aunque sería realmente genial que la agregasen.

Este código lo que hará será «disfrazar» los enlaces de Blogger, ocultarlo a los ojos del lector, de tal forma que pueda visualizar un enlace más limpio.

titulo-post-enlaces-permanentes-blogger
  • Save


Instalación


Método 1

Consta de tan solo añadir el siguiente script justo abajo de la etiqueta <head>:

<script src="https://dl.dropbox.com/s/7nvg9tjdqbheuvs/blogger-enlaces.js"/>

Lo siguiente será Guardar los cambios y listo. Puedes verificar su funcionamiento yendo a una entrada o página de tu sitio.


MÉTODO 2 (RECOMENDADO)

Para este método te recomiendo visitar un anterior post donde te enseño a cómo obtener la clave API de Blogger.

Básicamente lo que haremos es hacer uso de esta clave API, con el fin de que el programa acceda solo a los datos que sean necesarios para su funcionamiento. De tal forma que tendremos un mejor rendimiento.

Dicho lo anterior, nos dirigimos a Plantilla > Editar HTML, buscamos la etiqueta <head> y debajo pegamos lo siguiente:

<script type="text/javascript">
// BloggerJS v0.4.0
// Licensed under the MIT License
// Copyright (c) 2017-2018 Kenny Cruz
// github.com/jokenox

// Configuration
var config = {
  postsDatePrefix: false,
  accessOnly: false,

  useApiV3: false,
  apiKey: "YOUR-API-KEY-HERE"
}
var postsOrPages=["pages","posts"],blogId="<data:blog.blogId/>",urlTotal,fetchIndex=1,ampChar="&amp;"[0],secondRequest=!0,feedPriority=0,nextPageToken;function urlVal(){var url=window.location.pathname;var length=url.length;var urlEnd=url.substring(length-5);if(urlEnd===".html")return 0;else if(length>1)return 1;else return 2}
function urlMod(){var url=window.location.pathname;if(url.substring(1,2)==="p"){url=url.substring(url.indexOf("/",1)+1);url=url.substr(0,url.indexOf(".html"));history.replaceState(null,null,"../"+url)}else{if(!config.postsDatePrefix)url=url.substring(url.indexOf("/",7)+1);else url=url.substring(1);url=url.substr(0,url.indexOf(".html"));history.replaceState(null,null,"../../"+url)}}
function urlSearch(url,database){var pathname=url+".html";database.forEach(function(element){var search=element.search(pathname);if(search!==-1)window.location=element})}
function urlManager(){var validation=urlVal();if(validation===0){if(!config.accessOnly)urlMod()}else if(validation===1){fetchData(postsOrPages[feedPriority],1)}else if(validation===2){if(!config.accessOnly)history.replaceState(null,null,"/")}}
function fetchData(postsOrPages,index){var script=document.createElement("script");if(config.useApiV3){var jsonUrl="https://www.googleapis.com/blogger/v3/blogs/"+blogId+"/"+postsOrPages+"?key="+config.apiKey+"#maxResults=500#fields=nextPageToken%2Citems(url)#callback=parseData";if(nextPageToken)jsonUrl+="#pageToken="+nextPageToken;nextPageToken=undefined}else{var jsonUrl=window.location.protocol+"//"+window.location.hostname+"/feeds/"+postsOrPages+"/summary?start-index="+index+"#max-results=150#orderby=published#alt=json-in-script#callback=parseData"}
jsonUrl=jsonUrl.replace(/#/g,ampChar);script.type="text/javascript";script.src=jsonUrl;document.getElementsByTagName("head")[0].appendChild(script)}
function parseData(json){var database=[];if(!config.useApiV3){if(!urlTotal){urlTotal=parseInt(json.feed.openSearch$totalResults.$t)}
try{json.feed.entry.forEach(function(element,index){var entry=json.feed.entry[index];entry.link.forEach(function(element,index){if(entry.link[index].rel==="alternate")database.push(entry.link[index].href)})})}catch(e){}}else{try{json.items.forEach(function(element,index){database.push(element.url)})}catch(e){}
nextPageToken=json.nextPageToken}
urlSearch(window.location.pathname,database);if(urlTotal>150){fetchIndex+=150;urlTotal-=150;fetchData(postsOrPages[feedPriority],fetchIndex)}else if(nextPageToken){fetchData(postsOrPages[feedPriority])}else if(secondRequest){nextPageToken=undefined;urlTotal=0;fetchIndex=1;secondRequest=!1;if(feedPriority===0){feedPriority=1;fetchData("posts",1)}else if(feedPriority===1){feedPriority=0;fetchData("pages",1)}}}
function bloggerJS(priority){if(priority)feedPriority=priority;urlManager()}
bloggerJS()
</script>

Recuerda reemplazar lo que se encuentra resaltado en azul por la clave API de Blogger que obtuvimos.

¿Afecta al SEO?

No. Este recurso no afecta para nada el SEO, ya que los buscadores seguirán indexando los enlaces por defecto.


Este script fue enteramente desarrollado por Kenny Cruz, puedes pasar por su perfil de Github si deseas.


Importante:

Como mencioné anteriormente este script lo que hace es solo ocultar el enlace permanente para darle una mejor y más limpia apariencia.

Del mismo modo, si en algún momento decides dejar de utilizar el código y quieres volver a los enlaces con fechas, los enlaces «limpios» que ya hayas compartido, redirigirán a un Error 404.

Para resolver este problema te recomiendo seguir utilizando el código pero modificando una pequeña porción de este:

accessOnly: false,

Cambiando el valor false por true lograremos revertir el resultado, es decir, el enlace modificado redirigirá al enlace original.


Si existe alguna duda o inconveniente no dudes en hacérmelo saber ↓

Nos leemos.

Deja un comentario

Share via
Copy link