我有一个php
页面,可以呈现一本100页的书。每个页面都有一个特定的url(例如,/my book/page one
,/my book/page two
等)。
翻转页面时,我使用历史API更改url,使用url.js
。
由于所有书籍内容都是从服务器端呈现的,问题在于内容是由搜索引擎索引的(特别是我指的是谷歌),但url是错误的(例如,它在第二页
上找到了一个片段,但url是第一页
)。
如何停止搜索引擎(至少谷歌)索引页面上的所有内容,但只索引可见的图书页面?
如果我以不同的方式呈现内容,它会工作吗:例如,
代码如下所示:
<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就是。当前页面
1。相同的内容在多个URL上提供,因为这样用户就可以在页面之间切换。
例如,/book/page/3
将呈现这段超文本标记语言,而/book/page/4
呈现相同的东西,唯一的区别是添加到第4个元素的当前页面
类。
谷歌确实为不同的URL编制了索引,但它做得不对:例如,代码片段第5页
链接到/book/Page/2
,该链接呈现给用户第2页
(而不是第5页
)。
如何告诉谷歌(和其他搜索引擎)我只对中的内容编制索引感兴趣。当前页面
?
据我所知,他的问题是你有相同的内容为许多网址。喜欢:
www.my-awesome-domain。com/my book/page/42
www.my-awesome-domain。com//my book/page/7
页面的可见内容可以通过JavaScript进行调整,用户在点击网站上的一些元素时执行。
在这种情况下,您需要做两件事:
今天,google bot正在执行JavaScript,正如他们在官方博客中宣布的:https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html
因此,如果在点击Refresh(F5)时实现了正确的页面行为,并指定了canonical pages属性,则页面将被正确爬网,并且当您跟随链接时,将到达链接页面。
如果你需要更多的指导如何在url.js请张贴另一个问题(所以它将被适当的记录为他人),我将很乐意提供帮助。
回答非常简单:你做不到。技术上不可能在不同的网址下保留相同的内容,并要求搜索引擎只索引其中的一部分。
如果您同意只对一个页面进行索引,那么您可以按照前面的建议使用规范URL。将链接到主页的规范URL放置在每个子页上。
你可能会发现一个“黑客”使用谷歌搜索设备使用的特殊标签:googleon
和googleoff
。
https://www.google.com/support/enterprise/static/gsa/docs/admin/70/gsa_doc_set/admin_crawl/preparing.html
唯一的问题是,这很可能不适用于谷歌机器人(至少没有人会保证它会)或任何其他搜索引擎。
我认为你将无法实现你所追求的目标。
我看不出robots.txt会有什么影响。规范标签对div不起作用。
谷歌过去曾谈到过这样的网站,并提出了一些索引建议,这里有几个链接可能会有所帮助:
https://www.seroundtable.com/seo-single-page-12964.html
https://www.seroundtable.com/google-on-crawling-javascript-sites-progressive-web-apps-21737.html