日志文件分析应该是每个SEO专业工具带的一部分,但大多数SEO从未进行过。这意味着大多数SEO都错过了常规抓取工具无法生成的独特而宝贵的见解。

让我们揭开日志文件分析的神秘面纱,这样就不那么令人生畏了。如果您对日志文件的精彩世界以及它们可以为您的网站审核带来什么感兴趣,那么本指南绝对适合您。

什么是日志文件?

日志文件是包含有关向网站服务器发出请求的人员和内容的详细日志的文件。每次机器人向您的站点发出请求时,数据(例如时间,日期IP地址,用户代理等)都存储在此日志中。这些有价值的数据允许任何SEO找出Googlebot和其他抓取工具在您的网站上正在做什么。与常规抓取不同,例如Screaming Frog SEO Spider,这是真实世界的数据 – 而不是估计您的网站被抓取的方式。它是您网站抓取方式的精确概述。

拥有这些准确的数据可以帮助您识别爬行预算浪费的区域,轻松查找访问错误,了解您的SEO工作如何影响爬行等等。最好的部分是,在大多数情况下,您可以使用简单的电子表格软件来完成此操作。

在本指南中,我们将专注于Excel来执行日志文件分析,但我还将讨论其他工具,例如Screaming Frog不太知名的日志文件分析器,它可以通过帮助您管理来简化和加快工作更大的数据集。

注意:拥有除Excel以外的任何软件不是要求遵循本指南或使用日志文件。

如何打开日志文件

将.log重命名为.csv

当您获得带有.log扩展名的日志文件时,它就像重命名文件扩展名.csv并在电子表格软件中打开文件一样简单。如果要编辑这些,请记住将操作系统设置为显示文件扩展名。

如何打开拆分日志文件

日志文件可以包含一个大日志或多个文件,具体取决于您站点的服务器配置。某些服务器将使用服务器负载平衡来跨服务器池或服务器场分配流量,从而导致分割日志文件。好消息是它很容易组合,你可以使用这三种方法中的一种来组合它们,然后像​​往常一样打开它们:

  1. 通过Shift +在Windows中使用命令行右键单击包含日志文件的文件夹,然后选择“从此处运行Powershell”

然后运行以下命令:

copy * .log mylogfiles.csv

您现在可以打开mylogfile.csv,它将包含您的所有日志数据。

或者,如果您是Mac用户,请首先使用cd命令转到日志文件的目录:

cd Documents / MyLogFiles /

然后,使用cat或concatenate命令连接文件:

cat * .log> mylogfiles.csv

2)使用免费工具, 日志文件合并,合并所有日志文件,然后将文件扩展名编辑为.csv并正常打开。

3)使用Screaming Frog Log File Analyzer打开日志文件,就像拖放日志文件一样简单:

分裂字符串

(请注意:如果您使用Screaming Frog的日志文件分析器,则不需要此步骤)

打开日志文件后,您需要将每个单元格中的繁琐文本拆分为多个列,以便日后进行排序。

Excel的文本到列功能在这里派上用场,就像选择所有填充单元格(Ctrl / Cmd + A)和Excel>数据>文本到列并选择“分隔”选项一样简单,分隔符是空格字符。

一旦将其分离出来,您可能还希望按时间和日期排序 – 您可以在时间和日期标记列中进行排序,通常使用“:”冒号分隔符分隔数据。

您的文件应类似于下面的文件:

如前所述,如果您的日志文件看起来不完全相同,请不要担心 – 不同的日志文件具有不同的格式。只要您拥有基本数据(时间和日期,URL,用户代理等),您就可以开始了!

了解日志文件

现在您的日志文件已准备好进行分析,我们可以深入了解并开始了解我们的数据。日志文件可以采用多种不同数据点的格式,但它们通常包括以下内容:

  1. 服务器IP
  2. 日期和时间
  3. 服务器请求方法(例如GET / POST)
  4. 请求的URL
  5. HTTP状态代码
  6. 用户代理

如果您对细节的详细信息感兴趣,可以在下面找到有关常见格式的更多详细信息:

  • WC3
  • Apache和NGINX
  • Amazon Elastic Load Balancing
  • HA代理
  • JSON

如何快速揭示爬行预算浪费

快速回顾一下,抓取预算是指每次访问您网站时搜索引擎抓取的网页数。许多因素会影响爬网预算,包括链接权益或域权限,站点速度等。通过日志文件分析,我们将能够查看您的网站具有哪种抓取预算以及哪些问题导致抓取预算浪费。

理想情况下,我们希望为抓取工具提供最有效的抓取体验。不应该在低价值页面和URL上浪费爬网,并且优先级页面(例如产品页面)不应该具有较慢的索引和爬行率,因为网站具有如此多的自重页面。游戏的名称是抓取预算保护,并且具有良好的抓取预算转换带来更好的自然搜索性能。

请参阅用户代理的已爬网URL

查看网站的网址被抓取的频率可以快速揭示搜索引擎将时间用于抓取的位置。

如果您对查看单个用户代理的行为感兴趣,可以轻松过滤掉excel中的相关列。在这种情况下,使用WC3格式的日志文件,我正在通过Googlebot过滤cs(用户代理)列:

然后过滤URI列以显示Googlebot抓取此示例网站主页的次数:

这是一种快速查看单个用户代理的URI主干是否存在问题的方法。您可以通过查看URI主干列的过滤选项(在本例中为cs-uri-stem)来更进一步:

从这个基本菜单中,我们可以看到正在抓取哪些URL(包括资源文件)以快速识别任何问题URL(例如,不应被抓取的参数化URL)。

您还可以使用数据透视表进行更广泛的分析。要获取特定用户代理抓取特定URL的次数,请选择整个表(Ctrl / cmd + A),转到“插入”>“数据透视表”,然后使用以下选项:

我们所做的只是按用户代理进行过滤,URL以行为单位,然后计算每个用户代理发生的次数。

使用我的示例日志文件,我得到以下内容:

然后,要按特定用户代理进行过滤,我单击包含“(全部)”的单元格上的下拉图标,然后选择Googlebot:

了解不同机器人抓取的内容,移动漫游器如何以不同方式抓取到桌面,以及抓取次数最多的位置可以帮助您立即查看抓取预算浪费的位置以及网站的哪些区域需要改进。

查找低价值添加网址

不应在低增值网址上浪费抓取预算,这通常是由会话ID,无限抓取空间和分面导航引起的。

要执行此操作,请返回到您的日志文件,并按URL列中包含“?”或问号标记的URL进行过滤(包含URL主干)。要在Excel中执行此操作,请记住使用“〜?”或代字号问号,如下所示:

单个“?”或问号,如自动过滤器窗口中所述,表示任何单个字符,因此添加代字号就像一个转义字符,并确保过滤掉问号符号本身。

这不容易吗?

查找重复的网址

重复的URL可能是一个爬行预算浪费和一个大的SEO问题,但找到它们可能是一个痛苦。 URL有时可能有轻微变体(例如尾部斜杠与URL的非尾部斜杠版本)。

最终,找到重复网址的最佳方式也是最不有趣的方式 – 您必须按字母顺序排序网站网址并手动注视它。

您可以找到同一URL的尾部和非尾部斜杠版本的一种方法是在另一列中使用SUBSTITUTE函数并使用它来删除所有正斜杠:

= SUBSTITUTE(C2,“/”,“”)

在我的例子中,目标单元格是C2,因为干数据在第三列。

然后,使用条件格式识别重复值并突出显示它们。

然而,不幸的是,眼球是目前最好的方法。

查看子目录的爬网频率

查找哪些子目录最常被抓取是另一种快速显示爬网预算浪费的方法。虽然请记住,仅仅因为客户的博客从未获得过单一的反向链接,并且每年只从业主的祖母那里获得三次观看并不意味着您应该考虑抓取预算浪费 – 内部链接结构应始终在整个网站中保持良好状态从客户的角度来看,这些内容可能有充分的理由。

要通过子目录级别查找爬网频率,您需要主要关注它,但以下公式可以帮助:

= IF(RIGHT(C2,1)= “/”,SUM(LEN(C2)-LEN(SUBSTITUTE(C2, “/”, “”)))/ LEN( “/”)+ SUM(LEN(C2) -LEN(SUBSTITUTE(C2,“=”,“”)))/ LEN(“=”) – 2,SUM(LEN(C2)-LEN(SUBSTITUTE(C2,“/”,“”)))/ LEN ( “/”)+ SUM(LEN(C2)-LEN(SUBSTITUTE(C2, “=”, “”)))/ LEN( “=”) – 1)

上面的公式看起来有点像doozy,但它只是检查是否有一个尾部斜杠,并根据答案,计算尾部斜杠的数量,并从数字中减去2或1。如果使用RIGHT公式从URL列表中删除所有尾部斜杠,则可以缩短此公式 – 但是谁有时间。您剩下的是子目录计数(从第一个子目录开始,从0开始)。

将C2替换为第一个URL干/ URL单元格,然后将公式复制到整个列表中以使其正常工作。

确保使用适当的起始单元格替换所有C2,然后将新子目录计数列按最小值排序到最大值,以便按逻辑顺序获取文件夹的良好列表,或者轻松按子目录级别过滤。例如,如下面的屏幕截图所示:

上面的图像是按级别排序的子目录。

上面的图像是按深度排序的子目录。

如果您没有处理大量的URL,您可以简单地按字母顺序对URL进行排序,但是您不会获得子目录计数过滤,这对于较大的站点来说可以快得多。

按内容类型查看抓取频率

找出正在抓取的内容,或者是否有任何内容类型正在占用抓取预算,这是一个很好的检查,以发现抓取预算浪费。如果您正在尝试优化图像搜索,频繁地抓取不必要或低优先级的CSS和JS文件,或者如何在图像上进行爬行,这种策略很容易被发现。

在Excel中,按内容类型查看抓取频率就像使用“带有结束”过滤选项按URL或URI词根过滤一样简单。

快速提示:您还可以使用“不结束”过滤器并使用.html扩展名来查看非HTML页面文件的爬网方式 – 如果爬网预算浪费在不必要的js或css文件上,则总是值得检查,或者甚至图像和图像变化(看着你的Wordpress)。此外,请记住,如果您的站点包含尾随和非尾随斜杠网址,请将“or”运算符与过滤一起考虑在内。

间谍机器人:了解网站抓取行为

日志文件分析使我们能够通过让我们了解它们如何确定优先级来了解机器人的行为。不同机器人在不同情况下的表现如何?有了这些知识,您不仅可以加深对SEO和爬行的理解,还可以让您在了解网站架构的有效性方面有一个巨大的飞跃。

查看大多数和最少抓取的网址

之前已经通过用户代理查看已爬网的URL来修改此策略,但速度更快。

在Excel中,选择表中的单元格,然后单击“插入”>“数据透视表”,确保选择包含必要的列(在本例中为URL或URI主干和用户代理),然后单击“确定”。

创建数据透视表后,将行设置为URL或URI主干,将总计值设置为用户代理。

从那里,您可以右键单击user-agent列,并通过爬网计数将URL从最大到最小排序:

现在,您将有一个很棒的表来制作图表或快速查看并查找任何有问题的区域:

在查看此数据时要问自己的问题是:您或客户端想要抓取的页面是什么?多常?频繁抓取并不一定意味着更好的结果,但它可以表明Google和其他内容用户代理的优先级最高。

每天,每周或每月抓取频率

检查抓取活动以确定在一段时间内,Google更新或紧急情况后可见失去的问题可以告知您问题可能出在何处。这就像选择“日期”列一样简单,确保列处于“日期”格式类型,然后使用日期列上的日期过滤选项。如果您要分析一整周,只需选择具有可用过滤选项的相应日期。

按指令抓取频率

了解哪些指令(例如,如果您在robots.txt中使用disallow或甚至无索引指令),对于任何SEO审核或广告系列都必不可少。例如,如果某个网站使用带有分面导航网址的不允许,您需要确保遵守这些网址。如果不是,请推荐更好的解决方案,例如元机器人标签等页面指令。

要按指令查看抓取频率,您需要将抓取报告与日志文件分析相结合。

(警告:我们将使用VLOOKUP,但它实际上并不像人们想象的那么复杂)

要获取组合数据,请执行以下操作:

  1. 使用您最喜爱的抓取软件从您的网站获取抓取内容。我可能有偏见,但我是Screaming Frog SEO Spider的忠实粉丝,所以我打算用它。

    如果您还在使用蜘蛛,请按顺序执行步骤,否则,请自行调用以获得相同的结果。

  2. 从SEO Spider导出内部HTML报告(内部选项卡>“过滤器:HTML”)并打开“internal_all.xlsx”文件。

    从那里,您可以过滤“可索引性状态”列并删除所有空白单元格。要执行此操作,请使用“不包含”过滤器,并将其留空。您还可以通过使过滤器值等于“不包含→”重定向“来添加”和“运算符并过滤掉重定向的URL,如下所示:

    这将通过元机器人和规范化URL向您展示规范化,无索引。

  3. 复制此新表(仅包含Address和Indexability Status列)并将其粘贴到日志文件分析导出的另一张表中。
  4. 现在为一些VLOOKUP魔术。首先,我们需要确保URI或URL列数据与爬网数据的格式相同。

    日志文件通常在URL中没有根域或协议,因此我们需要使用新制作的工作表中的“查找和替换”删除URL的头部,或者在日志文件分析表中创建一个新列将协议和根域附加到URI主干。我更喜欢这种方法,因为您可以快速复制并粘贴您遇到问题的网址并查看。但是,如果您有一个海量日志文件,那么使用“查找和替换”方法可能会减少CPU密集程度。

    要获取完整的URL,请使用以下公式,但将URL字段更改为您正在分析的任何站点(并确保协议也正确)。您还需要将D2更改为URL列的第一个单元格

    =”
    拖动“class =”redactor-autoparser-object“> https://www.example.com”&D … 将公式下移到日志文件表的末尾,并获得一个完整的URL列表:

  5. 现在,创建另一列并将其命名为“可索引性状态”。在第一个单元格中,使用类似于以下内容的VLOOKUP:= VLOOKUP(E2,CrawlSheet!A $ 1:B $ 1128,2,FALSE)。将E2替换为“完整URL”列的第一个单元格,然后将查找表转换为新的。爬行表。请记住起诉美元符号,以便查找表不会像您一样改变。将公式应用于其他角色。然后,选择正确的列(1将是索引表的第一列,因此数字2是我们之后的那一列)。使用FALSE范围查找模式进行精确匹配。现在,您有一个很好的整洁URL列表及其与爬网数据匹配的可索引性状态:

    按深度和内部链接抓取频率

    通过此分析,我们可以了解网站架构在爬网预算和可抓取性方面的表现。主要目的是查看您是否拥有比您请求更多的URL – 如果您这样做,那么您就会遇到问题。机器人不应该“放弃”抓取您的整个网站,而不是发现重要内容或在不重要的内容上浪费抓取预算。

    提示:使用爬网可视化工具以及此分析还可以查看网站的整体架构,并查看“off-shoots”或内部链接较差的页面。

    要获取这些非常重要的数据,请执行以下操作:

    1. 使用首选抓取工具抓取您的网站,并导出具有点击深度和每个网址的内部链接数量的报告。

      就我而言,我正在使用Screaming Frog SEO Spider,正在出口内部报告:

    2. 使用VLOOKUP将您的URL与Crawl Depth列和Inlinks数相匹配,这将为您提供以下内容:
    3. 根据您要查看的数据类型,您可能只想过滤掉此时返回200响应代码的URL,或者在我们稍后创建的数据透视表中将它们作为可过滤选项。如果您正在检查电子商务网站,您可能只想关注产品网址,或者如果您正在优化图像抓取,则可以使用“内容”过滤日志文件的URI列,按文件类型过滤掉 – 键入“爬网导出列”并选择使用数据透视表进行过滤。与所有这些检查一样,您有很多选择!
    4. 使用数据透视表,您现在可以使用以下选项按爬网深度(在这种情况下由特定机器人过滤)分析爬网速率:

    得到类似以下内容:

    比Search Console更好的数据?识别爬网问题

    搜索控制台可能是每个搜索引擎优化的首选,但它肯定有缺陷。历史数据更难获得,并且您可以查看的行数有限制(此时编写的行数为1000)。但是,通过日志文件分析,天空是极限。通过以下检查,我们将发现抓取和响应错误,以便为您的站点提供完整的运行状况检查。

    发现抓取错误

    显而易见且快速检查以添加到您的库中,您只需要过滤日志文件的状态列(在我的情况下,使用W3C日志文件类型的“sc-status”)以获取4xx和5xx错误:

    查找不一致的服务器响应

    特定的URL可能会随着时间的推移而变化服务器响应,这可能是正常行为,例如,当修复损坏的链接或发生严重的服务器问题时,例如当您的站点流量过大导致内部更多时服务器错误并且正在影响您网站的可抓取性。

    分析服务器响应就像通过URL和日期过滤一样简单:

    或者,如果要快速查看URL在响应代码中的变化情况,可以使用数据透视表,其中行设置为URL,列设置为响应代码,并计算URL生成响应的次数码。要实现此设置,请使用以下设置创建数据透视表:

    这将产生以下结果:

    如您在上表中所见,您可以清楚地看到“/inconcistent.html”(在红色框中突出显示)具有不同的响应代码。

    按子目录查看错误

    要查找哪些子目录产生的问题最多,我们只需要进行一些简单的URL过滤。过滤掉URI列(在我的例子中为“cs-uri-stem”)并使用“contains”过滤选项选择特定子目录和该子目录中的任何页面(使用通配符*):

    对我来说,我查看了blog子目录,这产生了以下结果:

    按用户代理查看错误

    找出哪些机器人正在努力可能有很多原因,包括了解移动和桌面机器人网站性能的差异,或者哪些搜索引擎最能抓取您的网站。

    您可能希望查看哪些特定URL导致特定机器人出现问题。最简单的方法是使用数据透视表,它允许过滤每个URI发生特定响应代码的次数。要实现此目的,请使用以下设置创建数据透视表:

    从那里,您可以按照您选择的机器人和响应代码类型进行过滤,例如下面的图片,我正在过滤Googlebot桌面以查找404错误:

    或者,您也可以使用数据透视表查看特定机器人通过创建按机器人过滤的数据透视表,按URI出现次数计算并将响应代码用作行来生成不同响应代码的次数。要实现此目的,请使用以下设置:

    例如,在数据透视表(下方)中,我正在查看Googlebot收到的每个响应代码的数量:

    诊断页面问题

    网站不仅需要设计用于人类,还需要设计用于机器人。页面不应该缓慢加载或下载量很大,并且通过日志文件分析,您可以从机器人的角度看每个URL的这两个指标。

    查找慢速和大页面

    虽然您可以按“时间”或“加载时间”列从最大到最小排序日志文件以查找最慢的加载页面,但最好查看每个URL的平均加载时间,因为可能存在其他因素除了网页的实际速度之外,还有一个缓慢的请求。

    为此,请创建一个数据透视表,其行设置为URI主干或URL,并且总和值设置为加载或加载时间所需的时间:

    然后使用下拉箭头,在这种情况下,它显示“时间总和”并转到“值字段设置”:

    在新窗口中,选择“平均”并且您已全部设置:

    现在,当您按照从最大到最小的平均时间排序URI时,您应该有类似于以下内容的内容:

    查找大页面

    您现在可以使用下面显示的设置添加下载大小列(在我的情况下为“sc-bytes”)。请记住,根据您希望看到的内容,将大小设置为平均值或总和。对我来说,我做了平均值:

    你应该得到类似于以下内容:

    机器人行为:验证和分析机器人

    理解机器人和爬行行为的最佳和最简单的方法是使用日志文件分析,因为您再次获得真实数据,并且它比其他方法麻烦少得多。

    查找未抓取的网址

    只需使用您选择的工具抓取您的网站,然后将您的日志文件与URL进行比较,以找到唯一的路径。您可以使用Excel的“删除重复项”功能或条件格式来执行此操作,尽管前者的CPU密集程度要低得多,尤其是对于较大的日志文件。简单!

    识别垃圾邮件机器人

    垃圾邮件和欺骗机器人不必要的服务器压力可以通过日志文件和一些基本的命令行操作员轻松识别。大多数请求也会有一个与之关联的IP,因此使用您的IP列(在我的情况下,在W3C格式日志中标题为“c-ip”),删除所有重复项以查找每个请求IP的个人。

    从那里,您应该按照Google文档中概述的过程验证IP(注意:对于Windows用户,请使用nslookup命令):

    https://support.google.com/webmasters/answer/80553?hl=en

    或者,如果您正在验证一个bing bot,请使用他们的便利工具:

    https://www.bing.com/toolbox/verify-bingbot

    结论:日志文件分析 – 并不像听起来那么可怕

    借助一些简单的工具,您可以深入了解Googlebot的行为方式。当您了解网站如何处理抓取时,您可以诊断出比您可以咀嚼更多的问题 – 但日志文件分析的真正强大之处在于能够测试您关于Googlebot的理论并扩展上述技术以收集您自己的见解和启示。

    您将使用日志文件分析测试哪些理论?您可以从除上面列出的日志文件之外的日志文件中收集哪些见解?请在下面的评论中告诉我。