我正在开发一个或多或少是一个搜索工具的页面,它基本上由一个输入字段组成,它会根据输入向用户显示一个条目列表。在这种情况下,如果页面使用客户端或服务器端渲染(使用 AJAX),对于 SEO 是否有任何区别,为什么?
如果我在这种特定场景中使用客户端渲染,我只是担心它是否是一个劣势。
我知道与服务器端相比,客户端渲染对 SEO 来说是一个劣势——可以说,当 HTML 一开始就完成时。但是在动态情况下,无论如何都必须异步加载结果,这仍然是一个缺点吗?这是否取决于当前内容是否可以映射到 URL?
我正在开发一个或多或少是一个搜索工具的页面,它基本上由一个输入字段组成,它会根据输入向用户显示一个条目列表。在这种情况下,如果页面使用客户端或服务器端渲染(使用 AJAX),对于 SEO 是否有任何区别,为什么?
如果我在这种特定场景中使用客户端渲染,我只是担心它是否是一个劣势。
我知道与服务器端相比,客户端渲染对 SEO 来说是一个劣势——可以说,当 HTML 一开始就完成时。但是在动态情况下,无论如何都必须异步加载结果,这仍然是一个缺点吗?这是否取决于当前内容是否可以映射到 URL?
AJAX
内容的加载对SEO
.
通过 JavaScript 更新 DOM 不会导致搜索机器人索引的内容发生任何明显变化。几乎所有合法的搜索引擎都会归档网页的非动态版本。
为了启用 SEO,您必须维护指向该内容的非动态版本的嵌入式链接。
例如(使用 jQuery):
<div class="next-page"><a class="ajax-me" href="/page-2.html">Page 2</a></div>
$(document).ready(function(){
$(".ajax-me").click(function(e){
e.preventDefaults();
$('#ajax-target').load($(this).attr("href"));
});
});
这将为链接启用 AJAX,但仍使该链接对搜索引擎的网络爬虫可见。
您的服务器必须知道根据标头请求响应完整网页或 AJAX 响应。
由于您似乎不太关心 UI/UX 并且想了解更多关于 SEO 的信息,我建议您与客户端一起去。任何在用户输入后动态加载的内容对网络爬虫都是不可见的。
但是,另一种方法是让它双向工作 - 这样通过访问特定的 URL ( site.com/search?q=something
),您可以从服务器端完全呈现页面,同时您仍然可以在客户端进行另一次搜索. 您在索引所有相关搜索时仍然会遇到一些麻烦,但也许您可以跟踪最后的 x 个搜索并将它们显示在页面的某个位置,并带有指向完整服务器端呈现的搜索页面的链接,就像我上面提到的那样。您甚至可以进行这些动态调用,不仅可以更改页面内容,还可以更改浏览器地址栏中的 URL 哈希(请参见此处)。
这样一来,您就可以为用户提供良好的用户界面/体验,同时仍然可以完成非常出色的 SEO 工作,因为爬虫可以从上次搜索列表中索引链接。
因此,直接回答您的问题:客户端与服务器端页面渲染 -巨大的SEO 差异