智能 Ajax 搜索引擎深度链接,元数据加载 HTML 而不是 DOM

Intelligent Ajax Deep Linking for search engines so that Meta data is loaded in HTML instead of DOM

我正在寻找 深​​度链接 以及不同的 元标签 的好方法。目前我有一个巨大的 HTML 主站点,并通过 JavaScript 和 DOM 操作显示子页面。

让我们以我最近的项目为例(Google Search)。在那里您可以看到元标记(为简化起见,我们只采用描述)总是相同的。但是在 DOM 中,我更改了它,如您在网站上看到的那样。但我知道搜索引擎只是采用 HTML 代码并且大部分禁用了 JS。这里是我用来更改标题、描述和关键字的 JavaScript 代码行。

例子

    $('meta[name=keywords]').attr('content', 'ages,third');
    $('meta[name=description]').attr('content', 'The Third age is where The Hobbit and Lord of the Rings take part.');
    document.title = "Third Age - Arda Maps"; 

正如您从 Google 搜索中看到的那样,标题已正确更改,即使它是通过 JavaScript 完成的。

所以问题是,如果有一种方法也可以 更改 其他元 标签 就像通过 JavaScript 的描述以正确的方式?

注意#1:我不想使用PHP。我知道 PHP 会通过模板使它变得更容易。

注#2:我也知道我可以通过 Ajax 加载不同的页面。但那时我将不得不镜像它们。正如您所看到的,main html 非常大。以这种方式镜像将是 contra-productive。不是吗?

So the question is, if there is a way to also change other meta tags like the description via JavaScript in a proper way?

Making AJAX Applications Crawlable


open for anything except PHP solutions.

DCMI Metadata Terms , Expressing Dublin Core metadata using HTML/XHTML meta and link elements

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head profile="http://dublincore.org/documents/2008/08/04/dc-html/">
    <title>title</title>
    <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
    <meta name="DC.subject" content="subject1, subject2" />
    <meta name="DC.title" content="title" />
    <meta name="DC.description" content="description" />
  </head>
  <body>
  </body>
</html>

无法在单页 Web 应用程序上针对不同页面轻松编辑元标记。唯一的方法是通过 PHP 或 Node.js 在服务器端更改它。

在客户端改变它只会改变 DOM 对用户有好处的东西,因为他可以看到这些变化。但是搜索引擎会忽略这一点。同样,对于 Dublin Core,它也不起作用。即使它就是为此而设计的。

所以目前这是不可能的。