重塑StevePavlina.com:第7章——今日亮点揭秘

这是《重塑StevePavlina.com网站》系列文章的第七部分,总共包括九个部分。

WordPress插件的选择

在本次设计项目中,除了自己开发了两款WordPress插件外,我还花费了大量时间来调查、测试、挑选以及配置其他适合我网站的高质量插件。

截至我撰写这篇文章时,WordPress的插件库中已经有超过44000种插件。如此庞大的数量,使得个人逐一探索变得几乎不可能。因此,在寻找优质插件时,我制定了一些简单的原则:

  • 他人推荐 — 我十分重视来自其他开发者和WordPress用户的推荐。在拉斯维加斯的WordPress聚会上,我接触到数十种不同的插件。聚会的地点提供了免费且快速的互联网,这使得我们在分享插件使用经验时能够迅速进行安装和试用。为什么要等到之后再试呢?

  • 下载量 — 我通常避免使用下载量少于一万次的插件。相对而言,那些下载量超过十万次的插件会引起我的特别注意。大量用户使用同一款插件通常是个积极的信号。我会通过在WordPress插件目录或管理后台搜索关键词,发现一些表现良好的插件,并进一步查阅高下载量的插件列表。

  • 用户评分 — 如果某款插件的评分低于4分,我一般不会浪费时间去尝试。我还会关注每款插件的评分数量。如果评分少于几百次,我希望能看到至少几十个评分记录。如果只有少数评分,我便会放弃考虑。

  • 更新频率 — 我会关注那些长时间没有更新的插件,因为这可能意味着开发者已经不再维护。这种情况会导致潜在的安全隐患和兼容性问题。对于近期有更新的插件,我会感到更有信心,说明开发者在积极维护它。不过,有些插件只提供简单功能,并不需要频繁更新,这也是我评估的一个方面。

以上这些信息,可以通过WordPress插件目录中每款插件的公开列表轻松获取。这些都是对使用过WordPress的用户而言相对基础的指导原则,能够帮助我避免盲目选择质量不佳的插件。

我还会特别注意那些存在过度锁定问题的插件,使用这类插件后,用户往往会很难转向其他竞争力更强的插件。我不愿意使用那些在文章中插入短代码的插件,因为如果将来卸载它们,文章中将会留下各种代码碎片,必须逐一手动清理。

我在寻找插件时,常常会思考它们的长期可用性。我会问自己,这款插件五年后是否仍然存在?如果心中有疑虑,我会选择其他选项。我也会定期回访那些看似有潜力的插件,以验证它们是否具备持续的生命力。

有些插件可以在短短几分钟内安装并激活,且无需额外配置就能添加相应功能。而另一些插件则需要用户进行一定的自定义设置。我习惯在安装后立即检查所有选项并进行个性化配置,这样可以帮助我更好地了解插件的各种功能。有时,为了扩展插件的功能,或调整内置选项,我会通过Google搜索解决方案,例如使插件适用于自定义类型的文章,而不仅仅是标准的博客文章。虽然许多插件都可以进行修改,但这通常会要求一些额外的技能,而这些信息在插件的官方文档中未必有详细说明。

接下来,我将分享一些我实际使用的插件,并说明我选择它们的原因。

Jetpack

Jetpack是一个由WordPress团队开发和维护的插件包,包含了多种插件功能。简单来说,Jetpack为自托管博客提供了一系列功能,这些功能原本只在WordPress.com托管的网站上可用。

安装Jetpack后,你可以根据需要启用或禁用其中的各个插件。大多数Jetpack插件都是免费使用的,也有一些优质的付费插件。目前,我只使用Jetpack中的免费插件。

我不会逐一介绍我使用的每个Jetpack插件,因为其中大多数都是非常基础的功能,但我会分享一些我认为重要的插件。

其中,Photon是Jetpack中免费的内容分发网络(CDN),它通过将网站图片分发到全球不同的服务器,从而加速图片的加载速度。由于我的网站上的图片数量不多,所以我并没有明显感觉到加载速度的提升,但对于一个图片较多的网站而言,这个插件将极为有用。启用这一插件非常简单,只需点击一下即可。

Protect插件则提供了对抗暴力破解攻击的保护。根据我的数据,Protect插件在过去三周内阻止了超过5300次的恶意登录尝试。大部分攻击者都是自动化程序(bots),它们在网上寻找安全性薄弱的WordPress博客。稍后我将分享更多有关安全方面的内容。

Monitor插件的作用是监控网站的运行状态。如果网站由于某种原因宕机,Jetpack的服务器将在几分钟内发送电子邮件通知你。

Subscriptions插件使访客能够通过电子邮件订阅我的博客。最近我刚刚添加了这个功能,读者们现在可以通过电子邮件获取我的新博客文章。

Jetpack的功能远不止于此,如果你对将网站与社交媒体账户关联感兴趣,其中一些插件会特别有帮助,例如能够自动将新博客文章的链接分享到你的Twitter和Facebook账户。

相关博客文章

有些插件能够在每篇博客文章底部显示相关的文章。当读者阅读完某篇文章后,他们可能希望继续浏览相关话题的内容。我已经使用这类插件多年,很多读者告诉我,这也是他们能在我网站上连续阅读数小时的原因之一。

几年前,一位年轻人在寻找自杀方法时偶然发现了我的网站。他在一夜之间阅读了5-6篇文章,最终获得了更深的生活目的感,并决心继续活下去。因此,我非常重视这个功能在网站中的重要性。

我曾经使用过的插件似乎已经停止开发,因此我决定寻找一款仍在维护的插件。

Contextual Related Posts是一款流行的插件,安装和配置相对简单,但我始终无法生成准确的相关文章。无论我尝试了多少不同的解决方案,它似乎总是显示几乎完全相同的推荐文章,且某些文章之间显然毫无关联。当我在网上寻求帮助时,发现其他用户也面临类似的问题,除了尝试我已经使用过的各种方法,例如重新生成索引文件和尝试其他相似插件,这些用户没有找到好的解决方案。由于它消耗了大量计算资源,考虑到这些烦恼,我最终决定放弃它,寻找替代方案。我担心即使目前它能正常工作,未来也可能再次出现问题,因此我不能保证使用效果的稳定性。

最终,我选择了Jetpack中的Related Post插件,其推荐效果非常出色。Jetpack在生成相关文章时,会将文章内容上传至云服务器进行处理,然后在网站上展示最终结果。这款插件的推荐结果相当不错。上传网站索引后,我认为不到一个小时就能看到推荐效果。

虽然有些人对Jetpack将所有文章内容上传服务器以进行处理感到敏感,但如果你的文章已经公开发布,这种做法又有什么关系呢?任何人都可以轻易地从公开网页上抓取你的内容,网上也有许多工具可以做到这一点。在我看来,这种担忧有些过于敏感。

遗憾的是,Jetpack默认的相关文章展示样式与我新网站的整体风格相差甚远。由于每篇相关文章都会放在单独的文本框中,我认为这种布局显得繁琐且视觉效果不佳。我尝试用自己的CSS代码进行调整,但过程并不顺利。后来我意识到可以直接禁用其CSS代码,使用我的代码替换,结果发现这样更为简便,并且比修改原有代码更加高效。我还把Jetpack默认的相关文章数量从3篇增加到7篇,以提供更多选择,三篇的数量显得有些吝啬。

流量分析

如果你喜欢查看数据,Google Analytics Dashboard(谷歌分析仪表盘)插件是个不错的选择。使用之前,你需要设置Google Analytics账户。我已经使用它数周,这款插件让我对网站流量模式有了更深入的了解,同时提供了一个WordPress管理工具栏,可以让我实时查看网站任意页面的流量数据。

当我刚开始写博客时,非常关注流量数据。然而,几年后,我对流量的波动感到乏味,几乎很少查看数据,通常会在6-12个月后才关注一次。但随着新网站的上线,我对用户与网站的互动方式,以及用户花时间最多的页面内容,产生了新的兴趣。

通过仔细分析网站的数据,我发现了一些有趣的访客模式,包括:

  • 访问我网站的前10个国家依次是美国、英国、加拿大、印度、澳大利亚、德国、菲律宾、南非、中国和新加坡,来自美国的流量约占44%。

  • 47%的访客通过桌面或笔记本电脑访问我的网站,45%使用手机,8%通过平板电脑。

  • 超过一半的移动设备用户使用苹果设备。

  • 访客中女性占46%。

  • 61%的访客年龄在18到35岁之间。

  • 49%的访客使用Chrome浏览器,31%使用Safari浏览器,7%使用Firefox浏览器。

  • 当前我网站最受欢迎的页面是《价值观列表》,该列表也被许多书籍引用。第二受欢迎的是《如何在30秒内入睡》,第三是《两相睡眠》。

当美国进入夜间时段时,与睡眠相关的文章访问量会明显上升。

为我带来最多流量的社交媒体是StumbleUpon,而Facebook和Twitter的流量加在一起也比不上它。Reddit是第二大引荐来源。自我开始写博客以来,StumbleUpon为我吸引了数百万的访客。

每天约有500-600人访问《如何煮糙米饭》这篇文章,尽管这篇文章是我当时随意写的。内容简单到令人难以置信,但显然许多人对此产生了兴趣,并在网上进行搜索。在引导我流量的前100个搜索关键词中,有好几个与糙米饭相关。这种有趣的结果促使我在2012年撰写了续集《终极拌饭》。尽管饭做得更好吃,续集的受欢迎程度却不及原作。

与性有关的文章同样备受欢迎,尤其是《主仆游戏玩法》经常出现在访问排名前十的文章中。尽管很多人都会阅读与性相关的内容,但很少有人提及、链接或在社交媒体上分享这些文章。因此,这些内容成为了我们之间的小秘密。;-)

如果你对数据研究感兴趣,或者想提升网站流量,想要了解自己网站当前的流量表现,还有许多数据插件可供选择。

搜索引擎优化

一些人认为优秀的SEO(搜索引擎优化)是解决所有流量问题的关键。我则更加关注HVO:人类访客优化。通过为真实的人创作内容,而非仅仅为搜索引擎,我的网站在搜索引擎中的排名也相对不错。从我开始写博客以来,我一直都是这样做的。在这次网站更新中,我也进行了更多以人类读者为中心的设计工作。

多年来,我见证了各种SEO技巧的兴衰,自己在很大程度上忽视了这些技巧。我相信,谷歌最终会淘汰大部分试图钻空子的优化手段。与其耗费时间在这些表面技巧上,不如专注于帮助人们成长,这样反而更轻松。我认为从这种角度出发去写作,自然会获得良好的推荐流量,搜索流量只是另一种形式的推荐而已。

以前,SEO专家们会说写长文是个错误。他们建议我只写300-500字的文章以获得更高的搜索排名。然而,如今他们又告诉大家应该写2000字以上的文章,因为更长的文章显然能获得更好的排名。谷歌现在不再推荐过多短文,因为许多内容工厂会快速大量生产低质量短文,向谷歌出售这些垃圾内容。

专注内容价值,赢得SEO游戏

与其在SEO的复杂游戏中迷失方向,长久来看,投入精力为真实用户创造价值,才是更简单、更诚实且有效的策略。只要你的网站能更好地服务于用户,并持续学习与提升内容质量,自然会吸引越来越多的推荐和链接,搜索引擎带来的流量也会随之而来。

令人欣慰的是,现在的SEO策略逐渐远离了那些狡诈的操作,愈发倾向于与Google建立合作关系,而非对抗。我坚信,采用诚实合作的SEO策略是正确的选择,大家应该避免那些不道德的操作,最终只会导致惩罚降临。

在实施任何SEO策略时,给文章选择一个清晰合理的标题是至关重要的。这并不意味着需要聪明地玩弄文字或迎合所有人的喜好。例如,如果我写一篇关于感恩的文章,标题就可以直接用《感恩》。而写一篇关于《如何通过个人博客盈利》的文章时,标题也应如是。我喜欢让读者通过标题便能轻易理解文章的内容。有时我也会选择一个自己喜欢的有创意的标题,但大多数情况下,我更注重标题的清晰与实用。看到某个博客的文章标题和《行尸走肉》的剧集名称相似时,我就完全无法猜测内容,这无疑会降低网站的可用性。

只要使用易于理解的标题,这些文章在搜索引擎中的表现通常也会良好。这样,我们可以运用其他一些SEO技巧。与其过分关注SEO,不如思考如何提升内容的价值和清晰度。合适的子标题和清晰的链接文本不仅对读者有帮助,也能助你在搜索引擎中获得更好的排名。

将所有可能花在理解Google搜索算法上的时间,转而投入到理解和服务你的读者上,即使一开始只有少数读者,也应全力以赴地为他们提供良好的服务,这些读者未来可能会为你的网站引荐更多人… 除非你只关注于性相关内容。;-)

我在考虑SEO时,往往优先考虑生活质量。由于我有意避免一些Google青睐的做法,我的网站SEO排名可能会受到影响。例如,自2014年起我停止使用Twitter和Facebook,这使得Google无法验证我不存在的社交账户。由于缺少指向我网站的社交链接,Google可能会降低我网站的内容排名。尽管如此,这对我而言是值得的交易。我享受无社交媒体的生活,能够以其他方式获得收益,比如提高工作效率和减少社交烦恼。不必面对网络上的种种杂音,确实令人感到轻松。

另一个例子是,我在博客文章的URL中仍然保留着年月信息,并在每篇文章标题下方标示发布日期。尽管旧内容可能导致排名下降,但我认为这种做法对读者更为友好,因为他们可能想知道一篇文章的实际发布日期。我特别喜欢在阅读其他网站的文章时能看到发布日期,因此我将其直接展示在标题下方,方便读者识别。

如果我有一个推荐的插件,那就是Yoast SEO,这是目前WordPress网站上最受欢迎的SEO插件。我已将其安装,但主要是让它自动运行,并未深入使用。该插件提供了许多功能值得探索。我尤其喜欢它允许我为每个页面输入元数据描述,这样Google就能向读者展示这部分简短描述,而不是直接抓取页面中的某段文字。

我还喜欢Yoast SEO的另一个功能,即其内建的网站地图生成器。网站地图是你网站上所有内容URL的完整列表。通过这个工具,搜索引擎能轻松找到你的网站,并为所有公开内容建立索引。即使某些页面尚未被链接,Google也不会错过你网站上的任何内容。这是一种诚实合作的SEO技巧。

起初我尝试过Jetpack的网站地图插件,但由于一些莫名其妙的原因,Jetpack的网站地图限制了1000个链接。Jetpack的这一做法实在愚蠢!许多WordPress网站,包括我自己的,内容数量远超1000。因此,使用Jetpack生成的网站地图总是显得不完整。虽然我尝试过寻找扩展这一限制的代码,但最终未果。幸运的是,Yoast SEO的网站地图生成器并没有这种限制,所以我选择使用Yoast插件来生成我的网站地图。

减少404错误

为了确保指向旧网站的链接不会消失,我小心翼翼地将旧URL映射到新URL,并在.htaccess文件中添加重定向。虽然有插件可以完成这项工作,但我更喜欢直接编辑.htaccess文件,这样对我来说更加高效。

这个过程其实相当简单,只是需要一些时间,因为我必须逐一检查旧网站上的每个URL,并决定如何将其映射到新网站。我将需要转换的所有URL列成一份清单,然后逐个处理。其中大部分是旧的HTML文件,现在则由新网站的WordPress管理。

我还整理了.htaccess文件,将重定向清晰地分成不同块,并加上评论注释,这样维护起来也更为轻松。

我很高兴Yoast SEO插件与Google Search Console的整合效果很好。我从中看到,很多人因使用错误的URL而导致了大量“404页面未找到”的错误。得知这一信息后,我可以对.htaccess文件进行编辑,添加重定向规则,确保用户能够访问他们所尝试的正确URL。

以下是一些错误链接的例子,输入后会遇到404错误页面:

  • http://www.stevepavlina.com/articles/do-it-now.htmEvery

  • http://www.stevepavlina.com/articles/triple-your-personal-productivity.htm;

  • http://www.stevepavlina.com/articles/courage-to-live-consciously.htmWhat

  • http://www.stevepavlina.com/about-steve-pavlina.htm/

当某人在邮件中分享链接时,如果URL后未加空格就直接写下一句话,往往就会出现上述错误。

由于这些链接不准确,用户通常会看到404错误页面。这样的结果令人遗憾,因为我显然知道正确的链接应该是什么。幸运的是,通过对.htaccess文件进行简单调整,我可以为大家提供正确的网址,从而避免404错误页面的出现。

这些链接指向旧网站上的HTML页面,而现在它们已被转换为不同URL地址的WordPress文章和页面。例如,我对《现在就干》一文最初所做的重定向如下:

RewriteRule ^articles/do-it-now.htm$ /blog/2005/11/do-it-now/ [R=301,L]

遗憾的是,这些链接对应的错误版本无法匹配这个重定向模式,因此会导致404错误。为了解决这一问题,我只需将重定向更改为以下内容:

RewriteRule ^articles/do-it-now.htm /blog/2005/11/do-it-now/ [R=301,L]

唯一的变化是移除了$符号。$符号告诉重定向命令,此处为URL的终点。移除该符号后,旧URL的地址模式在末尾保持开放状态,这意味着在.htm之后还可以有额外字符,但整体仍然符合旧URL的地址模式。

如果你猜测^字符表示URL的起始位置(在域名和斜杠之后),你猜对了。

如果你想知道为什么规则中的句号前有一个反斜杠,那是因为在常规程序表达中,句号代表任意单个字符。通过在句号前添加反斜杠,我明确指明它就是句号,而非任意字符。当然,由于任意字符也可以匹配句号,因此两种理解方式都是可行的。

修改重定向规则,使其更具灵活性,这意味着会有更少的人看到404错误页面。受益于这种宽容的重定向规则的大多数用户,甚至不会注意到他们最初使用了错误的URL。

通过使用Yoast SEO插件的Search Console功能(或直接使用Google Search Console),我能够看到用户在哪里遇到404错误。如果我能想出修改重定向规则的好方法,从而帮助人们进入他们想要的页面,那当然是更好的结果。

再次强调,这是一种“人类访客优化”的技巧。人类总会犯错。如果我们能让网络服务器的行为不那么死板,大家就能更顺利地绕过这些错误。

缓存

由于WordPress广泛使用PHP和MySQL程序,如果不使用缓存插件(或选择像WP Engine这样的主机提供内建缓存),网站的运行速度会显得缓慢。目前,我的网站运行在一台拥有8块CPU的专用服务器上,如果禁用缓存插件,服务器的负载常常达到峰值。这意味着服务器正在进行大量处理,以提供页面访问服务。在高流量情况下,这个问题会显著拖慢网站的运行速度。

相较于每次页面访问必须运行PHP代码并从数据库读取内容,缓存插件能在某页面首次被访问时保存其副本,并让随后的访客查看这个副本。与每次访问都重新生成页面相比,提供页面副本能显著提高访问速度。

想象一下你打出一页文字并把它打印出来,花费的时间与复印另一页所需的时间有多大的差别?复印额外的副本显然比打出原始内容快很多。WordPress的默认操作是为每次页面访问重新生成原始页面内容,而缓存插件则教会它保存页面副本,并在页面内容未改变时提供给访客浏览。

我一直使用的缓存插件是WP Super Cache。它稳定耐用,速度极快。唯一让我不喜欢的地方是其界面设计较为简陋。这款插件提供了许多选项,但即使读过说明文档,我仍然难以理解其中一些选项的用途。我认为对于WordPress新手来说,那种界面可能有些令人生畏。不过,如果你只使用默认选项,应该也不成问题。

另一个流行的缓存插件是W3 Total Cache。我曾经尝试过,但发现WP Super Cache的速度更优秀。我看到一份详细的速度对比报告,指出在多个关键指标上,WP Super Cache确实优于W3 Total Cache。

如果你的网站流量不大,可能并不需要缓存插件。然而,当网站因高流量开始变得缓慢时,缓存插件肯定能带来显著的改善。

安全

网站被恶意入侵,至少会让人感到极度不安。这种事情曾在我身上发生过几次,不仅是这个网站,还有我自2006年起运营的游戏发行网站。有一次,一个攻击者利用我的网站,试图向访问旧论坛的用户分发Windows系统的恶意软件。直到一位安全研究员提醒我,我才意识到自己的网站遭到黑客攻击。

面对新网站,我决定在安全方面投入更多精力。因为提前防范恶意入侵,通常比事后恢复更容易(也省心得多)。

我目前使用并推荐的综合安全插件是WordFence。由于持续遭受机器人程序的攻击,我将WordFence配置得比默认设置更为严格。如果WordFence检测到可疑行为,它会自动拦截这些访客。

WordFence甚至可以实时展示我所遭受的攻击。这些攻击大多数来自中国和俄罗斯,当然也有不少来自美国本土。

WordFence每天都会自动扫描我网站的文件,确保没有被恶意修改的内容。它会将我当前使用的WordPress文件版本与原始的WordPress文件进行对比,如果有任何不匹配的地方,它会及时警告我。它同样会对我使用的所有插件进行类似操作,假设这些插件均来自WordPress插件目录。如果你所使用的网站主题也来自WordPress主题目录,WordFence也会对其进行相同的检查。WordFence还具有像病毒扫描软件一样的额外扫描功能,能够检查恶意软件、病毒感染和漏洞。一旦发现任何问题,它会立即通过邮件通知你。

WordFence还有许多出色的自定义选项,能够检测并拦截恶意入侵。我在这一方面的设置比默认设置严格很多,因为尽早拦截各种攻击,能使网站运行得更为高效。我何必让恶意机器人浏览更多网站页面呢?

我从不在自己的WordPress网站上使用默认的登录名称,也不使用容易被猜到的用户名,如我名字的各种变体。除此之外,我还使用强且长的密码。因此,无论访客如何尝试使用像admin、test、stevepavlina、steve、pavlina、stevep或spavlina之类的用户名登录,都将遭到立即拦截,因为我并不存在这些账户。任何这样的登录尝试,都是恶意入侵的迹象。

另外,由于网站未启用评论功能,没人需要访问wp-comments-post.php文件。然而,机器人程序总是试图访问这个文件,发布垃圾评论。因此,我对WordFence插件进行了相应设置,以立即拦截任何试图访问这一文件的程序。只要加载这个文件,操作就会触发拦截。

在捕捉和拦截各种攻击上,WordFence还有许多其他功能。例如,如果发现某位访客浏览大量404错误页面,显然这位访客在试图探测网站的漏洞。WordFence能够自动检测并拦截这样的访客。

提升网站安全与功能的深度探索

通过观察WordFence记录的404错误,我得以洞悉那些恶意访问者的企图。众多不法分子常常试图探测带有内建文件下载脚本的插件,力图借此手段下载我的wp-config.php文件,以窃取数据库的用户名和密码。尽管我不确定这对他们的帮助有多大,但这些恶意行为者仍需入侵服务器才能利用这些信息。有些人可能会在WordPress数据库中,使用与他们的WordPress管理员或FTP账户相同的用户名和密码。对此,我对不同账户采取了各异的登录名与密码,因此即便破解其中一个账户也无法进一步攻破其他账户。

我对WordFence的一点小不满是,它时常会因小问题发送令人恐慌的邮件。某些邮件的标题便是这样的:[WordFence警告]www.stevepavlina.com网站发现问题。

当我首次收到这样的邮件时,正是在安装WordFence后的几天。那时我心中不禁一惊,难道我遭到黑客攻击了?邮件的开头部分也写得颇为惊悚,它告知我网站上发现了一个“危急问题”。然而,这个所谓的危急问题竟只是一款插件需要更新。尽管WordFence能够持续关注,确保插件保持最新状态,这无疑是件好事,但我认为邮件的措辞可以更为平和,避免造成过度的紧张感。

这样的措辞仿佛我的女友突然闯入我办公室高呼:“Steve!我们遇到一个大问题!我刚刚感到饿了!”

几天后,我又收到WordFence的邮件,警告我服务器上有几个文件疑似恶意程序。经过检查,我发现这竟是误报。WordFence错误地将我的一些缓存文件标记为恶意程序,而实际上这些代码完全合法,属于网站上的另一个插件。

恶意攻击往往源于使用不安全或过时的插件,因此我在更新插件和选用信誉良好的高质量插件方面始终保持严格。在我上一次遭遇恶意入侵时,就是因为一款编码糟糕的插件。我早已发现其漏洞并向开发者反馈,而这款插件的编码质量给我留下了一定的马虎印象。尽管我本应更早替换掉这款插件,但由于我依赖它实现某个重要功能,这成为我未来必须避免的错误。

即使一款插件的问题稍后才被发现,而其代码仍然存在于你的网站上,即使未启用该插件,也可能造成安全漏洞。因此,我更倾向于避开那些看似存在潜在问题、且不常更新的插件。

我非常感谢WordFence能持续监控、扫描并拦截各种攻击。只要它能有效阻止一次恼人的恶意攻击,这已是非常出色的表现。如果真的发生了入侵,WordFence也很可能会及早探测到问题。

社交分享按钮的思考

在撰写这篇文章时,我的网站上并没有任何社交媒体分享按钮。对于是否添加这些按钮,我采取了观望态度。

一方面,社交分享按钮会为每个页面增添杂乱感。我认为没有它们能为网站创造出更加宁静的氛围。

另一方面,这些按钮确实能让人们更方便地与朋友分享文章,并且它们在实践中被广泛使用。

甚至有些访客专门发邮件询问我是否可以添加社交按钮,以便分享我的文章。显然,有些人并未意识到他们可以复制链接,并将其分享至自己喜爱的社交媒体。因此,我开始思考将分享按钮重新添加回网站是否是个更佳选择。

曾几何时,我在每篇文章下方都放置了社交分享按钮,但在2014年我决定不再使用社交媒体时将其移除。不过,如果大家希望,我可以轻松地恢复这些按钮。Jetpack提供了一款社交分享插件,但我觉得默认的按钮样式过于丑陋,期待将其调整得更加符合网站整体风格。

如果你对此有自己的看法,我非常乐意听听你的反馈与建议。

数据库的优化与改进

出于某种奇怪的原因,WordPress在最初发布时,其数据库表使用了名为latin1_swedish_ci的字符集。后来,WordPress进行字符集转换时,给许多博客作者带来了一些技术问题。我所遇到的问题是,某些外文字符在自己的网站上无法正确显示,比如像pâté或jalapeño这样的词汇。尽管我可以采取一些临时修复措施,这次我决定彻底解决此问题,将整个数据库转换为utf8_unicode_ci字符集。

根据WordPress的说明,这种转换过程相当复杂。在转换开始时,WordPress给出了如下警告:

“注意:若你对SQL和MySQL/MariaDB一无所知,可能会搞砸此事。这是属于voodoo编码的领域…”

幸运的是,我的“voodoo编码”技能足以应对这个任务,因此顺利完成了转换。

此外,我还对数据库进行了其他改进,包括将所有表的数据库引擎从MyISAM更换为更现代化的InnoDB,清理了由旧插件添加但在卸载后未被清理的所有表,并处理了其他若干问题。

为了清理数据库问题,我使用了Better Search Replace插件。这个插件在处理WordPress图片库中的错误URL时特别有效。我喜欢这款插件的序列化搜索与替换功能,对处理存储在wp_postmeta和wp_options表中的特定数据尤为重要。

当我需要排查错误日志中的SQL错误时,Query Monitor插件也派上了用场。它能够展示每个页面运行的SQL请求,以及执行它们所需的时间。

大多数博客作者不需要处理这些问题。之所以会出现这些问题,主要是因为我多年来一直使用WordPress,经历了多次更新升级。进行这样的数据库维护工作就像修复一辆旧车。尽管车龄较大,但只要完成一些修理与升华,它依然能跑得更好。

数据库工作并非我的强项,我必须重新学习一些旧技能,尤其是SQL知识。我决定慢慢来,并在过程中频繁进行备份。我曾不小心使数据库崩溃几次,但从备份恢复仅需几秒钟,因此这些崩溃并不算什么。我很高兴花时间完成这项额外工作,因为现在的数据库状况远比我开始处理时要好。它运行得更快,未来的维护工作也将变得更加轻松。

虽然除了我,没人能看到这个网站的数据库,但清理它让我对自己的工作感到更深的自豪。我部分受到了史蒂夫·乔布斯的启发,他对那些人们看不见的产品部分同样渴望追求完美。保持近乎不合理的高标准确实会耗费更多时间,但我对这种工作哲学的益处有了更深的理解。在某种程度上,如果我对自己作品的每一个方面都感到骄傲,而不仅仅是人们所看到的部分,这种做法似乎更简单。全方位保持一致其实是更轻松的选择,因为那时我可以将同一种思维方式应用于所有事务,而不必为不同项目部分切换思维。这种做法也培养了我的耐心。尽管培养耐心并不容易,但它无疑是能带来巨大益处的重要品质。

进一步的改进

由于有些访客喜欢打印网站文章,我编写了一些额外的CSS代码,以确保文章在打印时不包含导航元素,从而使格式看起来更加美观。我还通过编码调整了图片,在打印时不会超出页面边界,避免出现拼接不完整的问题。我还调整了常见问题解答(FAQ)页面的样式,使其在打印时能自动展开内容,避免内容在打印页面之间出现拼接问题。通过“打印预览”功能,我可以在不浪费纸张的前提下测试这些更改的效果,因此这项工作进行得相对轻松。我还在此过程中学到了一些新的CSS技巧。

我通过使用Better Random Redirect插件在网站上添加了随机文章功能。由于实现这项功能的代码相对简单,因此这个插件也不需要频繁更新。值得一提的是,这款插件与缓存的结合效果良好;否则,访问者每次都将看到相同的文章。

鉴于WordPress内建的搜索功能众所周知地糟糕,特别是它按发布日期而非相关性排序结果,我决定使用名为Relevanssi的插件来升级搜索功能。这个插件提供的搜索结果相关性大为提升。Relevanssi还会向我展示人们在搜索时使用的关键词(以匿名形式,不会标明具体用户)。

目前,用户在网站内建搜索中使用的前15个关键词为:

  1. 睡眠

  2. 目的

  3. 信念

  4. 两相睡眠

  5. 工作

  6. 主观现实

  7. 多相睡眠

  8. 收入

  9. 恐惧

  10. 纯素

  11. 吸引力法则

  12. 自律

  13. 大学

  14. 金钱

我在上述所有话题上都有相关文章,这意味着用户应能根据自己的搜索目的找到有价值的信息。

我还会查看哪些搜索操作最终失败,其中大多数都是由于打字错误,例如:lonliness(孤独)、synchonicties(同步性)、polifasic sleep(多相睡眠)、caffine(咖啡因)、archieving(实现)、disipline(自律)和aprisioners(囚犯)。从中我意识到,我也许可以使网站的搜索功能更具弹性,以更好地适应用户的打字错误。

在下一篇文章中,我将分享更多关于网站速度优化的插件知识。

Steve Pavlina(史蒂夫·帕弗利纳)

2016.04.23

www.stevepavlinachina.com

微信公众号:聪明人的个人发展

本文标题:重塑StevePavlina.com:第7章——今日亮点揭秘
网址:https://www.2090ai.com/2025/09/13/plugins/62111.html



本站所有文章由wordpress极光ai post插件通过chatgpt写作修改后发布,并不代表本站的观点;如果无意间侵犯了你的权益,请联系我们进行删除处理。
如需转载,请务必注明文章来源和链接,谢谢您的支持与鼓励!