21

我有几个网站每天大约有 5% 的访问来自垃圾邮件推荐人。关于这个引荐来源,我注意到一件奇怪的事情:它们显示在 Google Analytics 中,但我在自定义设计的表格中看不到它们,我在该表格中插入了网站的所有访问者,所以我认为它们只操纵 GA 代码,从未到达网站本身。

如果您点击他们的链接,他们会将您重定向到一些附属链接。

我不知道它们是否对我的 SEO/SERP 有影响,但我想摆脱它们。我可以通过htaccess文件做到这一点吗?

一个特殊的方面是我从不同的论坛(如页面)获得访问者。例如:forum.topic221122.darodar.comforum.topic125512.darodar.com,所以我想阻止整个darodar.com域。

此外,darodar.com还有一些困扰着我的统计数据。我可以阻止他们吗?econom.coiloveitaly.cohtaccess

4

14 回答 14

42

Google Analytics 中的大多数垃圾邮件从不访问您的网站,因此您无法使用任何服务器端解决方案阻止它们。

Ghost Spam直接攻击 GA,通常只出现几天然后消失,这就是为什么有些人认为他们阻止了.htaccess文件,但这只是巧合。

这种类型的垃圾邮件很容易被发现,因为它们使用假主机名或未设置。(见下图)

另一种类型的爬虫,如 semalt,实际上可以访问您的站点,并且可以从.htaccess文件中被阻止,但是,其中只有几个。

总而言之,要阻止 Google Analytics 中的垃圾邮件:

  • 爬虫: GA 中的服务器端解决方案或过滤器
  • 幽灵:仅 GA 中的过滤器

防止被幽灵垃圾邮件击中的唯一有效解决方案是使用所有有效主机名创建一个包含过滤器

首先,您需要使用所有有效的主机名创建一个正则表达式,如下所示(您可以在网络报告中找到它们)

yoursite\.com|shoppingcart\.com|translateservice\.net

这些是一些例子;您可能有更多或更少的主机名。获得 REGEX 后,按照与上述相同的步骤进行更改:

  • 转到Google Analytics中的管理选项卡
  • 在View Column > New Filter下选择FILTER
  • 过滤器类型 自定义>包含>过滤器字段 主机名
  • 文件模式复制您构建的主机名表达式

对于爬虫,您必须创建一个不同的过滤器,构建一个包含所有垃圾邮件发送者的表达式

spammer1|spammer2|spammer3|spammer4|spammer5
  • 过滤器类型 自定义>排除>过滤字段 广告系列来源
  • 文件模式复制引用表达式

每次使用过滤器时,保持未过滤的视图很重要。

如果您需要此解决方案的详细步骤,您可以查看有关 Google Analytics 中垃圾邮件的完整指南

停止和删除 Google Analytics 中所有垃圾邮件的指南

希望能帮助到你。

主机名报告示例 有效的主机名

于 2015-02-05T21:25:37.573 回答
12

这篇文表明垃圾邮件引用者操纵了谷歌分析,并且从未真正访问过您的网站,因此阻止它们是没有意义的。如果您想减少虚假网站点击,Google Analytics 会提供过滤功能。

于 2014-12-27T10:37:34.513 回答
6

是的,您可以使用 .htaccess 进行阻止,实际上您应该这样做。

您的.htaccess文件可能如下所示:

<IfModule mod_setenvif.c>
# Set spammers referral as spambot
SetEnvIfNoCase Referer darodar.com spambot=yes
SetEnvIfNoCase Referer 7makemoneyonline.com spambot=yes
## add as many as you find

Order allow,deny
Allow from all
Deny from env=spambot
</IfModule>

当流量来自这些站点时,它们会被此 .htaccess 阻止,因此永远不会加载 HTML,因此不会启动 GA 脚本(来自这些站点)。

一旦您在 Google Analytics(分析)中看到传入流量,他们就会尝试从您那里收集流量,然后尝试找出您访问该 URL 的来源。它对您的网站无害,但您的统计数据中充满了垃圾数据。

谷歌分析应该防止这种情况,就像 GMail 防止垃圾邮件一样。

于 2015-01-13T10:48:43.593 回答
3

根据此条目,他们从未访问您的网站,他们使用您的 UA 代码向 GA 伪造 HTTP 请求。因此,使用或任何其他方法阻止他们似乎毫无意义.htaccess,因为他们从未真正进入您的网站,他们只是向 Google 发送虚假的“访问”数据。

于 2015-01-16T21:25:22.777 回答
2

我们发现使用 htaccess 是阻止这些垃圾邮件的好方法。我已经在我的客户网站上实施了以下解决方案,到目前为止效果非常好。最好的方法是通过 contains 子句阻止它们,例如垃圾邮件 priceg.com 检查引荐来源网址中的 priceg。

因为这些网站中的许多网站都在创建子域并重新访问,当他们调整 url 时,硬编码条件失败

RewriteCond %{HTTP_REFERER} (priceg) [NC,OR]
RewriteCond %{HTTP_REFERER} (darodar) [NC,OR]

这里有详细解释

于 2015-03-26T18:31:36.530 回答
1

显然,这是由垃圾邮件发送者通过使用您网站的帐户 ID 直接与谷歌分析进行通信来完成的。因此,他们有效地告诉谷歌分析他们访问了您的页面,而实际上他们从未这样做过。他们通过他们希望您访问的 URL 向分析表明自己的身份。所以你在谷歌分析中看到他们的流量,然后去看看。例如,他们将连接一个亚马逊会员帐户,因此他们试图从您的亚马逊购买中获得佣金。

所以 .htaccess 在我与这个战斗时对我没有任何帮助;您需要创建一个过滤器来过滤掉 (.*)/.darodar/.com 之类的东西

我从中发现的真正不好的影响是它使我的网站统计数据无效

于 2015-01-07T19:30:47.463 回答
0

您可以限制访问使用 .htaccess 或过滤所有机器人访问,使其不被 Google Analytics 跟踪。如果这不起作用,请设置 Google Analytics 过滤。可以在此处找到有关如何执行此操作的更多详细信息:http: //www.wiyre.com/google-analytics-darodar-forum-spam-what-is-it/

他们是俄罗斯人,但通过中国和菲律宾将他们的蜘蛛路由。也许此时最好阻止整个 IP 地址,它们有多个子域。

于 2014-12-27T10:48:42.470 回答
0

.htaccess 不是最好的方法。在我的站点中,我使用 GA,选项跟踪信息,然后参考排除列表。

问候!

于 2015-02-03T08:57:04.643 回答
0

我将这些 mod_rewrite 方法用于 semalt:

RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?semalt\.com.*$ [NC]
RewriteCond %{HTTP_REFERER} ^http(s)?://(.*\.)?semalt\.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*semalt\.com\ [NC,OR]

或使用 .htaccess 模块 mod_setenvif

SetEnvIfNoCase Referer semalt.com spambot=yes
SetEnvIfNoCase REMOTE_ADDR "217\.23\.11\.15" spambot=yes
SetEnvIfNoCase REMOTE_ADDR "217\.23\.7\.144" spambot=yes

Order allow,deny
Allow from all
Deny from env=spambot

我什至创建了一个 Apache、Nginx 和 Varnish 黑名单以及 Google Analytics 段来防止引荐来源垃圾邮件流量,你可以在这里找到它:

https://github.com/Stevie-Ray/referrer-spam-blocker/

于 2015-01-06T09:39:35.763 回答
0

使用提供的链接过滤所有类型的未来和历史垃圾邮件。主机名过滤特别容易。

https://www.ohow.co/ultimate-guide-to-removing-irrelevant-traffic-in-google-analytics/

于 2015-01-22T22:34:58.577 回答
0

Lunametrics 发布了一篇很好的文章来使用谷歌标签管理器解决这个问题: http ://www.lunametrics.com/blog/2014/03/11/goodbye-to-exclude-filters-google-analytics/

于 2015-04-03T19:09:30.010 回答
0

在您的网络服务器级别阻止任何机器人毫无意义 - 垃圾邮件发送者正在向 Google Analytics(分析)网络服务器发送虚假请求。他们所需要知道的只是网站域名和与之关联的 Google Analytics ID。因此,您必须在网站代码中隐藏您的 Google Analytics ID。例如,您可以在 Google Analytics JS 代码中这样做:

ga('create', 'UA-X' + 'XXXXX' + 'XX-X', 'auto');

在此更改之后,垃圾邮件发送者的机器人应该能够执行 JS 代码来解析您的 Google Analytics ID(并且没有那么多机器人能够做到这一点)。

https://nobodyonsecurity.com/security/fighting-google-analytics-referrer-spam

于 2015-01-25T03:49:12.587 回答
0

我认为避免幽灵垃圾邮件的最有效方法是添加一个自定义维度,让您知道该网站确实被访问过,因为我们知道他们从未访问过该网站。

ga('set', 'dimension1', "Hey I'm really here!!");
ga('send', 'pageview');

在这种情况下,您只需在页面中添加此行,然后添加过滤器以“包含”仅当维度具有预期值(“嘿,我真的在这里!”)

于 2015-10-23T16:18:12.007 回答
0

2019 年更新

我可能对这个问题有一个解决方案,因为我发现没有其他解决方案是有效的。

让我先解决现有解决方案的问题

  1. 为每个引荐来源垃圾邮件域添加一个过滤器。
  2. 您将添加多少个域?
  3. 大多数这些referrer垃圾邮件域存在一段时间然后消失
  4. 维护引荐垃圾邮件域的黑名单。
  5. 这变得更加复杂,因为它们的数量基本上是无穷无尽的。
  6. 您将不得不不断更新黑名单。
  7. 黑名单越大,您需要扫描的时间就越多
  8. 其他任何事情,例如维护手动 htaccess 或其他东西都需要手动干预,这不会随着您的网站变得更受欢迎而扩展
  9. 任何自动化的事情,例如使用人工智能来确定引荐垃圾邮件域的显示模式,都会有命中/未命中的事情

这些机器人是如何工作的?

首先,了解这些机器人的工作原理至关重要

  1. 他们至少使用正则表达式模式,例如 /UA-\d{6}/ 来加载他们从种子网站开始后递归访问的跟踪 ID

我相信我有一个提供以下优势的解决方案

  1. 无需维护白名单和黑名单
  2. 可以轻松对抗其中的 99%,并且可以随时修改以使其达到 100%
  3. 几乎不需要人工干预
  4. 这个想法是在脚本中根本没有跟踪 ID

这是一个例子

script.
      //- Google Analytics ID
      var a = [85, 65, 45, 49, 49, 49, 49, 49, 49, 49, 49, 49, 45, 50];

      var newScript = document.createElement("script");
      newScript.type = "text/javascript";
      newScript.setAttribute("async", "true");
      newScript.setAttribute("src", "https://www.googletagmanager.com/gtag/js?id=" + a.map(i => String.fromCharCode(i)).join(""));
      document.documentElement.firstChild.appendChild(newScript);

      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', a.map(i => String.fromCharCode(i)).join(""), { 'send_page_view': false });
      // Feature detects Navigation Timing API support.
      if (window.performance) {
        // Gets the number of milliseconds since page load
        // (and rounds the result since the value must be an integer).
        var timeSincePageLoad = Math.round(performance.now());
        console.log(timeSincePageLoad)
        // Sends the timing event to Google Analytics.
        gtag('event', 'timing_complete', {
          'name': 'load',
          'value': timeSincePageLoad,
          'event_category': '#{title}'
        });
      }
  1. 我们采用一种非常简单的方法,将 'UA-1111111-1' 形式的跟踪 ID 分解为一个字符代码数组

  2. 现在,我们在需要引用跟踪 ID 的任何时候从 char 代码数组动态构造跟踪 ID

  3. 该方法可以通过将其转换为加密的一堆数字,以 8 为基数,十六进制,添加固定偏移量,每次运行期间的随机偏移量,RSA 使用服务器上的私钥加密跟踪 ID 并使用一个公钥,但基本方法非常快,因为 JS 中的数组非常快,可以轻松击败 99% 的机器人

于 2019-08-19T12:26:01.313 回答