我有一个php
页面,可以让我们写一本100页的书。每个页面都有一个特定的网址(例如/my-book/page-one
,/my-book/page-two
等。
翻页时,我使用url.js
使用历史记录API更改网址。
由于所有书籍内容都是从服务器端呈现的,问题是内容是由搜索引擎索引的(特别是我指的是谷歌),但网址是错误的(例如,它找到了一个代码段) page-two
但网址为page-one
)。
如何阻止搜索引擎(至少是Google)为网页上的所有内容编制索引,但仅为可见图书页面编制索引?
如果我以不同的方式呈现内容,它会起作用吗:例如,<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
。相同的内容在多个网址上提供,因为用户可以在页面之间切换。
例如,/book/page/3
将呈现此HTML片段而/book/page/4
呈现相同的内容,唯一的区别是添加到第4个元素的current-page
类。
Google确实为不同的网址编制索引,但确实错了:例如,代码段Page 5
链接到/book/page/2
,向用户呈现Page 2
(不是Page 5
)
如何告诉Google(和其他搜索引擎)我只对将.current-page
中的内容编入索引感兴趣?
答案 0 :(得分:5)
据我所知,他的问题是你对很多网址都有相同的内容。 像:
www.my-awesome-domain.com/my-book/page/42
www.my-awesome-domain.com//my-book/page/7
而且 页面的可见内容可通过JavaScript进行调整,即用户在点击您网站上的某些元素时执行。
在这种情况下,你需要做两件事:
今天google bot正在他们的官方博客中宣布执行JavaScript: overview of the technique
因此,如果您在点击“刷新”(F5)时获得正确的页面行为并且将指定规范页面属性,则会正确地抓取页面,当您按照该链接进行链接页面时,您将获得正确的页面行为。
如果您需要更多指导如何在 url.js 中发布,请发布另一个问题(因此将为其他人提供正确的文档),我将很乐意为您提供帮助。
答案 1 :(得分:4)
回答非常简单:你不能这样做。没有技术可能将相同的内容保存在不同的URL下,并要求搜索引擎仅对其中的一部分进行索引。
如果您只有一个索引页面,那么您可以使用规范网址,如前所述。您可以在每个子页面上放置链接到主页面的规范URL。
你可能会发现&#34; hack&#34;它使用用于Google Search Appliance的特殊标记:googleon
和googleoff
。
唯一的问题是,这很可能不适用于谷歌机器人(至少没有人会保证)或任何其他搜索引擎。
答案 2 :(得分:2)
如果您专门定位Google,则可以使用“googleoff”指令
请参阅Excluding Unwanted Text from the Index
关闭所有属性。标签之间的文本未编入索引,与锚文本无关,或用于代码段。
<!--googleoff: all--><div data-page="1">Page 1</div>
<div data-page="2">Page 2</div><!--googleon: all-->
<div data-page="3" class="current-page">Page 3</div>
<!--googleoff: all--><div data-page="4">Page 4</div>
<div data-page="5">Page 5</div><!--googleon: all-->
如果你想隐藏其他搜索引擎的文字,你应该使用javascript替代方案,例如,当用户点击按钮时,从ajax请求加载DOM中的下一页或上一页。
答案 3 :(得分:2)
我认为你无法实现你想要的目标。
我无法看到robots.txt会有什么影响。 Canonical标签不适用于div。
谷歌过去曾谈到这类网站,并提出了一些索引建议,以下是一些可能有帮助的链接:
https://www.seroundtable.com/seo-single-page-12964.html
https://www.seroundtable.com/google-on-crawling-javascript-sites-progressive-web-apps-21737.html
答案 4 :(得分:2)
将内容保存在您在HTML中不呈现的JSON文件中。从服务器,仅提供正确的页面:用户可见的内容。
当用户点击按钮(上一页/下一页链接等)时,使用JavaScript呈现您拥有JSON文件的内容并更改您已经在做的网址。
这样你知道你总是从服务器提供正确的内容,谷歌机器人显然会正确地索引页面。