网站优化

网站优化指南、技巧和最佳实践 — 提升性能、速度和用户体验。也包括常见故障模式及其修复成本。

Elementor 与自定义主题:真实成本

Elementor 与自定义主题之争,通常被当成品味问题来吵,偶尔还被当成部落身份来吵。它两者都不是。它是一个成本问题,而且形状可以预测:页面构建器把成本从建站阶段挪到了网站的运营周期里。这笔交易划不划算,取决于两个几乎没人摆到桌面上的数字,一是网站有多少页面,二是这些页面多久改动一次。 争论迟迟没有结论,是因为双方都在用轶事说话。有人说构建器慢,另一个人贴出一张绿色的 Lighthouse 分数,什么也没有定下来。性能确实是一项真实成本,但它只是一张更长账单上的一行,同一张账单上还有授权续费、插件堆栈、内容编辑吞吐量、无障碍整改,以及最后把内容重新取出来的价格。 Elementor 不是一个糟糕的工具。对一大类网站来说它就是正确答...

Drupal 主机托管:真正跑得动的服务器配置

“Drupal 很慢”这个名声,绝大部分来自主机托管,而它几乎总是一个采购决定,而不是软件问题。站点被认真地做了出来,然后上线在一个按“几个 PHP 文件的宣传册站点”定价的套餐上。结果就是:一套带着正经渲染管线的内容管理系统,跑在一个自己改不了的内存上限里,跑在一个自己控制不了的操作码缓存上,还没有一个能运行自身工具的命令行。 人们心里拿来对比的是 WordPress,而这个对比是错的。WordPress 几乎在任何环境下都能凑合跑,是因为它的市场份额逼着主机商把它做成几乎在任何环境下都能凑合跑。Drupal 的前提不同:它假定你有较新的 PHP、较新的数据库、真正的缓存后端、一个命令行,以及一套把代码库当成构建产物而不是当成“可...

Drupal SEO:真正能提升排名的技术配置

Drupal SEO 的名声并不完全配得上它的实力。随便问一圈,总会有人告诉你 Drupal 开箱即用就很适合搜索,而说这话的人往往是在拿十五年前对另一个平台的记忆做比较。一套原装的 Drupal 11 安装,既没有元描述字段,也没有 XML 站点地图,URL 变更时没有自动重定向,而且在编辑手动敲入别名之前,内容一直在 /node/123 上响应。 这不是在批评这个项目。核心刻意把自己的范围保持得很小,把一切带有立场的东西推给贡献模块,而这恰恰是大型 Drupal 站点能比多数平台调得更精细的原因。但这也意味着开箱即用这个说法承担了非常多的分量,意味着一个 Drupal 站点的搜索表现,几乎完全取决于第一天装了哪些模块,以及有谁把...

CMS 迁移:怎样不丢流量

CMS 迁移属于少数几类项目:技术活可以做得毫无差错,结果却仍然是一场灾难。站点按期上线,样子更好看,加载也更快,流量却掉了一半,原因是几百条网址换了形状,而没有人去做那张对照表。技术验收一项项全过,商业结果却是负的。 丢掉的流量并不是新平台造成的,而是断裂造成的:以前能响应的地址现在不再响应,以前能被认出来的页面现在看起来像全新的,多年积累在旧网址上的历史也失去了去处。而且排名往往不是上线当天就掉下去,而是在随后的几周里慢慢往下沉,所以上线当天看着一切正常,并不能说明任何问题。 决定结果的只有一个判断:你要保留 URL 结构吗? 如果保留,迁移基本上就是一件内容和模板的活儿,风险有限。如果不保留,每一条变动过的地址都需要一条指向其...

多语言 SEO:十二种语言教会我们的事

多语言 SEO 通常被讲成一个翻译问题,外加一点技术标记。但把这个站点用十二种语言运营下来,也就是英语、阿拉伯语、德语、法语、匈牙利语、意大利语、日语、韩语、罗马尼亚语、越南语,加上中文的两种书写形式,我们很清楚地看到:翻译才是简单的那一半。 难的那一半在于,你在英语里习以为常的每一条规则,都有一个依文字系统而变的版本,而你原本并不知道它存在。长度上限不一样。结构会跑偏。数字会被一个想帮忙的译者写成汉字,从那一刻起就不再和原文对得上。这些问题在有东西去检查之前,一律看不见。 真正让它跑起来的是自动化,不是努力。 在任何内容上线之前,有十一项独立检查会从头到尾扫一遍:语言覆盖率、原文与各译文之间的结构一致、数字一致性、标题层级顺序、死...

内容更新:什么时候更新比新发更划算

在多数已经运营了一段时间的网站上,内容更新是回报率最高的一项工作,而它之所以不受欢迎,正是因为做完之后没有任何东西可以拿出来宣布。修改一篇已经有排名的文章,感觉像是在做维护。发布一篇新文章,感觉像是在往前走。数字通常不同意这种感觉。 原因在于,一个已经存在的页面早就积累了那些昂贵的东西:外部链接、抓取历史,以及与一组搜索词之间被验证过的关系。新页面从零开始,什么都没有,要花上好几个月才能挣到旧页面早已拥有的东西。而改进旧页面,是直接叠加在这份积累之上。 会让整件事白做的错误,是只改日期,别的什么都不改。 这种做法足够常见,值得把话讲明白。一个把新鲜度纳入考虑的检索系统,比较的是内容而不是时间戳,一个日期动了、实质却原封不动的页面,除...

程序化 SEO:什么时候有效,什么时候是垃圾内容

程序化 SEO 指的是用一套模板加一份数据集批量生成页面:每个城市一页、每个产品组合一页、每种参数组合一页。如果用的是真实的数据集,它是这个行业里效率最高的做法之一。如果用的是同义词词典和洗稿工具,它就正是搜索引擎花了二十年学着识别的东西。 区别不在技术。两条路都会大批量地产出模板页面。区别在于每一页是否包含只有这一页才能回答的东西,而这是关于你手里数据的问题,不是关于你内容流程的问题。换句话说,这个问题的答案在数据库里,不在编辑部里。 区分两者的检验方法: 把模板拿掉,看看一页上还剩下什么。如果剩下的是真正不同的事实、不同的价格、不同的数据集、不同的计算,这一页就有存在的理由。如果剩下的是同一段文字换了个地名,...

内容修剪:删掉页面为什么反而带来流量

内容修剪是搜索优化里最违反直觉的一件事,因为所有本能都在说,页面越多流量就该越多。发布内容让人感觉是在积累资产。删除内容让人感觉是在把别人花钱买来的成果丢进垃圾桶。于是删除总被一再推迟,最后只剩下一堆越堆越高的页面。 让删除真正生效的机制,是你自己的页面之间在互相竞争。当你有两个页面瞄准同一个搜索意图时,本来会集中在一个页面上的信号被劈成两半,而必须在两者之间做选择的检索系统,最后甚至可能一个都不选。解决办法不是把两个都做得更好,而是不要再同时拥有两个。 在删掉任何东西之前,先看清每个页面各自在做什么。 一个没有点击的页面,可能仍然承接着一条传递权威的外链,也可能每月只有一位访客,却把这位访客变成了比网站其余部分加起来还值钱的询盘。...

数据库性能:找出拖垮应用的那条查询

数据库性能的排查工作,通常从有人提议换一台更大的实例开始,又通常以这样一个发现结束:每次加载页面时,有一条查询都在对 400 万行做顺序扫描。瓶颈从来不是硬件,瓶颈是执行计划。 这个模式重复得足够稳定,值得当作默认假设写下来。当应用很慢而数据库又很忙时,原因几乎总是少数几条具体的查询,而不是整体容量不足;把机器换大,只能把问题掩盖到表再次长大的那一刻为止。 动手改之前,先量。 凭猜测去优化一条查询,正是团队花掉整整一周添加索引、结果写入变慢而读取一点没快的原因。任何数据库都能告诉你哪些语句消耗的总时间最多。从那里开始,修掉排在最前面的那条,然后再量一次。这样反复两三轮,事故通常就结束了。 数据库性能始于找出那条查询总时间比最坏单次更...

实体SEO:让搜索引擎知道你是什么

实体SEO的出发点是一个大多数优化建议至今仍然忽略的事实:搜索引擎早就不再匹配字符串了。它们匹配的是事物。一个页面得到什么分数,并不取决于它是否包含某个词组,而取决于系统是否相信这个页面讲的是词组背后的那个概念,以及系统对这个概念到底是什么有多大把握。 这个区别决定了重复关键词究竟对你有帮助,还是完全不起作用。在匹配字符串的系统里,重复是一种信号。在匹配实体的系统里,重复只是噪声,真正能推动结果的,是机器能不能识别出你是什么。 判断你是否作为实体存在的测试: 搜索你的公司名称,看看在没有人追问的情况下,搜索引擎主动给出了关于你的哪些信息。如果它只返回首页,别的什么都没有,那么你只是一串它能找到的字符。如果它返回了描述、所在地、类别以...