Quanto è male usare display: none in CSS?


72

Ho sentito molte volte che è male usare display: noneper ragioni SEO, in quanto potrebbe essere un tentativo di spingere in parole chiave popolari irrilevanti. Alcune domande:

  1. È ancora ricevuta la saggezza?
  2. Fa differenza se nascondi una sola parola o forse un singolo personaggio?
  3. Se dovessi evitarne l'uso, quali sono le tecniche preferite per nasconderti (in situazioni in cui ne hai bisogno per diventare di nuovo visibile in determinate condizioni)?

Alcuni riferimenti che ho trovato finora:

Matt Cutts del 2005 in un commento

Se stai semplicemente usando i CSS per nascondere il testo, non stupirti se si chiama spam. Non sto dicendo che mouseover o testo DHTML o have-a-logo-but-also-have-text siano spam; Ho risposto all'ultima conferenza durante una conferenza quando ho detto "immagina come sarebbe un visitatore, un concorrente o qualcuno che controlla un rapporto sullo spam. Se mostri il nome della tua azienda e si tratta di Marker Expo invece del logo Marker Expo, tu dovrebbe andare bene. Se il testo che decidi di mostrare è "Sconto economico online per i marcatori di Expo, acquista la vendita di Marcatori di Expo online ...", allora sarei più cauto, perché può sembrare brutto. "

E in un altro commento sullo stesso articolo

Possiamo contrassegnare il testo che sembra essere nascosto utilizzando CSS su Google. Ad oggi non abbiamo rimosso algoritmicamente i siti per farlo. Facciamo del nostro meglio per evitare di gettare i bambini con l'acqua del bagno.

Eric Enge ha detto nel 2008

L'uso legittimo di questa tecnica è così diffuso che raramente mi aspetto che i motori di ricerca penalizzino un sito per l'utilizzo display: nonedell'attributo. È solo molto difficile implementare un algoritmo che potrebbe davvero capire se l'uso particolare display: noneè destinato a ingannare i motori di ricerca o meno.


Cosa succede se utilizzo una schermata bianca di caricamento (senza testo all'interno) che in seguito nascondo con JavaScript? Google considererà che sto nascondendo la pagina sotto quella schermata bianca? Grazie
bloomingsmilez,

Uso il display: nessuno per ridurre il contenuto della pagina per gli schermi mobili perché la quantità di copie che sembra ragionevole su uno schermo più grande è troppo sul telefono. Mi sto causando un problema?

Risposte:


57

In questi giorni di siti Web pesanti di jQuery (e di altri framework JavaScript), non riesco a vedere come possa essere un problema, dal momento che viene ampiamente utilizzato quando si utilizzano elementi come cursori jQuery, transizioni, gallerie, ticker ecc. Questi sono ora banali e i motori di ricerca sono abbastanza intelligenti da non penalizzare ciecamente il loro uso.

Un utente lo afferma nel forum di Google Webmaster Central :

"Semplicemente usando display: nessuno non attiverà automaticamente una penalità. La chiave è se esiste o meno un meccanismo - automatico o invocato dall'utente - per rendere visibile il contenuto. Google sta diventando molto abile nell'elaborare JavaScript per trova e interpreta tali meccanismi. Se usi HTML, CSS e JavaScript validi non hai nulla di cui preoccuparti. Buona fortuna! "


Interessante, grazie. Ciò implica che dovrei evitare di essere pigro e usare display: noneper rimuovere elementi nel CSS che potrebbero essere rimossi nel codice; ma per effetti e simili sto bene. Mi chiedo quindi come potrebbero rilevare situazioni in cui è presente un logo dell'immagine e anche il testo del logo è incluso per l'accessibilità ma nascosto. Dalla descrizione, questo sarebbe considerato cattivo?
Andy,

@Andy: potrebbe. Ma non dovresti usare CSS per nascondere il testo del logo; inseriscilo altnell'attributo del imgtag. Ecco a cosa serve l'attributo e, per quanto ne so, usarlo tende ad aumentare la tua valutazione SEO.
David Z,

In realtà, sembra che potrebbe essere un caso in cui si utilizza l' longdescattributo del tag immagine per fornire un collegamento a un'altra pagina che contiene la descrizione completa. Questo sarà visto solo dagli screen reader (e forse dai motori di ricerca). Vedi webaim.org/techniques/images/longdesc#longdesc
Dan Diplo il

In realtà non sto cercando il modo migliore per presentare una descrizione di un grafico ... Mi riferivo alla citazione di Matt Cutts Non sto dicendo che ... have-a-logo-but-also-have-text è spam . Non mi sembra che stia parlando dell'uso degli attributi alto longdesc, e ha fornito un leggero contrasto a La chiave è se c'è un meccanismo ... per rendere visibile il contenuto .
Andy,

7

Se non lo stai abusando, non sarà un problema. Al momento Google non esegue la scansione dei fogli di stile CSS alla ricerca di istanze didisplay: none

Google non dichiarerà guerra a una regola di stile ampiamente utilizzata, stanno solo dando un avvertimento a coloro che pensano di poter aggiungere 1000 parole chiave a un sito che sono tutte impostate su, display: noneo anche peggio,margin-left: 9999px


6

Usa "display: none" solo quando è lo strumento giusto da usare.

Come suggeriscono le citazioni, il problema che i motori di ricerca hanno con display nessuno è spam. Tentare di motori di ricerca spam, indipendentemente dagli strumenti che usi per questo, è una cattiva idea. Se usi CSS per qualcosa di diverso dallo spam, allora non ci sono problemi.

Lo strumento giusto per il lavoro giusto.


3
Grazie. La domanda diventa allora quando è display: nonelo strumento giusto. Dici che se il CSS viene utilizzato per scopi diversi dallo spam, non sarà un problema: sei sicuro che se uso display: noneun modo pigro per rimuovere elementi, non sarà un problema?
Andy,

@Andy display: nessuno è lo strumento corretto quando non si desidera visualizzare alcuni contenuti. Per rimuovere elementi, potrebbe essere meglio non includerlo affatto (o, se si utilizza JavaScript, rimuovere gli elementi dal DOM). Se rimuovi il contenuto dalla pagina usando display: none, quindi gli utenti non lo vedono ma i motori di ricerca lo indicizzano ancora, allora sarebbe spam. Se hai una sorta di pulsante "Mostra / Nascondi" o qualcosa del genere, allora è OK.
luiscubal,

4

Sono d'accordo con Dan Diplo e per aggiungere a quello che ha detto, anche Google stesso usa display: nonenella sua HOME PAGE , quindi non può davvero essere un problema usarlo, purché non lo usi per lo spamming (ovvero inserendo centinaia di parole chiave in un display: nessuno pannello DIV).

Apri la HOME PAGE di Google e cerca nel codice sorgente HTML. Cerca per display:nonete lo vedrai molte volte. :)


Grazie Marco Ciò lascia ancora dubbi sul fatto che è possibile utilizzare display: nonesu elementi che non sono mai visibili.
Andy

@Andy: gli elementi mai visibili dovrebbero essere solo SPAM, non vedo perché dovresti usare elementi mai visibili, perché preoccuparsi di metterli nella pagina HTML? Quindi mi aspetto che usarli non sia una buona idea. Google potrebbe essere in grado di rilevarli ora o in futuro e penalizzare il tuo sito.
Marco Demaio,

L'unico esempio che mi viene in mente è quando stai usando un CMS e per motivi di tempo potresti voler usare i CSS per nascondere uno o due piccoli frammenti di markup, piuttosto che personalizzarli interamente a tema. (E sto solo chiedendo al Q di capire meglio la situazione attuale - il mio CMS preferito è Drupal, dove modificare il markup è semplice e veloce.)
Andy,

@Andy - È anche logicamente possibile per un motore di ricerca leggere migliaia di righe di javascript e identificare casi in cui è logicamente impossibile visualizzare un elemento? Ci vorrebbe un immenso reverse-engineering per studiare il codice di qualsiasi sito con una riga che dice $('.'+somevar).show();e capire ogni possibile valore somevarpotrebbe avere e confrontarlo con ogni possibile stato del DOM - e questo è un caso eccezionalmente banale ... Inoltre, molti casi in cui un div non verrà mostrato a causa di dati, input, risultati delle chiamate API / AJAX, comportamento dell'utente, ecc., ma logicamente potrebbe ...
user56reinstatemonica8

@ user568458 Penso che sia questo il punto sollevato da Eric Enge nell'ultimo paragrafo della domanda e da Dan Diplo nella risposta accettata.
Andy,

3

Penso che dovresti provare a trovare altre alternative, ma qui ci sono alcuni articoli di riferimento

Include collegamenti a Maile e Vanessa in una chat radiofonica per Webmaster su questo argomento http://luigimontanez.com/2010/stop-using-text-indent-css-trick/

Maile è un ingegnere di Google http://maileohye.com/html-text-indent-not-messing-up-your-rankings/

È qualcosa per cui Google troverà una soluzione, ma l'offset negativo e la visualizzazione non sono sicuri se si prende una prospettiva a lungo termine.


0

Google esegue la scansione dei display:nonecontenuti CSS .

Nascondere qualcosa da Google è male solo se stai intenzionalmente cercando di manipolare le classifiche di ricerca.

Le opzioni e il testo nascosti dai visitatori sono ormai una pratica comune dato come sono diventati i siti Web interattivi, quindi non dovresti preoccuparti. In passato, le persone usavano questo tipo di metodi per giocare a SEO, nascondendo parole chiave e collegamenti ecc. Il risultato è che quando Google esegue la scansione di un sito che ha cose nascoste allo spettatore, lo considera meno affidabile.


0

Ho appena avuto una conferenza con SEO in Google e questo non è vero. La visualizzazione nessuna penalizza, di sicuro. Qualche tempo prima invece si occupava della visibilità o usando dimensioni di testo negative o rientri negativi.

È un dato di fatto che il testo deve essere visibile e non ostruito in alcun modo visibile. Almeno nessuna piastra della caldaia o contenuto duplicato o pigro.

A proposito, google può fare quello che vuole sul proprio sito e si procurano per primi anche se era una patata.

In particolare l'approccio proposto e probabilmente da utilizzare è quello di mostrarlo e indipendentemente dalle conseguenze progettuali che può avere.

Proporrò cose come indicizzazione z (stratificazione) per verificare se per caso questo tipo di stili non viene preso in considerazione. Ma non credo che l'algoritmo sia abbastanza forte da considerarlo. O cose come calcolare la posizione della casella sulla dimensione dello schermo per considerare il posizionamento negativo come un blocco visivo.

Il testo correlato per l'interesse del cliente seo ergo dovrebbe essere visibile.


1
Questa risposta è completamente sbagliata. Qualunque conferenza tu abbia partecipato è terribile. Non riesco a immaginare quale altra immondizia ti abbiano nutrito. Probabilmente ti hanno detto che anche i meta tag erano importanti.
John Conde

1
È vero che se crei un lungo elenco di parole chiave, lo metti sulla tua pagina e lo nascondi con display: nessuno, Google penalizzerà il tuo sito. È anche vero che il testo che si intende indicizzare deve essere visibile. Come sottolineato da altre risposte, ci sono usi legittimi per la visualizzazione: nessuno.
Stephen Ostermiller

I mezzi tecnici utilizzati per nascondere il testo non contano affatto per Google. Le ipotesi che l'indice z o il posizionamento negativo possano essere utilizzate per ingannare Google sono totalmente false. Googlebot ora esegue il rendering delle pagine e può rilevare qualsiasi mezzo utilizzato per impedire la visualizzazione del testo in pixel sulla pagina. Come sottolineato da altre risposte, non
Stephen Ostermiller
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.