ski*_*ulk 5 html javascript iframe inventory noscript
在我的网站上,我提供零售库存目录.我想在客户端浏览器上放置数据处理和渲染库存的负担,以减少我的服务器端处理和带宽.我还希望内容可以被机器人抓取.
我想象它是这样的,但我想知道是否有更好的解决方案:
1:如果启用了javascript,则处理数据客户端
2:如果未启用javascript,请处理数据服务器端:
<noscript>
<iframe>
php processing script
</iframe>
</noscript>
Run Code Online (Sandbox Code Playgroud)
另外,如果启用了Javascript,请确认不会加载iframe.如果浏览器无论如何都要处理它,那么这会打败我的目标.
最后,请确认google bot会抓取iframe.我想将iframe编入索引作为加载页面的一部分,而不是单独的页面.iframe是从一个完全独立的域加载的,所以我担心谷歌可能根本就没有索引它.
谢谢,Skibulk
请确认如果启用Javascript,iframe将不会被加载
是否显示内容<noscript>由浏览器决定。这意味着无论客户端是否决定显示它,您仍然会处理和下载“php 处理脚本”的结果。
实际上,您必须有一个指向源页面的 iframe,因此只有在客户端决定<noscript>应显示该块时才会加载它。
<noscript>
<iframe src="yourserverpage"></iframe>
</noscript>
Run Code Online (Sandbox Code Playgroud)
请确认 google bot 会抓取 iframe。我希望 iframe 作为加载页面的一部分而不是单独的页面进行索引
遗憾的是这是不可能的。
您仍然可以在服务器上有一个显示内容的页面,但它将在其正确的地址处建立索引,而不是作为您嵌入 iframe 的页面的一部分。例如,假设这是“PageA”的 HTML
<noscript>
<iframe src="PageB"></iframe>
</noscript>
Run Code Online (Sandbox Code Playgroud)
该 iframe 内的内容将在 PageB 上建立索引,而不是作为 PageA 的一部分。
在某些情况下,您可以使用规范元标记来修复此问题:
<link rel="canonical" href="PageA">
Run Code Online (Sandbox Code Playgroud)
当放置在<head>HTML 页面的 中时,此标记会请求爬网程序将所提供的替代地址下的内容编入索引。当两个页面上都出现相同的内容,但您希望其中一个页面成为搜索结果的主控时,通常会使用此选项。我不知道在您的上下文中使用它是否会被爬虫视为“黑帽”,因为上下文略有不同。
另一种方法!
如果您有大量库存,您最好引入对结果进行分页的概念。然后,您可以拥有一个工作的非 JavaScript 页面,其中包含指向更多库存页面的链接。然后,您可以使用 JavaScript 拦截分页操作,并使用替代方法来获取结果(如果您认为这可以为访问您网站的用户增加价值)。
| 归档时间: |
|
| 查看次数: |
2797 次 |
| 最近记录: |