Co paso do tempo, Google mellorou moito a indexación de JavaScript e AJAX . Ao principio non indexaba nada nin seguía as ligazóns que aparecían nos contidos cargados deste xeito, pero despois comezouse a indexar algunhas implementacións e mellorando pouco a pouco. Actualmente é capaz de indexar moitas implementacións diferentes e seguir ligazóns que aparecen no contido cargado por AJAX ou a API Fetch , pero sempre haberá casos nos que pode fallar .
Se usamos un marco universal ou SSR a araña estará feliz
Para analizar os casos nos que Google pode non indexar o noso sitio web, primeiro temos que ter claro o concepto de Client Side Rendering (CSR). Isto implica que o HTML está pintado no cliente con JavaScript , normalmente facendo un uso excesivo de AJAX .
Orixinalmente, os sitios web sempre pintaban o HTML Biblioteca de números de teléfono no servidor ( Server Side Rendering ou SSR), pero dende hai tempo, a CSR fíxose popular coa aparición de frameworks.
JavaScript como Angular, React e Vue . Non obstante, a RSE ten un impacto negativo na indexación, no rendemento da pintura do sitio web e, en consecuencia, no posicionamento .
Problemas de RSE na carga inicial da páxina
Como xa se explicou nun post anterior, para garantir a indexación en todas as arañas e situacións , ademais de ter un bo rendemento, a mellor solución é utilizar un marco universal. Aínda que en realidade, hai outras situacións nas que tamén sería válido empregar o termo Hybrid Rendering.
Problemas de RSE na carga inicial da páxina
Ás veces ocorre que a empresa de desenvolvemento utiliza a RSE e non nos ofrece a opción de utilizar un marco universal. Nestes desenvolvementos de RSE atoparémonos con problemas que serán maiores ou menores dependendo da araña e dos seus algoritmos de posicionamento . Neste post, imos analizar cales son eses problemas coa araña de Google e como resolvelos .
En primeiro lugar, imos analizar os problemas de indexación que se producen en canto se introduce unha URL desde fóra da web e cando se pinta o HTML no cliente con JavaScript.
Google realiza a indexación do seguinte xeito:
Explorar : Googlebot pídelle ao servidor un URL.
Primeira onda de indexación : indexa o contido que se pinta no servidor ao instante e obtén novas ligazóns para rastrexar.
Xera o HTML que se pinta no cliente executando o JavaScript . Este proceso é moi caro computacionalmente (pódese facer inmediatamente ou levar incluso días, á espera de ter recursos dispoñibles para facelo).
Segunda onda de indexación : Co HTML pintado no cliente, o contido que falta indexa e obtéñense novas ligazóns para rastrexar.
Diagrama de operación de Googlebot .
Ademais de que as páxinas poden tardar máis en indexarse completamente, polo que se atrasa a indexación das páxinas vinculadas desde elas, se a pintura dunha páxina é lenta, o renderizador de Googlebot pode deixar partes sen pintar . Nas probas que levamos a cabo dende a opción “explorar como Google” de Google Search Console. Nna captura de pantalla que xera non vimos nada que tarde máis de 5 segundos en mostrarse.
Non obstante, indexa o HTML xerado despois destes 5 segundos. Para entender por que isto ocorre, debemos ter en conta que o renderizador de Google Search Console primeiro constrúe o HTML executando o JavaScript co renderizador de.
Nas probas que realizamos, cando a pintura HTML leva máis de 19 segundos non indexou nada . Aínda que é moito tempo, en certos casos pódese superar, sobre todo se facemos un uso intensivo de AJAX, xa que nestes casos, o renderizador de Google , como en calquera renderizador , ten que esperar a que se produzan os seguintes pasos:
Descárgase e procesa o HTML para solicitar os ficheiros ligados e crear o DOM.
O CSS é descargado, procesado para solicitar os ficheiros vinculados e crear o CSSOM.
O JavaScript é descargado , compilado e executado para lanzar a solicitude (ou solicitudes) AJAX .
A solicitude AJAX vai a unha cola de solicitudes , á espera de ser atendida xunto co resto dos ficheiros solicitados.
A solicitude AJAX lánzase e ten que viaxar pola rede ata o servidor .
O servidor responde á solicitude devolvendo a resposta pola rede e, finalmente, hai que esperar a que se execute o JavaScript, para que pinte o contido no modelo HTML da páxina .
Os tempos de solicitude e descarga do proceso anterior dependen da carga da rede e do servidor nese momento e, ademais, Googlebot só utiliza o protocolo . Isto é máis lento que o protocolo HTTP/2 porque as solicitudes son atendidas unha tras outra e non todas ao mesmo tempo.
Tanto o cliente como o servidor deben permitir En definitiva, isto significa que Googlebot. Polo tanto, estamos ante unha situación na que poderiamos superar eses 19 segundos que estimamos.
Problemas de indexación:
Imaxina, por exemplo, que entre as solicitudes de imaxes. CSS, JavaScript e AJAX lánzanse máis de 200 solicitudes que tardan 100 milisegundos cada unha. Se as solicitudes AJAX chegan ao final da cola, probablemente excederemos o tempo necesario para que o seu contido se indexe .
Ao indexar o contido que se pinta no cliente, Googlebot pode atopar os seguintes casos que impedirán a indexación do HTML xerado con JavaScript:
Hai erros de JavaScript .
Para saber se temos algún destes problemas, debemos utilizar a ferramenta de Google « test de compatibilidade con móbiles ». HTML xerado polo renderizador (como xa mencionamos), o rexistro de erros de JavaScript pode ter Código. JavaScript e funcionalidade que o renderizador aínda non sabe como interpretar .
Polo tanto, debemos aplicar esta ferramenta aos. URL representativos de cada modelo de páxina do sitio, para asegurarnos de que o sitio web é indexable.
No HTML xerado pola ferramenta anterior. Ttemos que ter en conta que todos os metadatos (URL canónico incluído) serán ignorados polo robot xa que. Google só ten en conta esta información cando está pintada no servidor .
Problemas de RSE navegando á páxina seguinte
Agora imos ver que pasa cando navegamos por unha ligazón dmca complaint cando xa estamos na páxina web e a pintura HTML está feita no cliente.
Problemas de indexación
A diferenza de CSR na carga inicial, a navegación á páxina seguinte cambiando. Rontido principal a JavaScript é máis rápida que SSR . Pero teremos problemas ao indexar se:
As ligazóns non teñen un URL válido no seu atributo href que devolva 200 OK.
Mesmo accedendo a el directamente, se o sitio web utiliza agb directory un Service Worker. Sitio web pode pretender que responde correctamente, cargando o contido da súa caché. Pero Googlebot é unha araña sen estado, polo que non ten en conta ningunha caché de Service. Worker nin ningunha outra tecnoloxía. JavaScript como o almacenamento local ou o almacenamento de sesións, polo que recibirá un erro.
Ademais, para que o sitio web sexa accesible. URL debe cambiar usando JavaScript coa API do historial como xa expliquei na entrada AJAX accesible e indexable .
Que pasa cos fragmentos agora que Google pode indexar AJAX?
Os fragmentos son a parte do URL que pode aparecer ao final do URL e ten unha marca hash . Exemplo:
Este tipo de URL nunca chegan ao servidor , son xestionados só no cliente. Polo que ao solicitar o URL anterior dende o servidor chegaría. Asolicitude de en O cliente o navegador moverá o . Desprazamento ata o fragmento do documento ao que fai referencia.