Wie schlecht ist die Verwendung von display: none in CSS?

72

Ich habe oft gehört, dass die Verwendung display: noneaus SEO-Gründen schlecht ist , da dies ein Versuch sein könnte, irrelevante beliebte Keywords einzufügen. Ein paar Fragen:

  1. Ist das noch Weisheit erhalten?
  2. Macht es einen Unterschied, ob Sie nur ein einziges Wort oder vielleicht nur ein einziges Zeichen verstecken?
  3. Wenn Sie es nicht verwenden sollten, welche Techniken werden zum Ausblenden bevorzugt (in Situationen, in denen es unter bestimmten Bedingungen wieder sichtbar sein muss)?

Einige Referenzen, die ich bisher gefunden habe:

Matt Cutts aus dem Jahr 2005 in einem Kommentar

Wenn Sie CSS direkt zum Ausblenden von Text verwenden, wundern Sie sich nicht, wenn dies als Spam bezeichnet wird. Ich sage nicht, dass Mouseover, DHTML-Text oder ein Logo, aber auch ein Text Spam sind. Ich habe auf der letzten Konferenz geantwortet, als ich sagte: "Stellen Sie sich vor, wie es für einen Besucher, einen Konkurrenten oder jemanden aussehen würde, der einen Spam-Bericht ausliest. Wenn Sie den Namen Ihres Unternehmens und die Expo-Markierungen anstelle eines Expo-Markierungs-Logos anzeigen, dann Sie Wenn der Text, den Sie anzeigen möchten, "Expo Markers billig online Rabatt kaufen online Expo Markers Verkauf ..." ist, wäre ich vorsichtiger, weil das schlecht aussehen kann.

Und in einem anderen Kommentar zum selben Artikel

Wir können Text kennzeichnen, der mit CSS bei Google ausgeblendet zu sein scheint. Bisher haben wir dafür keine Websites algorithmisch entfernt. Wir bemühen uns, Babys nicht mit Badewasser auszustoßen.

Eric Enge sagte im Jahr 2008

Die legitime Verwendung dieser Technik ist so weit verbreitet, dass ich selten erwarten würde, dass Suchmaschinen eine Website für die Verwendung des display: noneAttributs bestrafen . Es ist nur sehr schwierig, einen Algorithmus zu implementieren, der wirklich herausfinden könnte, ob die jeweilige Verwendung display: nonedazu gedacht ist, die Suchmaschinen zu täuschen oder nicht.

Andy
quelle
Was ist, wenn ich einen weißen Ladebildschirm (ohne Text) verwende, den ich später mit Javascript verstecke? Wird Google in Betracht ziehen, die Seite unter diesem weißen Bildschirm zu verstecken? Danke
bloomingsmilez
Ich verwende display: none, um den Seiteninhalt für mobile Bildschirme zu reduzieren, da die Menge an Kopien, die auf einem größeren Bildschirm als angemessen erscheint, auf einem Telefon viel zu groß ist. Verursache ich mir ein Problem?

Antworten:

57

In diesen Tagen von jQuery-Websites (und anderen JavaScript-Frameworks) kann ich nicht erkennen, wie problematisch es sein kann, da es häufig verwendet wird, wenn Sie Dinge wie jQuery-Schieberegler, Übergänge, Galerien, Ticker usw. verwenden Suchmaschinen sind klug genug, um ihre Verwendung nicht blind zu bestrafen.

Ein Nutzer gibt dies im Google Webmaster Central-Forum an :

"Nur die Anzeige verwenden: Keine wird nicht automatisch eine Strafe auslösen. Der Schlüssel ist, ob es einen Mechanismus gibt - entweder einen automatischen oder einen vom Benutzer aufgerufenen -, um den Inhalt sichtbar zu machen. Google ist sehr geschickt darin, JavaScript zu verarbeiten Finden und interpretieren Sie solche Mechanismen. Wenn Sie gültiges HTML, CSS und JavaScript verwenden, müssen Sie sich keine Sorgen machen. Viel Glück! "

Dan Diplo
quelle
Interessant, danke. Das bedeutet, dass ich vermeiden sollte, faul zu sein und display: noneElemente in CSS zu entfernen, die im Code entfernt werden könnten. aber für effekte und ähnliches geht es mir gut. Ich frage mich dann, wie sie Situationen erkennen könnten, in denen ein Bildlogo vorhanden ist, und der Text des Logos ist ebenfalls für die Zugänglichkeit enthalten, aber verborgen. Nach der Beschreibung würde dies als schlecht gewertet werden?
Andy
@ Andy: Es könnte. Sie sollten jedoch kein CSS verwenden, um den Text des Logos auszublenden. setzen Sie es in das altAttribut des imgTags. Dafür gibt es das Attribut, und soweit ich weiß, steigert die Verwendung dieses Attributs in der Regel Ihre SEO-Bewertung.
David Z
Eigentlich klingt es so, als ob Sie das longdescAttribut des Image-Tags verwenden, um einen Link zu einer anderen Seite mit der vollständigen Beschreibung bereitzustellen. Dies wird nur von Screenreadern (und möglicherweise Suchmaschinen) gesehen. Siehe webaim.org/techniques/images/longdesc#longdesc
Dan Diplo
Ich bin nicht auf der Suche nach dem besten Weg, eine Beschreibung einer Grafik zu präsentieren ... Ich bezog mich auf das Zitat von Matt Cutts, das ich nicht sage ... habe ein Logo, aber auch einen Text ist Spam . Es hört sich für mich nicht so an, als würde er über die Verwendung der Attribute altoder sprechen longdesc, und es bildete einen leichten Kontrast zu. Der Schlüssel ist, ob es einen Mechanismus gibt oder nicht ... um Inhalte sichtbar zu machen .
Andy
7

Wenn Sie es nicht missbrauchen, wird es kein Problem sein. Derzeit durchsucht Google CSS-Stylesheets nicht nach Instanzen vondisplay: none

Google wird einer weit verbreiteten Stilregel nicht den Krieg erklären, sie warnt nur diejenigen, die denken, sie könnten 1000 Keywords zu einer Website hinzufügen, die alle auf display: noneoder noch schlimmer eingestellt sind.margin-left: 9999px

Shane Stillwell
quelle
6

Verwenden Sie "display: none" nur, wenn es sich um das richtige Werkzeug handelt.

Wie die Anführungszeichen vermuten lassen, handelt es sich bei dem Problem, das Suchmaschinen bei der Anzeige haben, nicht um Spam. Es ist eine schlechte Idee, Spam-Suchmaschinen zu verwenden, unabhängig davon, welche Tools Sie dafür verwenden. Wenn Sie CSS für etwas anderes als Spam verwenden, gibt es kein Problem.

Das richtige Werkzeug für den richtigen Job.

Luiscubal
quelle
3
Vielen Dank. Die Frage wird dann, wann display: nonedas richtige Werkzeug ist. Sie sagen, wenn CSS für etwas anderes als Spam verwendet wird, wird es kein Problem sein. Sind Sie sicher display: none, dass es kein Problem sein wird , wenn ich Elemente faul entferne?
Andy
@Andy display: none ist das richtige Tool, wenn Sie keinen Inhalt anzeigen möchten. Um Elemente zu entfernen, ist es möglicherweise am besten, sie überhaupt nicht einzuschließen (oder, wenn Sie JavaScript verwenden, die Elemente aus dem DOM zu entfernen). Wenn Sie den Inhalt mithilfe von display: none von der Seite entfernen, die Benutzer ihn also nicht sehen, die Suchmaschinen ihn jedoch dennoch indizieren, handelt es sich um Spam. Wenn Sie eine Art "Einblenden / Ausblenden" -Schaltfläche oder ähnliches haben, ist dies in Ordnung.
Luiscubal
4

Ich bin mit Dan Diplo einverstanden und füge hinzu, dass Google selbst display: nonein seiner STARTSEITE verwendet , so dass es kein wirkliches Problem darstellt, es zu verwenden, solange Sie es nicht zum Spammen verwenden (dh Hunderte fo einfügen) Schlüsselwörter in einer Anzeige: keine DIV-Anzeige).

Öffnen Sie die Google-STARTSEITE und sehen Sie sich den HTML-Quellcode an. Die Suche nach display:nonedir wird es viele Male sehen. :)

Marco Demaio
quelle
Danke Marco. Es bleibt die Frage, ob Sie display: noneElemente verwenden können, die niemals sichtbar sind.
Andy
@Andy: Nie sichtbare Elemente sollen nur Spam sein. Ich verstehe nicht, warum Sie nie sichtbare Elemente verwenden sollten. Warum es dann stören, sie in HTML-Seiten zu platzieren? Daher würde ich davon ausgehen, dass es keine gute Idee ist, sie zu verwenden. Möglicherweise kann Google sie jetzt oder in Zukunft erkennen und Ihre Website strafbar machen.
Marco Demaio
Das einzige Beispiel, an das ich denken kann, ist die Verwendung eines CMS. Aus zeitlichen Gründen möchten Sie möglicherweise CSS verwenden, um ein oder zwei kleine Markup-Elemente auszublenden, anstatt das Markup vollständig mit benutzerdefinierten Themen zu versehen. (Und ich bitte den Q nur, die aktuelle Situation besser zu verstehen - mein bevorzugtes CMS ist Drupal, wo das Ändern des Markups schnell und einfach ist.)
Andy
@Andy - Kann eine Suchmaschine überhaupt Tausende von Javascript-Zeilen lesen und Fälle identifizieren, in denen ein Element logischerweise nicht angezeigt werden kann? Es wäre ein immenses Reverse-Engineering erforderlich, um den Code einer Site mit einer einzigen Zeile zu untersuchen, $('.'+somevar).show();in der jeder mögliche Wert angegeben somevarund mit jedem möglichen Zustand des DOM verglichen wird - und das ist ein außergewöhnlich trivialer Fall. viele Fälle , in denen ein div wird nicht aufgrund von Daten angezeigt werden, Input, API / AJAX - Aufruf Ergebnisse, Benutzerverhalten, etc, aber logisch könnte ...
user568458
@ user568458 Ich denke, das ist der Punkt, den Eric Enge im letzten Absatz der Frage und Dan Diplo in der akzeptierten Antwort angesprochen haben.
Andy
3

Ich denke, Sie sollten versuchen, andere Alternativen zu finden, aber hier sind einige Referenzartikel

Enthält Links zu Maile und Vanessa in einem Webmaster-Radiochat zu diesem Thema http://luigimontanez.com/2010/stop-using-text-indent-css-trick/

Maile ist ein Google Engineer http://maileohye.com/html-text-indent-not-messing-up-your-rankings/

Es ist etwas, wofür Google eine Lösung finden wird, aber negativer Offset und keine Anzeige sind nicht sicher, wenn Sie einen langfristigen Ausblick haben.

AndyBeard
quelle
0

Google crawlt CSS- display:noneInhalte.

Etwas vor Google zu verbergen ist nur dann schlecht, wenn Sie absichtlich versuchen, Suchrankings zu manipulieren.

Ausgeblendete Optionen und Text von Besuchern sind nun eine gängige Praxis, da interaktive Websites inzwischen so geworden sind, dass Sie sich keine Sorgen mehr machen sollten. In der Vergangenheit benutzten die Leute diese Art von Methoden, um die Suchmaschinenoptimierung zu spielen, Keywords und Links zu verbergen usw. Wenn Google eine Site crawlt, die Dinge vor dem Betrachter verbirgt, betrachtet es diese Site als weniger vertrauenswürdig.

Josip Ivic
quelle
0

Ich hatte gerade eine Konferenz mit SEO in Google und das ist nicht wahr. Display none bestraft sicher. Einige Zeit zuvor wurde stattdessen die Sichtbarkeit behandelt oder negative Textgrößen oder negative Einrückungen verwendet.

Ist eine Tatsache, dass Text sichtbar und nicht in irgendeiner sichtbaren Weise behindert sein muss. Zumindest keine Kesselplatte oder doppelter oder fauler Inhalt.

Übrigens kann Google tun, was sie auf ihrer Site wollen, und sie stellen sich wahrscheinlich an die erste Stelle, selbst wenn es sich um eine Kartoffel handelte.

Der vorgeschlagene und wahrscheinlich anzuwendende Ansatz besteht insbesondere darin, ihn aufzuzeigen, unabhängig davon, welche Auswirkungen er auf das Design haben kann.

Ich werde Dinge wie Z-Indizierung (Layering) vorschlagen, um zu überprüfen, ob diese Art von Stilen zufällig nicht berücksichtigt werden. Aber ich denke nicht, dass der Algorithmus stark genug ist, um dies zu berücksichtigen. Oder Dinge wie die Berechnung der Boxposition über der Bildschirmgröße, um die negative Positionierung als visuellen Block zu betrachten.

Der zugehörige Text für das Interesse des SEO-Kunden sollte sichtbar sein.

Budaya
quelle
1
Diese Antwort ist absolut falsch. Was für eine Konferenz Sie besucht haben, ist schrecklich. Ich kann mir nicht vorstellen, welchen anderen Müll sie dir gegeben haben. Sie haben wahrscheinlich auch gesagt, dass Meta-Tags wichtig sind.
John Conde
1
Es ist richtig, dass Google Ihre Website bestraft, wenn Sie eine lange Liste von Keywords erstellen, diese auf Ihrer Seite platzieren und mit Anzeige ausblenden: Keine. Es ist auch richtig, dass zu indizierender Text sichtbar sein muss. Wie andere Antworten zeigen, gibt es legitime Verwendungszwecke für die Anzeige: keine.
Stephen Ostermiller
Die technischen Mittel zum Ausblenden von Text spielen für Google keine Rolle. Die Spekulationen, dass der Z-Index oder die negative Positionierung verwendet werden könnten, um Google zu täuschen, sind absolut falsch. Googlebot macht jetzt Seiten und alle Mittel erkennen kann , verwendet , um Text zu verhindern , zeigt auf der page.As in Pixel auf andere Antworten darauf hin, nicht
Stephen Ostermiller