【发布时间】:2016-09-01 08:11:46
【问题描述】:
我有一个php 页面,可以呈现一本书,比如说 100 页。每个页面都有一个特定的网址(例如/my-book/page-one、/my-book/page-two 等)。
翻页时,我使用历史 API 更改 url,使用 url.js。
由于所有书籍内容都是从服务器端呈现的,问题是内容被搜索引擎索引(特别是我指的是谷歌),但 url 是错误的(例如它找到了一个 sn-p on page-two 但网址是 page-one)。
如何阻止搜索引擎(至少是谷歌)为页面上的所有内容编制索引,但只索引可见书页?
如果我以不同的方式呈现内容,它会起作用吗:例如,<div data-page-number="1" data-content="Lorem ipsum..."></div>,然后在 JavaScript 端将其更改为所需的格式?这会使页面变慢,实际上我不确定 Google 是否不会通过 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>
那么只有可见的 div 是 .current-page 一个。相同的内容在多个 url 上提供,因为这是用户可以在页面之间翻页所必需的。
例如,/book/page/3 将呈现这段 HTML,而 /book/page/4 呈现相同的内容,唯一的区别是添加到第 4 个元素的 current-page 类。
Google 确实索引了不同的 url,但它做错了:例如,sn-p Page 5 链接到 /book/page/2,它呈现给用户 Page 2(不是 Page 5)。
如何告诉 Google(和其他搜索引擎)我只对索引 .current-page 中的内容感兴趣?
【问题讨论】:
-
您可以使用
robots.txt告诉Google。 AFAIK 谷歌尊重它。最有可能的是建立一个sitemap.xml并告诉谷歌索引什么和不索引什么会更好。您还可以使用 Google 的网站管理员工具来推送更改,并查看 Google 是如何抓取您的网站的。 -
问题是如何?我不确定这些是否可行。简而言之,我在不同的 url 上提供相同的 HTML,但我只显示它的特定部分,具体取决于 url。
-
你能举一个错误的 url 被错误索引的例子吗?或者你在元素上做改变?
-
@OBender 假设我在页面
42上有Hello World(在网址/my-book/page/42下)。 Google 很有可能在另一个 url(显然是另一个页面)上索引此内容,例如,/my-book/page/7。发生这种情况是因为我在多个 url 上提供相同的内容。我不知道如何解决这个问题...... -
你的意思是: /my-book/page/42 和 /my-book/page/7 有相同的内容吗?
标签: javascript php html seo