分类: 学习

  • 使用AIOWPS插件拦截垃圾评论的详细设置

    使用AIOWPS插件拦截垃圾评论的详细设置

    运行WordPress博客的最大问题之一是垃圾评论。作为世界上最受欢迎的博客平台,WordPress不仅提供了出色的功能,而且还会向您的博客邀请大量的垃圾评论。

    尽管像Akismet这样的插件有助于识别垃圾评论,但必须采取一些高级步骤来减少WordPress网站上的垃圾评论。Al in one WP安全和防火墙插件是一个免费插件,有助于在一定程度上减少垃圾邮件。

    在本文中,我们将讨论如何使用All in One WP Security & Firewall插件来防止WordPress站点中的垃圾评论。

    多合一WP安全和防火墙插件

    All in One WP Security & Firewall插件是WordPress的免费和流行的安全插件之一。它通过为每个安全措施定义某些点来使用积分系统来衡量您的WordPress网站的安全性。导航到WordPress管理仪表盘上的“插件 > 安装插件”,然后在搜索框中搜索“All in one wp security”。

    搜索All in One WP Security & Firewall插件

    搜索All in One WP Security & Firewall插件

    该插件安装在超过40万个活动站点上,由Tips and Tricks HQ团队提供。安装插件并激活它。激活后,插件将创建一个快捷菜单“WP Security”,其中包含大量选项。导航到“WP Security > Dashboard”以查看安全状态的总体摘要。

    All in One WP Security & Firewall插件仪表盘

    All in One WP Security & Firewall插件仪表盘

    评论垃圾邮件保护

    在许多其他选项中,评论垃圾邮件预防是该插件提供的免费安全功能之一。导航到“WP Security > SPAM Prevention”以查看评论垃圾邮件防护选项。此部分下有三个选项卡:

    • 评论垃圾邮件
    • 评论垃圾邮件IP监控
    • BuddyPress

    评论垃圾邮件

    在此部分下您有两个选项。

    (1)将验证码添加到评论表单

    第一个选项是在您网站的评论表单上启用验证码。在评论表单上启用验证码将在安全等级中增加20分,插件将自动添加验证码,无需任何额外的插件或 .htaccess 条目。

    在评论表单中启用验证码

    在评论表单中启用验证码

    启用验证码后,您的主题评论表单中将添加一个问题,如下所示:

    评论表单中的验证码问题

    评论表单中的验证码问题

    (2)阻止垃圾邮件评论

    第二个选项是阻止自动垃圾邮件机器人生成的评论。当您查看垃圾评论时,您可以轻松发现超过90%的垃圾评论不是由人类用户提交的。例如,垃圾邮件机器人提交的评论通常不必要地使用大写字母,并且中间有人类用户永远不会这样做的特殊字符。因此,阻止垃圾邮件机器人将大大减少垃圾邮件评论并为您节省大量时间。启用此选项将为您的站点的安全等级增加10个点。

    在WordPress中阻止Spambot评论

    在WordPress中阻止Spambot评论

    当用户在您的网站上手动提交评论时,引用字段“HTTP_REFERRER”应该是您自己的域。如果“HTTP_REFERRER”不是您自己的域,该插件会有效阻止所有提交,从而防止机器人直接从您的WordPress安装中调用“comments.php”文件提交评论。该插件通过在.htaccess文件中添加以下指令来做到这一点。

    #AIOWPS_BLOCK_SPAMBOTS_START
    <IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} ^(.*)?wp-comments-post.php(.*)$
    RewriteCond %{HTTP_REFERER} !^http://localhost [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule .* http://127.0.0.1 [L]
    </IfModule>
    #AIOWPS_BLOCK_SPAMBOTS_END
    #AIOWPS_BLOCK_SPAMBOTS_START
    <IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} ^(.*)?wp-comments-post.php(.*)$
    RewriteCond %{HTTP_REFERER} !^http://localhost [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule .* http://127.0.0.1 [L]
    </IfModule>
    #AIOWPS_BLOCK_SPAMBOTS_END
    #AIOWPS_BLOCK_SPAMBOTS_START
    <IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} ^(.*)?wp-comments-post.php(.*)$
    RewriteCond %{HTTP_REFERER} !^http://localhost [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule .* http://127.0.0.1 [L]
    </IfModule>
    #AIOWPS_BLOCK_SPAMBOTS_END

    评论垃圾邮件IP监控

    监控和阻止垃圾评论者的IP地址有助于减少重复的垃圾评论。此选项卡包含三个部分:

    • 自动阻止垃圾邮件发送者IP
    • 列出垃圾邮件发送者IP地址
    • 垃圾邮件发送者IP地址结果

    由于插件不为这些选项使用.htaccess,因此在您的站点上使用这些选项时应该没有冲突。

    (1)自动阻止垃圾邮件发送者IP

    收到3条垃圾评论后自动屏蔽用户IP怎么样?您可以通过选中“Enable Auto Block of Spam Comment IPs”复选框并提及垃圾评论的最小数量来启用此功能。例如,如果您设置为3,那么当该IP提交了3个或更多垃圾评论时,评论者的IP将被自动阻止。

    Auto-Block-Spam-Comments-IP

    自动阻止垃圾评论IP

    当您阻止IP地址时,它将显示在如下框中,您可以随时查看被阻止的IP地址。

    查看被阻止的IP地址

    查看被阻止的IP地址

     

    单击“View Blocked IPs”按钮将带您进入“Dashboard > Permanent Block List”并显示永久阻止的IP列表。

    在实际场景中,如果您安装了Akismet插件并输入5作为垃圾评论的最小数量,那么所有留下5条或更多垃圾评论的IP地址将被自动阻止。

    (2)列出垃圾邮件发送者IP地址和垃圾邮件发送者IP地址结果

    如果您不想自动阻止IP并想手动处理垃圾邮件发送者IP,请输入“Minimum number of spam comments per IP”。例如,如果您输入2并单击“Find IP Addresses”按钮,则将列出收到两条或更多垃圾评论的所有IP。

    手动阻止垃圾邮件发送者IP地址

    手动阻止垃圾邮件发送者IP地址

    从IP地址列表中,您可以阻止单个IP地址或进行批量阻止。

    BuddyPress

    防止垃圾邮件的最后一个选项是在BuddyPress注册表单上添加验证码。如果您不使用BuddyPress,则插件将显示消息,此选项对您没有用处。如果您使用的是BuddyPress,则启用此选项将在注册表单中添加数学验证码并减少垃圾邮件注册。

    将验证码添加到BuddyPress注册表单

    将验证码添加到BuddyPress注册表单

     

    小结

    尽管需要防止垃圾评论,但网站所有者需要付出很多努力来监控并采取必要的措施。Akismet等插件将评论识别为垃圾邮件并将其分类,但不会执行任何进一步的操作。因此,我们建议尝试使用all in one WP security & firewall 插件来阻止垃圾评论并节省您的时间。

  • 如何拦截Google和Bing访问您的网站?

    如何拦截Google和Bing访问您的网站?

    Google每天至少使用一次Googlebot抓取工具来抓取网页并将其编入索引。通常,抓取基于您在Google Search Console中提交的XML Sitemap。但是,与普通内容网站相比,新闻网站的抓取频率可能会发生变化并且速度会更快。同样,Bing也使用Bingbot爬虫来爬取页面。一方面,网站管理员希望Google和Bing立即索引他们的页面,另一方面,在某些情况下,您必须阻止这些爬虫来停止爬取整个网站或您网站上的某些页面。

    在本文中,我们将解释如何屏蔽Googlebot和Bingbot,屏蔽爬虫后会发生什么以及出现爬取问题的常见原因。

    拦截Googlebot和Bingbot

    根据您需要的严重程度,有多种方法可以阻止您的网页访问Google和Bing。

    1. 使用Robots.txt进行拦截

    阻止爬虫的最流行和最常见的方法是在robots.txt文件中使用指令。例如,插入以下行将拦截Google和Bing访问您网站上的页面。

    User-agent: Googlebot
    Disallow: /your-page-url
    User-agent: Bingbot
    Disallow: /your-page-url
    User-agent: Googlebot
    Disallow: /your-page-url
    User-agent: Bingbot
    Disallow: /your-page-url
    User-agent: Googlebot
    Disallow: /your-page-url
    User-agent: Bingbot
    Disallow:  /your-page-url

    尽管Google和Bing遵循robots.txt文件,但如果被阻止的页面是从另一篇已编入索引的文章链接的,它就不起作用。它可以来自您的网站,也可以来自您无法控制的外部网站。

    2. 使用.htaccess来阻止

    虽然不常见,但有些人更喜欢使用.htaccess指令来阻止爬虫。这类似于拦截Googlebot和Bingbot的IP地址,从而阻止对上述页面或目录的完全访问。

    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/your-page-url
    RewriteRule ^(.*)$ – [F,L]
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/your-page-url
    RewriteRule ^(.*)$ – [F,L]
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/your-page-url
    RewriteRule ^(.*)$ - [F,L]

    3. 拦截Googlebot和Bingbot IP地址

    上述方法的问题是您需要具有服务器访问权限才能编辑文件。此外,您在编辑robots.txt和.htaccess文件时也可能会出错。另一种有效的选择是使用阻止Googlebot和Bingbot IP地址。GoogleBing为爬虫提供更新后的IP地址,您可以将其用于阻止目的。这些IP地址采用JSON格式,您需要从中提取IP范围并使用。请记住,这些是用于Googlebot和Bingbot搜索爬虫,而不是用于其他目的,例如AdSense爬虫或Microsoft广告爬虫。

    使用主机面板

    如果您有服务器访问权限,则可以使用主机面板中提供的IP Blocker工具。例如,HostGator在其cPanel的“SECURITY”部分下提供了一个名为IP Deny Manager的“IP Blocker”应用程序。

    HostGator cPanel中的IP拦截器

    HostGator cPanel中的IP拦截器

    您可以在所有cPanel托管公司中找到类似的工具,例如Bluehost。单击IP Blocker应用程序并提供Googlebot或Bingbot的IP范围以拦截访问。例如,您可以使用以下方法之一提供Googlebot IP地址:

    • 使用JSON文件中给出的CIDR格式,如 66.249.64.0/27。
    • 隐含的IP范围,如 66.249.66.0-255
    • 通配符范围如 66.249.*.*
    • 只需输入googlebot.com,因为大多数Goolgebot用户代理都来自此主机名。

    在cPanel中拦截Googlebot和Bingbot

    在cPanel中拦截Googlebot和Bingbot

    通常,拦截一个或几个IP地址就足以拦截访问。但是,您可以使用通配符或主机名来阻止整个访问。

    使用WordPress插件

    否则,如果您使用的是WordPress之类的内容管理系统,那么您有很多安全插件可以拦截来自站点管理员面板的机器人和IP地址,而无需访问托管帐户。例如,SiteGround Security插件允许您监控网站的实时流量。您可以根据用户代理名称找到Googlebot和 Bingbot IP地址,并在管理面板中单击几下即可阻止。

    在SiteGround安全插件中拦截IP

    在SiteGround安全插件中拦截IP

    这些是有效的方法,尤其是当您想拦截Google和Bing访问您的整个网站时。

    您还可以使用蜘蛛统计分析插件,通过插件的蜘蛛拦截功能来对Google和Bing蜘蛛进行拦截,您可以通过IP或者蜘蛛名进行快速拦截。

    蜘蛛统计分析插件概览

    该插件同时还具备网站搜索引擎蜘蛛爬取数据统计,页面爬取日志查看,蜘蛛访问路径等功能,属于WordPress站长必不可少的SEO辅助插件。

    4. 隐藏授权页面

    这对于通过设置权限来限制搜索引擎对页面的访问非常有用。例如,银行和会员网站将个性化内容隐藏在登录授权后面,这样搜索引擎就无法访问这些内容。基于内容的机密性,您可能需要应用防火墙、阻止用户配置文件等。强烈建议聘请开发人员并在所需目录级别正确设置限制,以便Google不会抓取禁止部分。

    控制爬行速率或爬行频率

    如果您发现Googlebot和Bingbot对服务器资源的消耗较高,您可以控制抓取速度或抓取频率。抓取速度是Googlebot或Bingbot每秒发出的从您的网站获取内容的请求数。对于高流量网站,控制爬虫程序的爬取速度对于调整服务器资源至关重要。详细了解如何在Bing网站管理员工具中更改Bingbot的抓取速度

    但是,Google会自动使用优化的抓取速度从您的网站抓取内容。您可以从Google Search Console帐户查看此内容。如果您对当前的抓取频率不满意,请向Google提出特殊要求。新的抓取速度将在接下来的90天内有效,并在该期限后重置为优化设置。详细了解为什么您应该控制Googlebot抓取速度

    拦截Googlebot和Bingbot时会发生什么?

    当您阻止页面或站点URL时,您将分别在Google Search Console和Bing网站管理员工具中看到不同类型的错误。以下是您会在Search Console帐户中注意到的一些常见错误:

    • 当您使用robots.txt指令时,URL被Robots.txt阻止。
    • 带有类似“提交的URL似乎是一个软404”的404错误消息 。
    • 部分抓取或页面没有内容错误。

    如果管理您网站的人错误地阻止了您网站上的页面,您可以检查“覆盖范围”部分下的Google Search Console错误并修复它们。

    但是,在拦截IP或使用.htaccess方法时,您可能不会发现问题。简单的方法是使用Google Search Console中的URL检查工具、Google PageSpeed Insights或移动友好的测试工具来测试是否可以抓取实时页面。当Googlebot被阻止访问该页面时,您将看到错误和呈现的空白页面。

    小结

    您可以使用上述方法之一来拦截Googlebot和Bingbot抓取您的网站。但是,请确保在阻止您网站的特定页面或部分时避免错误。特别是,拦截IP地址是最危险的操作,它会将您的网页从Google搜索中完全删除。您可能需要重新提交页面并等待重新索引,这可能会导致流量下降,从而导致收入下降。因此,如果您不确定如何拦截Googlebot和Bingbot,请与您的托管公司联系。或者,聘请开发人员进行自定义开发工作,例如将机密内容隐藏在授权后面。

  • WordPress网站从HTTP迁移到HTTPS深入指南

    WordPress网站从HTTP迁移到HTTPS深入指南

    2018年7月,谷歌浏览器开始将所有非HTTPS网站标记为“不安全”,无论它们是否收集数据。从那时起,HTTPS变得比以往任何时候都更加重要!

    在今天的文章中,我们将深入探讨从HTTP到HTTPS的迁移,并分享实用技巧,以期使您的WordPress网站的过渡尽可能顺利。对于WordPress网站所有者来说,如果您能积极主动,那总是很棒的。

    由于新的网络协议、SEO优势以及更准确的推荐数据,现在正是将您的WordPress网站迁移到HTTPS的最佳时机。在下面了解更多原因和方法。

    1. 什么是HTTPS?
    2. 为什么要使用HTTPS?
    3. HTTP到HTTPS迁移指南

    什么是HTTPS?

    HTTPS(安全超文本传输​​协议)是一种允许您的浏览器或Web应用程序与网站安全连接的机制。HTTPS是帮助确保您的浏览安全的措施之一。

    这包括登录您的银行网站、获取信用卡信息,甚至登录您的 WordPress 网站的后端。WordPress网站上的HTTPS要求您拥有用于加密的SSL证书。这确保了任何数据都不会以纯文本形式传递。

    根据Builtwith的数据,截至2022年3月,前10,000个网站中有73.08%使用HTTPS。这比2018年2月的49.8%有所上升:

    热门网站的HTTPS使用情况

    热门网站的HTTPS使用情况

    MozCast报告称,截至2022年5月,超过98.9%的搜索查询是通过HTTPS进行的,高于2016年1月的26%。这表明许多网站正在从HTTP迁移到HTTPS。

    甚至谷歌也在推动其产品和服务的100%加密标记。截至2022年5月,大约95%的Google流量是通过HTTPS传输,高于2013年12月的48%。

    MozCast HTTPS查询

    MozCast HTTPS查询

    根据Firefox遥测数据和Let’s Encrypt统计数据,超过78%的页面加载现在是HTTPS。

    为什么要使用HTTPS?

    WordPress网站所有者应该关心HTTPS并考虑现在而不是以后从HTTP迁移到HTTPS的原因有很多。

    1. 安全

    当然,HTTPS的最大原因是增加了安全性。您现在通过从HTTP迁移到HTTPS,通过加密的SSL/TLS连接为您的网站提供服务。这意味着数据和信息不再以纯文本形式传递。对于处理信用卡信息的电子商务网站,这是必不可少的。技术上没有法律要求,但您作为企业有责任保护您的客户数据。

    这也适用于您的WordPress登录页面或博客。如果您通过HTTP运行多作者WordPress网站,则每次有人登录时,该信息都会以纯文本形式传递给服务器。HTTPS对于维护安全的网站和浏览器连接至关重要。这样,您可以更好地防止黑客访问您的网站。

    2. 搜索引擎优化

    Google已经正式表示HTTPS是一个排名因素。虽然这只是一个很小的排名因素,但你们中的大多数人可能会利用在SERP中获得的任何优势来击败竞争对手。

    由于谷歌推动大家将HTTP重定向到HTTPS,你可以打赌这个排名因素的权重在未来很可能会增加。Semrush的一项研究发现, Google上98%的表现最佳的精选片段内容使用HTTPS。

    3. 信任和信誉

    根据最近的研究,大多数互联网用户都担心他们的数据如何在网上被截获或滥用。

    HTTPS可以通过建立我们所说的SSL信任来帮助您的业务。通过查看URL旁边的挂锁图标,客户会更加安心,因为他们知道他们的数据更安全。

    4. 推荐数据

    这个原因适用于所有的营销人员。如果您使用Google Analytics,您可能对推荐数据很熟悉。许多人没有意识到HTTPS到HTTP推荐数据在Google Analytics中被阻止。那么数据会发生什么变化呢?其中大部分只是与“直接流量”部分混为一谈。如果有人从HTTP转到HTTPS,则仍会传递引荐来源网址。

    这也很重要,因为如果您的引荐流量突然下降,但直接流量上升,则可能意味着您的较大引荐来源之一最近已迁移到HTTPS。反之亦然。查看Moz关于直接流量的更深入指南。

    5. Chrome警告

    截至2018年,Chrome 68及更高版本已将所有非HTTPS网站标记为“不安全”,即使它们不收集数据:

    Chrome上的连接不安全

    Chrome上的连接不安全

    2021年,对于不完整的URL,浏览器开始默认使用HTTPS。例如,如果用户键入“domain.com”,Chrome将自动使用“https://domain.com”。如果HTTPS由于缺少SSL/TLS而失败,它将恢复为HTTP。

    Chrome拥有超过77%的浏览器市场份额,因此这将影响您的许多访问者。您还可以在Google Analytics中的Audience >Technology >Browser & OS下查看访问者正在使用哪些浏览器:

    在Google Analytics中检查浏览器

    在Google Analytics中检查浏览器

    谷歌向访问者明确表示您的WordPress网站可能无法在安全连接上运行。以下是Google关于如何避免警告的一些提示。

    Firefox也紧随其后,在2017年发布了Firefox 51,为收集密码的非安全站点显示了一个带有红线的灰色挂锁。当然,如果您将整个站点迁移到HTTPS,那么您不必担心这一点:

    您的连接不是私密连接

    您的连接不是私密连接

    如果您尚未迁移到HTTPS,您可能还会开始从Google Search Console收到以下警告:

    致: http://www.domain.com的所有者

    以下URL包含将触发新Chrome警告的密码或信用卡详细信息的输入字段。查看这些示例以查看这些警告将出现在何处,您可以采取措施帮助保护用户的数据。该列表并不详尽。

    http://www.domain.com

    新警告是长期计划的第一阶段,将通过非加密HTTP协议提供的所有页面标记为“不安全”。

    6. 性能

    最后但同样重要的是,由于名为HTTP/2的协议,那些通过HTTPS运行经过适当优化的站点通常可以看到速度提高。

    由于浏览器支持,HTTP/2需要HTTPS。性能提升有多种原因,例如HTTP/2能够支持更好的多路复用、并行性、Huffman编码的HPACK压缩、ALPN扩展和服务器推送。过去在HTTPS上运行的TLS开销相当大,但现在要少得多。

    TLS 1.3也发布了,它可以进一步加快HTTPS连接!

    同样重要的是要注意,域分片和连接等Web性能优化可能会损害您的性能。这些现在已经过时,并且在大多数情况下不应再使用。

    默认情况下,网络上的所有内容都应加密。– Jeff Atwood,Stack Overflow的联合创始人

    HTTP到HTTPS迁移指南

    是时候进入有趣的部分了:将您的WordPress网站从HTTP迁移到HTTPS。让我们首先回顾一些基本要求,以及一些需要注意的事项。

    • 您将需要SSL证书。我们将在下面对此进行更详细的介绍。
    • 仔细检查以确保您的WordPress主机和CDN提供商支持HTTP/2。
    • 您需要留出大量时间将HTTP重定向到HTTPS。迁移不是5分钟就能完成的事情。
    • 仔细检查以确保您使用的所有外部服务和脚本都有可用的HTTPS版本。
    • 重要的是要知道,除非您使用支持分享恢复的插件,否则您将失去所有文章和页面上的社交分享计数。这是因为您的分享计数基于查看HTTP版本的API,并且您无法控制3rd方社交网络。
    • 根据您网站的大小,Google可能需要一段时间才能重新抓取所有新的HTTPS页面和文章。在此期间,您可能会看到流量或排名的变化。
    • 不要忘记本地引用

    我们建议在开始之前关闭CDN集成并禁用任何缓存插件,因为这些会使事情复杂化。

    1. 选择SSL证书

    如果您没有SSL证书,您需要做的第一件事就是购买SSL证书。您可以选择三种主要类型的证书:

    • 域验证:单个域或子域(电子邮件或DNS验证),在几分钟内发布。这些通常可以低至每年9美元购买。
    • 业务/组织验证:单个域或子域需要提供更高级别的安全/信任的业务验证,在1-3天内发布。
    • 扩展验证:单个域或子域需要提供更高级别的安全/信任的业务验证,在2-7天内发布。

    Google建议使用2048位或更高的密钥证书。您可以从ComodoDigiCertGeoTrustThawteRapid SSLTrustwave购买证书 。还有更便宜的替代品,例如GoGetSSLNamecheap和GoDaddy。

    Let’s Encrypt还提供了一种获取免费SSL证书的方法。请咨询您的WordPress主机和CDN提供商,看看他们是否有Let’s Encrypt集成。您还可以按照Certbot指南了解如何手动安装它们。Let’s Encrypt证书每90天过期一次,因此必须有一个自动化系统。

    2. 安装自定义SSL证书

    如果您购买了SSL证书,则需要在您的WordPress网站上安装SSL证书。在通过供应商设置的证书时,系统会要求您提供服务器类型。如果您的网络服务器是Nginx。如果该选项不可用,那么“其他 ”也可以使用。

    SSL提供者将需要一个CSR代码来创建/签署证书文件。如需生成CSR代码和RSA密钥,请填写以下表格:https://www.ssl.com/online-csr-and-key-generator/

    我们建议填写每个字段,但至少应填写以下内容(如下面的屏幕截图所示):

    • 通用名称(域名)
    • 电子邮件地址
    • 组织
    • 城市/地区
    • 州/县/地区
    • 国家

    注意:对于通用名称字段,如果您正在生成通配符证书,则需要输入您的域名,例如 *.domain.com。

    生成CSR表格

    生成CSR表格

    该表单将生成您的私钥文件和CSR。确保保存它们,因为没有它们,证书将无法使用:

    CSR和私钥

    CSR和私钥

    接下来,使用您的SSL提供商上传您的CSR以重新生成您的SSL证书 (.cert)。

    然后,您需要去您的WordPress主机并给他们证书和私钥。如果您是宝塔用户,您可以登录仪表板-网站,然后找到您需要配置SSL的网站,然后点击该网站对应的SSL证书操作项。

    选择其他证书,然后,您就可以在那里添加您的私钥和证书:

    添加自定义SSL

    添加自定义SSL

    完成后,选择保存退出即可。

    3. 验证您的SSL证书

    现在您已经安装了SSL证书,您需要对其进行验证以确保一切设置正确。一种快速简便的方法是使用Qualys SSL Labs提供的免费SSL检查工具。如果一切都正确,你应该在测试中获得A字母等级,如下图所示: 检查SSL证书等级

    检查SSL证书等级

    查看关于如何执行SSL检查的更深入的教程。

    4. 将HTTP重定向到HTTPS

    验证SSL证书后,接下来必须将所有HTTP流量永久重定向到HTTPS。在WordPress中将HTTP重定向到HTTPS时有几个选项。

    这使您可以在服务器级别单击几下将HTTP流量自动重定向到HTTPS。你也可以在你的网络服务器的配置中手动完成,或者使用免费的WordPress插件。

    注意:我们的示例都包含一个301重定向指令,这是在SEO方面实现它的正确方法。使用不同类型的重定向可能会损害您的排名。同样重要的是要知道301重定向可能不会通过100%的链接权重,即使Google可能会说他们会这样做。查看Cyrus在Moz的这篇关于HTTPS迁移和301重定向的文章。

    选项 1:在Nginx中将HTTP重定向到HTTPS

    如果您的Web服务器正在运行Nginx,您可以通过将以下代码添加到Nginx配置文件来轻松地将HTTP重定向到HTTPS:

    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
    }
    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
    }
    server {
    listen 80;
    server_name domain.com www.domain.com;
    return 301 https://domain.com$request_uri;
    }

    这是重定向在Nginx上运行的WordPress的推荐方法。

    在Apache中将HTTP重定向到HTTPS

    如果您的Web服务器正在运行Apache,您可以通过将以下代码添加到您的.htaccess文件来将所有HTTP流量重定向到HTTPS:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    这是重定向在Apache上运行的WordPress的推荐方法。

    选项 2:使用Really Simple SSL插件将HTTP重定向到HTTPS

    您必须从HTTP重定向到HTTPS的第三个选项是使用免费的Simple SSL插件: Really Simple SSL

    Really Simple SSL

    我们不建议将此方法作为永久解决方案,因为第三方插件可能会引入另一层问题和兼容性问题。这是一个很好的临时解决方案,但您应该更新硬编码的HTTP链接,我们将在下一步中向您展示。

    实施HSTS标头(可选)

    HSTS(HTTP严格传输安全)是您添加到Web服务器的安全标头,当站点通过HTTPS运行时,它会强制浏览器使用安全连接。这有助于防止中间人攻击 (MitM) 和 cookie 劫持。您可以将上述301重定向与HSTS标头一起使用。查看我们关于如何添加HSTS的深入文章。

    5.检查重定向过多

    添加从HTTP到HTTPS的重定向后,您应该仔细检查以确保没有太多重定向。这个问题很常见,会影响您的WordPress网站的速度。您可以使用Patrick Sexton的重定向映射器工具快速查看您的网站上有多少重定向。

    下面您将看到一个设置不正确的重定向示例。这在使用重定向映射器时很容易发现:

    重定向设置不正确

    重定向设置不正确

    您可以看到在www和非www版本上都发生了重复的HTTPS重定向。

    以下是正确设置重定向的示例:

    重定向设置正确

    重定向设置正确

    如您所见,只有一个重定向。您可以查看我们关于WordPress重定向和最佳实践的深入文章,以获得更快的性能。

    现在您有了重定向,是时候修复所有那些硬编码的HTTP URL。通常,不建议对URL进行硬编码。但是,随着时间的推移,您很可能会(我们都这样做)。以下是将您的HTTP链接更新为HTTPS的一些选项。

    选项 1:Better Search Replace插件

    您可以使用一个名为Better Search Replace的免费插件,由WordPress团队在Delicious Brains提供:

    Better Search Replace

    Better Search Replace

    该插件可以免费使用。在您的站点上安装并激活后,您可以导航到工具 >Better Search Replace以开始使用它。

    选项 2:interconnect/it Search Replace DB PHP Script

    运行WordPress搜索和替换的第二种选择是使用来自互连/它的免费PHP脚本,称为Search Replace DB。对于任何HTTP到HTTPS的迁移,这是我们最喜欢的工具之一。

    重要的!如果您不知道自己在做什么,使用此脚本可能会破坏您的WordPress网站。如果您对此感到不自在,请先咨询开发人员或您的网络托管服务商。

    要使用该脚本,只需下载zip文件,提取名为search-replace-db-master的文件夹,然后将其重命名为其他名称。在我们的示例中,我们将其重命名为update-db-1551。然后,通过FTP、SFTP或SCP将其上传到Web服务器的公共目录。这通常与包含/wp-content文件夹的目录相同。

    然后在浏览器中导航到您的私密文件夹,例如https://domain.com/update-db-1551:

    互连搜索和替换脚本

    互连搜索和替换脚本

    该脚本将自动尝试查找并填充数据库字段,但您必须检查详细信息是否正确以及它是否适用于您希望执行搜索/替换操作的数据库。您可以先单击Dry Run以查看它将更新/替换的内容。然后,当您准备好时,单击Live Run, 它将执行数据库更新和 WordPress 搜索和替换。

    HTTPS 迁移的一个示例是将“http://yourdomain.com”替换为“https://yourdomain.com”。

    搜索替换选项

    搜索替换选项

    由于安全原因,完成后删除此脚本也很重要。您可以单击“Delete me”按钮。如果您不这样做,它可能会使您的网站容易受到攻击。

    还建议您仔细检查您的Web服务器并确认文件夹/脚本已被完全删除。注意:此脚本将更新您数据库中的所有条目,包括您的WordPress站点URL、页面和文章上的硬编码链接等。

    如果您在wp-config.php文件中硬编码您的主页、站点或WP内容区域,请确保将它们更新为HTTPS:

    define(‘WP_HOME’, ‘https://yourdomain.com’);
    define(‘WP_SITEURL’, ‘https://yourdomain.com’);
    define( ‘WP_CONTENT_URL’, ‘https://yourdomain.com/wp-content’ );
    define(‘WP_HOME’, ‘https://yourdomain.com’);
    define(‘WP_SITEURL’, ‘https://yourdomain.com’);
    define( ‘WP_CONTENT_URL’, ‘https://yourdomain.com/wp-content’ );
    define('WP_HOME', 'https://yourdomain.com');
    define('WP_SITEURL', 'https://yourdomain.com');
    define( 'WP_CONTENT_URL', 'https://yourdomain.com/wp-content' );

    如果您有CDN并使用CNAME,例如cdn.domain.com,您可能还想再次运行上述脚本以查找任何硬编码的URL http://cdn.domain.com并将它们替换为https://cdn.domain.com。

    选项 3:使用WP-CLI搜索和替换

    您还可以使用WP-CLI为那些不喜欢离开命令行的精通技术的人和开发人员更新您的链接。我们建议查看此高级搜索并替换WP-CLI指南

    7. 更新自定义脚本和外部库

    现在您已经更新了旧的硬编码URL,您将需要检查您可能已添加到页眉、页脚等的任何自定义脚本或外部库。这可能包括Google jQuery、Font Awesome、CrazyEgg、AdRoll、Facebook , Hotjar等

    对于Google jQuery,您只需将其更新为指向HTTPS版本:

    <script src=“https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js”></script>
    <script src=”https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js”></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    

    每个提供商和服务都应该有一个可以切换到的HTTPS版本。

    8. 将CDN从HTTP迁移到HTTPS

    接下来,如果您使用的是CDN,您还需要将其迁移到HTTPS。否则,您将在WordPress网站上遇到混合内容警告问题。

    Cloudflare CDN替代品

    如果您正在寻找Cloudflare CDN替代品,有很多选择。最受欢迎的一种是KeyCDN。

    这种高性能CD​​N通过将您的网站内容缓存在全球服务器上,加快了向访问者交付网站内容的速度。它还提供针对DDoS攻击和其他威胁的安全性和保护。

    另外两个选项是Amazon CloudFront, 它是Amazon Web Services (AWS) 的一部分,以及Sucuri,它有助于优化网站性能和速度。它具有广泛的安全功能。

    以下是一些有关为不同的第三方CDN提供商安装和设置SSL的有用链接和教程。

    注意:有些甚至集成了Let’s Encrypt,这意味着SSL是免费的。如果您遇到问题,您可以随时咨询您的CDN提供商,以帮助您完成HTTP到HTTPS的迁移。

    更新CDN后,您需要确保在用于集成的任何WordPress插件中更新它。在下面的示例中,我们使用的是CDN Enabler

    将CDN更改为HTTPS

    将CDN更改为HTTPS

    我们将通过HTTP的URL翻转为HTTPS,然后在底部启用CDN HTTPS选项。完成后,选择保存更改 按钮。

    9. 检查您的网站是否有混合内容警告

    接下来,您将需要检查您的WordPress网站以确保您没有收到混合内容警告。加载HTTPS和HTTP脚本或内容时会出现这些警告。你不能同时加载两者。

    当您迁移到HTTPS时,一切都需要通过HTTPS运行。Wired记录了他们从HTTP到HTTPS的过渡以及他们遇到的一个障碍:

    迁移到HTTPS的最大挑战之一是准备我们所有的内容以通过安全连接交付。如果页面通过HTTPS加载,则所有其他资产(如图像和Javascript文件)也必须通过HTTPS加载。我们看到大量关于这些“混合内容”问题的报告,或者在安全的HTTPS页面上下文中加载不安全的HTTP资产的事件。为了正确地进行部署,我们需要确保混合内容问题更少——确保我们尽可能安全地交付WIRED.com的内容。

    下面是一些示例,说明如果您不修复这些警告,浏览器会发生什么。

    Chrome混合内容警告示例

    下面是当混合内容警告触发时Chrome中发生的情况的示例:

    Chrome混合内容警告

    Chrome混合内容警告

    Firefox混合内容警告示例

    以下是Firefox在混合内容警告触发时发生的情况的示例:

    Firefox混合内容警告

    Firefox混合内容警告

    Internet Explorer混合内容警告示例

    IE混合内容警告

    IE混合内容警告

    下面是一个示例,说明当混合内容警告触发时Internet Explorer中发生的情况:

    如您所见,IE可能是最糟糕的一种,因为它会破坏页面的呈现,直到单击弹出窗口为止。

    JitBit有一个很棒的免费小工具,叫做SSL Check,您可以运行它来快速扫描您的网站或URL以查找不安全的内容。该工具将抓取您的HTTPS WordPress站点并搜索将在浏览器中触发警告消息的非安全图像、脚本和CSS文件。每个网站抓取的页面数量限制为200个。

    您还可以使用Chrome DevTools通过查看网络请求面板来快速检查任何页面。安全面板实际上也非常有用。您可以立即看到任何不安全的来源,然后单击请求以查看它们的来源:

    在Chrome Devtools中检查HTTPS

    在Chrome Devtools中检查HTTPS

    还有一个名为HTTPS Checker的桌面软件 ,您可以安装它来扫描您的站点:

    HTTPS检查器软件

    HTTPS检查器软件

    经过重大更改后,它可以帮助您检查“不安全”的警告和内容。它适用于Windows、Mac和Ubuntu。免费计划允许您检查多达100页。

    10. 更新谷歌搜索控制台配置文件

    现在您的WordPress网站已在HTTPS上启动并运行(希望没有警告),是时候深入研究营销方面了。其中一些非常重要,所以不要跳过它们!

    您首先要为HTTPS版本创建一个新的Google Search Console配置文件。

    在GSC中添加HTTPS属性

    在GSC中添加HTTPS属性

    创建新的HTTPS版本后,您需要重新提交站点地图文件。新的HTTPS版本:

    HTTPS站点地图文件

    HTTPS站点地图文件

    如果您有来自不良反向链接的拒绝文件或受到处罚,您将需要重新提交。如果您现在不这样做,您可能会永久损害您的网站。

    转到Google的Disavow Tool并单击您的原始HTTP配置文件。下载拒绝文件(如果存在)。然后返回工具并在HTTPS版本下提交您的拒绝文件。

    注意:完成所有这些操作后,您可以安全地删除Google Search Console中的HTTP配置文件。

    11. 必应网站管理员工具

    Bing Webmaster Tools与Google Search Console略有不同:

    必应网站管理员工具HTTPS

    必应网站管理员工具HTTPS

    您无需创建新的HTTPS配置文件。相反,您可以只提交新创建的HTTPS站点地图。

    12.谷歌分析

    接下来,您需要更新您的Google Analytics(分析)媒体资源和数据视图。这不会影响您的分析数据:它只会在将您的网站链接到Google Search Console等时有所帮助。

    要更新您的属性,请单击您的域属性设置,然后在默认URL下将其更改为HTTPS://版本:

    将Google Analytics(分析)媒体资源更新为HTTPS

    将Google Analytics(分析)媒体资源更新为HTTPS

    要更新您的视图,请单击您的域视图设置。在网站的URL下,将其更改为HTTPS://版本:

    将Google Analytics(分析)视图更新为HTTPS

    将Google Analytics(分析)视图更新为HTTPS

    将Google Analytics链接到GSC

    将Google Analytics链接到GSC

    您还需要将您在第8步中创建的新创建的Google Search Console配置文件与您的Google Analytics帐户重新关联。为此,请点击您域的属性设置,然后选择Adjust Search Console

    然后,您可以链接新的HTTPS GSC配置文件。将这些链接在一起可以使搜索查询数据流入您的Google Analytics(分析)帐户。

    13. YouTube频道

    如果您有YouTube频道,您需要在Google Search Console中将您的网站与新的HTTPS版本重新关联。否则,您将收到有关HTTPS链接无效的注释和其他消息的错误。

    在您的YouTube仪表板中,单击您的频道,然后进入Advanced。接下来,将您的域更改为新的HTTPS版本,然后单击Add。您可能必须删除旧的,然后重新添加它。然后,您必须通过进入Google Search Console、导航到该站点的消息并选择Approve来批准它。

    14. 杂项

    当涉及到从HTTP到HTTPS的迁移时,就是这样!这里还有一些您还想更新的杂项。其中一些可能适用也可能不适用,具体取决于您使用的内容。

    • 确保检查您的robots.txt是否可访问且正常工作。
    • 确保所有规范标签都指向HTTPS版本(如果您按照上面的第3步操作,这应该已经完成​​)。
    • 如果您运行诸如Disqus之类的评论插件,则必须将您的Disqus评论从HTTP迁移到HTTPS。
    • 在您的电子邮件营销软件中更新您的URL
    • 更新PPC广告网址:AdWords、Bing Ads、AdRoll、Facebook Ads等。
    • 更新社交媒体链接(Facebook、Twitter、Pinterest、Google+等)

    小结

    HTTPS不仅仅是Google排名因素。这是一个重要的安全协议,有助于保护您的网站和访问者免受攻击。

  • 如何强化WordPress并修复权限错误

    如何强化WordPress并修复权限错误

    WordPress的美妙之处在于您可以随心所欲地深入兔子洞。如果您的技术知识为零,那么您在指尖就能拥有与经验丰富的专业编码员相同的相对能力。虽然有时,当您需要深入研究WordPress的后端以修复权限错误时,它有助于了解您在做什么。

    简单来说,如果您的权限错误,您将无法访问某些文件或文件夹。事实上,更正确的说法是服务器不允许任何人访问这些文件。解决方法是深入了解,进行一些更改,然后退出。

    在接下来的几分钟内,我们将在WordPress中查看以修复权限错误。更重要的是,我们将为您提供一切所需的一切,让您做好它。

    什么是“权限”(以及为什么需要它们)

    权限的电梯音调是它们保护您的文件和文件夹免受未经授权的访问。更复杂的是,每个文件和文件夹都有一定的权限级别。如果诸如浏览器之类的客户端试图打开或以其他方式使用该文件,服务器将检查是否具有这样做的正确权限。

    如果客户端签出,服务器会将文件ping到浏览器作为HTTP请求的一部分。相反,如果客户端没有正确的权限,你会得到一个错误。

    在大多数情况下,您不会遇到权限错误。这是因为系统的工作是将访问权限限制为只允许需要文件或文件夹的人访问。如果您没有文件权限,您的WordPress网站以及您的服务器可能会遇到恶意攻击的真正麻烦。

    您需要什么来帮助WordPress修复权限错误

    好消息是您不需要很多东西来重新强化WordPress并修复权限错误。事实上,您只需要一个工具:安全文件传输协议 (SFTP) 客户端。市场上有一些这样的,但有三个我们最喜欢。

    对于初学者来说,FileZilla是通过SFTP访问您的站点的标准工具,尽管Cyber​​duck具有同样多的可用性和功能:

    cyberduck

    如果您想要一个还可以为您做很多其他事情的高级SFTP解决方案,Panic’s Transmit是一个很棒的工具:

    Panic's Transmit

    这可以帮助连接到WordPress并修复权限错误、从云存储中推送和提取数据等等。

    无论您选择哪种SFTP工具,在打开网站的引擎盖之前,您还需要检查以下内容是否到位:

    • 对您的服务器的管理访问权限。简而言之,如果您在尝试修复权限错误时遇到权限错误,您将陷入困境!
    • 了解如何使用SFTP,尽管您在这里不需要高深的技能 – 足以访问您的服务器和编辑文件设置。当然,有很多方法可以在您的WordPress服务器上使用SFTP

    此外,虽然了解文件权限如何与WordPress一起工作很有用,并且会加快修复所需的时间,但现在没有必要。本文将向您展示要更改哪些设置以及如何更改,并且为了修复错误,您不需要知道血腥的细节。

    我们还建议您对您的网站进行最新且干净的备份,以防您所做的更改无法按照您的需要进行。如果你“tank”你的网站,你会很高兴有一个新的备份存在。

    如何强化WordPress并修复权限错误

    当您希望安装主题或插件时,会出现权限错误。因为WordPress无法访问该文件,所以您需要帮助它。

    我们将通过四个步骤来做到这一点:

    1. 使用SFTP登录您的服务器。
    2. 确保文件具有正确的权限。
    3. 查看您的文件夹是否也具有正确的权限。
    4. 检查一堆特定文件是否具有唯一权限集。

    好消息是您可以使用前几个步骤中的指导来执行其余步骤。另外,请注意,我们在这些步骤中使用Cyber​​duck,但每个SFTP客户端都有自己的方法来修改文件权限。如果您使用与我们不同的东西,请查看您的文档以了解确切的功能。

    首先,您需要进入您的服务器。

    1. 通过SFTP访问您的服务器

    您的第一步是登录您的服务器。为此,您需要您的SFTP凭据。通常,您可以在主机控制面板中找到这些:

    sftp凭据

    您也可以在托管公司的电子邮件中找到它们,因此也可以在您的收件箱中搜索这些登录详细信息。

    一旦你有了它们,启动你的SFTP客户端,并寻找打开一个新连接的选项——它可能在你的客户端中被称为不同的东西:

    cyberduck登录界面

    从这里,使用您的凭据填充字段。不过,如果您可以选择,请确保您使用的是显式SFTP连接。一些工具没有相同数量的潜在连接,并且可能默认为SFTP。不过,请仔细检查您是否能够:

    选择连接协议sftp

    登录后,您将进入您的目录。这将包含您的所有站点,您的下一个任务是选择正确的WordPress站点并修复其中的权限。

    站点本身可以​​有多种名称—— public_htmlrootwww或站点名称。找到您的站点后,双击进入该文件夹。里面是你所有的WordPress核心文件。从这里,您需要选择文件和文件夹,并设置正确的权限。

    2.为文件设置正确的文件权限

    一旦您可以访问站点的根目录,您就可以开始设置正确的权限。在我们向您展示如何操作之前,让我们先来看看文件权限的世界。

    文件权限设置快速入门

    权限包含三个部分:读取写入执行。反过来,这些让WordPress从文件中获取数据,向其中添加数据,并对其运行其他操作。

    显示每个文件的权限的传统方式是通过一组三位数字。每个数字代表显式用户组(所有者、组或其他用户)的特定操作(读取、写入或执行)。

    我们将使用这些三位代码提及文件权限,大多数SFTP客户端也会向您展示它们的含义。这意味着您可以选择使用其中一种方法,同时引用另一种方法。

    选择您的文件和更改权限

    准备好后,选择服务器中的每个文件,并确保取消选择文件夹。从这里,您需要查找您的文件权限设置。在Cyber​​duck中,您可以右键单击并转到信息屏幕,但在FileZilla中,您可以选择文件权限。无论如何,这将弹出一个包含三位数字和一组复选框的框:

    文件权限

    您的大多数WordPress文件都应该具有644权限。将其键入框中后,还单击选项以递归应用更改。同样,它可能会在您选择的客户中说出不同的内容。

    单击以确认后,这是一项不碍事的任务。接下来是处理您的文件夹。

    3.为文件夹设置正确的权限

    要设置文件夹的文件权限,请使用与上一步相同的过程。这一次,您将文件替换为文件夹。

    首先,选择根目录中的每个文件夹,然后打开文件夹权限设置。这一次,您要755用作权限。再次确认您的更改,这就是几乎完成的任务。

    4.确保某些特定文件具有唯一权限

    在结束之前,一些WordPress和服务器文件的权限与其他文件不同。具有不同权限设置的主要WordPress文件是wp-config.php。因为这是一个重要文件,所以您要确保它几乎是只读的。不过应该有一些许可元素,所以按照前面的步骤,将权限更改为440.

    这意味着没有人可以写入或执行该文件。不过,您可能会遇到一些服务器和/或插件设置的问题。如果是这种情况,请开始打开文件,直到您不再看到任何错误。首先尝试444,然后600,下一步640,如果解决了问题,请644使用。

    您可能还希望将index.php文件设置为444,因为它是另一个重要的文件,它受益于更多限制。不过,644这里也很好。

    WordPress.org网站上有一篇关于文件权限以及如何为特定文件设置权限的综合文章。如果您想知道如何设置特定文件或文件夹,请查看本文,您应该会找到答案。

    当然我们也有关于WordPress权限的相关文章:《WordPress权限:了解它们以及其最佳设置》,推荐大家进一步深入阅读。

    小结

    就像俱乐部外的任何天鹅绒绳索一样——如果你的名字没有被记录下来,你就不会进来。WordPress有自己的VIP部分——你网站的服务器——如果浏览器或用户没有正确的权限来访问里面的文件,它被拒绝了。

    在这篇文章的整个过程中,我们一直在WordPress的后台修复权限错误并让损坏的网站重新运行。最好的方法是使用SFTP,因为所涉及的步骤不需要时间。您只需要确保文件和文件夹具有特定的权限设置,您的网站就会恢复正常。

  • WordPress恢复模式(Recovery Mode)的终极指南

    WordPress恢复模式的终极指南

    如果您是WordPress的普通用户,您很可能会不时遇到错误。严重错误、技术困难或可怕的WordPress白屏死机可能会毁掉您的一天并使您的网站离线,让毫无戒心的访问者想知道发生了什么。这不仅会花费您宝贵的点击次数,而且可能会使访问者永远不会返回您的网站。由于WordPress恢复模式,这些问题是短暂的并且更容易修复。

    什么是WordPress恢复模式?

    WordPress 5.2发布之前,您通常会看到WordPress白屏死机。自2019年5月引入WordPress恢复模式以来,当发生不良情况时,用户通常会在其网站上看到错误消息。当检测到问题时,WordPress会向管理员发送一封电子邮件,其中包含登录链接和有关错误的详细信息。

    WordPress恢复模式通知邮件

    您可能想知道是什么导致了这些消息。大多数情况下,这是由于代码损坏或插件更新严重错误造成的。其他可能的原因是插件冲突、主题问题或您可能已实现的自定义代码。无论是什么原因,WordPress都能很好地识别何时出现问题并让您知道它。

    WordPress进入恢复模式时会发生什么?

    发生错误时,WordPress将尝试识别问题并将其隔离。如前所述,会生成一封电子邮件并将其发送给站点管理员。接下来,WordPress将禁用错误代码,以便您可以登录到您的站点来纠正问题。请注意,恢复模式不会为您修复您的网站。它只允许您访问该站点,以便您可以更正它。世界其他地方都会看到错误消息,因此尽快解决问题至关重要。

    您可以在恢复模式下做什么?

    恢复模式最好的一点是能够在不需要FTP的情况下解决错误。这在处理插件或主题问题以及修复一两行损坏的代码时非常有用。当您登录到恢复模式时,您可能会直接在WordPress仪表盘中了解您的问题。恢复模式由管理栏右上角的一个大红色按钮指示。

    您可以修复有问题的插件

    在此示例中,您将看到错误源于插件未正确加载。仪表盘显示描述问题的错误消息,并为您提供修复它的链接。

    恢复模式界面

    单击提供的链接后,您将被重定向到显示问题插件的新屏幕,以及详细说明遇到的特定问题的代码行。在此示例中,您有两个选择。停用插件,或继续使用它。显然,安全的选择是停用插件。然后,您将对发生的问题进行故障排除,并采取措施进行修复。

    WordPress恢复模式问题

    解决主题问题

    此示例为我们提供了一个严重错误,其中包含有关导致错误的更具体的详细信息。基本上,我们在主题的functions.php文件中删除了一个分号,以触发恢复模式。

    主题报错提示

    WordPress做了它的事情并生成了一封电子邮件,让我们知道存在问题。如屏幕截图所示,我们提供了一个链接来登录以纠正问题。此外,WordPress让我们确切地知道错误是什么。

    主题错误邮件提醒

    登录后,我们发现我们的主题存在问题。WordPress提示我们点击进入主题屏幕。

    主题错误链接

    在这一点上,我们知道问题是什么(因为是我们造成的),并纠正它。但是,如果您发现自己处于类似情况,您的下一步行动应该是禁用您的主题,检查您的functions.php文件是否有错误,并在查找导致问题的代码时启用默认主题。

    安全模式是否与恢复模式做同样的事情?

    简而言之,没有。Divi等主题通常使用安全模式来禁用插件、自定义脚本和子主题。此外,一些插件(例如WP Safe Mode)提供相同的功能。恢复模式和安全模式的区别很简单。在恢复模式下,导致问题的特定插件或主题被禁用,而不是所有主题和插件。

    为什么需要WordPress恢复模式?

    WordPress恢复模式会派上用场有几个原因。首先,它允许您通过在站点上显示不同类型的错误消息来识别站点错误。无论是严重的错误消息、技术难题,还是只是 PHP 错误,恢复模式都可以证明对解决它们很有用。另一个可能的原因是您当前版本的PHP不支持您的主题或其中一个插件。

    WordPress恢复模式中显示的常见错误

    大多数情况下,WordPress会通过向您提供错误消息来提醒您注意问题。您可能会看到各种类型的消息,因此我们将帮助您识别它们以及每种消息的可能原因。

    1. 严重错误信息

    WordPress严重错误信息

    WordPress恢复模式中的严重错误消息通常包含以下消息:

    There has been a critical error on your website. Please check you site admin email inbox for instruction.

    严重错误信息常见原因

    您收到此错误消息的原因可能有很多。大多数时候,它可以缩小到几个。让我们探讨最常见的原因。

    有问题的插件

    可在WordPress中使用的大量插件是其最佳功能之一。话虽如此,它可能是一把双刃剑。在为您的站点安装和使用新插件时,通常最好进行研究。有些已过时、不再受支持或与最新版本的WordPress不兼容,应避免使用。然而,即使是最好的计划有时也会被毁掉。在这种情况下,恢复模式是您的朋友。

    自定义代码出错

    即使是经验丰富的WordPress开发人员有时也会犯错误。WordPress很棒,因为您可以自定义它以满足您的需求。有很多机会可以编写自定义脚本、创建自定义插件或简单地使用一点javascript来增强主题的功能。有时,只需要一个缺少的分号就可以让整个事情崩溃。使用恢复模式,当您犯错时,您不必担心从头开始构建。问题通常会被识别出来,有时甚至可以精确到代码行,这样您就可以修复问题并迅速恢复运行。

    不完整的或过时的主题

    主题非常适合让您的WordPress从人群中脱颖而出。像Divi这样的主题允许您广泛地自定义您的网站,从而提供无穷无尽的设计选项。市场上有1000种主题。有时,当主题更新时,电线会交叉,您的主题可能会中断。此外,在某些情况下,您安装了主题并忘记更新它。如果 WordPress 发布了与您的主题不兼容的更新版本,您可能会收到技术困难错误消息。

    2. 技术问题错误信息

    技术问题错误信息

    您可能需要恢复模式的另一个原因是当您收到可怕的技术问题错误消息时。WordPress恢复模式中的技术困难错误消息通常包含以下简单但非常令人不安的消息:

    The site is experiencing technical difficulties.

    技术问题错误信息常见原因

    虽然您看到此问题的原因可能有很多,但最常见的问题是主题或插件冲突。其他可能的原因可能是您的网站被注入了恶意软件。

    与插件的主题冲突

    有时在插件更新期间,可能会与您的主题发生冲突。著名的主题创建者通常会很好地保持他们的框架是最新的。但是,在某些情况下,主题更新还不够。如前所述,明智的做法是选择具有良好声誉且定期更新的插件。选择未经您当前版本的WordPress测试的插件可能会导致您的网站出现错误。

    插件与另一个插件冲突

    与主题冲突类似,插件也可能与其他插件不兼容。在安装新插件之前做你的研究。检查支持渠道以及该特定插件的 WordPress.org 论坛页面,以在下载前了解潜在问题。在考虑新插件时,您应该考虑WordPress插件库的其他选项。如果您是闪电博用户,我们所开发的插件是寻找为您的网站添加新功能的好地方。此外,当您的网站需要新功能时,其他高级插件产品也是不错的选择。

    您的网站已被黑客入侵

    让您的网站被黑客入侵可能是网站所有者或开发人员可能遇到的最可怕的情况之一。您可能会被锁定在您的网站之外,您的网站可能会被重定向,或者它可能被不良行为者用于邪恶目的。当您的网站被黑客入侵时,可能会运行脚本并引发错误,从而提醒WordPress存在它们。那时恢复模式将启动。

    3. PHP代码错误

    有时您不会看到严重或技术困难的错误消息。您的屏幕上可能只有几行PHP。在这种情况下,这通常是由您的主题问题引起的。您的主题可能已过时、缺少代码或您实现的自定义代码导致冲突。

    4. 你的PHP版本有问题

    要评估的另一件事是在您的站点上运行的php版本。有时,通过切换到不同的版本可以轻松纠正问题。例如,如果您的主题已过时且没有可用的新版本,则将php回滚到旧版本可能会解决问题。但是,WordPress不建议回滚超过7.4。这样做会使您的站点容易受到安全问题和性能下降的影响。

    您还可以使用WordPress的内置站点健康功能检查您的WordPress站点健康状态。检查 WordPress 的站点运行状况,从仪表盘导航到工具 > 站点运行状况。这应该显示您是否使用过时的PHP版本,以及其他关键问题和建议。

    站点健康

    如何进入WordPress恢复模式

    基本上可以通过三种方式访问​​恢复模式:

    1. 访问WordPress恢复电子邮件。这需要单击WordPress恢复模式电子邮件中提供的链接。
    2. 通过wp-config.php手动访问WordPress恢复模式。这包括通过FTP将一行PHP代码添加到您的wp-config.php文件中,如果您无权访问您的管理员电子邮件。
    3. 手动添加恢复URL。这涉及手动重新创建恢复模式URL。

    让我们更详细地探讨这些方法。

    访问WordPress恢复电子邮件

    确保恢复电子邮件的第一步是确保您的管理员电子邮件地址在WordPress中正确。您需要在遇到问题之前执行此操作,因为您可能无法访问wp-admin仪表盘。拥有不正确的管理员电子邮件将阻止您以简单的方式使用恢复模式。

    要检查这一点,请登录您的WordPress站点并导航到设置。接下来,单击常规。查找WordPress管理电子邮件地址。如果您的电子邮件地址正确,您应该能够在出现问题时收到恢复电子邮件。

    WordPress管理员邮箱地址

    发生错误时,WordPress会向您发送一个电子邮件地址,提醒您网站上的问题。电子邮件中包含的链接会将您带到恢复登录屏幕。登录后,您将可以看到有关错误的详细信息 – 使您能够纠正问题。

    如何手动访问WordPress恢复模式

    WordPress恢复模式是一项很棒的功能,但是如果您无法访问管理员电子邮件并需要更改它怎么办?有时您无法访问网站后端来更改电子邮件,因此您需要尝试不同的方法来启用恢复模式。

    编辑您的Wp-config.php文件

    对于此示例,您将使用FileZilla等FTP程序来编辑wp-config.php文件。您需要定义一个电子邮件地址,以便WordPress知道将警报消息发送到哪里。我们将使用FileZilla向您展示如何编辑文件。

    首先,打开FileZilla并与您的服务器建立连接。您可以通过大多数WordPress托管服务提供商找到并生成SFTP凭据。获得建立连接所需的信息后,单击站点管理器

    FileZilla站点管理

    出现对话框时,单击当前站点,或单击新站点添加新站点。从下拉菜单中选择SFTP ,然后输入您的主机端口。接下来,从登录类型菜单中选择正常,填写您的用户密码信息,然后单击连接

    FileZilla服务器连接

    通过选择/public-html/文件夹导航到wp-config文件。选择wp-config.php文件,然后单击view/edit

    编辑wp-config.php文件

    接下来,将以下代码行添加到文件中。请务必将you@yoursite.com更改为您的电子邮件地址。

    define( ‘RECOVERY_MODE_EMAIL’, ‘you@yoursite.com’ );
    define( ‘RECOVERY_MODE_EMAIL’, ‘you@yoursite.com’ );
    define( 'RECOVERY_MODE_EMAIL', 'you@yoursite.com' );

    最后,点击保存。添加代码告诉WordPress将恢复电子邮件发送到您在WordPress设置中指定的管理员电子邮件地址。请记住,如果系统在当天已经生成了一封电子邮件,那么您需要等待24小时才能收到另一封电子邮件。这并不总是适合你,所以让我们探索另一种方式。

    手动添加恢复URL

    如果您不能等待24小时让WordPress发送恢复电子邮件,可以尝试另一种方法。您可以手动生成恢复链接以访问该站点。

    在浏览器中打开您网站的主页。接下来,将其添加到URL后面。

    /wp-login.php?action=entered_recovery_mode

    我们想提一下,这在我们尝试进行此修复的大多数网站上都有效。话虽如此,如果您使用插件或其他方法来屏蔽您的wp-admin登录URL,则需要使用以下链接的变体。请务必将/custom-login/替换为您的自定义登录URL后缀。

    /custom-login/?action=entered_recovery_mode

    当您手动重新创建恢复URL时,您可能不会收到那些方便的错误来告诉您问题出在哪里。在这种情况下,您需要设置故障排除上限并开始工作。

    如何退出恢复模式

    退出恢复模式非常容易。WordPress提供了几个链接供您退出。首先是单击wp-admin面板顶部栏中的红色退出恢复模式按钮。其次,是通过单击仪表盘中错误消息旁边的链接。

    退出WordPress恢复模式

    请务必注意,您应该确保在退出恢复模式之前已更正任何问题。如果您在没有解决问题的情况下这样做,您的网站将继续显示错误消息,使访问者无法访问您的网站。

    如果您无法退出恢复模式怎么办?

    在极少数情况下,即使解决了问题,您也可能无法退出恢复模式。在这些情况下,您需要启用调试以尝试确定问题所在。有几种方法可以解决这个问题。

    首先,您可以编辑wp-config.php文件。为此,请通过FTP打开您的wp-config.php文件。第一行应该已经存在。您只需要将false更改为true。需要添加第二行。这基本上告诉WordPress使调试日志可见。如果您仍然无法访问网站的后端,则此方法很有价值。

    define( ‘WP_DEBUG’, true );
    define( ‘WP_DEBUG_LOG’, true );
    define( ‘WP_DEBUG’, true );
    define( ‘WP_DEBUG_LOG’, true );
    define( 'WP_DEBUG', true );
    define( 'WP_DEBUG_LOG', true );

    当您确实可以访问后端时,最好使用第二种方法。WordPress存储库中有几个调试插件可用。我们推荐的一项是运行状况检查和故障排除。它会让您对站点中发生的事情有一个很好的了解,并可以帮助您解决问题。

    最后一个选项是在您的托管服务提供商中使用调试模式。

    小结

    WordPress恢复模式是一项很棒的功能,可帮助您识别和纠正网站上的问题。大多数情况下,问题可以很容易地追溯到插件、主题冲突或自定义代码中的错误。但是,可能存在需要额外故障排除的情况。如果我们前面提到的方法对您不起作用,请尝试通过一些常见的WordPress错误排除故障,以使您的网站从死亡边缘恢复。

  • 恶意软件的类型:了解如何更好地保护自己

    恶意软件的类型:了解如何更好地保护自己

    在当今高度互联的世界中,网络犯罪正在蓬勃发展,恶意软件是其最流行的武器。

    恶意软件有多种形式并具有不同的安全威胁级别。黑客使用它们来拦截设备、数据泄露、摧毁整个企业、造成严重的金钱损失,甚至摧毁整个公司。

    那么,究竟什么是恶意软件,你如何对抗它呢?

    在这份详尽的指南中,我们将解释有关恶意软件的所有知识、其类型、如何检测和删除它,以及如何保护自己免受最恶毒的恶意软件攻击。

    1. 什么是恶意软件?
    2. 恶意软件的工作原理
    3. 不同类型的恶意软件
    4. 如何检测恶意软件
    5. 如何摆脱恶意软件
    6. 如何保护自己免受恶意软件的侵害

    什么是恶意软件?

    恶意软件是恶意软件的缩写,是任何破坏或未经授权访问其他用户的设备、网站或网络的软件,主要用于数据泄露、身份盗窃、间谍活动等险恶目的。

    Yisrael Rada于1990年创造“恶意软件”一词​​之前,“计算机病毒”是首选术语。它们经常被伪装成干净无害的程序。

    恶意软件可以破坏您的服务、删除您的文件、将您锁定在系统之外、窃取您最私人和机密的信息、将您的设备变成僵尸,甚至破坏整个网络和网站。

    网站恶意软件

    鉴于网站、电子商务解决方案和Web应用程序的指数级增长,网络犯罪分子有无数机会实施他们的恶意计划并利用任何可能的漏洞。

    浏览器的“此站点包含恶意软件”警告

    浏览器的“此站点包含恶意软件”警告(图片来源:FixMyWP

    网站恶意软件专门攻击网站和服务器。它们通常被开发用于绕过网站或服务器的安全防御——或通过不受信任的第三方软件——并在不被发现的情况下获得未经授权的访问。网站恶意软件示例包括DDoS攻击、恶意重定向和垃圾邮件内容。

    恶意软件的工作原理

    网络犯罪分子使用不同的方式通过恶意软件渗透并破坏您的系统。那么你怎么会被恶意软件感染呢?以下是一些流行的攻击途径。

    1. 社会工程学

    恶意软件通常通过社会工程攻击传播。社会工程描述了各种各样的恶意网络攻击。攻击者主要依靠诱骗用户泄露敏感信息或访问他们的设备。

    谷歌的网络钓鱼警告标志

    谷歌的网络钓鱼警告标志(图片来源:FixMyWP

    网络钓鱼是网络犯罪分子用来传播恶意软件的最流行的社会工程攻击——通常是通过电子邮件。您知道92%的恶意软件是通过电子邮件传递的吗?

    2. 捆绑软件

    当您下载带有其他第三方应用程序的免费软件程序时,您可能会被恶意软件感染,其中一个应用程序可能包含恶意软件。许多人成为这种恶意软件攻击的受害者,因为他们忘记取消选中这些附加应用程序的安装。

    3. 点对点文件共享

    点对点 (P2P) 文件共享协议(例如种子文件)是网络犯罪分子用来分发恶意软件的主要方法之一。攻击者可以通过P2P共享的文件快速传播他们的恶意代码,从而感染尽可能多的网络和系统。

    4. 免费软件

    因为获得免费的东西总是一个有吸引力的选择,它通常会付出高昂的代价。从未知或不受信任的来源下载的免费软件通常会感染恶意软件,这些恶意软件可能会损坏您的系统并危及您的数据。

    5. 同质性

    同质性可能会成为恶意软件攻击的诱饵。恶意软件可以通过连接到同一网络并运行同一操作系统的系统迅速传播。如果一台设备被感染,很可能整个网络都受到了威胁。

    不同类型的恶意软件

    了解您的敌人对于了解如何摆脱恶意软件并保护您的计算机、网站或服务器非常重要。这些是您应该了解的最常见的恶意软件类型。

    1. 病毒

    病毒是最明显和最常见的恶意软件类型。病毒可以自我复制,但它们也需要人类行动来造成损害。

    病毒造成的损害包括破坏数据文件、关闭系统或窃取网络内的机密信息。病毒还可以发起其他网络攻击,例如DDoS攻击甚至勒索软件攻击。

    受感染的文件、网站或应用程序必须正在运行,病毒才能唤醒并开始运行。否则,它将保持休眠状态,直到受害者用户运行它。大多数病毒会爬起来并隐藏在.exe.com等常见文件扩展名中。

    如果有权访问仪表盘的用户使用受感染的设备,甚至WordPress网站也可能被感染。

    宏病毒

    宏病毒以软件而不是操作系统为目标,其宏语言与其目标感染的软件(例如MS Word和Excel)相同。因此,这种类型的病毒可以感染任何操作系统,从而给您的组织带来严重的安全风险。

    宏病毒可以通过网络钓鱼电子邮件、受感染网络的下载、恶意P2P服务或受感染的便携式存储设备进行传播。

    2. 勒索软件

    您可能听说过威胁政府、个人和组织的可怕勒索软件攻击。但也许您不确定勒索软件到底是什么以及它是如何工作的。

    简单来说,勒索软件会劫持目标受害者的设备或网站,拒绝他们访问他们的文件,直到他们支付赎金以获得解密密钥(尽管即使您付费也不能保证)。

    自2017年通过WannaCry加密蠕虫传播以来,勒索软件已演变成不同的变体。让我们看一些勒索软件变种的例子。

    Ryuk

    Ryuk是一种加密目标系统文件的勒索软件。这种勒索软件变种针对使用Microsoft操作系统的企业和组织,而不是个人。Ryuk价格昂贵,因为其背后的组织要求以比特币等加密货币支付超过100万美元的赎金。

    LockBit

    LockBit是勒索软件的赎金即服务 (RaaS) 变体,可在被安全系统和IT团队检测到之前攻击并快速加密大型组织的数据。支付赎金后,LockBit团伙将收益与指导攻击的会员分摊。

     

    LockBit的支持页面

    LockBit的支持页面(图片来源:DFIR报告

     

    作为RaaS恶意软件,LockBit团伙通过附属服务传递恶意软件。一旦它感染了一台主机,它就会扫描网络。它可以使用与Windows系统相关的协议快速传播到其他设备,因此很难被识别为威胁。

    WordPress勒索软件

    顾名思义,WordPress勒索软件以WordPress网站为目标,并在要求赎金的情况下通过它们传播。WordPress网站越大,它就越能吸引勒索软件网络犯罪分子。

    最近,许多合法的WordPress网站被黑客入侵并注入了恶意代码,这些恶意代码通过将访问者引导到带有核攻击工具包的恶意网站来传播TeslaCrypt勒索软件

    3.蠕虫

    计算机蠕虫是一种令人讨厌的、自包含类型的恶意软件,由于其快速传播能力,它是一场噩梦。第一个计算机蠕虫,莫里斯蠕虫,创建于1988年,旨在通过利用电子邮件协议漏洞来突出网络弱点。

    与病毒一样,蠕虫可以自我复制,但与病毒不同的是,蠕虫不需要任何人为干预、文件或主机程序即可在网络上从一台设备传播到另一台设备并造成严重破坏。

    蠕虫占据整个系统并吞噬磁盘空间/带宽/内存,修改或删除文件,将您锁定在文件夹之外,甚至安装其他恶意软件并窃取数据。网络攻击者通常会设计蠕虫来安装后门软件程序以访问受害者的设备(计算机、手机、平板电脑等)。

    蠕虫利用目标系统的漏洞,通过LAN(互联网)、电子邮件附件、即时消息、恶意链接、可移动存储驱动器、种子,甚至文件共享平台,像野火一样从一台设备传播到另一台设备。

    在过去的几十年里,蠕虫造成的损害是巨大的。例如,2004年针对企业的MyDoom蠕虫造成了大约400亿美元的损失。2017年,臭名昭著的WannaCry蠕虫启动了勒索软件,其目的是从被黑用户的文件中索取赎金。

    4.特洛伊木马

    特洛伊木马,或简称木马,是一种恶意软件程序,它伪装成合法软件,让网络攻击者访问用户的系统。

    这个词来源于古希腊关于木马作为入侵特洛伊市的礼物的故事。特洛伊木马易于编写和传播,使其难以防御。

    木马可以伪装成网站、媒体文件或任何吸引您注意的软件程序,将其安装在您的设备上。它甚至看起来像一个防病毒程序,警告您您的设备已被感染,并敦促您运行程序来清理它。

    木马也可以作为合法网站或带有受感染链接的电子邮件出现。一些流行的特洛伊木马示例包括Magic Lantern、WARRIOR PRIDE、FinFisher、Beast、Tiny Banker、Zeus、Netbus、Beast和Shedun。

    与计算机病毒不同,木马不会自我复制。它的任务是为黑客和诈骗者打开一扇门,以窃取您的信息,例如密码、IP地址和银行详细信息。木马恶意软件将潜伏在受感染的系统中,直到受害者执行它。

    远程访问木马 (RAT)

    远程访问木马 (RAT) 是网络犯罪开发人员发明的一种恶意工具,用于获得对受害者设备的完全访问和远程控制,例如文件访问、网络远程访问以及键盘和鼠标控制。

    RAT允许攻击者绕过常见的防火墙和身份验证系统以静默浏览您设备的文件和应用程序。

    它们甚至可以感染整个网络,例如2015年在乌克兰发生的臭名昭著的攻击,网络犯罪分子使用RAT恶意软件切断了80,000人的电源并控制了基础设施。

    5. Gootloader

    Gootloader针对Google和WordPress用户。它是Gootkit恶意软件家族的成员——一种复杂类型的银行恶意软件,可以从受害者的浏览器中窃取数据,并用于传播勒索软件等恶意代码。

     

    论坛中的Gootloader示例

    论坛中的Gootloader示例(图片来源:Sophos

     

    Gootloader是一个基于JavaScript的恶意框架,主要用于分发Gootkit恶意软件。但是,它已经过改进并扩大了其有效负载,以覆盖Gootkit并进入基于NodeJS的恶意软件,从而导致SEO中毒。

    新的Gootloader恶意软件可以欺骗Google将受感染(被黑)的网站视为可信网站,包括排名靠前的Google和WordPress网站。那么,这怎么可能呢?

    Gootloader攻击者首先针对众多网站,并将它们维护在大约400台服务器的网络上。之后,他们更改了这些网站的CMS,以使用特定的SEO术语和策略出现在Google的热门搜索结果中,以吸引更多受害者。

    当涉及到WordPress网站时,Gootloader通过将代码行注入网站页面的文件来进行攻击。在执行时,这些代码行会运行特定命令,以强制受感染的网站下载大量带有虚假内容的页面作为诱饵。同时,攻击者执行其恶意计划——未被发现。

    6. 无文件恶意软件

    如果勒索软件不好,无文件恶意软件就更糟了。最近的研究表明,无文件恶意软件的比率在2020年最后一个季度增长了近900%!

    顾名思义,无文件恶意软件是一种险恶的隐身攻击,不需要存储在文件中或通过任何软件直接安装在设备上。相反,无文件恶意软件会直接进入内存并开始执行代码或提取数据而不会引起注意,这使得即使是防病毒软件也很难追踪和删除。

    无文件恶意软件攻击通过社会工程方法以受害者为目标。让我们看看下面的那些主要方法。

    网络钓鱼电子邮件和受感染的链接

    当您点击垃圾邮件、恶意下载或受感染的网站时,您允许恶意软件加载到您设备的内存中,从而为攻击者打开一扇门,通过脚本加载代码,从而窃取您的敏感数据。

    内存代码注入

    这种类型的无文件恶意软件远程感染受信任的操作系统软件,例如Microsoft PowerShell和Windows Management Instrumentation (WMI)。例如,Purple Fox是一种内存代码注入恶意软件,它通过注入恶意代码在系统中传播来感染PowerShell。Purple Fox已经感染了至少30,000个系统。

    注册表操作

    该恶意软件通过将恶意代码注入Windows注册表来工作。一个著名的例子是针对Windows系统的Kovtermalware。它经常未被检测到,因为它通过瞄准计算机的注册表来存储其配置数据来逃避文件扫描。

    7. 间谍软件

    间谍软件会在您不同意或不知情的情况下安装在您的计算机上。它访问浏览习惯、互联网活动、击键、pin、密码、财务信息等等。它不仅限于计算机。您使用的任何连接到互联网的设备都容易受到此类恶意软件的攻击,甚至是智能手机。

    收集到的信息随后会在未经您同意或不知情的情况下被转发给犯罪者,犯罪者可以使用或将其出售给第三方。间谍软件本身不会对您的计算机有害。但是,您的信息的收集和盗窃是首要问题。间谍软件的存在也表明您的设备安全存在弱点。

    间谍软件造成的损害范围很广,从将您的信息出售给广告商这样简单的事情一直到完成身份盗窃。例如,间谍软件DarkHotel在连接到公共酒店WiFi时以企业主和政府官员为目标。然后,网络犯罪分子使用它从这些目标的设备中获取敏感信息。

    8. 广告软件

    广告软件与间谍软件略有相似,因为它也收集诸如浏览活动之类的信息。尽管如此,它并不会跟踪击键,它的唯一目的是为您量身定制广告。但是,某些广告软件可能更具攻击性,甚至会更改您的浏览器设置、搜索引擎偏好等。

    一些广告软件侵入性较小,在收集信息之前会征得您的许可。再说一次,一旦收集到信息,以后可以在未经您同意的情况下将其出售给其他广告商。

    9. 恶意广告

    恶意广告是指网络犯罪分子将恶意软件隐藏在合法广告中。在这种情况下,攻击者会花钱在合法网站上添加广告。点击广告后,您要么被重定向到恶意网站,要么恶意软件会自动安装在您的计算机上。

    在某些情况下,广告中嵌入的恶意软件可能会自动执行,您甚至无需点击广告——这被称为“路过式下载”。

    一些网络犯罪分子甚至可以渗透到负责向几个大型知名网站投放广告的合法和大型广告网络。这使他们所有的受害者都处于危险之中。

    10. 键盘记录器

    键盘记录器是一种恶意软件,可监控受感染用户的在线活动。但是,键盘记录器在某些情况下具有合法用途。例如,一些企业使用它们来跟踪员工的活动,一些父母监控孩子的在线行为。

    在其他情况下,网络犯罪分子使用键盘记录器来窃取密码、财务数据或敏感信息。网络犯罪分子使用网络钓鱼、社交工程或恶意下载将键盘记录器引入您的系统。

    键盘记录器的一个著名例子是Olympic Vision,它针对来自世界各地的企业高管。这些攻击被标记为商业电子邮件泄露 (BEC)。Olympic Vision依靠鱼叉式网络钓鱼和社会工程技术来访问其目标系统、窃取信息和监视商业交易。

    11. 机器人/僵尸网络

    机器人是通常远程控制的软件应用程序,可以根据命令执行任务。它们可以有合法用途,例如索引搜索引擎。尽管如此,它们也可以通过连接回中央服务器的自倍增恶意软件的形式被恶意使用。

    僵尸程序通常大量运行,统称为僵尸程序网络或僵尸网络。这些用于发起远程控制的大量攻击,例如DDoS攻击。

    例如,Mirai僵尸网络可以通过输入设备的默认用户名和密码来访问所有连接到互联网的设备,包括打印机、智能设备、DVR等。

    12. Rootkit

    rootkit被认为是最危险的恶意软件之一——它是一个后门程序,允许网络犯罪分子获得完全访问权限并控制受感染的设备,包括管理权限。

    然后,渗透者可以监视目标设备、更改其配置、窃取敏感数据以及几乎其他任何事情。所有这些都是远程完成的。Rootkit通常注入到应用程序、内核、管理程序或固件中。

    Rootkit可以通过网络钓鱼、恶意附件、恶意下载和受到威胁的共享驱动器进行传播。此外,rootkit 可以隐藏其他恶意软件,例如键盘记录程序。

    例如,一个名为Zacinlo的rootkit隐藏在一个虚假的VPN应用程序中,并在用户下载该应用程序时感染用户的系统。

    13. SQL注入 (SQLi)

    SQL注入(SQLi) 是最常见的数据库攻击之一,自1998年发现以来一直是开发人员严重关注的问题。

    当攻击者利用应用程序代码中的漏洞并将恶意SQL查询注入到目标网站上的任何输入字段(例如登录字段、联系表单、站点搜索栏和评论部分)时,就会发生SQL注入。

    成功的SQLi攻击使黑客能够访问敏感数据、恢复系统文件、在您的网站数据库上执行管理任务、修改数据库信息。他们甚至可以向操作系统的核心数据库发出和执行命令。

    2018年,攻击者在Cisco Prime License Manager中发现了一个漏洞,该漏洞使他们能够通过shell访问许可证管理器的系统,其中一次广泛的SQL注入攻击针对的是Cisco。SQL注入的其他知名受害者是Tesla和Fortnite。

    如何检测恶意软件

    鉴于恶意软件类型和变体的广泛性,以及恶意软件攻击的日益复杂,检测它们从未如此困难,尤其是随着无文件恶意软件等特别恶意威胁的增长。

    尽管如此,一些关键的警告标志可以判断您的设备是否感染了恶意软件:

    • 您的设备速度变慢、突然崩溃或频繁显示错误消息。
    • 您无法删除特定软件。
    • 您的设备不会关闭或重新启动。
    • 您发现您的设备正在发送不是您编写的电子邮件。
    • 程序会自动打开和关闭。
    • 没有明显原因,您的存储空间不足。
    • 您的默认浏览器和程序会不断变化,无需您采取任何行动。
    • 性能下降,而电池消耗增加。
    • 您会在意想不到的地方看到很多弹出窗口和广告,例如在政府网站上。
    • 您无法登录您的网站。
    • 您注意到您没有对您的网站进行的更改。
    • 您的网站重定向到另一个网站。

    由于无文件恶意软件非常难以检测,因此您能做的最好的事情就是密切关注网络模式并分析易受感染的应用程序。您还需要使您的软件程序和浏览器保持最新,并定期搜索任何网络钓鱼电子邮件。

    如何摆脱恶意软件

    如果您被恶意软件感染,请务必不要惊慌。有几个选项您仍然可以保存您的设备或网站。请记住,不同类型的恶意软件需要不同的删除程序。

    从设备中删除恶意软件

    如果您发现您的计算机或移动设备出现上述部分或全部恶意软件感染迹象,请首先确定恶意软件的类型,然后开始采取以下措施:

    • 病毒或木马:如果您的设备感染了病毒或木马,您需要安装可靠的防病毒或反恶意软件程序,以执行深度扫描。定期更新防病毒软件很重要。部署强大的防火墙并在单击电子邮件附件和Web链接时要小心。
    • 蠕虫:尽管它具有危害性,但您可以像清除病毒一样清除计算机蠕虫。安装功能强大的反恶意软件,可以检测蠕虫并让它完成所有工作。如果您的浏览器被感染,请使用另一台计算机,安装反恶意软件,然后将其刻录到CD上。
    • 垃圾邮件:如今的电子邮件服务包括反垃圾邮件功能。但是,您仍然可以安装反垃圾邮件软件来帮助您摆脱垃圾邮件并保护您。

    勒索软件:如果您的组织没有支付赎金,您需要为当局记录攻击证据,然后立即断开受感染的设备。之后,如果您仍然可以访问,请创建系统备份,禁用任何系统清理或优化程序以保留勒索软件文件以进行诊断。最后,开始使用强大的网络安全软件删除勒索软件,并聘请网络安全专家指导您完成恢复文件的过程。

    • 广告软件:可以使用具有广告软件删除功能的反恶意软件程序来清除广告软件。请务必禁用浏览器上的弹出窗口并默认禁用安装其他软件。

    从WordPress网站中删除恶意软件

    尽管WordPress为成长中的企业带来了很多好处,但它仍然存在一些安全漏洞。如果您的WordPress网站受到恶意软件感染,请按照我们推荐的步骤将其删除,就像熟练的网络管理员一样。

    您可以利用很多WordPress安全插件来保护您的网站。

    如何保护自己免受恶意软件的侵害

    正如您现在可能已经意识到的那样,恶意软件攻击是一件大事,学习如何保护自己免受攻击并避免被它们感染对于个人和企业来说都是必不可少的。

    在大多数情况下,恶意软件感染需要您采取行动,例如下载恶意内容或单击受感染的链接。以下是您可以采取的主要预防措施,以避免受到不同类型的恶意软件的攻击。

    1.安装反恶意软件或防病毒软件

    在您的系统上安装强大的反恶意软件或防病毒软件并定期更新非常重要。运行频繁的扫描,尤其是深度扫描,以确保您的设备没有受到感染。反恶意软件程序有不同的保护级别:

    • 浏览器级保护:某些网络浏览器(例如Google Chrome)具有内置的反恶意软件保护功能,可保护您免受不同的恶意软件威胁。您也可以安装自己的以保护您的浏览器。
    • 网络级保护:如果您在组织内拥有计算机网络,则安装网络级反恶意软件是保护连接设备免受来自网络流量的恶意威胁的最佳选择。为此特别推荐使用防火墙。
    • 设备级保护:这些工具有助于保护用户的设备免受恶意威胁。
    • 服务器级保护:如果您有一个大型组织,这种类型的反恶意软件可以保护您的服务器网络免受恶意网络攻击。

    2. 不要打开来自不受信任来源的电子邮件

    避免网络钓鱼从一个重要步骤开始:不要打开带有可疑附件的可疑电子邮件。

    如果您不确定是否可以遵守此规则,或者您不相信您的员工会遵循此黄金建议,那么请投资电子邮件安全工具。您可以使用反垃圾邮件工具和S/MIME证书来保护您的电子邮件通信。

    AS/MIME证书是一种基于PKI的工具,使您能够与其他S/MIME证书用户交换加密和数字签名的电子邮件。这样,您和您的收件人就会知道这些电子邮件是安全且合法的。

    3.提防恶意下载和弹出窗口

    与可疑电子邮件一样,必须注意您下载的内容以及从何处下载。单击链接以从不受信任的来源下载应用程序或游戏是对网络犯罪分子和恶意攻击的邀请。

    弹出窗口也不例外。如前所述,网络犯罪分子使用操纵方式诱骗您点击受感染的链接。

    4. 执行网站和文件安全检查

    保护您的网站应该是您的首要任务。无论您的网站是小型网站还是大型网站,都必须定期进行网站安全检查,以免被任何类型的恶意软件感染。

    您还应该密切关注构成您网站的各个文件。可靠且定期执行的文件完整性监控程序可以帮助您在潜在攻击被触发之前发现它们。

    如果您的网站不安全,它不仅可能被恶意软件感染,还可能引发对其他网站和用户设备的一系列恶意攻击。更重要的是,它会降低您在Google上的SEO排名。您最不想做的就是在互联网上展开恶意软件攻击摊牌!

    5. 维护定期数据备份

    备份个人或公司计算机上的数据至关重要。即使备份数据不会保护您免受恶意软件攻击,但如果您受到勒索软件或任何其他恶意威胁的感染,它将帮助您恢复数据。

    执行健康的数据备份,请保留一份以上的数据副本。最好使用两种不同的媒体类型来存储您的数据文件,以防发生不止一种攻击。您甚至可以选择将一份数据文件副本保存在安全的异地位置。

    小结

    既然您已经全面了解了不同类型的恶意软件以及如何对抗它们,我们强烈建议您投资于可靠且值得信赖的数据安全措施。

    我们还建议及时了解最新的网络安全风险并定期更新您的系统和程序。

  • 了解什么是CSRF攻击及如何锁定CSRF漏洞

    了解CSRF攻击和锁定CSRF漏洞

    网络漏洞很猖獗,而且不断增加。维护你的用户的安全和隐私比以往任何时候都更重要。 不解决网络漏洞会导致声誉毁于一旦,并被监管机构处以巨额罚款,你还会失去用户的信任。

    网站和网络应用程序很容易受到恶意软件、垃圾邮件和其他攻击–本文重点讨论其中一个攻击媒介–跨站请求伪造(CSRF)攻击。CSRF攻击特别令人不安,因为它们可以在用户不知情的情况下发生。开发人员或网站所有者也很难发现它们,因为恶意请求看起来与真实请求高度相似。

    本文探讨了CSRF攻击,它是如何工作的,以及你可以采取哪些步骤来准备应对。

    1. 什么是CSRF攻击?
    2. CSRF攻击是如何工作的?
    3. GET请求的CSRF
    4. POST请求的CSRF
    5. 减轻CSRF攻击的3种方法
    6. 如何使用CSRF令牌防止CSRF攻击
    7. 如何利用Referrer标头来防止CSRF攻击

    什么是CSRF攻击?

    跨站请求伪造攻击,也被称为CSRF攻击,通过提交恶意请求,在不知不觉中欺骗认证用户,使其执行非预期的操作。

    CSRF攻击是如何工作的

    CSRF攻击是如何工作的。(图片来源: Okta)

    通常情况下,CSRF攻击涉及改变状态的请求,因为攻击者没有收到回应。这类请求的例子包括删除记录、更改密码、购买产品或发送消息。这些都可以在用户不知情的情况下发生。

    恶意攻击者通常使用社会工程,通过聊天或电子邮件向毫无戒心的用户发送一个链接。

    当用户点击该链接时,它就会执行攻击者设置的命令。

    例如,点击一个链接可以从用户的账户中转移资金。或者,它可以改变用户的电子邮件地址,使他们无法重新获得账户访问权。

    CSRF攻击是如何工作的?

    让用户在登录时发起一个改变状态的请求是CSRF攻击的第一步,也是最关键的一步。通过CSRF攻击,攻击者的目的是让已认证的用户在不知情的情况下向网站或网络应用程序提交一个恶意的网络请求。这些请求可以包括cookies、URL参数和其他在用户看来正常的数据类型。

    要使CSRF攻击成功,必须发生以下条件:

    • 一个经过验证的用户必须登录到一个使用cookies进行会话管理的网络应用程序。
    • 攻击者必须创建一个改变状态的伪造请求。
    • 由目标服务器处理的真正的请求不应包含不可预测的参数。例如,在启动状态改变请求之前,请求不应该期望有一个密码作为验证的参数。

    完成CSRF攻击的最常见方法是在具有薄弱的SameSite cookie策略的应用程序中使用cookie。 网络浏览器自动地、通常是匿名地包括cookies,它们在用户向某个域发出的任何网络请求中保存该域所使用的cookies。

    SameSite cookie策略定义了浏览器在跨站浏览情况下如何对待cookie。如果设置为严格,cookie就不会在跨网站浏览的情况下共享,从而防止CSRF攻击。如果设置为无,浏览器会在所有的跨网站上下文中附加cookie。这就使应用程序容易受到CSRF攻击。

    当用户在不知情的情况下通过网络浏览器提交一个恶意请求时,保存的cookie会使该请求在服务器看来是合法的。然后,服务器通过改变用户的账户、改变会话状态或返回所请求的数据来响应该请求。

    让我们仔细看看CSRF攻击途径的两个例子,一个是GET请求,另一个是POST请求。

    GET请求的CSRF

    首先,考虑一个金融银行网络应用程序使用的GET请求,攻击利用了GET请求和超链接传递。

    假设转账的GET请求看起来是这样的:

    GET https://xymbank.com/online/transfer?amount=1000&accountNumber=547895 HTTP/1.1
    GET https://xymbank.com/online/transfer?amount=1000&accountNumber=547895 HTTP/1.1
    GET https://xymbank.com/online/transfer?amount=1000&accountNumber=547895 HTTP/1.1

    在上面的真实请求中,用户要求将1000美元转到 547895 的账户中,作为购买产品的付款。

    虽然这个请求是明确、简单和实用的,但它使账户持有人暴露在CSRF攻击之下。这是因为该请求不需要攻击者可能不知道的细节。因此,为了发起攻击,攻击者只需要改变这个请求的参数(金额和账户号码),就可以创建一个可执行的伪造请求。

    恶意请求对银行的任何用户都有效,只要他们正在进行cookie管理会话。

    以下是伪造的向黑客账户(此处为 654585)转账500美元的请求。请注意,下面的示例是CSRF攻击中涉及的步骤的高度简化版本,以供解释。

    GET https://xymbank.com/online/transfer?amount=500&accountNumber=654585 HTTP/1.1
    GET https://xymbank.com/online/transfer?amount=500&accountNumber=654585 HTTP/1.1
    GET https://xymbank.com/online/transfer?amount=500&accountNumber=654585 HTTP/1.1

    一旦完成,攻击者必须找出一种方法,诱骗用户在登录在线银行应用程序时发送此请求。实现这一点的方法之一是创建一个无害的超链接,以吸引用户的注意。链接可能如下所示:

    <a
    href=“https://xymbank.com/online/transfer?amount=500&accountNumber=654585”>Click here to get more information</a>.
    <a
    href=”https://xymbank.com/online/transfer?amount=500&accountNumber=654585″>Click here to get more information</a>.
    <a
    href="https://xymbank.com/online/transfer?amount=500&accountNumber=654585">Click here to get more information</a>.

    如果攻击者找到了目标的正确电子邮件地址,他们可以通过电子邮件将其发送给许多银行客户。那些在登录时单击链接的人将触发请求,从登录的帐户向攻击者发送500美元。

    POST请求的CSRF

    让我们看看,如果同一个金融机构只接受POST请求,他们会如何经历CSRF。在这种情况下,在GET请求的例子中使用的超链接传递将不起作用。因此,一个成功的CSRF攻击将需要攻击者创建一个HTML表单。为购买的产品发送1000美元的真正请求看起来是这样的:

    POST /online/transfer HTTP/1.1
    Host: xymbank.com
    Content-Type: application/x-www-form-urlencoded
    Cookie: session=FRyhityeQkAPzeQ5gHgTvlyxHJYhg
    amount=1000
    account=547895
    POST /online/transfer HTTP/1.1
    Host: xymbank.com
    Content-Type: application/x-www-form-urlencoded
    Cookie: session=FRyhityeQkAPzeQ5gHgTvlyxHJYhg
    amount=1000
    account=547895
    POST /online/transfer HTTP/1.1
    Host: xymbank.com
    Content-Type: application/x-www-form-urlencoded
    Cookie: session=FRyhityeQkAPzeQ5gHgTvlyxHJYhg
    amount=1000
    account=547895

    这个POST请求需要一个cookie来确定用户的身份,他们希望发送的金额,以及他们希望发送的账户。攻击者可以改变这个请求来进行CSRF攻击。

    攻击者只需在一个伪造的请求中添加一个真正的cookie,就可以使服务器处理传输。他们可以通过创建一个看起来无害的超链接,将用户带到一个看起来像这样的触发网页。

    <html>
    <body>
    <form action=“https://xymbank.com/online/transfer” method=“POST”>
    <input type=“hidden” name=“amount” value=“500”/>
    <input type=“hidden” name=“account” value=“654585” />
    </form>
    <script>
    document.forms[0].submit();
    </script>
    </body>
    </html>
    <html>
    <body>
    <form action=”https://xymbank.com/online/transfer” method=”POST”>
    <input type=”hidden” name=”amount” value=”500″/>
    <input type=”hidden” name=”account” value=”654585″ />
    </form>
    <script>
    document.forms[0].submit();
    </script>
    </body>
    </html>
    <html>
    <body>
    <form action="https://xymbank.com/online/transfer" method="POST">
    <input type="hidden" name="amount" value="500"/>
    <input type="hidden" name="account" value="654585" />
    </form>
    <script>
    document.forms[0].submit();
    </script>
    </body>
    </html>

    我们已经在上面的表格中设置了金额和账户参数。一旦认证的用户访问该页面,浏览器在将请求转发给服务器之前会添加会话cookie。然后服务器将500美元转发到黑客的账户。

    减少CSRF攻击的3种方法

    有几种方法可以防止和大大减轻对你的网站或网络应用的潜在CSRF攻击,包括:

    • 使用CSRF令牌
    • 使用referrer标头
    • 选择一个注重安全的托管解决方案

    如何使用CSRF令牌防止CSRF攻击

    一个CSRF安全的网站会给每个会话分配一个唯一的令牌,并与服务器端和客户端浏览器共享它。每当浏览器发送一个敏感请求时,服务器都希望它包含指定的CSRF令牌。如果它有错误的令牌,服务器会放弃它。为了安全起见,CSRF令牌并不存储在客户端浏览器的会话cookies中。

    CSRF令牌的潜在漏洞

    虽然CSRF令牌是一个很好的安全措施,但这种方法并不是防攻击的。伴随着CSRF令牌的一些漏洞包括。

    • 绕过验证 – 一些应用程序如果没有找到令牌就跳过验证步骤。如果攻击者获得了对包含令牌的代码的访问权,他们可以删除该令牌并成功执行CSRF攻击。因此,如果对服务器的有效请求看起来像这样。
    POST /change_password
    POST body:
    password=pass123&csrf_token=93j9d8eckke20d433
    POST /change_password
    POST body:
    password=pass123&csrf_token=93j9d8eckke20d433
    POST /change_password
    POST body:
    password=pass123&csrf_token=93j9d8eckke20d433

    攻击者只需要删除令牌,然后像这样发送就可以执行攻击:

    POST /change_password
    POST body:
    password=pass123
    POST /change_password
    POST body:
    password=pass123
    POST /change_password
    POST body:
    password=pass123
    • 池式令牌 – 一些应用程序维护一个令牌池来验证用户会话,而不是为一个会话指定一个特定的令牌。攻击者只需要获得池中的一个令牌就可以冒充网站的任何用户。

    攻击者可以使用他们的账户登录到一个应用程序,以获得一个令牌,例如:

    [application_url].com?csrf_token=93j9d8eckke20d433
    [application_url].com?csrf_token=93j9d8eckke20d433
    [application_url].com?csrf_token=93j9d8eckke20d433

    而由于令牌是池化的,攻击者可以复制并使用该相同的令牌登录到不同的用户账户,因为你会再次使用它:

    • CSRFs可以将令牌复制到cookie中 – 一些应用程序会将与令牌相关的参数复制到用户的cookie中。如果攻击者获得了这样的cookie,他们可以很容易地创建另一个cookie,把它放在浏览器中,并执行CSRF攻击。

    因此,攻击者可以使用他们的账户登录到一个应用程序,并打开cookie文件,看到以下内容:

    Csrf_token:93j9d8eckke20d433
    Csrf_token:93j9d8eckke20d433
    Csrf_token:93j9d8eckke20d433

    然后他们可以使用这些信息创建另一个cookie来完成攻击

    • 无效的令牌 – 一些应用程序不匹配CSRF令牌到用户会话。在这种情况下,攻击者可以真正地登录到一个会话中,获得与上述类似的CSRF令牌,并使用它来策划对受害者会话的CSRF攻击。

    如何利用Referer Header防止CSRF攻击

    另一个防止CSRF攻击的策略是使用referrer标头。在HTTP中,referrer标头表示请求的来源。它们通常被用来进行分析、优化和记录。

    你也可以在服务器端启用检查referrer标头,以防止CSRF攻击。服务器端检查请求的来源,并确定请求的目标来源。如果它们匹配,那么该请求是允许的。如果不匹配,服务器会放弃该请求。

    使用referrer标头像比使用令牌要容易得多,因为它不需要单独的用户识别。

    Referrer标头的潜在漏洞

    与CSRF标记一样,Referrer标头信息也有一些重要的漏洞。

    首先,Referrer标头文件不是强制性的,有些网站会在没有Referrer标头文件的情况下发送请求。如果CSRF没有处理没有标头信息的请求的策略,攻击者可以使用标头信息的请求来执行状态改变的攻击。

    此外,随着最近引入referrer策略,这种方法变得不再有效。这一规范防止了URL泄露给其他域,使用户对referrer标头中的信息有更多的控制。他们可以选择暴露部分referrer头信息,或者通过在HTML页面上添加一个元数据标签来禁用它,如下所示。

    <meta name=“referrer” content=“no-referrer”>
    <meta name=”referrer” content=”no-referrer”>
    <meta name="referrer" content="no-referrer">

    上面的代码为这个页面的所有请求删除了referrer头。这样做使得那些依赖referrer头的应用程序很难防止来自这样一个页面的CSRF攻击。

    小结

    跨站请求伪造(CSRF)是一种欺骗认证用户,使其无意中发起改变状态的请求的攻击。它们的目标是那些不能区分有效和伪造的状态改变请求的应用程序。

    CSRF只能在那些依靠会话cookie来识别登录用户并具有弱的SameSite cookie策略的应用程序上取得成功。他们还需要一个接受不包含未知参数(如密码)的请求的服务器。黑客可以使用GET或POST来发送恶意攻击。

    虽然使用CSRF令牌或强制执行referrer header验证可以防止一些CSRF攻击,但这两种措施都有潜在的漏洞,如果你不小心,就会使你的预防措施失去作用。

  • 深入研究网络延迟对WordPress网站的影响

    深入研究网络延迟对WordPress网站的影响

    网络上的许多文章往往主要关注前端WordPress优化和加快网站速度的快速方法。服务器优化(例如网络延迟)有时会被忽视或忽视。因此,我们认为深入了解网络延迟的重要性及其在加载不同区域时对WordPress网站的影响会很有趣。

    虽然CDN绝对可以帮助减少网络延迟,但您的主机服务器位置仍然非常重要,特别是如果您在非常特定的地理位置为访问者提供服务。延迟很重要,我们将向您展示几个原因。

    什么是网络延迟?

    网络延迟是指通过网络传输数据所涉及的时间和/或延迟。换句话说,一个数据包从一个点到另一个点需要多长时间。如今,这通常以毫秒为单位进行测量,但是,根据网络的不同,它也可能是秒。越接近零越好。

    延迟是信号在地理距离以及通过各种通信设备时引入的等待时间。 – Whatis.com

    换句话说,距离越远,延迟越大,这等同于更长的延迟。当涉及到通过光纤电缆传输的数据时,您无法超越光速。例如,下面是Google Cloud Platform网络的地图。他们有数千英里的电缆在海底覆盖整个地球。这就是为什么它是世界上最快的网络之一的原因之一。即使拥有这种广泛的最先进网络,仍然总是会有延迟延迟。

    光纤电缆的延迟

    光纤电缆的延迟

    有几个不同的因素会导致网络延迟,其中包括:

    • 传输延迟: 不同类型的介质,例如无线或光纤连接,都会引入某种类型的延迟,因为它们只能推出这么多位。例如,光纤连接的传输延迟将低于 T1 线路。您还必须考虑数据包的大小。
    • 传播延迟: 这是数据包传播所需的时间。这可能包括距离、网络延迟等。
    • 排队延迟: 如果超出带宽,可能会出现排队延迟,数据必须在主机或路由器处等待。这可能会受到网络拥塞的影响。

    为什么网络延迟很重要

    有些人可能会争辩说,网络延迟并不是很重要,但是,这可能与您选择托管WordPress网站的位置有关。对于媒体和您的资产(例如图像、JavaScript、CSS、视频),CDN可以通过从更近的服务器提供副本来解决很多额外的延迟问题。但是,在大多数配置中,您仍然需要查询您的托管服务器以获取初始DOC加载。这就是延迟很重要的原因!

    Trainline将整个渠道的延迟减少了0.3秒,客户每年额外花费800万英镑(约合1150万美元)。– WPO 统计

    对于为特定地理位置的访客提供服务的企业,延迟尤其重要。例如,假设您在悉尼有一家电子商务商店,您90%的客户来自澳大利亚。将您的网站放置在澳大利亚的服务器上,而不是将其托管在欧洲或美国,您的企业肯定会受益。我们将在下面讨论它对您的网站的影响有多大。

    比较Google Cloud网络延迟

    距离是延迟延迟的主要原因之一。然而,重要的是要记住,延迟不仅受距离的影响,还受它所产生的跳数、中间路由器等的影响。测量网络延迟的几种方法包括Ping、Traceroute和MTR。在这个例子中,我们将简单地使用ping时间并运行一些traceroute测试。如果您真的想深入研究数据,可以运行traceroute命令

    因此,我们在位于不同地理区域的Google Cloud Platform上启动了几台测试机器。许多其他托管服务提供商使用Google Cloud的标准层网络,这会导致速度变慢。

    • perf1主机(位于美国爱荷华州)
    • perf2主机(位于澳大利亚悉尼)
    • perf3主机(位于德国法兰克福)

    然后我们使用KeyCDN的免费Ping测试工具 ,它允许我们同时从14个位置进行测试。请记住,ping时间越短越好, 因为这与数据通过Internet传输到其目标地址然后返回给您所需的延迟时间(以毫秒为单位)直接相关。我们还使用了他们的traceroute工具

    Perf1(爱荷华州,美国)

    对于位于美国爱荷华州的测试服务器,位于美国的位置的ping时间要低得多(到达拉斯的平均ping时间为16毫秒)。当您开始深入欧洲或新加坡时,您开始体验更高的平均ping时间(到新加坡的平均ping时间为244毫秒)。

    Ping时间 perf1(美国)

    Ping时间 perf1(美国)

    如果我们比较Traceroute,您可以看到一个示例,从美国爱荷华州到德国法兰克福需要7个额外的网络跃点(与从达拉斯的10个跃点相比)。这就是为什么重要的是要记住,网络跃点也会影响网络延迟。

    Traceroute perf1(美国)

    Traceroute perf1(美国)

    Perf2(澳大利亚悉尼)

    对于位于澳大利亚悉尼的测试服务器,澳大利亚和亚太地区的ping时间要低得多(到悉尼的平均ping时间为1毫秒)。当您开始深入欧洲或南美洲时,您开始体验更高的平均ping时间(到圣保罗的平均ping时间为319毫秒)。

    Ping时间perf2(澳大利亚)

    Ping时间perf2(澳大利亚)

    如果我们比较Traceroute,您可以看到一个示例  ,从澳大利亚悉尼到德国法兰克福需要14个额外的网络跃点

    Traceroute perf2(澳大利亚)

    Traceroute perf2(澳大利亚)

    Perf3(法兰克福,德国)

    对于位于德国法兰克福的测试服务器,欧洲甚至美国的ping时间要低得多,这可能是由于两者之间的快速骨干连接(到阿姆斯特丹的平均ping时间为7毫秒)。当您开始深入到亚太地区或南美洲时,您开始体验更高的平均ping时间(到新加坡的平均ping时间为308毫秒)。

    Ping时间 perf3(德国)

    Ping时间 perf3(德国)

    如果我们比较Traceroute,您可以看到一个示例  ,从德国法兰克福到巴西圣保罗需要11个额外的网络跃点

    Traceroute perf3(德国)

    Traceroute perf3(德国)

    因此,正如您在上面看到的,距离越大,与更高的ping时间和构成网络延迟的额外网络跳数直接相关。这就是为什么您应该战略性地定位您的WordPress网站以减少这两个因素的原因。

    比较区域之间的Google Cloud延迟

    上面我们正在测试与ping服务器相关的服务器所在位置的Ping时间。但是Google Cloud Platform区域本身之间的延迟呢?Geek Flare在9个不同地区之间进行了出色的测试。这可以让您快速了解放置在一个区域与另一个区域时由于延迟而发生的延迟。

    Google Cloud Platform延迟(来源 Geek Flare)

    Google Cloud Platform延迟(来源 Geek Flare)

    比较页面加载时间

    当然,我们忽略了总页面加载时间。事实上,这就是一些最有趣的数据所在。但是,请记住,这包括其他因素,例如TTFB。所有三个测试站点都是相同的,运行全新安装的WordPress,并安装了二〇一七主题。我们也在使用Pingdom,所以时间是从他们的测试服务器位置测量的。

    Perf 1(爱荷华州,美国)

    我们使用位于美国爱荷华州的服务器从三个不同的测试地点进行速度测试,结果如下。

    速度测试 perf1 达拉斯

    速度测试 perf1 达拉斯

    速度测试 perf1 澳大利亚

    速度测试 perf1 澳大利亚

    速度测试 perf1 斯德哥尔摩

    速度测试 perf1 斯德哥尔摩

    正如我们在上面看到的,从美国境内(靠近托管服务器)加载站点与从全球加载站点之间存在巨大差异。

    Perf 2(澳大利亚悉尼)

    我们使用位于澳大利亚悉尼的服务器从三个不同的测试地点进行速度测试,结果如下。

    速度测试 perf2 达拉斯

    速度测试 perf2 达拉斯

    速度测试 perf2 墨尔本

    速度测试 perf2 墨尔本

    速度测试 perf2 斯德哥尔摩

    速度测试 perf2 斯德哥尔摩

    正如我们在上面看到的,从澳大利亚境内(靠近托管服务器)加载站点与从全球加载站点之间存在巨大差异。

    Perf 3(法兰克福,德国)

    我们使用位于德国法兰克福的服务器从三个不同的测试地点进行速度测试,结果如下。

    速度测试 perf3 达拉斯

    速度测试 perf3 达拉斯

    速度测试 perf3 墨尔本

    速度测试 perf3 墨尔本

    速度测试 perf3 斯德哥尔摩

    速度测试 perf3 斯德哥尔摩

    正如我们在上面看到的,从欧洲内部(靠近托管服务器)加载站点与从全球加载站点之间存在巨大差异。

    如果这些页面负载测试不能说服您,我们不知道会怎样!例如,美国爱荷华州的测试站点从达拉斯加载仅需要368毫秒。但是从澳大利亚悉尼加载需要2.14秒。这就是为什么位置很重要!同样,您可以通过使用CDN将媒体资产靠近访问者来帮助减少总加载时间。但是您总会遇到来自主机服务器的加载时间和延迟,因此请明智地选择。

    选择合适的位置来托管您的WordPress网站

    大多数WordPress托管服务提供商通常允许您从不同的位置进行选择来托管您的网站。这使您可以战略性地将站点放置在需要确保低延迟和TTFB的位置,以及极快的加载时间。您还可以为每个单独的站点选择不同的位置。

    Google Cloud数据中心位置

    Google Cloud数据中心位置

    不确定要选择哪一个?以下是一些提示。

    提示 1 – 检查谷歌分析

    您可以做的第一件事就是在Google Analytics中查看访问者的地理位置。在下面的这个示例中,您可以看到超过90%的流量来自美国。因此,在大多数情况下,您希望将WordPress网站放在美国的服务器上。您可以将数据过滤到城市,但我们通常会推荐像美国爱荷华州这样的中心位置。

    Google Analytics中的地理数据

    Google Analytics中的地理数据

    提示 2 – 检查电子商务数据

    如果您经营电子商务商店,请确保还检查您的客户来自哪里。这当然是您产生收入的方式,因此这些是您最重要的访问者。这应该与您上面的流量一致,但是,情况并非总是如此。如果您有电子商务数据设置或目标,您可以轻松地将该信息叠加在地理数据之上,以做出更明智的决定。

    提示 3 – 进行快速延迟测试

    有很多方便的免费工具可以为不同的云提供商测量您当前位置的延迟。这可以帮助您快速评估哪个区域可能是您站点的最佳选择。

    测量Google Cloud Platform延迟

    测量Google Cloud Platform延迟

    您还可以使用CloudHarmony,这是一个云比较工具。您可以测试诸如延迟、DNS、上行链路和下行链路等内容。

    CloudHarmony网络测试

    CloudHarmony网络测试

    减少网络延迟的快速方法

    总而言之,这里有一些减少网络延迟的快速方法。

    • 正如我们在上面向您展示的,将您的WordPress网站放在更靠近访问者的服务器上应该是第一要务。这有助于减少ping时间和网络跳数。
    • 利用内容交付网络(CDN) 为来自全球POP的缓存资产提供服务。这有助于消除可能不在您的主机服务器附近的访问者的网络延迟。
    • 借助并行化,利用HTTP/2协议最大限度地减少往返次数。
    • 减少外部HTTP请求的数量。每个都可以根据其服务器的位置增加自己的延迟。
    • 使用具有快速查找时间的优质DNS提供商。
    • 在页面加载时利用预取和预渲染在后台执行任务。
    • 实施我们在本大型指南中提供的一些高级技巧如何加速您的WordPress网站(终极指南)

    小结

    希望现在您对网络延迟、其重要性以及它如何影响您的WordPress网站有了更多了解。为确保快速加载时间,请确保选择主机与访问者和客户最接近的服务器。你觉得呢?你有没有什么想法?您是否曾经因为网站放置在错误的位置而经历过缓慢的加载时间?请在下面的评论中告诉我们。

  • 如何减少WordPress网站的HTTP请求数量

    如何减少WordPress网站的HTTP请求数量

    您网站的HTTP请求越多,加载速度就越慢。因此,如果您可以减少HTTP请求的数量并优化它们的加载方式,您就可以提高网站的性能

    在这篇文章中,我们将带您了解有关如何减少WordPress上的HTTP请求的所有信息。

    我们将从HTTP请求的基本介绍、它们的重要性以及如何分析WordPress站点的请求开始。

    然后,我们将分享一些技巧和策略,您可以实施这些技巧和策略来减少站点的请求。除了帮助您处理GTmetrix中的“减少HTTP请求”消息外,这些策略还有助于处理Google PageSpeed Insights中的“避免链接关键请求”消息。

    1. 什么是HTTP请求?
    2. 为什么减少HTTP请求很重要?
    3. 如何查看和分析您网站的HTTP请求
    4. 如何在WordPress中优化和减少HTTP请求
    5. 减少HTTP请求的最佳WordPress插件

    什么是HTTP请求?

    当你建立一个网站时,它有很多不同的部分。您有在页面上使用的不同图像文件、控制内容外观的CSS样式表、添加所有酷功能的JavaScript文件,等等。

    当有人访问您的网站时,他们的浏览器需要一种方法来从您的服务器下载该页面所需的所有资源。为此,它为每个单独的资源向服务器发出HTTP请求

    例如,它可能会说,“嘿服务器,我需要那个coolimage.png文件”和“嘿服务器,我还需要该联系表单插件的CSS样式表”。然后服务器用相关文件响应这些请求。

    一旦网络浏览器获得这些文件,它就可以为您的访问者组装网页。当然,它比那要复杂一些,但这是基本思想。

    HTTP是超文本传输​​协议的缩写,是这些计算机(访问者的浏览器和您的网络服务器)进行通信的方式。

    需要理解的一件重要事情是每个单独的元素都是一个单独的HTTP请求。例如,如果网页上有五个图像文件,浏览器需要发出五个单独的HTTP请求,每个图像一个。

    同样,如果您使用四个WordPress插件并且每个插件都添加了自己的CSS样式表,那么访问者的浏览器将需要发出四个单独的HTTP请求,每个插件的样式表一个。

    为什么减少HTTP请求很重要?

    减少HTTP请求的重要性

    一般来说,您网站的HTTP请求越多,加载速度就越慢。因此,如果您想让您的网站加载速度更快,您需要优化并减少您的网站所需的HTTP请求数量。

    虽然这有点过于简单化,但基本思想是,Web浏览器只会在完成所有HTTP请求下载后才向您的访问者显示该网站(尽管有一些策略告诉浏览器可以等待某些文件)。

    因此,如果一个网站在显示页面之前必须发出70个HTTP请求,这将比它必须发出40个HTTP请求需要更长的时间。

    此外,某些HTTP请求会“阻塞”其他HTTP请求,这意味着浏览器在下载完之前的HTTP请求之前无法开始下载某些HTTP请求。

    底线是:当您发出更少的HTTP请求时,您的网站加载速度会更快。

    如何查看和分析您网站的HTTP请求

    上面,您了解到在所有条件相同的情况下,减少HTTP请求的数量将加快您的网站速度。然而,所有HTTP请求并不总是“相等”的。一些HTTP请求比其他请求大。有些比其他的慢。

    例如,请求一个巨大的3MB图像文件将比请求一个微小的20KB图像花费更长的时间。

    如果您想对您的网站进行最大的改进,首先关注大的、加载缓慢的HTTP请求将获得最大的投资回报。

    要分析您站点的HTTP请求,您可以使用称为Waterfall analysis的东西。

    大多数速度测试工具都提供了这一点,但GTMetrixPingdom的接口非常方便。您还可以使用浏览器的开发人员工具。但是,我们将使用GTmetrix作为本次测试的示范。

    插入URL后,您将在顶部看到一个基本摘要框。这会显示您的站点有多少HTTP请求,但它不会分解单个请求:

    GTMetrix检测网站HTTP请求数量

    要分析您的个人请求,请转到下面的Waterfall选项卡。

    在这里,您将看到站点上每个单独的HTTP请求的列表以及有关该HTTP请求下载所需时间的信息:

    GTMetrix测速工具瀑布图

    您可以看到并非所有HTTP请求都是相同的。例如,839.3 KB的图像需要1.12秒,而57.6 KB的图像仅需要87.5毫秒:

    不同体积相同文件HTTP请求时长

    您还可以通过在服务器上搜索该插件文件夹的名称来查找来自您正在使用的不同WordPress插件的HTTP请求。例如,您可以看到WooCommerce添加了七个自己的HTTP请求:

    WooCommerce插件HTTP请求数量

    通过这种方式,您可以查看您使用的任何插件是否添加了大量HTTP请求(尤其是加载缓慢的请求)。

    如何在WordPress中优化和减少HTTP请求

    概括地说,有两种广泛的策略可以减少HTTP请求:

    • 删除HTTP请求。如果可能,您应该完全删除所有不必要的HTTP请求。例如,如果您有一个插件没有为您的网站增加任何价值,并且正在加载自己的CSS和JavaScript,只需完全删除该插件即可摆脱其所有HTTP请求。
    • 合并HTTP请求。如果您有绝对必须加载的HTTP请求,您可以将它们合并到一个文件中。例如,代替六个小的CSS文件,您可以将它们组合成一个更大的CSS文件,它仍然会加载得更快,因为浏览器需要发出更少的请求(HTTP/2并不总是如此,我们将下面讨论)。

    我们将从专注于删除HTTP请求的策略开始,然后我们将讨论如何组合剩余的HTTP请求。基本思想是去除你能去除的东西,然后组合剩下的东西。

    1. 删除不必要的WordPress插件

    首先,您需要使用瀑布分析从插件中提取所有请求。您可以通过搜索“插件”来实现这一点,这将提取来自wp-content/plugins文件夹的每个HTTP请求。

    如果您将鼠标悬停在文件名上,您可以看到它来自哪个插件。例如,在这里您可以看到来自您可能正在使用的滑块插件的请求。

    进一步挖掘会发现Slider Revolution添加了三个自己的HTTP请求,即使这个测试页面不包含任何滑块:

    如何查看HTTP请求来自哪里

    如何查看HTTP请求来自哪里

    如果您将 Slider Revolution 用于关键滑块,那么您可能需要保留它。但是,如果您安装它来测试它,然后删除了滑块,而您现在并没有真正使用它……那么您应该删除它以摆脱那些HTTP请求。

    基本上,您想浏览整个列表并问问自己每个插件是否真的为您的网站增加了价值。如果插件不是(但正在添加HTTP请求),那么最好将其删除。

    2. 用更轻量级的插件替换重型插件

    修剪掉任何不必要的插件后,下一步是查看是否可以用更轻量级的替代品替换您正在使用的任何插件。

    例如,假设您想向您的网站添加社交分享按钮。这是一个很好的功能,但一些社交分享插件可以添加很多HTTP请求。

    例如,流行的AddThis插件添加了六个自己的HTTP请求(包括一些外部请求——稍后会详细介绍):

    AddThis插件HTTP请求数量

    您可以通过使用更优化的替代方案(例如NovaShareGrow by MediaVine )来减少大量请求。

    3. 有条件地加载全站不需要的脚本

    此时,您应该已经删除了站点上任何地方不需要的所有插件。然而,还有一类插件可能会导致问题——仅在您网站的特定部分需要的插件,但在任何地方都加载了它们的脚本。

    例如,以流行的Contact Form 7 插件为例。您可能只需要在几个页面上使用此插件(例如您的“联系我们”页面)。但是,Contact Form 7会在您网站的每个页面上加载其脚本。因此,例如,即使您的博客文章没有任何联系表单,Contact Form 7仍在向您的博客文章添加一些HTTP请求。

    另一个例子可能是WooCommerce,如果您仅将其用作支付处理器。WooCommerce仍然会在任何地方加载它的脚本,即使你真的只需要在这个用例的购物车和结账页面上使用它们。

    这里的高级策略是仅在需要时有条件地加载插件。例如,您可以让Contact Form 7加载到您的“联系我们”页面,但在其他地方禁用它。

    如果您不是开发人员,则可以使用Asset CleanUpPerfmatters等插件无需代码即可完成此操作。使用Perfmatters,您首先需要启用脚本管理器。然后,您可以打开脚本管理器以查看页面上加载的所有脚本并禁用任何不需要的脚本:

    Perfmatters插件中的脚本管理器

    Perfmatters插件中的脚本管理器

    请小心,因为如果您不小心禁用了真正需要的脚本,可能会导致问题。虽然这是一种有用的策略,但它也是一种高级策略。

    如果您没有信心,您可能只想跳过此步骤或聘请开发人员来帮助您。

    4. 删除不必要的图像(并优化其余图像)

    使用得当,图像使您的网站更加用户友好和吸引人。它们为您的网站增加了价值。

    但是,您站点上的每个图像都是一个单独的HTTP请求。因此,如果您的图像没有增加价值,最好将其删除以消除这些HTTP请求。

    例如,那个有趣的GIF值得吗?可能是……但也可能不是——每当您向内容添加更多图像时,您都需要考虑权衡。

    最后,确保调整大小并压缩剩余的图像。虽然这本身不会减少HTTP请求的数量,但会减少这些HTTP请求的大小,从而使它们加载得更快。

    5. 对图片和视频使用延迟加载

    使用延迟加载,您的站点将等待加载首屏图像、视频和iframe,直到用户开始向下滚动。

    由于这些资源不会立即加载,因此无需为初始页面加载发出HTTP请求。

    从WordPress 5.5开始,WordPress现在包含使用HTML加载属性的图像原生延迟加载。对于其他一些实现延迟加载的方法(包括视频文件),您可以查看我们的WordPress延迟加载完整指南

    6. 限制自定义字体的使用和/或使用系统字体(图标字体相同)

    自定义字体非常适合改善您网站的设计和用户体验。但是,您需要注意如何使用它们,因为您使用的每个自定义字体类型都会添加另一个HTTP请求。

    如果您打算使用自定义字体,请确保使用少量字体。您真的需要为帖子标题和帖子正文使用不同的字体吗?或者你可以使用相同的字体吗?你真的需要所有五种字体权重吗?或者你可以只选择两个?

    这同样适用于Font Awesome和IcoMoon等图标字体。图标字体可能很有用,但您可能不需要加载多个图标字体库。最好只选择一个图标字体库并坚持下去。

    最后,如果您想更进一步,完全消除与您站点字体相关的HTTP请求,您可以考虑使用系统字体堆栈。虽然这会降低您在设计方面的灵活性,但这也意味着您的访问者不必加载任何字体文件来呈现您的网站。

    7. 禁用WordPress表情符号

    默认情况下,WordPress添加自己的表情符号HTTP请求。虽然它只是一个5.1KB的HTTP请求,但这个文件长期以来一直是WordPress性能爱好者的眼中钉。查看如何禁用WordPress表情符号的教程

    最简单的选择是安装并激活free Disable Emojis(GDPR友好)插件。但是,您可以阅读我们的完整指南以了解其他一些选项。

    执行此操作后,您的HTTP请求数将减少1,您仍然可以使用表情符号 。

    8. 减少/消除第三方HTTP请求

    到目前为止,我们主要关注减少对WordPress站点服务器上文件的HTTP请求。但是,访问者的浏览器可能还需要从第三方服务器请求文件。

    这些请求可能会更加麻烦,因为您的站点受这些第三方服务器速度的支配。

    一些例子:

    • Google Analytics – 跟踪脚本托管在 Google 的服务器上,但访问者的浏览器仍需要下载该文件。
    • 嵌入的YouTube视频– 您会看到很多对YouTube服务器的HTTP请求。
    • 第三方广告服务– 您会看到大量与投放您的广告相关的第三方请求。
    • Google Fonts(在 Google 的 CDN 上)——您会看到第三方请求Google服务器加载您的字体文件。

    您可以将上面的许多相同策略应用于这些第三方HTTP请求。

    例如,如果一个插件添加了它自己的第三方请求(就像上面的AddThis插件那样),你可以删除它并使用更优化的东西。

    对于YouTube视频,您可以延迟加载它们并用图像缩略图替换初始页面加载。这将延迟添加这些HTTP请求,直到访问者想要播放视频。

    对于必要的第三方脚本,例如Google Analytics或Facebook Pixel,您可以尝试在本地托管这些脚本。

    WP Rocket具有内置的附加组件来在本地托管Google Analytics和Facebook Pixel,或者您可以使用像CAOS(完整分析优化套件)这样的插件。

    我们还有一些指南可能会有所帮助:

    9. 将图像与CSS Sprite结合

    此时,您应该希望能够从您的站点发出更少的HTTP请求。现在,是时候研究如何组合剩余的HTTP请求了,从图像开始。

    优化站点上图像的另一种方法是将单独的图像合并为一个图像文件。然后,您可以使用CSS在需要的地方仅显示该图像文件的一部分。这是一种称为CSS sprites的策略。

    CSS sprites最适合装饰图像,例如徽标变体或图标。您不应该将CSS sprites用于信息图像(如博客文章正文中的图像),因为有两个大缺点:

    • SEO – 因为您将图像组合成一个图像文件,所以您无法在Google搜索中对单个图像进行排名。
    • 可访问性——因为你不能给图像添加替代文本,使用屏幕阅读器的人将无法理解加载了CSS sprites的图像(尽管有一些策略可以解决这个问题)。

    如果您仍然对这个主题感到困惑,这里有一个Amazon的CSS sprite文件示例——您可以看到它是如何包含一堆徽标变体以及一些图标的。亚马逊使用CSS来确保在每个位置只显示该图像文件的相关“部分”:

    Amazon的CSS sprite文件示例

    来自亚马逊的CSS sprites示例。您可以使用 CSS 来“定位”组合图像的特定部分。

    不幸的是,没有用于CSS sprites的“设置并忘记它”的WordPress插件。但是,您可以找到提供帮助的工具,例如CSS Sprite Tool

    1. 将要合并的图像上传到该工具。
    2. 然后,该工具将为您提供一个组合图像文件,以及您上传的每个图像的一些CSS代码。
    3. 将合并的图像文件上传到您的WordPress网站。
    4. 使用CSS代码在您的内容中显示图像。提供的CSS将自动仅选择组合图像文件的适当部分。

    10. 合并CSS和JavaScript文件

    在您的WordPress主题和插件之间,您的站点可能会加载多个CSS样式表和JavaScript文件,这意味着多个HTTP请求仅用于浏览器下载呈现页面所需的CSS和JavaScript。

    为了减少所有这些单独的请求,您可以将这些单独的文件/样式表合并到一个文件/样式表中。这称为文件组合文件串联,具体取决于您使用的工具。

    许多WordPress缓存插件包括合并CSS和JavaScript文件的功能。

    转到WP Rocket设置中的File Optimization选项卡。然后,启用缩小,然后合并文件:

    如何在WP Rocket中结合CSS和JavaScript

    如何在WP Rocket中结合CSS和JavaScript

    如需更详细的外观,请查看我们完整的WP Rocket教程

    您还可以使用Autooptimize合并CSS和JavaScript文件。要合并文件,请转至Settings → Autoptimize并选择以下选项:

    • Aggregate JS-files
    • Aggregate CSS-files

    如需更详细的外观,请查看我们完整的Autoptimize教程

    文件合并并不适合于HTTP/2服务器,HTTP/2旨在更有效地传输多个小文件,这意味着一个大的CSS/JS文件和多个小文件之间的差异较小。

    基本上,如果是HTTP/2服务器您可能不需要执行此步骤来改进页面加载时间。我们建议您仍然对其进行测试,因为它仍然对某些网站有益,但您也可能不会注意到实际页面加载时间的任何差异。

    但是,许多性能测试工具如GTmetrix仍然无法识别HTTP/2,因此GTmetrix可能仍会显示“减少HTTP请求”消息并降低您的分数。但请记住,分数并不像实际页面加载时间那样重要

    11. 延迟渲染阻止JavaScript

    推迟渲染阻止JavaScript本身并不能消除HTTP请求。但是,它正在优化它们的加载方式,这会对您网站的感知加载时间产生相同的影响。

    它还可以帮助处理Google PageSpeed Insights/Lighthouse中的“避免链接关键请求”消息。

    通过推迟对某些文件的请求或异步加载它们,您可以防止某些不重要的资源“阻塞”快速加载站点可见部分所需的资源。

    有关为什么会发生这种情况的更多信息,您可以阅读我们关于理解网页关键渲染路径的指南。

    然后,您可以按照我们的详细指南来消除WordPress上的渲染阻塞资源

    减少HTTP请求的最佳WordPress插件

    如果您正在寻找一些“一体式”WordPress插件来减少HTTP请求,我们推荐上面教程中的两个插件:

    虽然您仍然需要手动评估您的主题和插件以查看它们是否发出了过多的HTTP请求,但这两个插件都可以帮助您在完成清理后优化网站上剩余的所有内容。

    小结

    您站点上的每个单独资源都会添加一个HTTP请求。一张图片是一个HTTP请求,一个CSS样式表是一个HTTP请求,一个字体文件是一个HTTP请求,依此类推。

    如果您使用WordPress,您的主题肯定会添加自己的HTTP请求,许多插件也会添加自己的HTTP请求。您还将收到来自您使用的任何图像和您添加的第三方脚本(例如分析工具)的HTTP请求。

    更多和/或更大的HTTP请求将导致网站速度变慢。这就是为什么当您使用GTmetrix或PageSpeed Insights等速度测试工具时,您通常会看到“减少HTTP请求”或“优化HTTP请求”或“避免链接关键请求”之类的消息。

    要减少您网站上的HTTP请求数量,您可以按照我们上面详述的步骤进行操作。

  • 在WordPress网站服务器托管Web字体的深入指南

    在WordPress网站服务器托管Web字体的深入指南

    在您的WordPress网站上托管和使用字体时,有很多不同的选择。您可以在本地托管它们,也可以使用Google字体(现在大多数主题都集成了Google字体),或使用其他3rd方服务,如Adob​​e Fonts。

    今天,我们想深入探讨在WordPress中托管本地字体具有优势的几个原因。您不仅可以有更多的HTML字体选择,而且有时也有性能优势。查看我们下面的深入教程,了解如何在本地托管您的高级字体以及来自Google字体的任何字体系列。

    什么是Web字体?

    当您浏览某人的WordPress网站时,您会看到两种基本字体,Web安全字体或Web字体。或者他们也可以混合使用两者。

    建议阅读:如何在WordPress中更改字体

    • Web安全字体是预装在设备或操作系统上的字体。Web安全字体的一些示例包括Arial、Times New Roman和Courier New以及通用字体系列,如serif、sans-serif(请参阅现代字体)和等宽字体。这些是您已经看到多年的字体。查看Web安全字体的完整列表
    • Web 字体是未预装在设备上的字体,必须由用户的浏览器下载才能显示。Web 字体的一些示例包括 Google 的 Open Sans 和 Roboto 字体,以及来自 Adob​​e Fonts 的流行的 Proxima Nova 字体。

    Google Fonts是一个开源字体目录,在过去几年中得到了广泛使用。根据BuiltWith的数据,在排名前10,000的网站中,超过45%的网站在其网站上使用Google字体。如果我们查看Google Fonts分析,我们可以看到它们的浏览量超过17千万次。这是很多!Open Sans和Roboto是他们使用最广泛的两个字体系列,Roboto 在过去一年中增长了77%。我们有一篇关于最佳Google字体的文章,请务必查看:  15 种最佳Google 字体(按数字排序)

    谷歌字体统计

    谷歌字体统计

    本地托管字体与第3方

    在我们深入学习本教程之前,重要的是要了解托管本地字体和简单地使用3rd方服务之间的一些优缺点。在本地托管字体意味着您实际上在自己的服务器上拥有字体文件(和/或复制到您的CDN,您也将其用于所有其他资产)。而如果您使用第三方(例如Google Fonts或Adob​​e Fonts),则只需通过链接到外部资产来包含字体。

    本地字体的优势

    1. 更广泛的字体选择

    使用本地字体的一个巨大优势是您可以选择更广泛的字体!虽然Google Fonts和Adob​​e Fonts等3rd方服务拥有庞大的库,但它们无法与高级字体商店相比,您可以在其中购买所需的任何高级网络字体并将其托管在您的网站上。我们实际上将在下面的教程中使用高级字体,您无法从任何3rd方服务中获得。

    2. 可以更好地整合

    由于字体选择范围更广,在本地托管它们可能会让您选择一种与您的品牌更好地集成的字体,以保持整个网站的一致性。这一切都取决于您的设计需求和偏好。

    3. 不必依赖第三方服务

    当您在本地托管字体时,您不必依赖3rd方服务或其服务器。众所周知,诸如Adob​​e Fonts(以前称为Typekit)之类的服务会出现故障,这反过来又会让您看起来很糟糕。对WordPress网站的依赖越少越好。

    4. 完全控制缓存

    通过使用本地字体,您可以完全控制字体文件的缓存。如果您使用Google字体或其他3rd方服务,您可能会看到错误或警告,指出资源缺少缓存验证器或它们需要expires headers。这些是在服务器级别修复的,当它们在3rd方服务器上时,您无法控制修复它们。

    指定缓存验证器

    指定缓存验证器

    5. 更少的请求等于更快的加载时间

    由于必须从第3方下载Web字体,这反过来可能会影响您网站的加载速度。您永远不知道他们的服务器在特定时刻的运行速度。但是,您确实可以通过WordPress主机对此进行更多控制,或者您应该这样做!例如,Adobe Fonts添加了2个外部HTTP请求,并且它还对所有字体格式进行了base64编码。如果您不熟悉字体,则不再需要提供所有字体格式,您只需要WOFF和WOFF2(如果您要进行额外压缩)。

    使用Google Fonts,您还有一个额外的DNS请求来查找fonts.googleapis.com以获取CSS文件。然后,您可以向fonts.gstatic.com发出其他请求以下载字体文件。当您在本地托管所有请求时,所有请求都来自同一个域,并且很可能您不需要另一个CSS文件,因为它将在您的WordPress主题的CSS文件中。

    Google字体HTTP请求

    Google字体HTTP请求

    6. 单个HTTP/2连接

    如果您还没有了解HTTP/2的优势,我们强烈建议您这样做。通过在本地或CDN上托管您的字体,您可以利用单个HTTP/2连接来实现更好的并行性和多路复用。

    本地字体的缺点

    现在我们已经了解了本地字体的优点,但也有一些缺点需要注意。

    1. 谷歌字体可能已经被缓存

    Google Fonts使用自己的CDN,速度很快,毕竟是Google。由于如此多的网站已经在使用Google字体,因此用户很可能已经在浏览器的缓存中拥有该字体。如果您使用更独特、更优质的字体,它实际上可能会增加下载时间。例如,如果有人访问使用Google Fonts中的Roboto字体的网站,它将下载到他们的缓存中。如果他们随后访问您的网站,该网站也使用Roboto,则无需再次下载该字体。但是,如果您使用的是新发布的高级字体,例如Proxima Soft,则很可能需要下载,这可能会增加加载时间。

    这里的关键要点是,如果您打算使用一种未广泛使用的高级字体,您可能应该指望该人的浏览器在他们第一次访问您的网站时需要下载它。注意:如果您使用流行的Google字体并将其托管在本地,例如Roboto,则这不适用,因为浏览器足够智能,可以在缓存中检测到它(无论是从Google加载还是从您的站点本地加载)。

    2. 更复杂

    我们意识到并不是每个人都是WordPress大师。托管本地字体肯定需要更多的设置。例如,WordPress主题可能会在其主题中自动调用Google字体,如果您在本地托管字体,则需要找到一种方法来禁止在您的站点上调用它们。这可能需要与您的主题开发人员联系以获得快速的代码行。这听起来可能很复杂,但我们将尝试在下面的教程中尽可能简单地解释它。

    3. 更谨慎的字体选择

    当您托管本地字体时,您必须选择要支持的字体类型。如果您只选择较新的格式,例如WOFF2,您可能会忽略较旧的浏览器,而这些浏览器将默认使用旧的网络安全字体。例如,根据CanIUse的说法,IE11、Safari和某些版本的Android浏览器可能会在仅使用WOFF2网络字体时出现问题。因此,您可能希望使用WOFF+WOFF 2以确保全面安全。WOFF 2提供了更高的压缩方法,这就是您想要同时使用两者的原因。

    WOFF2浏览器支持

    WOFF2浏览器支持

    使用 3rd 方服务时,几乎不可能把它搞砸,因为它们考虑了开箱即用的广泛浏览器支持。因此,在本地托管时,您必须更加小心您的字体类型选择

    4. 不要没有CDN

    如今,许多站点都在使用Cloudflare或KeyCDN等CDN来加速其资产的交付。这很重要,因为它可以全面减少延迟和DNS查找时间。如果您使用本地字体,而不使用CDN,实际上,与使用Google Fonts或Adob​​e Fonts等服务相比,您的网站速度可能会变慢。原因是所有这些服务都使用CDN来提供它们的字体。所以我们强烈建议,除非您只有一个小地理区域的流量,否则如果您托管自己的字体,请始终使用CDN。当然,请确保您使用的是支持HTTP/2的CDN提供商

    如何在WordPress中托管本地字体

    现在是时候进行有趣的部分了!在WordPress中托管您的本地字体。我们在下面进行了两种不同的选择,一种是使用我们购买的高级字体,第二种实际上是使用 Google 字体并将其托管在本地。在本教程中,我们使用全新的WordPress安装并安装了2017主题。

    1. 如何在本地托管高级字体

    为了在本地托管高级字体,我们选择使用Fontspring和2017年1月发布的新Proxima Soft字体。由Mark Simonson创建的Proxima Nova Soft是原始Proxima Nova字体的更新版本。我们选择Fontspring是因为它们不需要任何3rd方跟踪脚本,而且该字体是一次性购买的,可以在无限数量的网站上使用。购买字体时要非常小心,因为其中很多需要3rd方跟踪脚本,这在某种程度上违背了在本地托管它们的目的。

    Fontspring

    Fontspring

    我们购买了Proxima Soft Regular和Proxima Soft Bold字体。通常,对于大多数网站来说,常规字体类型和粗体就足够了。根据您的站点,您可能还需要斜体和半粗体。

    步骤1

    购买字体后,您将收到一封电子邮件,其中包含字体文件的链接。

    Proxima Soft字体下载

    Proxima Soft字体下载

    步骤2

    每个字体版本,例如粗体和正则都有自己的字体类型,例如WOFF2、WOFF、TTF等。在这个例子中,我们将只使用粗体和粗体正则的WOFF和WOFF2版本,这确保全面的现代浏览器支持。

    本地字体文件

    本地字体文件

    步骤3

    我们获取字体文件并通过FTP将它们上传到我们的WordPress站点到我们创建的名为“fonts”的文件夹中。在此示例中,我们将CDN用于我们的所有资产,以及来自KeyCDN团队的免费CDN Enabler插件。这个插件会自动复制我们刚刚上传到CDN的字体。即使我们说在本地托管它们,CDN仍在引用您的本地资产。重要的部分是您从同一位置提供所有资产,而不是引用多个域(主机)。

    将字体上传到网络服务器

    将字体上传到网络服务器

    步骤4

    您需要在WordPress网站上的CSS中引用新字体。现在很多主题都有自定义CSS面板,或者您可以使用像Simple Custom CSS and JS这样的免费插件。我们将插入以下代码,引用我们的CDN URL。

    @font-face {
    font-family: ‘proxima_softregular’;
    src: url(‘https://cdn.wpdev.ink/fonts/proximasoft-regular-webfont.woff2’) format(‘woff2’),
    url(‘https://cdn.wpdev.ink/fonts/proximasoft-regular-webfont.woff’) format(‘woff’);
    font-weight: normal;
    font-style: normal;
    }
    @font-face {
    font-family: ‘proxima_softbold’;
    src: url(‘https://cdn.wpdev.ink/fonts/proximasoft-bold-webfont.woff2’) format(‘woff2’),
    url(‘https://cdn.wpdev.ink/fonts/proximasoft-bold-webfont.woff’) format(‘woff’);
    font-weight: normal;
    font-style: normal;
    }
    @font-face {
    font-family: ‘proxima_softregular’;
    src: url(‘https://cdn.wpdev.ink/fonts/proximasoft-regular-webfont.woff2’) format(‘woff2’),
    url(‘https://cdn.wpdev.ink/fonts/proximasoft-regular-webfont.woff’) format(‘woff’);
    font-weight: normal;
    font-style: normal;
    }
    @font-face {
    font-family: ‘proxima_softbold’;
    src: url(‘https://cdn.wpdev.ink/fonts/proximasoft-bold-webfont.woff2’) format(‘woff2’),
    url(‘https://cdn.wpdev.ink/fonts/proximasoft-bold-webfont.woff’) format(‘woff’);
    font-weight: normal;
    font-style: normal;
    }
    @font-face {
    font-family: 'proxima_softregular';
    src: url('https://cdn.wpdev.ink/fonts/proximasoft-regular-webfont.woff2') format('woff2'),
    url('https://cdn.wpdev.ink/fonts/proximasoft-regular-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    }
    @font-face {
    font-family: 'proxima_softbold';
    src: url('https://cdn.wpdev.ink/fonts/proximasoft-bold-webfont.woff2') format('woff2'),
    url('https://cdn.wpdev.ink/fonts/proximasoft-bold-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    }

    您还需要更新样式以指向新的字体系列。这是我们在2017主题中使用的代码示例。

    body {font-family: ‘proxima_softregular’, Arial, sans-serif;}
    h1,h2,h3,h4,h5,h6 {font-family:‘proxima_softbold’, Arial, sans-serif;}
    body {font-family: ‘proxima_softregular’, Arial, sans-serif;}
    h1,h2,h3,h4,h5,h6 {font-family:’proxima_softbold’, Arial, sans-serif;}
    body {font-family: 'proxima_softregular', Arial, sans-serif;}
    h1,h2,h3,h4,h5,h6 {font-family:'proxima_softbold', Arial, sans-serif;}

    这是来自Simple Custom CSS and JS插件的屏幕截图。

    自定义字体CSS代码

    自定义字体CSS代码

    步骤5

    如果您的WordPress主题已经集成了Google字体,您需要确保禁用它们。否则,您可能会同时加载本地字体和Google字体。由于我们在本教程中使用了2017主题,因此我们使用免费的Disable Google Fonts插件。这仅适用于WordPress中的默认主题。对于大多数主题,您可能需要联系开发人员,他们可以快速提供禁用 Google字体的功能。或者检查他们的文档,通常这是一个非常快速的调整。某些主题甚至可以选择在后端打开或关闭它们。

    就是这样!这是我们的新Proxima Soft字体加载的屏幕截图,用于我们的正文字体和2017主题的标题。

    wordpress网站上的新字体

    wordpress网站上的新字体

    这是我们的HTTP请求的屏幕截图。如您所见,我们只有2个对WOFF2字体的请求,而不是我们之前显示的Google的4个请求。我们在网站上也有WOFF字体,但由于Chrome支持WOFF2,所以改为拉取这些字体。例如,如果我们使用IE 11访问该站点,则会加载WOFF字体。

    本地托管字体的HTTP请求

    本地托管字体的HTTP请求

    2. 如何在本地托管Google字体

    在本地托管字体的第二种方法是实际使用您在Google Fonts上已经喜欢的字体,然后将其移动到您的服务器或CDN。众所周知,Open Sans非常轻巧且速度超快。所以我们将在我们的例子中使用它。

    步骤1

    获取Google字体的最佳方法是使用免费的google-webfonts-helper工具,我们将在本教程中使用该工具。您可能还想查看Font Face Observer项目。您需要做的第一件事是搜索您想要的Google字体,然后选择样式。我们再次选择常规和粗体 (700) 字体样式。

    下载Open Sans网络字体

    下载Open Sans网络字体

    步骤2

    然后你需要选择你想要的浏览器支持。现代浏览器会给你WOFF和WOFF2字体,这正是我们想要的。最好的支持为您提供WOFF、WOFF2、EOT、TTF和SVG。如您所见,它为您提供了可以复制到剪贴板的代码,以及包含字体的下载zip。

    现代浏览器中字体的CSS

    现代浏览器中字体的CSS

    其余的说明与我们上面的高级字体示例非常相似。

    步骤3

    我们获取字体文件并通过FTP将它们上传到我们的WordPress站点到我们创建的名为“fonts”的文件夹中。在此示例中,我们将CDN用于我们的所有资产,以及来自KeyCDN团队的免费CDN Enabler插件。这个插件会自动复制我们刚刚上传到CDN的字体。即使我们说在本地托管它们,CDN仍在引用您的本地资源。重要的部分是您从同一位置提供所有资源,而不是引用多个域(主机)。

    将Google字体上传到网络服务器

    将Google字体上传到网络服务器

    步骤4

    您需要在WordPress网站上的CSS中引用新字体。现在很多主题都有自定义CSS面板,或者您可以使用像Simple Custom CSS and JS这样的免费插件。我们将插入以下代码,引用我们的CDN URL。

    /* open-sans-regular – latin */
    @font-face {
    font-family: ‘Open Sans’;
    font-style: normal;
    font-weight: 400;
    src: local(‘Open Sans’), local(‘OpenSans’),
    url(‘https://cdn.wpdev.ink/fonts/open-sans-v13-latin-regular.woff2’) format(‘woff2’), /* Chrome 26+, Opera 23+, Firefox 39+ */
    url(‘https://cdn.wpdev.ink/fonts/open-sans-v13-latin-regular.woff’) format(‘woff’); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
    }
    /* open-sans-700 – latin */
    @font-face {
    font-family: ‘Open Sans’;
    font-style: normal;
    font-weight: 700;
    src: local(‘Open Sans Bold’), local(‘OpenSans-Bold’),
    url(‘https://cdn.wpdev.ink/fonts/open-sans-v13-latin-700.woff2’) format(‘woff2’), /* Chrome 26+, Opera 23+, Firefox 39+ */
    url(‘https://cdn.wpdev.ink/fonts/open-sans-v13-latin-700.woff’) format(‘woff’); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
    }
    /* open-sans-regular – latin */
    @font-face {
    font-family: ‘Open Sans’;
    font-style: normal;
    font-weight: 400;
    src: local(‘Open Sans’), local(‘OpenSans’),
    url(‘https://cdn.wpdev.ink/fonts/open-sans-v13-latin-regular.woff2’) format(‘woff2’), /* Chrome 26+, Opera 23+, Firefox 39+ */
    url(‘https://cdn.wpdev.ink/fonts/open-sans-v13-latin-regular.woff’) format(‘woff’); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
    }
    /* open-sans-700 – latin */
    @font-face {
    font-family: ‘Open Sans’;
    font-style: normal;
    font-weight: 700;
    src: local(‘Open Sans Bold’), local(‘OpenSans-Bold’),
    url(‘https://cdn.wpdev.ink/fonts/open-sans-v13-latin-700.woff2’) format(‘woff2’), /* Chrome 26+, Opera 23+, Firefox 39+ */
    url(‘https://cdn.wpdev.ink/fonts/open-sans-v13-latin-700.woff’) format(‘woff’); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
    }
    /* open-sans-regular - latin */
    @font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    src: local('Open Sans'), local('OpenSans'),
    url('https://cdn.wpdev.ink/fonts/open-sans-v13-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
    url('https://cdn.wpdev.ink/fonts/open-sans-v13-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
    }
    /* open-sans-700 - latin */
    @font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 700;
    src: local('Open Sans Bold'), local('OpenSans-Bold'),
    url('https://cdn.wpdev.ink/fonts/open-sans-v13-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
    url('https://cdn.wpdev.ink/fonts/open-sans-v13-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
    }

    您还需要更新样式以指向新的字体系列。这是我们在2017主题中使用的代码示例。

    body {font-family: ‘Open Sans’, Arial, sans-serif;}
    h1,h2,h3,h4,h5,h6 {font-family:‘Open Sans’, Arial, sans-serif;}
    body {font-family: ‘Open Sans’, Arial, sans-serif;}
    h1,h2,h3,h4,h5,h6 {font-family:’Open Sans’, Arial, sans-serif;}
    body {font-family: 'Open Sans', Arial, sans-serif;}
    h1,h2,h3,h4,h5,h6 {font-family:'Open Sans', Arial, sans-serif;}

    这是来自Simple Custom CSS and JS插件的屏幕截图。

    本地托管的Open Sans字体的CSS

    本地托管的Open Sans字体的CSS

    步骤5

    如果您的WordPress主题已经集成了Google字体,您需要确保禁用它们。这似乎有点讽刺,因为我们使用的是Google字体。但您需要这样做的原因是禁用外部请求。由于我们在本教程中使用了2017主题,因此我们使用免费的Disable Google Fonts插件。这仅适用于WordPress中的默认主题。对于大多数主题,您可能需要联系开发人员,他们可以快速提供禁用 Google 字体的功能。或者检查他们的文档,通常这是一个非常快速的调整。某些主题甚至可以选择在后端打开或关闭它们。

    就是这样!这是我们为2017主题的正文字体和标题加载的新Google Open Sans字体的屏幕截图。

    本地托管的Open Sans字体示例

    本地托管的Open Sans字体示例

    这是我们请求的屏幕截图。如您所见,我们只有2个对WOFF2字体的请求,而不是我们之前显示的Google的4个请求。我们在网站上也有WOFF字体,但由 Chrome支持WOFF2,所以改为拉取这些字体。例如,如果我们使用IE 11访问该站点,则会加载WOFF字体。

    打开Sans HTTP请求

    打开Sans HTTP请求

    小结

    就是这样!您现在知道如何从高级字体商店托管本地字体或将Google字体移动到您自己的服务器和/或CDN。所以现在你可以去看看那里所有漂亮的字体,而不必担心它们如何影响性能。他们可能只是为您的WordPress网站改头换面(请务必阅读我们关于WordPress字体的深入指南)!另一个很好的选择是系统字体