我想将JSON-LD用于搜索引擎优化目的,但不确定如何阻止自动电子邮件收集者从源中获取地址。
在email schema中,您提供了一个电子邮件地址。我总是通过使用JS来显示它们或其他方法以某种方式混淆电子邮件地址。到目前为止,这有助于阻止垃圾邮件。
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Person",
"address": {
"@type": "PostalAddress",
"addressLocality": "Seattle",
"addressRegion": "WA",
"postalCode": "98052",
"streetAddress": "20341 Whitworth Institute 405 N. Whitworth"
},
"colleague": [
"http://www.xyz.edu/students/alicejones.html",
"http://www.xyz.edu/students/bobsmith.html"
],
"email": "mailto:jane-doe@xyz.edu",
"image": "janedoe.jpg",
"jobTitle": "Professor",
"name": "Jane Doe",
"telephone": "(425) 123-4567",
"url": "http://www.janedoe.com"
}
</script>
我能想到的唯一方法是使用JS动态创建上面的内容,我希望收割者无法解释大部分内容,但那很可能打破搜索引擎支持。这有什么解决方案吗?
答案 0 :(得分:4)
除非您能够检测到恶意僵尸程序(并将其作为没有电子邮件地址的版本),否则没有合理的解决方案。使用结构化数据的主要原因之一是让机器人轻松访问,因此这是设计使然。
您可以尝试让电子邮件地址更难:
Schema.org的email
property期望 Text 为值,因此可以使用混淆(例如jane-doe at {this domain}
)。
希望:机器人默认不理解你的混淆方法。
如果不需要使用Schema.org的email
属性:FOAF的mbox_sha1sum
property需要SHA1哈希电子邮件地址。
希望:机器人不会尝试(或者还没有)找到相应的电子邮件地址。
您可以使用JavaScript添加email
属性(例如Google supports it)。
希望:机器人不会执行JavaScript。
但是,当然,这也使得好机器人变得更难,并且在某些时候你可能想要考虑根本不提供电子邮件地址。
如果您只想向某些消费者提供电子邮件地址,您可以为这些消费者提供包含电子邮件地址的文档,以及所有其他没有的机器人。但搜索引擎机器人might not like this method。而且你不利于新消费者或你不认识的消费者。
我只是提供未经过模糊处理的电子邮件地址,并为每个人making the life of visitors (humans as well as bots) easier提供。垃圾邮件应该是你的问题,而不是他们的问题;这是一个可以处理的问题。
答案 1 :(得分:1)
JSON-LD可以为机器人提供数据,包括可以轻易欺骗其他机器人身份的电子邮件收集器。我建议将电子邮件地址从JSON-LD中删除,它不会伤害搜索引擎优化,这些电子邮件的所有者会爱你。否则你 - 将导致他们的电子邮箱成为垃圾邮件的持续目标