停止搜索引擎以索引页面的特定部分

2022-08-31 01:12:38

我有一个页面,呈现一本书,比如说100页。每个页面都有一个特定的网址(例如,等)。php/my-book/page-one/my-book/page-two

翻转页面时,我使用历史记录API更改url,使用url.js

由于所有书籍内容都是从服务器端呈现的,因此问题在于内容被搜索引擎索引(特别是我指的是Google),但是URL是错误的(例如,它找到了一个片段,但网址是 )。page-twopage-one

如何阻止搜索引擎(至少是Google)将页面上的所有内容编入索引,但仅将可见的图书页面编入索引?

如果我以不同的方式呈现内容,它会起作用吗:例如,然后在JavaScript端以所需的格式进行更改?这将使页面变慢,事实上我不确定Google是否会通过JavaScript索引更改的内容。<div data-page-number="1" data-content="Lorem ipsum..."></div>

代码如下所示:

<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>

那么只有可见的 div 是那个。相同的内容在多个网址上提供,因为这是必需的,以便用户可以在页面之间翻转。.current-page

例如,在呈现相同内容时将呈现这段 HTML,唯一的区别是添加到第 4 个元素的类。/book/page/3/book/page/4current-page

Google确实索引了不同的网址,但它做错了:例如,呈现给用户的片段链接(不是)。Page 5/book/page/2Page 2Page 5

如何告诉谷歌(和其他搜索引擎)我只对索引中的内容感兴趣?.current-page


答案 1

据我所知,他的问题是你对许多网址都有相同的内容。喜欢:

www.my-awesome-domain.com/my-book/page/42

www.my-awesome-domain.com//my-book/page/7

页面的可见内容可以通过JavaScript进行调整,当用户点击您网站上的某些元素时,他会执行该内容。

在这种情况下,您需要做2件事:

  1. 按照此 Google 文档中所述的任何方式将您的网址标记为规范网页:https://support.google.com/webmasters/answer/139066?hl=en
  2. 您需要添加一个功能,每个页面在整页刷新后将加载到相同的状态,例如,您可以在此处的文章中按照所述方式导航时使用哈希参数:或者这里是该技术的概述

今天,谷歌机器人正在执行JavaScript,正如他们的官方博客所宣布的那样:https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html

因此,如果您在点击“刷新”(F5) 并指定规范网页属性时实现了正确的网页行为,则网页将被正确抓取,当您点击链接时,您将获得链接的页面。

如果您需要更多有关如何在url中执行此操作的指导.js请发布另一个问题(以便为其他人正确记录),我将很乐意为您提供帮助。


答案 2

答案很简单:你做不到。在技术上不可能将相同的内容保留在不同的URL下,并要求搜索引擎仅将其部分编入索引。

如果您同意只将一个网页编入索引,则可以按照之前的建议使用规范网址。您可以在每个子网页上放置链接到主页的规范网址。

您可能会发现一个“黑客”,它使用用于Google搜索设备的特殊标签:和。googleongoogleoff

https://www.google.com/support/enterprise/static/gsa/docs/admin/70/gsa_doc_set/admin_crawl/preparing.html

唯一的问题是,这很可能不会与Google Bot(至少没有人会保证它会)或任何其他搜索引擎一起使用。