我知道这个问题听起来有点奇怪,但是,请继续阅读。我有一个基于wordpress,woocommerce和wpml的商店 - 目前有两种语言,但计划添加另外三种。主题非常庞大,有很多自定义集成,如Infusionsoft,Xero等等。大约50个插件,1100个产品和1700个帖子。一旦我们添加另外3种语言,帖子和产品的数量很可能在不久的将来翻倍。虽然我们有足够的服务器资源,但总体设置已经很慢了:12个内核和31 GB内存。除此之外,我还希望集成某种多存储和多域功能。多商店功能还需要多语言(wpml)。创建多商店功能有两种解决方案,它们似乎都不是理想的,可以轻松复制而不会更多地侵入woocommerce和wordpress。 1.另外安装wp,woocommerce,wpml,然后使用woocommerce API将订单,库存等转移回主站点。 2. Wordpress多站点 - 从我读到的内容与woocommerce和wpml相当错误。
作为一名开发人员,我觉得这对wp,woocommerce和wpml来说太过分了。特别是如果我们考虑到默认情况下Opencart或Prestashop具有此功能 - 没有任何复杂性。但也许,也许,我可能错过了一些非常聪明的东西。有没有人遇到类似的设置?您对在Wordpress和Woocommerce中开发如此复杂的设置有何看法?您是否认为转向Opencart,Prestashop或Magento等其他解决方案迫在眉睫?
我非常感谢您对此的反馈!
干杯
答案 0 :(得分:0)
我在这里要做的是调查为什么网站在向问题添加硬件之前先缓慢。 Wordpress是一个很好的基础,但随着网站的增长,所有数据库驱动的网站都需要优化。
下面有很多技巧,只是指出想法,你可以自己重新搜索它们,并决定它们是否适合你的网站。
在此测试: http://www.webpagetest.org/
测试您的服务器代码:
使用microtime之类的东西来测量进程,尤其是wp查询。 http://php.net/manual/en/function.microtime.php
尽可能使用缓存(服务器缓存) - 可能使用varnish来缓存产品页面并提供静态页面来代替动态创建的页面。
对于像归档后的昂贵查询,请使用wp-transients或您自己的对象缓存。
测试浏览器代码:
如果您有50个插件,这可能会让您看到最大的节省时间。不幸的是,开发人员喜欢将js文件,css文件挂钩到页脚/标题。这可能是一个重要的加载时间。调查您可以从模板中删除的内容(未使用的js脚本,css文件等)并将其排队。为了节省更多成本,请查看是否可以从当前文件中隔离页面实际需要的css / js - 合并为每个文件的1个文件。大多数情况下,您需要标题/侧边栏css和一些文本样式,但是您正在加载整个主题样式表。
非常重要: 调查您的浏览器缓存策略。 https://developers.google.com/speed/docs/insights/LeverageBrowserCaching
有趣的项目: 您是否知道可以使用js将images / js / css加载到缓存中?预加载!
也许看看需要大量图片的后档案,看看你是否可以预加载“首屏”内容 - 你的用户将获得相当快的浏览器加载时间,并且当他们在下面导航时应该缓存一批图像(如果你结合了延迟加载技术)
这可能会节省您使用额外服务器的需要,但是如果你必须查看分片而不是使用api来使用php传输数据(我认为woo commerce api使用?)