由于蜘蛛通常不会执行javascript我想考虑采用以下其中一个选项,以便成功地让他们为需要年龄验证的网站内容编制索引。
我的首选解决方案:
检查Cookie“ageverification
”。如果它不存在,请添加一些javascript
将用户重定向到〜/ verifyage.aspx,这将添加所需的cookie并将用户重定向到他们的上一页。
另一种解决方案:
如上所述,但不要重定向用户。相反,如果cookie不存在,请在现有页面的“顶部”上绘制年龄验证表单。
另一种解决方案:
添加一个抓取工具可以关注的'是的我超过18'锚点链接。我对这个合法性略有怀疑。
非常感谢任何见解或想法。
答案 0 :(得分:2)
我的工作 - 我将年龄验证存储在会话数据中。如果会话变量不存在,则服务器将div添加到正文的末尾(在页脚之后),单击以进行验证或单击退出。我使用CSS来覆盖内容。
对于CSS - 我使用:
display: block; width: 100%; height: 100%; position: fixed; top: 0px; left: 0px; z-index: 9999;
这会导致div覆盖图形浏览器中的所有其他内容,即使它位于正文的最末端。
对于未启用JS的用户,“Enter”链接指向设置会话变量的网页,并将用户返回到他们请求的页面。这导致浏览器的两个页面加载,以便他们获得他们想要的内容,这是不理想的,但这是非JS启用浏览器的唯一方法。
对于支持JS的浏览器,会在页面上附加一个小JavaScript,将“Enter”链接href链接更改为#并将一个非常基本的函数附加到click事件,以便单击Enter触发使用XMLHttpRequest告诉用户单击“输入”的服务器。然后,服务器更新会话并使用200 OK响应响应XMLHttpRequest,触发JavaScript以隐藏覆盖内容的年龄验证div。因此会话更新,以便服务器知道用户验证了年龄,用户可以看到他们想要的内容,而不会在浏览器中重新加载页面,这是一种更好的用户体验。
因此,年龄验证可以在没有JavaScript的情况下运行,方法是通过无状态方式或以更友好的方式将用户发送到验证页面。
当搜索蜘蛛抓取网站时,它会在每个页面上获得年龄验证div,因为蜘蛛不会设置必要的会话变量,但由于div位于html主体的最末端,所以蜘蛛仍会对其进行索引真正的内容首先。
答案 1 :(得分:1)
无论如何,你都有一个真正的问题。
如果您将抓取工具放入您网站的经过年龄验证的部分,那么它的索引中包含该内容。这意味着它将向搜索内容的用户提供该片段。谁没有通过您的年龄验证。就谷歌而言,这意味着用户实际上可以访问您在验证墙背后的整个内容,而无需通过您的筛选器 - 他们可以将其从谷歌缓存!
不赢的情况,抱歉。要么是经过年龄验证的内容,要么是SEO,而不是两者。即使您以某种方式告诉搜索引擎不要吐出您的内容,您的网址显示在搜索结果中的这一事实也会告诉人们您网站的(受限制的)内容。
此外,关于您的JavaScript想法:这意味着禁用JavaScript的用户将获得内容,甚至不知道应该有点击。如果您在顶部显示横幅,则表示您在接受之前将令人反感的内容发送到他们的计算机。这意味着它在他们的浏览器缓存中。或者他们可以直接破解你的横幅,无论你在掩盖什么,都没有点击“确定”。
我不知道你的网站是做什么的,但我真的建议用户在允许用户查看任何成熟的内容之前强制将表格发布给你。将他们的接受状态存储在会话变量中。这不是假的。除非它已经足够老,否则不要让搜索引擎进入,或者你有一些强有力的方法来限制它所看到的内容以及关于你自己的责任的强有力的信息。