我知道有很多问题可以解决单页网站/应用程序的搜索引擎优化问题。但是,我有一个非常具体的问题,我没有直接问过。
我有一个非常简单的静态网站,有4页。这不是一个JavaScript密集型网站或单个页面应用程序。内容和SEO是真正重要的。这很简单,我想在一个页面中加载所有网站的内容(所有4个页面),这样当用户点击链接转到另一个“页面”时,就没有http请求,ajax或页面加载。它只隐藏当前页面的内容,并显示已加载的下一页内容,并使用pushState来处理网址和历史记录。
这意味着当搜索引擎抓取www.mysite.com/about时,在顶部将是关于页面的内容清晰可见,但在页面的某个地方我将不得不为其他人存储html没有这3页的3页被索引为关于页面的一部分。因此,在任何给定的页面上,我会隐藏其他3个页面的内容。
A)这可能吗? B)如果没有搜索引擎将其解释为我试图误导我正在展示的内容,这样做是否安全。
编辑:这个问题是关于单页网站和SEO,它们都特别需要html,javascript,pushstate和单页应用程序方法
答案 0 :(得分:3)
我不认为这可能是你解释的方式。 需要Ajax :
•4个HTML页面(index.html,about.html等)
•Ajax仅按需加载每个页面的内容,您可以使用pushstate处理URL,因此您可以拥有一个不会重新加载浏览器的导航
•Google可以在不考虑JS的情况下抓取每个HTML页面
为什么您的解决方案不起作用?
•Google将抓取整个索引页面(无论应显示哪些内容)
请注意,我不是SEO专家,只是提出我的观点(技术:))。
没有AJAX:
•在外部JS文件中将您的内容实现为JS变量或对象:
about = {
title:"My page title",
content:"My page content",
url:"/about/"
};
•使您的js文件对搜索引擎隐藏:
User-agent: *
Disallow: /js/main.js
•无论您点击哪个页面,都可以调用以实现新内容:
$('nav a').click(function(){
var href = $(this).attr('href'); // be sure the href of the a element has the same name as the JS object
$('h1.title').text(href.title);
$('p.content').text(href.content);
history.replaceState(page: href.url,href.title,href.url);
});
不确定JS部分是否可行,因为我没有测试它。