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


还接受智慧吗?
如果您只隐藏一个单词或一个字符,这是否有所作为?
如果您应该避免使用它,那么隐藏的首选技术是什么(在某些情况下需要使其再次变得可见的情况下)?

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

2005年的Matt Cutts发表评论


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


在同一篇文章的另一条评论中,我们可以在Google中标记似乎使用CSS隐藏的文本。迄今为止,我们还没有从算法上删除执行此操作的网站。我们努力避免婴儿被洗澡水扔掉。


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


我很少期望搜索引擎会因为使用display: none属性而对网站进行惩罚。实施一种算法来真正找出display: none的特定用途是否意图欺骗搜索引擎,这非常困难。


评论

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

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

display:none Html引擎忽略元素和子元素。display:none不在渲染树中。display:none从文档的常规流中删除该元素,并将元素及其位置的position / height / width值设置为0孩子们。

#1 楼

在如今的jQuery(和其他JavaScript框架)繁重的网站中,我看不到它会是什么问题,因为当您使用jQuery滑块,过渡,图库,股票行情等工具时,它已被广泛使用。这些现在很普遍了,搜索引擎足够聪明,不会盲目地使用它们。
用户RainboRick在Google网站站长中心论坛上表示:

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



评论


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

–安迪
2010年7月21日在14:39

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

– David Z
2010年7月22日在2:06

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

– Dan Diplo
2010年7月22日在8:31

我实际上并不是在寻找呈现图形描述的最佳方法...我指的是Matt Cutts的报价,我不是说...有一个徽标但也有一个文本是垃圾邮件。在我看来,这听起来并不像他在谈论使用alt或longdesc属性,但它与之形成了轻微的对比。

–安迪
10年7月23日在8:36

#2 楼

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

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

评论


在撰写此答案时,Google并未抓取CSS。如今,Google正在为每个页面下载所有CSS并呈现该页面。 Google现在会注意到隐藏文本的CSS的任何使用。其余答案仍然正确。

–斯蒂芬·奥斯特米尔(Stephen Ostermiller)♦
20 Nov 2'9:47



#3 楼

仅在使用正确的工具时才使用“显示:无”。无论您使用哪种工具,尝试发送垃圾邮件搜索引擎都是一个坏主意。如果您将CSS用于垃圾邮件以外的其他任何用途,那么就没有问题。

用于正确工作的正确工具。

评论


谢谢。问题就变成了何时显示:没有合适的工具。您说如果CSS用于垃圾邮件之外的其他任何问题,那都不会成为问题:您是否确信,如果我使用display:none作为一种懒惰的方式来删除元素,那不会有问题吗?

–安迪
2010年7月21日在14:44

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

–luiscubal
2010年7月23日在22:44

#4 楼

我认为您应该尝试提出其他替代方法,但是这里有一些参考文章

包含有关此主题的网站管理员广播聊天中Maile和Vanessa的链接
http://luigimontanez.com / 2010 / stop-using-text-indent-css-trick /

Maile是Google工程师
http://maileohye.com/html-text-indent-not-messing- up-your-rankings /

Google会为此提供解决方案,但是如果您长期展望,负偏移和显示都不安全。

#5 楼

我同意Dan Diplo的看法,并补充说,Google本身也在首页中使用display: none,因此,只要您不使用它进行垃圾邮件处理(即插入数百个),使用它就不会有问题显示器中的关键字:无DIV面板)。

打开Goog​​le主页并查看HTML源代码。搜索display:none您将多次看到它。 :)

评论


谢谢马可。仍然存在是否可以使用显示的问题:在永远不可见的元素上没有显示。

–安迪
2010-09-14 18:57

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

– Marco Demaio
2010-09-16 8:32

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

–安迪
2010-09-19 14:03

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

–user56reinstatemonica8
2012年10月22日10:11



“ Google本身使用显示:首页中没有显示,因此使用它真的不是问题。”不知道它是否确实存在问题,但这看起来像是一种危险的推理,因为Google并非如此试图...自己排名。

– Lucian Davidescu
16年4月5日在17:55

#6 楼

消除此问题的关键是@Dandiplo的答案结尾处的引号。

用户在Google Webmaster Central论坛中声明了这一点: :none
不会自动触发惩罚。键
是是否存在
机制-自动还是由用户调用的
-使
内容可见。Google正在变得非常善于处理JavaScript以
查找和解释这种机制。如果
您使用有效的HTML,CSS和
JavaScript,没什么可担心的。
。祝你好运!”


我在许多问答网站中经常看到的是与他们不想要的网站内容有关的问题,并询问如何删除然后在CSS中给出使用display:none的答案。这对SEO不利,因为CSS显然未用于响应较小的屏幕等。
如果您不想显示它,请从网站内容中删除它。
Google的问题算法会问为什么内容在那里但被隐藏了?
例如,如果内容仅适用于平板电脑/手机,则您希望将其隐藏在桌面屏幕上。没问题,因为该算法会看到它会在平板电脑/手机上以display:block或类似的形式删除display:none出现。首先。如果不需要,将其完全删除。如果该内容是由于某个WordPress插件而引起的,而您不希望该插件存在,请删除该插件,调整插件设置或编写一个自定义的PHP使其从页面中删除,这样就不会在HTML输出中。不要只是用display:none隐藏它。

#7 楼

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

仅当您有意操纵搜索排名时,对Google进行隐藏才是不好的。鉴于互动式网站已成为一种常见的做法,因此您不必担心。过去,人们使用这类方法来搜索SEO,隐藏关键字和链接等。结果是,当Google抓取隐藏了查看器的内容的网站时,它认为该网站的信誉度较低。

#8 楼

我刚刚在Google中与seo召开过一次会议,但事实并非如此。当然,不显示任何惩罚。在此之前的某些时间里,它不考虑可见性,或者使用负的文本大小或负的缩进。至少没有样板或重复或懒惰的内容。 >特别是建议并可能使用的方法是显示它,而不管它可能有什么设计后果。不会考虑这种样式。但是我不认为算法足够强大来考虑这一点。或类似计算超出屏幕尺寸的框位置之类的东西以将负定位视为可视块的方法。

评论


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

–John Conde♦
16年8月4日在11:02

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

–斯蒂芬·奥斯特米尔(Stephen Ostermiller)♦
16年8月4日,11:16



用于隐藏文本的技术手段对Google完全不重要。关于z-index或负定位可能被用来欺骗Google的猜测完全是错误的。 Googlebot现在可以呈现页面,并且可以检测到用于防止文本以页面像素显示的任何方式。正如其他答案所指出的那样,基于用户交互或仅在某些设备上显示文本有时很好。

–斯蒂芬·奥斯特米尔(Stephen Ostermiller)♦
16年8月4日,11:16