Immagini e effetti di caricamento pigri su SEO


23

Stiamo usando la seguente tecnica per caricare le immagini nel nostro sito:

Per tutte le immagini inseriamo srcnell'attributo un URL per un img predefinito (ovvero un caricatore) e inseriamo l'URL dell'immagine reale data-srcnell'attributo. Così

<img src="loader.gif" data-src="img1.jpg" />

Quando l'immagine è fuori dal viewport non succede nulla, ma quando l'immagine va all'interno del viewport, l'URL data-srcdell'attributo viene caricato e l'immagine viene mostrata correttamente.

Ciò ha come conseguenza che Google vede tutte le immagini nella pagina (cioè una pagina dei risultati di ricerca) con lo stesso srcattributo. Perché il bot di Google ovviamente analizza solo il tag img "scaricato" con il valore predefinito src.

La mia domanda è: avere molti tag img con lo stesso srcattributo influisce sul SEO della pagina ?


2
Penso che titolo e alt siano il 90% del lavoro. Nome file meno. Immagino che possa influire sui risultati in Google Immagini
Martijn,


Potrebbe certamente influire sul numero di immagini che hai indicizzato in Google Ricerca immagini. Stai chiedendo questo o qualsiasi effetto che avrebbe sulle classifiche per la normale ricerca sul web?
Stephen Ostermiller

@StephenOstermiller la mia principale preoccupazione sono le classifiche, ma qualsiasi effetto (immediato o secondario) per il SEO è interessante
bmenekl

Risposte:


10

Non ho mai visto il caricamento lento delle immagini avere alcun impatto negativo sulle classifiche di ricerca web. Migliorare le prestazioni percepite del tuo sito per gli utenti può davvero aiutare le tue classifiche. Quando meno persone tornano ai risultati della ricerca a causa di problemi di prestazioni con il tuo sito, le tue classifiche miglioreranno.

Google non sarà in grado di indicizzare immagini caricate in modo pigro per la ricerca di immagini. Esistono invece alcune possibili correzioni tecniche come:

  • utilizzare <noscript>tag che mostrano le immagini per gli utenti che non hanno JavaScript abilitato (e i motori di ricerca)
  • Collega anche alle tue immagini. Non sembra importare alla ricerca di immagini se l'immagine è in img src o in a href. Quindi il frammento seguente avrebbe caricato lazy l'immagine e indicizzata l'immagine a dimensione intera nella ricerca di immagini: <a href="/webmasters//img_large/foo.jpg"><img data-lazy-load="/img_thumb/foo.jpg" src="/img/1x1_transparent.gif"></a>

3
Non farei affidamento su "noscript": vediamo un sacco di spam che prova a usarlo, quindi non siamo sempre abbastanza sicuri di fidarci dei contenuti messi lì. Mi piace l'idea di utilizzare collegamenti alle immagini. In generale, se un'immagine è uno degli elementi principali di una pagina, tenderei comunque a incorporarla in modo naturale (almeno una versione di essa, se stai utilizzando dimensioni diverse) in modo da essere sicuro che sia indicizzata normalmente. Stiamo lavorando a una storia migliore per questo, ma non vedo che cambi oggi o domani.
John Mueller,

1
Usando la tua tattica, puoi provare un <a> wrapper se le tue immagini sono già circondate da un link per prodotti o qualcosa del genere: <a href="/webmasters//img_large/foo.jpg"><a href="www.example.com/page"><img data-lazy-load="/img_thumb/foo.jpg" src="/img/1x1_transparent.gif" /></a></a>il link interno accetta il clic dell'interfaccia utente, mentre l'esterno dovrebbe ancora funzionare per i bot che indicizzano le immagini.
Dhaupin,

1
Questa risposta è valida anche per il 2017? Specialmente "Google non sarà in grado di indicizzare le immagini caricate in modo pigro per la ricerca di immagini." Parte? Quindi anche noi abbiamo 10 immagini nel post, Google pensa che non abbiamo immagini?
Sono la persona più stupida il

Questo è ancora il caso, ma puoi comunque collegarti alle tue immagini per indicizzarle.
Stephen Ostermiller

1

La maggior parte dei motori di ricerca indicizzerà le immagini nascoste purché non si utilizzino gli stili incorporati per nascondere l'immagine. La maggior parte dei browser non carica immagini nascoste.

C'è una pagina di prova che può verificare questo reclamo. Alcuni browser mobili meno recenti fanno eccezione, ma sostengo che il caricamento lento sui telefoni cellulari potrebbe essere controproducente per una buona esperienza di navigazione.

http://www.w3.org/2009/03/image-display-none/test.php

Nel tuo file CSS aggiungi la seguente modifica.

.lazy-img { display: none; }

Ora puoi caricare una pagina con immagini pigre come questa e verranno indicizzate.

<body>
   <img class="lazy-img" src="img1.jpeg" title="image title"/>
   <img class="lazy-img" src="img2.jpeg" title="image title"/>
   <img class="lazy-img" src="img3.jpeg" title="image title"/>
   <img class="lazy-img" src="img4.jpeg" title="image title"/>
</body>

È importante includere l' titleattributo per l'immagine. Oppure circondi il <imgtag> con un link <a> tag e testo del link. Altrimenti i motori di ricerca assoceranno le parole chiave all'immagine in base alla distanza delle parole. Stai andando a tutti questi problemi per SEO che potresti anche andare fino in fondo.

Se usi quanto sopra così com'è. Nulla mostrerà come le immagini sono nascoste. Si desidera rimuovere questa classe nella parte inferiore del documento. La chiave qui è usare il Javascript puro in linea. Questo Javascript viene eseguito immediatamente dopo che il layout degli elementi sopra è terminato. Se carichi tutti i tuoi file JS esterni in basso (come dovresti). Dovresti posizionare questo blocco Javascript sopra quei file. In modo che non vi siano ritardi nella modifica del DOM.

<body>
   <!--[if lte IE 8]
   <style type="text/css">.lazy-img { display: block !important; }</style>
   [endif]-->
   <noscript><style type="text/css">.lazy-img { display: block !important; }</style></noscript>
   <img class="lazy-img" src="img1.jpeg" title="image title"/>
   <img class="lazy-img" src="img2.jpeg" title="image title"/>
   <img class="lazy-img" src="img3.jpeg" title="image title"/>
   <img class="lazy-img" src="img4.jpeg" title="image title"/>
   <![if gte IE 9]>
   <script type="text/javascript">
      var images = document.getElementsByClassName('lazy-img');
      Array.prototype.forEach.call(images, function(image){
         image.setAttribute("data-src",image.getAttribute("src"));
         image.setAttribute("src","loading.gif");
      });
      while(images.length > 0) { images[0].className = ""; }
   </script>
   <![endif]>
</body>

Ora ho aggiunto i condizionali per IE9 poiché non supporta getElementsByClassName8 e precedenti. Ciò che dovrebbe accadere (non testato) è che quei browser caricheranno l'immagine così com'è.

Il vantaggio di questo approccio è che mantiene pulito l'HTML dal punto di vista del webcrawler.


1
Ero curioso e ho provato la pagina di test. Gli ultimi Chrome e Safari su Mac sembrano caricare l'immagine. Non è così sicuro che dopo tutto sia molto affidabile, purtroppo ...
Pevara,

Sfortunatamente con questo metodo, le immagini sono tutte caricate in modo pigro nella parte inferiore del documento (non male), ma come sto spiegando nella mia domanda, nel mio approccio le immagini sono caricate in modo pigro solo quando entrano nel viewport. Pertanto, qualsiasi immagine che non entra nella finestra (ovvero l'utente finale non scorre quindi verso il basso nella pagina) non verrà caricata affatto. In una pagina con molte immagini questo è davvero importante
bmenekl

@bmenekl No, questa risposta non esegue il caricamento lento. Altera solo l'HTML quando viene visualizzato in un browser abilitato per JavaScript in modo che uno script di terze parti possa eseguire un caricamento lento.
Reactgular,

1

Google ha dichiarato di eseguire JavaScript con i propri robot, vedi questo post per ulteriori spiegazioni.

Come documentato, non devi vietare a GoogleBot i file statici per la scansione dinamica.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.