使用display有多糟糕:CSS中没有显示?


72

我已经多次听到display: none出于SEO的原因不好用的信息,因为这可能是尝试引入无关的热门关键字。几个问题:

  1. 那仍然是智慧吗?
  2. 如果您仅隐藏一个单词或一个字符,这会有所不同吗?
  3. 如果您应该避免使用它,那么隐藏的首选技术是什么(在某些情况下需要使其再次变得可见的情况下)?

到目前为止,我发现了一些参考资料:

2005年的Matt Cutts评论

如果您直接使用CSS隐藏文本,那被称为垃圾邮件也不要感到惊讶。我并不是说鼠标悬停或DHTML文本或有徽标但也有文本是垃圾邮件。我在会议上回答了最后一个,当时我说:“想象一下访客,竞争对手或检出垃圾邮件报告的人的样子。如果显示公司名称而不是Expo Markers徽标,那它就是Expo Markers,应该没问题。如果您决定显示的文字是“ Expo Markers廉价在线折扣购买在线Expo Expo Markers促销……”,那么我会更加谨慎,因为那样看起来很糟糕。”

在另一条评论的同一篇文章

我们可以在Google使用CSS标记似乎隐藏的文本。迄今为止,我们还没有从算法上删除用于执行此操作的网站。我们尽力避免用洗澡水把婴儿扔出去。

埃里克·恩格(Eric Enge)在2008年说过

合法使用这种技术是如此普遍,我很少会想到搜索引擎惩罚网站使用display: none属性。要实现一种能够真正弄清特定用途display: none是否意图欺骗搜索引擎的算法,这非常困难。


如果我使用后来用javascript隐藏的加载白色屏幕(里面没有文本)怎么办?Google是否会认为我将页面隐藏在该白色屏幕下?谢谢
bloomingsmilez

我使用显示:没有一个可以减少移动屏幕的页面内容,因为在大屏幕上看起来合理的复制量在电话上太多了。我在给自己造成麻烦吗?

Answers:


57

在如今的jQuery(和其他JavaScript框架)繁重的网站中,我看不到它会是什么问题,因为当您使用jQuery滑块,过渡,画廊,股票行情等工具时,它已得到广泛使用。这些现在很普遍了,搜索引擎足够聪明,不会盲目地惩罚其使用。

用户在Google 网站站长中心论坛中说明了这一点:

“仅使用display:none不会自动触发罚款。关键是是否存在一种机制-自动或由用户调用的机制-使内容可见。Google变得非常善于处理JavaScript来找到并解释这种机制。如果您使用有效的HTML,CSS和JavaScript,则无需担心。祝您好运!”


有趣,谢谢。这意味着我应该避免懒惰,并避免display: none在CSS中删除可以在代码中删除的项目。但是对于效果之类的我很好。我不知道他们怎么会发现有图片徽标的情况,并且徽标的文字也包含在内,以方便访问但隐藏了。从描述来看,这算不算好?
安迪

@安迪:可能。但是您不应该使用CSS隐藏徽标的文字;将其放在标签的alt属性中img。这就是该属性的用途,据我所知,使用它往往会提高您的SEO评分。
David Z

实际上,听起来可能是您使用longdescimage标签的属性来提供指向包含完整描述的另一个页面的链接的情况。这只会由屏幕阅读器(也许是搜索引擎)看到。参见webaim.org/techniques/images/longdesc#longdesc
Dan Diplo

我实际上并不是在寻找呈现图形描述的最佳方法...我指的是Matt Cutts的报价,我不是说...有一个徽标但也有一个文本是垃圾邮件。在我看来,这听起来并不像他在谈论使用altor longdesc属性,它与之形成了轻微对比。关键在于是否存在一种机制...使内容可见
安迪

7

如果您不滥用它,那将不是问题。目前,Google不会抓取CSS样式表来查找实例display: none

Google不会就广泛使用的样式规则宣战,他们只是警告那些认为可以向网站添加1000个display: none甚至设置为甚至更差的关键字的人,margin-left: 9999px


6

仅当它是正确的工具时,才使用“显示:无”。

引号暗示,搜索引擎显示的问题都是垃圾邮件。无论您使用哪种工具,尝试发送垃圾邮件搜索引擎都是一个坏主意。如果您将CSS用作垃圾邮件以外的其他任何东西,那么没有问题。

适合正确工作的正确工具。


3
谢谢。问题就变成了何时才是display: none正确的工具。您说如果CSS用于垃圾邮件之外的其他任何问题,那都不会成为问题:您是否有信心,如果我display: none以懒惰的方式删除元素,那将不会有问题吗?
安迪

@Andy display:当您不想显示某些内容时,没有一种是正确的工具。要删除元素,最好根本不包括它(或者,如果使用JavaScript,则从DOM中删除元素)。如果使用display:none从页面中删除内容,则用户看不到它,但是搜索引擎仍在对其编入索引,那么那将是垃圾邮件。如果您有某种“显示/隐藏”按钮或类似的按钮,则可以。
luiscubal 2010年

4

我同意Dan Diplo的看法,并补充说,Google本身display: none也在HOME PAGE中使用,因此只要您不将其用于垃圾邮件(即插入数百个显示屏中的关键字:无DIV面板)。

打开Google主页,然后查看HTML源代码。搜索display:none您会看到很多次。:)


谢谢马可。仍然存在是否可以display: none可见元素上使用的问题。
安迪

@Andy:永远不可见的元素应该只是垃圾邮件,我不明白为什么你应该使用永远不可见的元素,为什么还要麻烦将它们放在HTML页面中呢?因此,我希望使用它们不是一个好主意。Google可能现在或将来都可以检测到它们,并对您的网站进行惩罚。
Marco Demaio

我能想到的唯一示例是,当您使用CMS时,由于时间原因,您可能希望使用CSS隐藏一两个小的标记,而不是完全自定义标记主题。(我只是问问Q更好地了解当前情况-我选择的CMS是Drupal,在其中更改标记非常容易。)
Andy 2010年

@Andy-搜索引擎在逻辑上甚至可以读取数千行javascript,并确定在逻辑上不可能显示元素的情况吗?用一行代码研究任何站点的代码,$('.'+somevar).show();并找出每个可能的值somevar并将其与DOM的每个可能的状态进行比较,这将需要进行大量的逆向工程。这是一个非常琐碎的情况……而且很多情况下,由于数据,输入,API / AJAX调用结果,用户行为等原因而不会显示div ,但从逻辑
上讲

@ user568458我认为这是问题的最后一段中的埃里克·恩格(Eric Enge)和公认的答案中的丹·迪普洛(Dan Diplo)提出的重点。
安迪


0

Google确实会抓取CSS display:none内容。

仅当您有意尝试操纵搜索排名时,对Google隐瞒某些东西才是不好的。

鉴于交互式网站的发展方式,访问者隐藏的选项和文本现在已成为一种常见的做法,因此您不必担心。过去,人们使用这类方法来搜索SEO,隐藏关键字和链接等。结果是,当Google抓取隐藏了查看器的内容的网站时,它认为该网站的可信度较低。


0

我刚刚在google上与seo召开过一次会议,但事实并非如此。毫无疑问,不显示任何惩罚。在此之前的某个时间,它需要处理可见性,或者使用负的文本大小或负的缩进。

一个事实是,文本需要是可见的,并且不能以任何可见的方式被遮挡。至少没有样板或重复或懒惰的内容。

顺便说一下,谷歌可以在自己的网站上做任何他们想做的事情,即使是土豆,他们也很可能把自己放在第一位。

特别是,建议的方法并且可能使用的方法是显示它,而不管它可能具有什么设计后果。

我将以z-indexing(分层)的方式提出建议,以检查是否有可能不考虑这种样式。但是我不认为算法足够强大来考虑这一点。或计算框位置超过屏幕尺寸之类的东西时,将负定位视为可视块。

seo ergo客户兴趣的相关文本应该可见。


1
这个答案完全是错误的。您参加的任何会议都是可怕的。我无法想象他们还会喂你什么垃圾。他们可能告诉您,元标记也很重要。
约翰·孔德

1
的确,如果您创建了很长的关键字列表,将其放在页面上,然后使用display:none隐藏它,则Google将会对您的网站进行处罚。确实,要被索引的文本也必须可见。正如其他答案指出的那样,display:none有合法的用途。
斯蒂芬·奥斯特米勒

用于隐藏文本的技术手段对Google完全不重要。关于z-index或负定位可能被用来欺骗Google的猜测完全是错误的。Googlebot现在可以渲染页面,并且可以检测到任何防止文本以像素形式显示在页面上的方法。正如其他答案所指出的,不是
Stephen Ostermiller
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.