SEO与单页网站

时间:2014-02-14 16:53:17

标签: javascript html seo single-page-application pushstate

我知道有很多问题可以解决单页网站/应用程序的搜索引擎优化问题。但是,我有一个非常具体的问题,我没有直接问过。

我有一个非常简单的静态网站,有4页。这不是一个JavaScript密集型网站或单个页面应用程序。内容和SEO是真正重要的。这很简单,我想在一个页面中加载所有网站的内容(所有4个页面),这样当用户点击链接转到另一个“页面”时,就没有http请求,ajax或页面加载。它只隐藏当前页面的内容,并显示已加载的下一页内容,并使用pushState来处理网址和历史记录。

这意味着当搜索引擎抓取www.mysite.com/about时,在顶部将是关于页面的内容清晰可见,但在页面的某个地方我将不得不为其他人存储html没有这3页的3页被索引为关于页面的一部分。因此,在任何给定的页面上,我会隐藏其他3个页面的内容。

A)这可能吗? B)如果没有搜索引擎将其解释为我试图误导我正在展示的内容,这样做是否安全。

编辑:这个问题是关于单页网站和SEO,它们都特别需要html,javascript,pushstate和单页应用程序方法

1 个答案:

答案 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部分是否可行,因为我没有测试它。