智能 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,它也不起作用。即使它就是为此而设计的。
所以目前这是不可能的。
我正在寻找 深度链接 以及不同的 元标签 的好方法。目前我有一个巨大的 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,它也不起作用。即使它就是为此而设计的。
所以目前这是不可能的。