Как перенести сайт на другую CMS и не потерять поисковый трафик

Множество людей и компаний хотя бы раз в жизни сталкиваются с задачей перенести сайт на другую CMS. Это может быть связано с необходимостью редизайна сайта, или плохими интерфейсами управления “старой” CMS, или с задачами быстродействия и безопасности.  В общем – причин можно найти десятки. Важно то, как они это делают. А именно – как переносят контент: в большинстве случаев поручают копипаст девочке-верстальщице. И вот тут-то их и настигает беда.

Точнее, беда их настигает неделями позже, когда работы уже завершены. Поисковый трафик (поток посетителей с поисковых систем) проседает в разы. Почему? Да просто потому, что на старом сайте адреса страниц были (например) типа “/page/single.php?id=6354&param=true”, а на новом типа “/katalog/televizory/samsung”. И никто не подумал о том, что куча народу с поисковиков будет получать “404 страница не найдена”.

Если вам этого кажется мало, то учтите, что недействительными станут практически все ссылки с других сайтов, а так же закладки в браузерах и в социальных сетях.

Что же делать?

А делать придётся одну весьма скучную штуку: сопоставлять старые и новые адреса. Если у вас не сайт из трёх страничек про хомяков Васи Пупкина, то у вас наверняка имеются сотни и тысячи страниц. Вручную их сопоставить нереально. Я рекомендую заранее предусмотреть написание скрипта, который это сделает за вас.

Например, такой скрипт пройдёт по базе данных старой CMS, вытащит оттуда все названия (тайтлы) страниц, затем пройдёт по новой базе и на основании тайтлов получит новые адреса.

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

Но допустим, наш скрипт успешно распознал большую часть страниц и записал таблицу сопоставлений. Затем обработчик 404-ой ошибки можно без труда направить на второй скрипт, который в свою очередь (на основе собранных данных) будет выдавать корректный 301-ый редирект и переадресацию посетителя на новое место.

P.S.: вопреки распространённому мнению, перенос сайта средней сложности на новый “движок” – это ни разу не копипаст и не “вставить старую вёрстку в новые шаблоны”. На самом деле это огромный комплекс работ, при котором большая часть сайта может потребовать наполнения просто с нуля. Если не верите – представьте, как вы будете копипастить например каталог со сложными многоуровневыми сортировками, динамические сводные таблицы или интерактивный функционал. Но это – уже тема отдельного поста.