本文为《重新设计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次的恶意登录尝试。这些尝试大多来自于自动化程序,它们在互联网上寻找防护薄弱的WordPress博客。稍后我将在这篇文章中分享更多关于安全方面的内容。
Monitor插件用于报告网站的宕机情况。如果由于某种原因导致我的网站下线,Jetpack的服务器将在几分钟内通过电子邮件通知我。
Subscriptions插件允许用户通过电子邮件订阅我的博客。我最近刚添加了这个功能,感兴趣的朋友可以通过电子邮件收到我新的博客文章。
Jetpack还有许多其他的插件功能,我鼓励你去探索。特别是如果你想将网站与社交媒体账户连接,这其中的一些插件会非常有用,比如可以将新博客文章的链接自动分享到你的Twitter和Facebook账户。
相关博客文章
有一种插件可以在每篇博客文章底部自动添加相关的博客文章。当读者阅读完一篇文章后,可能会希望继续查看更多相关话题的内容。我多年来一直在使用这种插件,许多人告诉我,这也是他们能在我网站上连续阅读数小时的原因之一。
几年前,一个年轻人告诉我,他在搜索自杀方法时,无意中发现了我的网站。那天晚上,他阅读了我5-6篇文章,读完后感到获得了更深刻的人生意义,并决心继续生活。因此,我非常重视网站上这项功能。
我曾使用的实现该功能的插件似乎已经停止更新,因此我决定寻找一款仍在维护中的替代插件。
其中一款流行的插件是Contextual Related Posts。它的安装和配置看起来没有问题,但尽管我尝试了多种解决方案,始终无法让它生成合适的相关文章。它的推荐文章几乎都是高度相似,且之间的关联性很弱。在网上寻求帮助时,我发现其他用户也面临类似问题,除了尝试我已经试过的所有方法,例如重新生成索引文件和安装其他类似插件进行尝试,似乎没有人找到好的解决办法。我还发现它对计算资源的消耗很高,因此由于这些问题,我最终放弃了这个插件,选择了其他方案。我担心即使它目前能正常工作,未来也可能会出现同样的问题,如果使用它,我无法预见未来的稳定性。
最终,我选择了Jetpack中的Related Post插件,其推荐效果相当优秀。Jetpack在生成相关文章时,会将你的文章内容上传至云服务器进行处理,并在网站上展示最后的推荐结果。这款插件为每篇文章提供的推荐都很不错,完成索引上传后,我认为不到一小时就能看到推荐结果。
尽管一些人对Jetpack将所有文章内容发送到服务器进行处理有所顾虑,但如果你的文章已经公开发布,这种做法又有什么关系呢?任何人都能轻易地从公开网页上获取你的内容,网络上还有很多工具可以做到这一点。在我看来,这种担忧有些多余。
遗憾的是,Jetpack推荐的相关文章默认展示风格与我新网站的设计风格大相径庭。由于每篇相关文章都在单独的文本框中显示,我认为这种布局显得繁琐且不美观。我尝试用自己的CSS代码调整布局,但发现非常困难。后来,我意识到可以禁用Jetpack的所有CSS代码,并直接用我的代码替换,这样的做法更为简便,而且比试图修改原有代码要简洁许多。我还将默认的相关文章数量从3篇增加到7篇,以便读者有更多选择,三篇的推荐数量显得有些过于寒酸。
流量数据
如果你喜欢查看数据,Google Analytics Dashboard(谷歌分析仪表盘)是一个很不错的WordPress插件。使用前,你需要设置一个Google Analytics账户。我已经使用它数周,这款插件帮助我更好地理解了网站的流量模式。它还提供一个WordPress管理工具条,让我能查看当前浏览的任意页面的流量数据。
刚开始写博客时,我对流量数据非常敏感。然而,经过几年的观察后,我对流量变化感到厌倦,几乎不再关注这些数据,往往6到12个月才查看一次。现在,当我的新网站上线后,我对人们如何与这个网站互动以及他们最感兴趣的内容产生了新的兴趣。
仔细分析自己网站的数据后,我发现了一些有趣的访客模式,例如:
-
访问我网站的读者最多的十个国家分别是美国、英国、加拿大、印度、澳大利亚、德国、菲律宾、南非、中国和新加坡。其中大约44%的流量来自美国。
-
47%的访客通过桌面或笔记本电脑访问网站,45%通过手机,8%则通过平板电脑。
访问我网站的用户中,超过一半的人选择了苹果的移动设备。
在这些访客中,女性占比达到46%。
值得注意的是,61%的访问者年龄在18到35岁之间。
在浏览器使用情况方面,49%的访客使用Chrome浏览器,紧随其后的是31%使用Safari,而使用Firefox的比例为7%。
当前我网站上访问量最大的页面是《价值观列表》,该列表也被众多书籍引用。紧随其后,第二受欢迎的页面是《如何在30秒内入睡》,而第三个则是《两相睡眠》。当美国进入夜间时段,和睡眠相关的文章访问量会显著上升。
在社交媒体引流方面,StumbleUpon是为我带来最多流量的平台,而Facebook和Twitter的引荐数量则逊色不少。排名第二的是Reddit。自我开始写博客以来,StumbleUpon为我吸引了数以百万计的访问者。
每天大约有500到600人浏览《如何煮糙米饭》这篇文章,尽管它原本是我随意写作的玩笑之作。内容简单得令人难以置信,但明显引起了许多人的兴趣,导致他们频繁搜索并链接到这篇文章。在我流量来源的前100个搜索关键词中,有好几个与糙米饭有关。这种有趣的现象促使我在2012年撰写了续作《终极拌饭》,尽管这篇文章的内容更为美味,但其受欢迎程度却不及原作。
性相关的文章同样受到了极大的关注,尤其是《主仆游戏玩法》,它经常出现在每日访问排名的前十名。虽然很多人热衷于阅读性相关的内容,但很少有人会提及、链接或在社交媒体上分享这些文章。因此,这似乎成了我们之间的小秘密。
如果你对数据分析感兴趣,并希望提升网站流量,市面上有许多插件可以帮助你查看网站的当前表现。
搜索引擎优化
有人认为出色的SEO(搜索引擎优化)能解决所有流量问题,而我更关注于HVO:人类访客优化。我的内容是为真实的读者创作,而不是为了机器,这也使得我的网站在搜索引擎中的排名表现良好。从我开始写博客以来,这就是我的创作原则。此次网站更新,我也在设计上为人类读者做出了更多努力。
多年来,我见证了各种SEO技巧的兴起与消退,我大多对此采取忽视态度。我认为Google最终会淘汰那些试图钻空子的优化手段。与其将时间花费在操弄技术以获取不相称的高搜索排名上,不如专注于帮助他人,这样反而更轻松。我相信,如果从这个角度进行写作,自然会收获良好的推荐流量,而搜索流量只是另一种推荐形式。
过去,SEO专家们曾认为写长篇文章是一种错误,他们建议我只需撰写300到500字的内容,以便在搜索引擎中获得更高的排名。而现在,他们又告诉大家要写2000字的文章,因为显然较长的内容能获得更好的排名。Google如今不会再推荐过多短文,因为许多内容工厂快速机械地生产大量低质短文。
与其在SEO游戏中迷失方向,长远来看,更明智、诚实且有效的做法是将精力投入到为真实的人创造价值,进而提升你的网站服务质量。如果你不断提高内容的相关性和质量,自然会吸引到各类推荐和链接,而搜索引擎流量也会随之而来。
值得庆幸的是,现代的SEO策略越来越倾向于与Google的合作,而非对抗。我认为应用诚实的SEO技巧才是正道,务必要避免任何欺诈行为;否则,最终你会遭受惩罚。
在实施任何SEO策略时,首先要确保文章标题清晰合理。这意味着在选择标题时不要显得过于聪明或迎合。比如,我写一篇关于感恩的文章,标题可能就直接用《感恩》。如果我的主题是《如何从个人博客中赚钱》,这个话题本身就可以作为标题。我喜欢让读者仅凭标题就能轻松理解文章内容。尽管有时我会使用一些我自己喜欢的创造性标题,大部分情况下,我的优先考虑仍是清晰和易用。当我看到某个博客的文章标题像《行尸走肉》的剧集名时,我对其内容完全没有头绪,这无疑会影响网站的用户体验。
只要使用适合人类理解的标题,这些文章往往在搜索引擎上也会表现良好。通过这种方式,我们还能使用其他一些SEO技巧。与其过分关注SEO,不如思考如何让你的内容对人们更有用和清晰。使用合适的子标题以及清晰的链接文本,不仅对读者有益,也能帮助你在搜索引擎上获得更好的排名。
不妨将所有花在理解Google搜索算法上的时间,转化为理解和服务你的读者。即便初期只有少数读者,也要全心全意地为他们服务,因为这些人很可能会为你的网站吸引更多的流量… 除非你的内容主要是关于性的话题。
我也会优先考虑生活方式,而不是单纯追求SEO结果。我有意避免一些Google青睐的做法,这可能导致我网站的SEO排名下降。例如,自2014年我停止使用Twitter和Facebook后,Google便无法验证我不再存在的社交媒体账户。这使得Google可能降低我网站内容的排名,因为没有链接指向该网站。尽管如此,这对我而言是一个合理的选择。我享受无需应对社交媒体的生活,能够通过其他方式受益,例如更高效的工作产出和减少社交纷争。摆脱网络上的无谓争论真是太好了。
另一个例子是,我在博客文章的网址中仍然包含年月信息,并在每篇文章标题下方列出发布日期。尽管较旧的信息内容可能导致文章排名下滑,但我认为保留实际发布日期对读者来说是更优的选择,因为有些读者可能希望了解一篇文章的确切发布日期。我通常也喜欢在阅读他人网站文章时得知发布日期,因此我将其直接放在标题下方,以便读者轻松查看。
如果我有一个值得推荐的插件,那就是Yoast SEO,这是目前最受欢迎的WordPress SEO插件。我虽然已安装该插件,但基本上仅让其自动运行,尚未深入使用。这个插件有许多值得探索的功能。我特别喜欢的一点是,可以为每个页面输入自定义的元描述,这样Google就能向读者展示这些短描述,而不是直接抓取页面上的某段文字。
我还喜欢Yoast SEO的另一项功能,它内置的网站地图生成器可以列出网站上所有内容的完整网址。通过这个功能,搜索引擎能够轻松访问你的网站,并为所有公开内容建立索引。即使你尚未链接某些页面,Google也不会错过它们。这是一种诚实的SEO技巧。
起初我尝试使用Jetpack的网站地图插件,但由于某种荒唐的原因,Jetpack的网站地图链接数量被限制在1000个。如此做法实在是愚蠢!许多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文件做一些简单的调整,我能够为大家提供正确的URL,避免出现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地址到此为止。通过移除它,旧链接模式的末尾变得更加灵活,这样在.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,它不仅稳定可靠,速度也极快。唯一让我不满的是它的界面设计相对粗糙。尽管该插件提供了丰富的选项,但即使阅读了说明文档,依然很难理解其中的一些具体功能。我认为对于新手来说,这种界面可能会显得有些复杂。不过,如果仅使用默认选项,基本上不会有问题。
另一款受欢迎的缓存插件是W3 Total Cache。我曾经试用过它,但最终发现WP Super Cache的速度更胜一筹。我见过一份详尽的速度对比报告,显示WP Super Cache在多项关键性能指标上确实优于W3 Total Cache。
如果你的网站流量不大,可能并不需要缓存插件。但一旦流量上升,导致网站速度变慢时,缓存插件的优势便会显现出来。
安全
网站遭遇恶意攻击是极其令人沮丧的经历。我曾多次遇到这种情况,不仅仅是现在的网站,甚至在我运营到2006年的游戏发行网站上也发生过。有一次,攻击者利用我的网站试图向访问旧论坛的人传播Windows系统的恶意软件。这一切直到一位安全研究员提醒我,我才意识到自己的网站遭到了黑客入侵。
因此,在新网站的安全方面,我决定投入更多的精力。因为提前做好防范,远比事后补救更加高效(也更省心)。
我推荐的综合安全插件是WordFence。由于我的网站持续遭受bot程序的攻击,我对WordFence的设置比默认配置要严格得多。如果它检测到可疑行为,便会自动拦截这些访客。
此外,WordFence能够实时显示正在发生的攻击,这些攻击大多源自中国和俄罗斯,但也有不少来自美国本土。
WordFence每天都会自动扫描网站文件,确保没有内容被恶意更改。它会将当前的WordPress文件版本与原始文件进行比对,一旦发现不匹配的地方,就会发出警报。该插件同样会对我使用的所有插件进行相同的审查,并假设这些插件均来自WordPress插件目录。如果你使用的主题来自WordPress主题目录,WordFence也会进行类似的检查。此外,它还像病毒扫描软件一样,执行额外的扫描,以检测恶意软件、病毒感染和漏洞问题。如若发现任何异常,它会通过邮件通知我。
WordFence还提供了多项自定义选项,以探测并拦截恶意入侵。我对这些设置进行了比默认更为严格的调整,因为尽早阻止各种攻击能让网站运行得更加顺畅。我不想让恶意bot程序浏览更多页面。
我从不使用默认的登录名称,也不会选择容易猜测的用户名,比如我的名字变体。除此之外,我还使用强而复杂的密码。因此,若有人试图用admin、test、stevepavlina等名称登录,那种行为会被立即拦截,因为我根本不存在这些账户。任何这些名称的登录尝试,都可视为恶意入侵的迹象。
另外,由于我的网站没有启用评论功能,便无需访问wp-comments-post.php文件。然而,bot程序总是试图攻击这个文件,发布垃圾评论。因此,我对WordFence进行了相关设置,立即拦截任何试图访问该文件的程序。只要尝试加载此文件,就会立即触发拦截。
在捕捉和阻止各种攻击上,WordFence还拥有许多其他功能。例如,如果发现某位访客频繁访问404错误页面,便可以推测他正在探寻网站的漏洞。WordFence能自动识别并拦截这些访客。
通过查看WordFence记录的404错误,我能够了解恶意访客的行为意图。许多攻击者会尝试探索包含文件下载脚本的插件,试图获取我的wp-config.php文件,从而窃取数据库的登录信息。我不确定这种做法对他们有多大帮助,因为他们仍需进入服务器才能利用这些数据。可能有些人会试图在WordPress数据库中使用与其管理员或FTP账户相同的登录信息。对于这些不同的账户,我都设置了不同的用户名和密码,因此即使一个账户被攻破,其他账户仍然安全。
我不太喜欢WordFence的一点是,有时它会因小问题而发送令人恐慌的邮件。一些邮件的标题可能是这样的:[WordFence警告] www.stevepavlina.com网站发现问题。
我第一次收到这样的邮件是在安装WordFence几天后。当时我心中大惊,认为自己被黑客攻击了。邮件的开头部分也显得有些可怕,声称发现了一个“紧急问题”。然而所谓的紧急问题,仅仅是某个插件有更新可用。WordFence确实能够时刻关注,以确保我的插件保持更新,这一点很好,但我觉得这类邮件的语气可以更温和一些。
这种语气就像女友闯入我的办公室大喊:“Steve!我们遇到麻烦了!我刚刚觉得饿了!”
后来的某天我又收到了WordFence的邮件,警告我服务器上一些文件似乎是恶意程序。经过检查,我发现这只是误报。WordFence错误地将我的一些缓存文件标记为恶意程序,但这些标记的代码实际上是其他插件的合法代码。
恶意入侵往往源于使用不安全或过时的插件,因此在更新插件和使用信誉良好的高质量插件方面,我始终保持严格。我的网站上曾因一款编码不佳的插件而遭到恶意入侵。我早已发现了它的一些漏洞并向开发者报告,但这款插件的代码给我的印象一直不佳。我本应尽早更换这款插件,但当时我不幸依赖于它来实现某个重要功能。未来我希望能避免这样的错误。
即使一款插件的问题被延迟发现,其代码仍然留在你的网站上,也可能导致安全漏洞,即便该插件已被禁用。这也是我倾向于避开那些可能存在问题且没有定期更新的插件的原因。
我非常感激WordFence能够持续监控、扫描和拦截各种攻击。只要它能够防止一次恼人的恶意入侵,那就是一个值得称赞的成就。如果真有入侵发生,它也极有可能在第一时间察觉到问题。
社交按钮
在撰写这篇文章时,我的网站上并没有任何社交媒体分享按钮。对于是否添加这些按钮,我保持着观望的态度。
一方面,这些分享按钮可能会让每个页面显得杂乱无章。我觉得没有它们可以为网站营造出更为宁静的氛围。
另一方面,这些按钮确实能够便于人们与朋友分享文章,而且其使用率也相当高。
实际上,有些人甚至发邮件询问我是否能添加社交按钮以便分享我的文章。显然,有些人未意识到他们可以复制链接并在任意社交媒体上分享。因此,我在考虑将分享按钮重新添加到网站上是否是更好的选择。
我曾在每篇文章中都放置社交分享按钮,但在2014年停止使用社交媒体时将其移除。如果大家希望,我可以轻松恢复这些按钮。Jetpack确实有一款社交分享插件,但其默认按钮的样式太过粗糙,我希望能够调整成更自然的样子。
如果你对这个话题有自己的看法,我非常期待听到你的反馈与建议。
数据库改进
全面优化WordPress数据库的经验分享
由于某种特殊原因,WordPress在最初推出时选择了名为latin1_swedish_ci的字符集,导致在后续更改字符集时,很多博客作者面临了一系列技术挑战。对我而言,遇到的主要问题是某些外文字符无法正确显示,例如pâté和jalepeño等词汇。虽然我可以采取临时解决方案,但这次我决定彻底修复,计划将整个数据库转换为utf8_unicode_ci字符集。
根据WordPress的说明,这样的转换过程相对复杂。在转换开始时,WordPress发出了如下警告:
“请注意:如果你对SQL和MySQL/MariaDB毫无了解,很可能会导致严重错误。这是个涉及魔法编码的领域……”
幸运的是,我的编码能力足以应对这个挑战,最终成功完成了数据库的转换。
此外,我还进行了其他数据库的优化,例如将所有表单的数据库引擎从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插件来改进搜索功能。这个插件提供了更相关的搜索结果,并且可以向我展示用户搜索的关键词(所有信息均为匿名,不会显示具体用户)。
目前用户在网站搜索中使用的前15个关键词为:
-
睡眠
-
目的
-
信念
-
两相睡眠
-
工作
-
主观现实
-
多相睡眠
-
收入
-
性
-
恐惧
-
纯素
-
吸引力法则
-
自律
-
大学
-
金钱
我在这些主题上都有相关的文章,这意味着用户应该能够找到与其搜索意图相关的信息。
我还注意到一些失败的搜索请求,大多数是由于输入错误,例如:lonliness(孤独)、synchonicties(同步性)、polifasic sleep(多相睡眠)、caffine(咖啡因)、archieving(实现)、disipline(自律)、和aprisioners(囚犯)。这让我意识到,我可以让网站的搜索功能更具韧性,以便更好地适应输入错误。
在下一篇文章中,我将分享更多与网站速度优化相关的插件知识。
史蒂夫·帕弗利纳
2016.04.23
www.stevepavlinachina.com
微信公众号:聪明人的个人发展
本文标题:焕新StevePavlina.com网站 — 第七章:今日焦点
网址:https://www.2090ai.com/2025/11/22/plugins/67528.html
本站所有文章由wordpress极光ai post插件通过chatgpt写作修改后发布,并不代表本站的观点;如果无意间侵犯了你的权益,请联系我们进行删除处理。
如需转载,请务必注明文章来源和链接,谢谢您的支持与鼓励!










