Jak źle jest używać display: none w CSS?

72

Słyszałem wiele razy, że jest źle używany display: noneze względu na SEO, ponieważ może to być próba wprowadzenia niepowiązanych popularnych słów kluczowych. Kilka pytań:

  1. Czy nadal otrzymano mądrość?
  2. Czy robi to różnicę, jeśli ukrywasz tylko jedno słowo, a może pojedynczy znak?
  3. Jeśli powinieneś unikać jego użycia, jakie są preferowane techniki ukrywania się (w sytuacjach, gdy potrzebujesz, aby znów był widoczny w określonych warunkach)?

Niektóre referencje, które znalazłem do tej pory:

Matt Cutts z 2005 roku w komentarzu

Jeśli od razu używasz CSS do ukrywania tekstu, nie zdziw się, jeśli nazywa się to spamem. Nie twierdzę, że najechanie kursorem myszy, tekst DHTML lub tekst z logo, ale także tekst to spam; Odpowiedziałem na ostatnią z konferencji, kiedy powiedziałem: „wyobraź sobie, jak wyglądałby gość, konkurent lub ktoś sprawdzający raport spamowy. Jeśli zamiast nazwy logo wyświetlasz nazwę swojej firmy i są to Markery Expo, powinno być w porządku. Jeśli tekst, który zdecydujesz się wyświetlić, to: „Markery Expo tanie rabaty online kup online Sprzedaż Markerów Expo ...” to byłbym bardziej ostrożny, ponieważ może to źle wyglądać ”.

I w innym komentarzu do tego samego artykułu

Możemy oflagować tekst, który wydaje się ukryty za pomocą CSS w Google. Do tej pory nie usuwaliśmy algorytmicznie witryn w tym celu. Staramy się unikać wyrzucania dzieci z kąpielą.

Eric Enge powiedział w 2008 roku

Uzasadnione użycie tej techniki jest tak powszechne, że rzadko spodziewałbym się, że wyszukiwarki będą karać witrynę za użycie tego display: noneatrybutu. Po prostu bardzo trudno jest zaimplementować algorytm, który mógłby naprawdę ustalić, czy konkretne użycie display: nonema na celu oszukać wyszukiwarki, czy nie.

Andy
źródło
Co się stanie, jeśli użyję ładującego się białego ekranu (bez tekstu), który później ukryję za pomocą javascript? Czy Google rozważy ukrywanie strony pod tym białym ekranem? Dziękuję
bloomingsmilez,
Używam display: none, aby zmniejszyć zawartość strony na ekranach urządzeń mobilnych, ponieważ ilość kopii, która wydaje się rozsądna na większym ekranie, to zdecydowanie za dużo na telefonie. Czy sprawiam sobie problem?

Odpowiedzi:

57

W dzisiejszych czasach ciężkich witryn jQuery (i innych frameworków JavaScript) nie widzę, jak może to stanowić problem, ponieważ jest szeroko stosowany, gdy używasz takich rzeczy jak suwaki jQuery, przejścia, galerie, tiki itp. Są to teraz powszechne i wyszukiwarki są wystarczająco sprytne, aby nie ślepo karać ich użycia.

Użytkownik stwierdza to na forum Google Webmaster Central :

„Zwykłe używanie wyświetlacza: żaden nie spowoduje automatycznej kary. Kluczem jest to, czy istnieje mechanizm - automatyczny lub wywoływany przez użytkownika - do wyświetlania treści. Google staje się bardzo biegły w przetwarzaniu JavaScript do znajdź i zinterpretuj takie mechanizmy. Jeśli używasz prawidłowego HTML, CSS i JavaScript, nie masz się czym martwić. Powodzenia! ”

Dan Diplo
źródło
Ciekawe dzięki. Oznacza to, że powinienem unikać lenistwa i używać display: nonedo usuwania elementów w CSS, które można usunąć w kodzie; ale jeśli chodzi o efekty i tym podobne, nic mi nie jest. Zastanawiam się wtedy, jak mogą wykryć sytuacje, w których znajduje się logo obrazkowe, a tekst logo jest również uwzględniony w celu ułatwienia dostępu, ale ukryty. Z opisu byłoby to liczone jako złe?
Andy
@Andy: Może. Ale nie powinieneś używać CSS do ukrywania tekstu logo; umieść go w altatrybucie imgtagu. Właśnie do tego służy ten atrybut i, o ile mi wiadomo, używanie go ma tendencję do zwiększania oceny SEO.
David Z
W rzeczywistości wygląda na to, że możesz użyć longdescatrybutu tagu obrazu, aby podać link do innej strony zawierającej pełny opis. Będzie to widoczne tylko dla czytników ekranu (i być może wyszukiwarek). Zobacz webaim.org/techniques/images/longdesc#longdesc
Dan Diplo
Właściwie to nie szukam najlepszego sposobu przedstawienia opisu grafiki ... Odniosłem się do cytatu Matta Cuttsa Nie mówię, że ... mam logo, ale mam też tekst to spam . Nie brzmi to dla mnie tak, jakby mówił o użyciu atrybutów altlub longdesc, i stanowiło to niewielki kontrast w stosunku do Kluczowym jest to, czy istnieje mechanizm ... do wyświetlania treści .
Andy,
7

Jeśli go nie wykorzystasz, nie będzie problemu. W tej chwili Google nie indeksuje arkuszy stylów CSS w poszukiwaniu wystąpieńdisplay: none

Google nie wypowie wojny na podstawie powszechnie stosowanej reguły stylu, po prostu ostrzegają osoby myślące, że mogą dodać 1000 słów kluczowych do witryny, które są ustawione na display: nonelub nawet gorzej,margin-left: 9999px

Shane Stillwell
źródło
6

Użyj „display: none” tylko wtedy, gdy jest to właściwe narzędzie do użycia.

Jak sugerują cytaty, problem wyszukiwarek z brakiem wyświetlania to spam. Próba spamowania wyszukiwarek, niezależnie od tego, jakich narzędzi do tego używasz, jest złym pomysłem. Jeśli używasz CSS do czegoś innego niż spam, nie ma problemu.

Właściwe narzędzie do właściwej pracy.

luiscubal
źródło
3
Dzięki. Pytanie staje się wtedy, kiedy jest display: nonewłaściwym narzędziem. Mówisz, że jeśli CSS jest używany do czegokolwiek poza spamem, nie będzie to problemem: czy jesteś pewien, że jeśli użyję display: nonejako leniwego sposobu usuwania elementów, to nie będzie problemu?
Andy
@ Wyświetlanie Andy: żadne nie jest właściwym narzędziem, gdy nie chcesz wyświetlać niektórych treści. Aby usunąć elementy, najlepiej nie włączać go wcale (lub, jeśli używasz JavaScript, usuń elementy z DOM). Jeśli usuniesz zawartość ze strony za pomocą display: none, więc użytkownicy nie zobaczą jej, ale wyszukiwarki nadal ją indeksują, to będzie spam. Jeśli masz jakiś przycisk „Pokaż / Ukryj” lub coś w tym stylu, to jest OK.
luiscubal
4

Zgadzam się z Danem Diplo i dodając do tego, co powiedział, również sam Google używa display: nonena swojej STRONIE GŁÓWNEJ , więc nie może to stanowić problemu, dopóki nie używasz go do spamowania (tj. Wstawiania setek słowa kluczowe na wyświetlaczu: brak panelu DIV).

Otwórz Google STRONA GŁÓWNA i poszukaj kodu źródłowego HTML. Szukaj display:none, zobaczysz to wiele razy. :)

Marco Demaio
źródło
Dzięki Marco. To wciąż pozostawia pytania, czy możesz używać display: noneelementów, które nigdy nie są widoczne.
Andy,
@Andy: nigdy niewidoczne elementy powinny być po prostu SPAMEM, nie rozumiem, dlaczego powinieneś używać nigdy niewidocznych elementów, po co więc męczyć się z umieszczaniem ich na stronie HTML? Spodziewam się więc, że ich użycie nie jest dobrym pomysłem. Google może wykryć je teraz lub w przyszłości i ukarać Twoją witrynę.
Marco Demaio
Jedyny przykład, jaki mogę wymyślić, to kiedy używasz CMS i z powodów czasowych możesz chcieć użyć CSS do ukrycia jednego lub dwóch małych kawałków znaczników, zamiast całkowicie niestandardowego ich edytowania. (I proszę tylko Q, aby lepiej zrozumiał obecną sytuację - mój CMS to Drupal, w którym zmiana znaczników jest szybka i łatwa.)
Andy
@Andy - czy wyszukiwarka może logicznie odczytać tysiące wierszy javascript i zidentyfikować przypadki, w których logicznie niemożliwe jest pokazanie elementu? Potrzeba ogromnej inżynierii wstecznej, aby przestudiować kod dowolnej witryny z jednym wierszem, który mówi $('.'+somevar).show();i obliczyć każdą możliwą wartość, jaką somevarmożna mieć, i porównać ją z każdym możliwym stanem DOM - i to jest wyjątkowo trywialny przypadek ... Ponadto, wiele przypadków, w których div nie zostanie wyświetlony ze względu na dane, dane wejściowe, wyniki wywołania API / AJAX, zachowanie użytkownika itp., ale logicznie może ...
user568458
@ user568458 Wydaje mi się, że o tym wspomina Eric Enge w ostatnim akapicie pytania i Dan Diplo w zaakceptowanej odpowiedzi.
Andy,
3

Myślę, że powinieneś spróbować wymyślić inne alternatywy, ale oto kilka artykułów referencyjnych

Zawiera linki do Maile i Vanessy na czacie radiowym dla webmasterów na ten temat http://luigimontanez.com/2010/stop-using-text-indent-css-trick/

Maile jest inżynierem Google http://maileohye.com/html-text-indent-not-messing-up-your-rankings/

Google zaproponuje rozwiązanie, ale ujemne przesunięcie i wyświetlanie nie są bezpieczne, jeśli weźmie się pod uwagę długoterminowe perspektywy.

AndyBeard
źródło
0

Google indeksuje display:nonetreści CSS .

Ukrywanie czegoś przed Google jest złe tylko wtedy, gdy celowo próbujesz manipulować rankingami wyszukiwania.

Ukryte opcje i tekst od odwiedzających jest obecnie powszechną praktyką, biorąc pod uwagę, jak stały się interaktywne strony internetowe, więc nie powinieneś się martwić. W przeszłości ludzie używali tego rodzaju metod do gry w SEO, ukrywania słów kluczowych i linków itp. W rezultacie, gdy Google indeksuje witrynę, która ma rzeczy ukryte przed widzem, uważa ją za mniej godną zaufania.

Josip Ivic
źródło
0

Właśnie miałem konferencję z SEO w Google i to nie jest prawda. Na pewno nie wyświetla żadnych kar. Jakiś czas wcześniej zajęto się widocznością lub stosowaniem ujemnych rozmiarów tekstu lub negatywnego wcięcia.

Faktem jest, że tekst musi być widoczny i nie może być w żaden widoczny sposób zasłaniany. Przynajmniej nie ma płyty kotłowej ani powielonych lub leniwych treści.

Nawiasem mówiąc, Google może robić, co chce na swojej stronie, prawdopodobnie postawiły się na pierwszym miejscu, nawet jeśli był to ziemniak.

W szczególności zaproponowane i prawdopodobnie zastosowane podejście ma na celu pokazanie go i bez względu na konsekwencje projektowe.

Zaproponuję rzeczy jako indeksowanie Z (nakładanie warstw), aby sprawdzić, czy przypadkiem tego rodzaju style nie są brane pod uwagę. Ale nie sądzę, że algorytm jest wystarczająco silny, aby to rozważyć. Lub rzeczy takie jak obliczanie pozycji pola względem rozmiaru ekranu, aby uznać ujemne pozycjonowanie za blok wizualny.

Powiązany tekst dotyczący zainteresowania klienta seo ergo powinien być widoczny.

Budaya
źródło
1
Ta odpowiedź jest całkowicie błędna. Każda konferencja, na którą się udałeś, jest okropna. Nie mogę sobie wyobrazić, jakie inne śmieci ci karmili. Prawdopodobnie powiedzieli ci, że meta tagi też są ważne.
John Conde
1
Prawdą jest, że jeśli utworzysz długą listę słów kluczowych, umieścisz ją na swojej stronie i ukryjesz za pomocą wyświetlacza: brak, Google ukara Twoją witrynę. Prawdą jest również, że tekst przeznaczony do indeksowania musi być widoczny. Jak wskazują inne odpowiedzi, istnieją uzasadnione zastosowania wyświetlania: brak.
Stephen Ostermiller
Środki techniczne stosowane do ukrywania tekstu nie mają żadnego znaczenia dla Google. Spekulacje, że indeks Z lub ujemne pozycjonowanie mogłyby zostać wykorzystane do oszukania Google, są całkowicie fałszywe. Googlebot renderuje teraz strony i może wykryć wszelkie środki zapobiegające wyświetlaniu tekstu w pikselach na stronie. Inne odpowiedzi wskazują, że nie
Stephen Ostermiller