Javascript 停止搜索引擎索引页面的特定部分
我有一个Javascript 停止搜索引擎索引页面的特定部分,javascript,php,html,seo,Javascript,Php,Html,Seo,我有一个php页面,可以呈现一本100页的书。每个页面都有一个特定的url(例如,/my book/page one,/my book/page two等) 翻页时,我使用历史API更改url,使用 由于所有书籍内容都是从服务器端呈现的,问题在于内容是由搜索引擎索引的(特别是我指的是谷歌),但url是错误的(例如,它在第二页上找到了一个片段,但url是第一页) 如何停止搜索引擎(至少谷歌)索引页面上的所有内容,但只索引可见的图书页面 如果我以不同的方式呈现内容:例如,,然后在JavaScript
php
页面,可以呈现一本100页的书。每个页面都有一个特定的url(例如,/my book/page one
,/my book/page two
等)
翻页时,我使用历史API更改url,使用
由于所有书籍内容都是从服务器端呈现的,问题在于内容是由搜索引擎索引的(特别是我指的是谷歌),但url是错误的(例如,它在第二页
上找到了一个片段,但url是第一页
)
如何停止搜索引擎(至少谷歌)索引页面上的所有内容,但只索引可见的图书页面
如果我以不同的方式呈现内容:例如,
,然后在JavaScript端以所需的格式更改内容,是否可行?这会使页面速度变慢,事实上,我不确定谷歌是否会用JavaScript为更改后的内容编制索引
代码如下所示:
<div data-page="1">Page 1</div>
<div data-page="2">Page 2</div>
<div data-page="3" class="current-page">Page 3</div>
<div data-page="4">Page 4</div>
<div data-page="5">Page 5</div>
第1页
第2页
第3页
第4页
第5页
然后,唯一可见的div是。当前页面。相同的内容在多个URL上提供,因为这样用户就可以在页面之间切换
例如,/book/page/3
将呈现这段HTML,而/book/page/4
呈现相同的内容,唯一的区别是添加到第4个元素的当前页面
类
谷歌确实为不同的URL编制了索引,但它做得不对:例如,代码片段第5页
链接到/book/Page/2
,该链接呈现给用户第2页
(而不是第5页
)
如何告诉谷歌(和其他搜索引擎)我只对中的内容感兴趣。当前页面
?据我所知,问题是许多URL都有相同的内容。
比如:
www.my-awesome-domain.com/my-book/page/42
www.my-awesome-domain.com//my-book/page/7
和
页面的可见内容可以通过JavaScript进行调整,用户在单击站点上的某些元素时执行JavaScript
在这种情况下,您需要做两件事:
使用本google文档中描述的任何方式将您的URL标记为规范页面:
您需要添加一个特性,在整页刷新后,每个页面都将加载到相同的状态,例如,您可以按照本文的要求在导航时使用hash参数:或者下面是
今天,google bot正在执行JavaScript,正如他们在官方博客中宣布的:
因此,如果在点击Refresh(F5)时实现了正确的页面行为,并指定了canonical pages属性,则页面将被正确爬网,并且当您跟随链接时,将到达链接页面
如果您需要更多关于如何在url.js中执行此操作的指导,请发布另一个问题(以便为其他人记录此问题),我将很乐意提供帮助。答案非常简单:您无法执行此操作。在技术上不可能将相同的内容保存在不同的URL下,并要求搜索引擎只对其中的一部分进行索引
如果您同意只对一个页面进行索引,那么您可以按照前面的建议使用规范URL。将链接到主页的规范URL放置在每个子页上
您可能会发现一个“黑客”使用谷歌搜索设备使用的特殊标签:googleon
和googleoff
唯一的问题是,这很可能不适用于谷歌机器人(至少没有人会保证它会)或任何其他搜索引擎。我认为你无法实现你想要的目标
我看不出robots.txt会有什么影响。规范标记在div上不起作用
谷歌过去曾提到过类似的网站,并提出了一些索引建议,以下是一些可能有帮助的链接:
将内容保存在一个JSON文件中,该文件不在HTML中呈现。从服务器上,只提供正确的页面:用户可见的内容
当用户单击按钮(上一页/下一页链接等)时,使用JavaScript呈现JSON文件中的内容,并像已经做的那样更改url
这样你就知道你总是从服务器上提供正确的内容,谷歌机器人显然会正确索引页面。你可以使用robots.txt
告诉谷歌。AFAIK谷歌尊重它。最有可能的做法是构建一个sitemap.xml
并告诉谷歌哪些内容需要索引,哪些不需要索引。你也可以使用谷歌的网站管理员工具来推动这些变化,看看谷歌是如何抓取你的网站的?我不确定这些是否有用。简而言之,我在不同的url上提供相同的HTML,但我仅根据url显示其中的特定部分。你能举一个错误的url被错误索引的例子吗?或者单击元素后进行更改?@OBender让我们假设我在42
页上有Hello World
(在url/my book/page/42
下)。谷歌很有可能在另一个url(显然是另一个页面)上为这些内容编制索引,例如,/mybook/page/7
。这是因为我在多个URL上提供相同的内容。我不知道如何解决这个问题……你的意思是:/my book/page/42和/my book/page/7有相同的内容吗?你能给我一个代码的示例吗?我不确定规范URL在这里会有什么帮助。如何使url和页面右侧可见部分之间的链接?规范url将消除对多个页面上重复内容的惩罚,您需要为每个图书列表创建1页。另一个将是本页面的规范。您使用什么代码隐藏和显示每本书的内容?我将建议如何修改itLet的假设我有隐藏的div,其中一个是可见的,包含页面内容。我不知道你是什么意思