我有一个网页,实现了一组选项卡每个显示不同的内容。单击选项卡不会刷新页面,而是隐藏/取消隐藏客户端的内容。

现在需要根据页面上选择的选项卡更改页面标题(出于SEO原因)。这可能吗?有人能建议一个解决方案,通过javascript动态改变页面标题,而不重新加载页面?


当前回答

也许你可以在一个字符串中加载你的标题上所有的选项卡标题,然后一旦你加载其中一个选项卡,通过javascript改变标题

首先把你的标题设置为

my app | description | contact | about us | 

一旦你加载一个标签运行:

document.title = "my app | tab title";

其他回答

我想从未来向你问好:)最近发生的事情:

谷歌现在运行javascript,是在你的网站1 人们现在使用React.js、Ember和Angular在页面上运行复杂的javascript任务,而且它仍然被Google1索引 你可以使用html5历史api (pushState, react-router, ember, angular),它允许你做一些事情,比如为你想打开的每个选项卡设置单独的url,谷歌将索引that1

所以为了回答你的问题,你可以安全地从javascript中更改标题和其他元标签(如果你想支持非谷歌搜索引擎,你也可以添加一些像https://prerender.io这样的东西),只是让它们作为单独的url访问(否则谷歌如何知道这些是要在搜索结果中显示的不同页面?)更改SEO相关标签(在用户通过点击更改页面后)很简单:

if (document.title != newTitle) {
    document.title = newTitle;
}
$('meta[name="description"]').attr("content", newDescription);

只要确保css和javascript没有在robots.txt中被阻止,你可以在谷歌网站管理员工具中使用Fetch作为谷歌服务。

1: http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157

我看不出如何通过Javascript改变页面标题将有助于SEO。大多数(或所有)搜索机器人不运行Javascript,只会读取最初加载的标题。

如果你想帮助SEO,那么你将需要在后端改变页面标题,并服务于不同版本的页面。

最简单的方法是从index.html中删除<title>标签,并包含

<head>
<title> Website - The page </title></head>

在网络的每一页。蜘蛛会发现这一点,并将显示在搜索结果:)

使用document.title。

请参阅本页的基本教程。

现代爬虫程序能够解析DOM中动态生成的内容,因此使用document。标题=…完全没问题。