Насколько плохо использовать display: none в CSS?

72

Я много раз слышал, что это плохо display: noneпо причинам SEO, поскольку это может быть попыткой подтолкнуть нерелевантные популярные ключевые слова. Несколько вопросов:

  1. Это все еще получило мудрость?
  2. Имеет ли значение, если вы прячете только одно слово или, возможно, один символ?
  3. Если вам следует избегать его использования, каковы предпочтительные методы сокрытия (в ситуациях, когда вам нужно, чтобы оно снова стало видимым при определенных условиях)?

Некоторые ссылки, которые я нашел до сих пор:

Мэтт Каттс с 2005 года в комментарии

Если вы просто используете CSS для сокрытия текста, не удивляйтесь, если это называется спамом. Я не говорю, что указатели мыши или текст DHTML или текст «есть логотип, но также есть текст» - это спам; Я ответил на этот последний вопрос на конференции, когда сказал: «Представьте, как это будет выглядеть для посетителя, конкурента или кого-то, проверяющего отчет о спаме. Если вы показываете название своей компании и ее Экспо Маркеры вместо логотипа Экспо Маркеры, вы должно быть хорошо. Если текст, который вы решите показать, это «Экспо Маркеры, дешевые онлайн скидки, купить онлайн Экспо Маркеры распродажа ...», тогда я был бы более осторожен, потому что это может выглядеть плохо ».

И в другом комментарии к той же статье

Мы можем пометить текст, который кажется скрытым, используя CSS в Google. На сегодняшний день мы не удалили алгоритмически сайты для этого. Мы стараемся не выбрасывать детей с водой.

Эрик Энге сказал в 2008 году

Законное использование этого метода настолько распространено, что я редко ожидаю, что поисковые системы будут наказывать сайт за использование этого display: noneатрибута. Просто очень сложно реализовать алгоритм, который действительно мог бы определить, предназначено ли конкретное использование display: noneдля обмана поисковых систем или нет.

Энди
источник
Что если я использую загрузочный белый экран (без текста внутри него), который позже скрываю с помощью javascript? Будет ли Google считать, что я прячу страницу под белым экраном? Спасибо
Bloomingsmilez
Я использую display: none, чтобы уменьшить содержание страницы для мобильных экранов, потому что объем копии, который кажется разумным на большом экране, слишком велик для телефона. Я создаю себе проблему?

Ответы:

57

В наши дни jQuery (и других JavaScript-фреймворков) тяжелые веб-сайты, поэтому я не могу понять, как это может быть проблемой, так как он широко используется, когда вы используете такие вещи, как слайдеры jQuery, переходы, галереи, тикеры и т. Д. Это теперь обычное дело и поисковые системы достаточно умны, чтобы не слепо наказывать за их использование.

Пользователь заявляет об этом на центральном форуме Google для веб-мастеров :

«Простое использование отображения: ни один из них не будет автоматически вызывать наказание. Ключ в том, есть ли механизм - автоматический или тот, который вызывается пользователем - чтобы сделать контент видимым. Google становится очень искусным в обработке JavaScript для найти и интерпретировать такие механизмы. Если вы используете корректный HTML, CSS и JavaScript, вам не о чем беспокоиться. Удачи! "

Дэн Диплом
источник
Интересно, спасибо. Это означает, что я должен избегать лени и использования display: noneдля удаления элементов в CSS, которые могут быть удалены в коде; но для эффектов и тому подобного я в порядке. Интересно тогда, как они могли бы обнаружить ситуации, когда есть логотип с изображением, и текст логотипа также включен для доступности, но скрыт. Из описания это будет считаться плохим?
Энди
@ Энди: Возможно. Но вы не должны использовать CSS, чтобы скрыть текст логотипа; положить его в altатрибуте imgтега. Для этого и существует этот атрибут, и, насколько я знаю, его использование повышает ваш рейтинг SEO.
Дэвид З,
На самом деле, похоже, что это может быть случай, когда вы используете longdescатрибут тега изображения, чтобы предоставить ссылку на другую страницу, которая содержит полное описание. Это увидят только читатели экрана (и, возможно, поисковые системы). См. Webaim.org/techniques/images/longdesc#longdesc
Дэн
Я на самом деле не ищу лучший способ представить описание графики ... Я имел в виду цитату Мэтта Каттса, я не говорю, что ... есть-логотип-но-тоже-текст является спамом . Мне не кажется, что он говорит об использовании атрибутов altor longdesc, и это немного контрастировало с ключом: есть ли механизм ... чтобы сделать контент видимым .
Энди
7

Если вы не злоупотребляете им, это не будет проблемой. В настоящее время Google не сканирует таблицы стилей CSS в поисках экземпляровdisplay: none

Google не собирается объявлять войну широко распространенному правилу стилей, они просто предупреждают тех, кто думает, что может добавить 1000 ключевых слов на сайт, настроенный display: noneили даже хуже,margin-left: 9999px

Шейн Стиллвелл
источник
6

Используйте «display: none» только тогда, когда это правильный инструмент для использования.

Как показывают цитаты, проблема, с которой сталкиваются поисковые системы при отображении ни одного спама. Попытка спамить поисковые системы, независимо от того, какие инструменты вы используете для этого, плохая идея. Если вы используете CSS для чего-либо, кроме спама, то проблем нет.

Правильный инструмент для правильной работы.

luiscubal
источник
3
Благодарю. Тогда возникает вопрос, когда это display: noneправильный инструмент. Вы говорите, что если CSS используется для чего угодно, кроме спама, это не будет проблемой: вы уверены, что если я буду использовать display: noneленивый способ удаления элементов, то это не будет проблемой?
Энди
@ Andy display: ни один из них не является правильным инструментом, если вы не хотите отображать какой-либо контент. Чтобы удалить элементы, лучше не включать их вообще (или, если используется JavaScript, удалять элементы из DOM). Если вы удалите контент со страницы с помощью display: none, так что пользователи не увидят его, но поисковые системы все равно его проиндексируют, тогда это будет спам. Если у вас есть какая-то кнопка «Показать / Скрыть» или что-то в этом роде, тогда все в порядке.
Луискубал
4

Я согласен с Дэном Диплом и, в дополнение к тому, что он сказал, Googledisplay: none также использует на своей ГЛАВНОЙ СТРАНИЦЕ , так что это не может быть проблемой при его использовании, если вы не используете его для рассылки спама (т.е. вставляете сотни ключевые слова на дисплее: нет панели DIV).

Откройте Google HOME PAGE и посмотрите исходный код HTML. Поиск display:noneвы увидите это много раз. :)

Марко Демайо
источник
Спасибо Марко. Это все еще оставляет вопросы о том, можете ли вы использовать display: noneэлементы, которые никогда не видны.
Энди
@Andy: никогда не видимые элементы должны быть просто спамом, я не понимаю, почему вы должны использовать никогда не видимые элементы, зачем тогда их размещать на HTML-странице? Поэтому я ожидаю, что их использование не очень хорошая идея. Google может обнаружить их сейчас или в будущем и оштрафовать ваш сайт.
Марко Демайо
Единственный пример, который я могу вспомнить, - это когда вы используете CMS и по временным причинам вы можете захотеть использовать CSS, чтобы скрыть одну или две небольшие части разметки, вместо того, чтобы настраивать разметку целиком. (И я только прошу Q лучше понять текущую ситуацию - я выбрал CMS - Drupal, где изменение разметки происходит быстро и легко.)
Энди,
@ Andy - Возможно ли даже логически, чтобы поисковая система прочитала тысячи строк javascript и определила случаи, когда логически невозможно показать элемент? Для изучения кода любого сайта с одной строкой, которая говорит $('.'+somevar).show();и выясняет каждое возможное значение, требуется некоторое колоссальное реверс-инжиниринг, который somevarсравнивается с каждым возможным состоянием DOM - и это исключительно тривиальный случай ... Кроме того, множество случаев, когда div не будет отображаться из-за данных, ввода, результатов вызовов API / AJAX, поведения пользователя и т. д., но логически может ...
user56reinstatemonica8
@ user568458 Я думаю, что это было замечено Эриком Энгем в последнем абзаце вопроса и Дэном Диплом в принятом ответе.
Энди
3

Я думаю, что вы должны попытаться придумать другие альтернативы, но вот несколько справочных статей

Включает ссылки на Мейла и Ванессу в радио-чате для веб-мастеров по этой теме http://luigimontanez.com/2010/stop-using-text-indent-css-trick/

Мейл - инженер Google, http://maileohye.com/html-text-indent-not-messing-up-your-rankings/

Это то, что Google собирается найти решение, но отрицательное смещение и отображение ни одного небезопасны, если вы берете долгосрочную перспективу.

AndyBeard
источник
0

Google сканирует display:noneконтент CSS .

Скрывать что-то от Google - это плохо, только если вы намеренно пытаетесь манипулировать поисковым рейтингом.

Скрытые опции и тексты от посетителей в настоящее время являются обычной практикой, учитывая, как интерактивные веб-сайты стали, так что вы не должны беспокоиться. В прошлом люди использовали подобные методы для игры в SEO, скрывая ключевые слова и ссылки и т. Д. В результате, когда Google сканирует сайт, на котором скрыты вещи от зрителя, он рассматривает этот сайт как менее заслуживающий доверия.

Иосип Ивич
источник
0

Я только что провел конференцию с SEO в Google, и это не так. Отображение не наказывает, наверняка. Некоторое время назад это было исправлено с помощью видимости или использования отрицательных размеров текста или отрицательного отступа.

Это факт, что текст должен быть видимым и не должен быть закрыт каким-либо видимым образом. По крайней мере, нет плиты котла или дублированного или ленивого содержимого.

Кстати, Google может делать все, что угодно, на своем сайте они ставят себя на первое место, даже если это была картошка.

В частности, предложенный и, вероятно, используемый подход состоит в том, чтобы показать его и не имеет значения, какие последствия для проекта он может иметь.

Я буду предлагать такие вещи, как z-indexing (слоистость), чтобы проверить, не были ли случайно рассмотрены стили такого типа. Но я не думаю, что алгоритм достаточно силен, чтобы рассмотреть это. Или такие вещи, как вычисление положения блока по размеру экрана, чтобы рассматривать отрицательное расположение как визуальный блок.

Связанный текст для интереса клиента seo ergo должен быть видимым.

Budaya
источник
1
Этот ответ совершенно неверный. На какую бы конференцию вы ни пошли, это ужасно. Я не могу представить, какой еще мусор они кормили. Они, вероятно, сказали, что метатеги тоже важны.
Джон Конде
1
Это правда, что если вы создадите длинный список ключевых слов, разместите его на своей странице и скроете с отображением: нет, Google накажет ваш сайт. Также верно, что текст, предназначенный для индексирования, должен быть видимым. Как указывают другие ответы, есть законное использование для отображения: нет.
Стивен Остермиллер
Технические средства, используемые для сокрытия текста, не имеют никакого значения для Google. Предположение о том, что z-index или отрицательное позиционирование могут быть использованы, чтобы обмануть Google, совершенно неверно. Робот Google теперь отображает страницы и может обнаруживать любые средства, используемые для предотвращения отображения текста в пикселях на странице. Как указывают другие ответы, нет
Стивен Остермиллер