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,其中一个是可见的,包含页面内容。我不知道你是什么意思