对于所有图像,我们在
src
属性中放置默认img的网址(即加载程序),然后将实际的图像url放置在data-src
属性。像这样<img src="loader.gif" data-src="img1.jpg" />
当图像在视口外部时,什么也没有发生,但是当图像进入视口内部时,则将加载
data-src
属性的网址,图片正确显示。结果是Google看到页面(即搜索结果页面)中的所有图像都具有相同的
src
属性。因为Google bot当然会只解析具有默认src
的'unloaded'img标签。我的问题是:具有相同
src
属性的许多img标签会影响页面的SEO吗?#1 楼
我从未见过图像延迟加载对网络搜索排名没有任何负面影响。改善用户对网站的感知性能确实可以改善您的排名。如果由于您网站的性能问题而导致更少的人跳回搜索结果,您的排名将会提高。Google将无法索引懒惰加载的图像进行图像搜索。相反,有一些可能的技术修补程序,例如:
使用
<noscript>
标签为未启用JavaScript(和搜索引擎机器人)的用户显示图像也链接您的图像。图像搜索似乎无关紧要,无论图像位于img src还是a href中。因此,以下代码段将使图像延迟加载,并在图像搜索中索引完整尺寸的图像:
<a href="/img_large/foo.jpg"><img data-lazy-load="/img_thumb/foo.jpg" src="/img/1x1_transparent.gif"></a>
评论
我不会依靠“ noscript”-我们看到很多垃圾邮件试图使用它,因此我们并不总是有足够的信心来信任放置在其中的内容。我喜欢使用链接到图像的想法。通常,如果图像是页面上的主要元素之一,我仍然倾向于将其自然地嵌入(至少一个版本,如果您使用的是不同的尺寸),以确保将其编入索引一般。我们正在为此做一个更好的故事,但我认为今天或明天都不会改变。
–约翰·穆勒(John Mueller)
2014年5月21日晚上8:31
如果您的图片已经被产品或其他内容的链接所包围,则可以使用策略尝试使用包装器: 内部链接需要点击UI,而外部链接需要点击UI仍应适用于机器人索引图像。
– dhaupin
2014年10月8日14:58
这个答案也适用于2017年吗?特别是“ Google无法将懒惰加载的图像编入索引以进行图像搜索。”部分?因此,即使帖子中有10张图片,Google也会认为我们没有图片?
–我是最愚蠢的人
17年12月29日在6:37
情况仍然如此,但是您仍然可以链接到图像以对其进行索引。
–斯蒂芬·奥斯特米勒(Stephen Ostermiller)
17年12月29日在10:34
#2 楼
只要您不使用内联样式来隐藏图像,大多数搜索引擎都会为隐藏的图像编制索引。大多数浏览器不会加载隐藏的图像。有一个测试页可以验证此声明。某些较旧的移动浏览器是个例外,但我认为在手机上延迟加载可能会不利于良好的浏览体验。 display-none / test.php
在CSS文件中添加以下修改。
.lazy-img { display: none; }
现在您可以加载带有懒散图像的页面像这样,它们将被索引。
<body>
<img class="lazy-img" src="img1.jpeg" title="image title"/>
<img class="lazy-img" src="img2.jpeg" title="image title"/>
<img class="lazy-img" src="img3.jpeg" title="image title"/>
<img class="lazy-img" src="img4.jpeg" title="image title"/>
</body>
重要的是,为图像包括
title
属性。或者,您用链接<img
>标签和链接文本来包围<a
>标签。否则,搜索引擎将通过单词距离将关键字与图像相关联。您将为SEO遇到所有这些麻烦,不妨一路走。如果按原样使用上述内容。由于图像被隐藏,因此什么也不会显示。您要在文档底部删除此类。这里的关键是使用内联纯Javascript。上述元素的布局完成后,立即执行该Javascript。如果您将所有外部JS文件加载到底部(您应该这样做)。您应该将此Javascript块放在这些文件上方。这样一来,在修改DOM时就不会出现延迟。应该发生(未经测试)的是那些浏览器只会按原样加载图像。
这种方法的优点是,从网络爬虫的角度看,它可以使HTML保持整洁。
评论
我很好奇,尝试了测试页。 Mac上最新的Chrome和Safari似乎确实加载了图像。不幸的是,毕竟不确定这是否非常可靠...
–佩瓦拉
2014年5月15日23:10
不幸的是,使用这种方法,图像都被延迟加载到文档的底部(还不错),但是正如我在我的问题中所解释的那样,在我的方法中,图像仅在进入视口时才被延迟加载。因此,任何未进入视口的图像(即最终用户不会在页面中向下滚动)将完全不会加载。在包含大量图像的页面中,这一点非常重要
–bmenekl
2014年5月19日在7:28
@bmenekl不,此答案不执行延迟加载。仅当在启用JavaScript的浏览器中查看时,它才会更改HTML,以便第三方脚本可以执行延迟加载。
–反应堆
2014年5月19日13:09
#3 楼
Google宣布将使用其漫游器执行JavaScript,有关更多说明,请参见这篇文章。如所记录的那样,您不得禁止将静态文件传递给GoogleBot进行动态抓取。
评论
我认为适当的头衔和替代者是工作的90%。文件名少。我猜它会影响Google图片中的结果另请参阅:webmasters.stackexchange.com/questions/26190/…
当然,这可能会影响您在Google图片搜索中建立索引的图片数量。您是在问这个问题,还是对普通网络搜索的排名有何影响?
@StephenOstermiller我最关心的是排名,但对SEO的任何影响(立即或次要)都值得关注
在StackOverflow上已经问过这个问题,但我认为它并没有很好的答案。