Блог /

8 Години, Един Клиент: Как изглежда дългосрочната WordPress поддръжка

Историята на Marisa.BG — от сайт в криза до осем години партньорство. Какво включва месечната поддръжка, как се развива WooCommerce магазин за десетилетие и каква е реалната възвращаемост на инвестицията в ongoing поддръжка.

MGKNeT

WordPress и E-commerce Експерти

Повечето агенции говорят за дългосрочни партньорства. Малко имат клиенти, работещи с тях близо десетилетие. Ние имаме — и историята на това как работи тази връзка е вероятно най-честният отговор, който можем да дадем на въпроса какво означава WordPress поддръжка на практика.

Marisa.BG е български онлайн моден ритейлър. Обърнаха се към нас преди осем години с бъркотия от сайт. Те са наши клиенти оттогава. Ето как изглеждаха тези осем години.

Година Първа: Спасяването

Когато Marisa се свързаха с нас за пръв път, те не търсеха партньор за поддръжка. Търсеха някой да поправи непосредствена криза. WooCommerce магазинът им беше изграждан и модифициран от множество разработчици с години, а резултатът беше предвидимо лош: счупени checkout процеси, конфликти между плъгини, причиняващи периодични грешки, производителност, достатъчно бавна за загуба на клиенти на продуктовите страници, и уязвимости в сигурността, признати от предишния им разработчик, но никога поправени.

Бяха загубили доверие в сайта. Когато не можете да сте сигурни, че поръчката на клиента ще премине, започвате да насочвате клиентите към телефонни поръчки и директни банкови преводи. Точно това се случваше. Сайтът номинално работеше, но на практика беше ненадежден.

Започнахме с пълен одит. Четиридесет и два плъгина, от които седемнадесет бяха или неизползвани, или излишни спрямо други плъгини, или не бяха получили обновление от над две години. Базата данни нямаше никаква целостност на чуждите ключове — навсякъде изолирани записи от изтрити продукти, изоставени колички и инсталации на плъгини, идвали и заминавали. PHP версията беше две основни версии назад.

Първоначалното обновяване отне около шест седмици. Консолидиране на плъгини, почистване на базата данни, укрепване на сигурността, преизграждане на checkout процеса и оптимизация на производителността, довела сайта от осемсекундно зареждане до под две секунди. Възстановихме доверието систематично — поправяйки напълно една категория проблеми преди да преминем към следващата, така че те да виждат ясен напредък вместо дълъг списък от работа в изпълнение.

Продажбите се увеличиха с 25% в първото тримесечие след обновяването. Не защото направихме нещо умно с оптимизацията на конверсиите — просто защото клиентите вече можеха надеждно да завършват покупките си, без да срещат грешки.

Как изглежда месечната поддръжка на практика

След спасяването Marisa премина към план за поддръжка. Ето какво е включвало конкретно с годините.

Обновления, всяка седмица. WordPress core, WooCommerce, всеки активен плъгин и тема. Не прилагани сляпо — прилагани първо на staging копие, основно smoke тестване на checkout процеса и ключовите продуктови страници, след което тласкани към продукцията. Този процес отнема 30–90 минути седмично в зависимост от обема на обновленията и дали нещо изисква разследване.

Това е частта, изглеждаща най-скучна и най-важна. За осем години седмични обновления сме улавяли проблеми с съвместимостта при обновления преди да достигнат продукцията десетки пъти. Затворили сме и стотици уязвимости в сигурността в прозореца между пускане на кръпката и експлоатация.

Наблюдение на работното натоварване денонощно. Получаваме предупреждение в рамките на минута, ако сайтът на Marisa спре или върне грешка. За осем години имаме шепа реални прекъсвания — проблеми с хостинга, едно повреждане на базата данни след неуспешно обновление на плъгин, кратък проблем с DNS разпространение при хостинг миграция. Нито едно от тях не е продължило повече от 30 минути, защото бяхме уведомени незабавно и реагирахме незабавно.

Стойността на това е асиметрична. В нормален ден наблюдението на работното натоварване не струва нищо. В деня, в който нещо се счупи, означава, че разбирате за проблема за минута, а не когато клиент пише да каже, че не може да направи поръчка.

Наблюдение на производителността. Времената за зареждане на страниците се следят непрекъснато. Забелязваме при влошаване — нов плъгин, добавящ блокиращ скрипт, заявка към базата данни, ставаща бавна при разрастване на продуктовия каталог, уиджет на трета страна, започнал да зарежда по-тежко SDK. Улавянето им проактивно означава поправяне преди клиентите да забележат, а не след.

Поддръжка на базата данни, месечно. Данните за поръчките се натрупват. Сесийните записи се натрупват. Преработките на публикациите се натрупват. Транзиентите изтичат, но не се самопочистват. База данни на WooCommerce, неподдържана активно, расте без граница, а заявките, захранващи магазина, стават по-бавни при разрастването й. Извършваме поддръжка месечно: почистваме изолирани записи, подрязваме преработките, изчистваме изтеклите транзиенти, проверяваме дефрагментацията на таблиците.

Сканиране за сигурност. Седмични проверки на целостта на файловете и сканирания за зловреден код. Открили и почистили сме едно реално заразяване за осем години — PHP backdoor, имплантиран чрез тогава неизвестна уязвимост в популярен плъгин за форми, открит в рамките на 48 часа и почистен преди достъп до данни на клиенти.

Преглед на инфраструктурата преди разпродажби. Marisa провежда сезонни разпродажбени събития. Преди всяко значително трафично събитие — големите годишни разпродажби, Черния петък, стартирането на кампании — преглеждаме текущото състояние на кеширането, проверяваме дали сървърът е конфигуриран да обработва повишено натоварване и преминаваме предварителен списък за проверка. Този преглед е открил няколко потенциални проблема, щели да влошат производителността при трафик по време на разпродажба.

Как се е развил сайтът

Поддръжката на сайт за осем години означава наблюдение на развитието на бизнес и осигуряване техническата инфраструктура да се придвижи заедно с него.

Когато започнахме, продуктовият каталог имаше няколкостотин артикула. Нараснал е до хиляди и начинът на управление на продуктите се е променил — различни вариации, различни доставчически канали, различни ценови структури. Конфигурацията на WooCommerce, правилна в първата година, е преразглеждана и обновявана при развитието на платформата през множество основни версии.

Платежните методи са се променили съществено. Преди осем години опциите бяха банков превод и местен платежен шлюз. Добавили сме Stripe, множество BNPL опции и интеграция за българско мобилно плащане, изискваща персонализирана разработка. Всяка от тях беше интегрирана, тествана и поддържана като част от ретейнъра.

Дизайнът е освежаван два пъти — не пълни преизграждания, а значителна фронтенд работа за модернизиране на вида и подобряване на мобилното изживяване. Мобилните устройства вече представляват мнозинство от трафика на Marisa. Мобилното изживяване на сайта в първата година беше функционално. Днес е наистина добро.

SEO стана по-важно. Имплементацията на структурираните данни е преминала през няколко итерации при промяна на изискванията на Google. Схема за продукти, BreadcrumbList, схема за организации — всичко е обновявано, валидирано и коригирано при появата на нови изисквания и при одитиране на това, което генерира rich results.

Две хостинг миграции. Оригиналният хост стана недостатъчен при разрастването на сайта. Втората миграция беше предизвикана от постоянните проблеми с производителността на хоста при натоварване. И двете миграции се случиха без прекъсване.

Какво реално струва и носи продължаващата поддръжка

Ретейнърите за поддръжка са лесен разход за съкращаване при натиск върху бюджета. Изглеждат като застраховка — плащате за нещо, предимно ненужно.

Ето как мислим за това от гледна точка на клиента:

Таксата за ретейнъра на месец е фиксиран разход. Инцидентите, предотвратявани от него — хак, неуловен навреме, проблем с съвместимостта, счупил checkout за два дни, влошаване на производителността, свалило степента на конверсия за седмици — имат променливи, но значителни разходи.

За осем години предотвратените или ранно уловени инциденти при Marisa включват:

  • Множество закрити уязвимости преди експлоатация
  • Едно реално заразяване, уловено в рамките на 48 часа
  • Три значими проблема с съвместимостта, уловени в staging, щели да счупят checkout в продукцията
  • Безброй малки регресии в производителността, уловени и обърнати преди да станат видими за клиентите
  • Едно повреждане на базата данни, уловено и обърнато от резервно копие преди загуба на данни

Алтернативата на месечна поддръжка не е безплатен резултат. Тя е натрупване на отложен риск, материализиращ се накрая като извънредна ситуация — на цени за извънредни ситуации, с извънредно прекъсване на бизнеса.

Има и по-трудно измерима полза: способността да правите промени уверено. Когато имате доверен технически партньор, познаващ сайта ви, можете да кажете „искам да добавя програма за лоялност” или „искам да преструктурирам категориите за новия сезон” и да получите обмислен отговор от някой, вече разбиращ кодовата ви база и клиентската ви база. Не прекарвате половината от ангажимента в запознаване на нов изпълнител.

Връзката зад договора

Бизнес отношения, продължаващи осем години, не са само договорни. Те се изграждат на нещо друго.

За нас това е следното: третираме сайта на Marisa като нашия собствен бизнес, зависещ от него. Не защото договорът го изисква, а защото след осем години работа с даден бизнес, разбирате какво означава счупването на checkout в 22 часа в петък. Знаете как изглежда лошата седмица на продажбите за тях. Имате достатъчно контекст, за да предвидите проблеми, за които те не са се сетили да се притесняват.

За Marisa стойността не е предимно в техническата ни компетентност — биха могли да намерят технически компетентни разработчици другаде. Тя е в това, че могат да ни се обадят при проблем и да знаят, че веднага работи някой, вече разбиращ сайта им.

Така изглежда дългосрочната поддръжка на практика. Не система за тикети и SLA. Технически партньор, познаващ бизнеса ви толкова добре, колкото вие самите.

Ако управлявате собствен WordPress сайт без план за поддръжка или с план, по-близо до опашка от тикети, отколкото до активно партньорство, нашият WordPress Security Checklist е добро начало за разбиране на обхвата на правилната поддръжка — и какво в момента може да ви липсва.

Let's build something together

Tell us about your project and we'll figure out how we can help.