Případovka: jak jsem migroval Drupal 6 na WordPress

Rád bych se podělil o zkušenosti s migrací relativně malého článkového webu běžícího doposud na Drupalu 6 do WordPressu. Šlo to k mému překvapení velice rychle a bez větších problémů. Zvládnete to také a za víkend.

Reklama

Možná vás napadne, proč takový zastánce a fanoušek Drupalu jako já, vůbec zvažuje migraci webu z Drupalu na WordPress. Inu, nejsem ortodoxní nebo zaslepený Drupalista. A s WordPressem pracuji také. Dovedu myslím objektivně posoudit plusy a minusy obou platforem.

V případě daného webu šlo o starší, již nepříliš rozvíjený magazín s asi dvěma stovkami článků v několika kategoriích a členěním pomocí štítků, tagů. Největším problémem webu běžícího na Drupalu 6 byla nedostupnost bezpečnostních aktualizací. Když mi jej konečně nabourali (u Drupalu 6 je to otázka času), byl to pro mě impuls pustit se do nějakého řešení.

Vzhledem k tomu, že ten magazín nemám čas dále rozvíjet, ale zároveň vykazuje nějakou návštěvnost a příjem z reklam pokrývá jak náklady na doménu, tak občasné servisní zásahy, nechtěl jsem web rušit. Navíc jej používám jako zdroj zpětných odkazů na další projekty.

Stejně tak nemám čas se webu plně věnovat. Zmigrovat jej na Drupal 8 by vyžadovalo velké úsilí. Není to jenom o převodu dat. Jelikož web nepoužíval Views, byla by migrace obsahu hračkou. Ale Drupal 8 je prostě v daném případě kanón na vrabce. Robustní systém s hromadou souborů mi přišel zbytečně velký. Navíc jeho aktualizace také vyžadují větší režii než v případě WordPressu. A co si budeme povídat, výběr relativně pěkných šablon vzhledu je ve WordPressu mnohem vyšší než u Drupalu. Nechtěl jsem pro uspaný web kódovat vzhled na míru.

Chvíli jsem uvažoval o přechodu na Backdrop, ale kvůli své lenosti i nedostatku času jsem to zatím zavrhl. Vyzkouším jej u jiného projektu, až bude umět automatickou aktualizaci jádra.

Migrace obsahu z Drupalu do WordPressu

Na subdoméně jsem tedy rozběhl čistý WordPress a přidal plugin FG Drupal to WordPress. Vystačil jsem si s jeho bezplatnou verzí, šlo mi skutečně jenom o obsah. Články z Drupalu 6 se přenesly na první dobrou.

Migraci z Drupalu pomocí FG Drupal to WordPress spustíte po jeho aktivaci odkazem Import. Trochu bych čekal, že odkaz bude i v boční liště, ale to bych chtěl od WP moc. Jako první nastavení nabízí odstranění dat importovaných během své minulé činnosti nebo odstranění všeho, co se ve WordPressu momentálně nachází. To je šikovné.

Následně zadejte adresu původního webu. Pro spojení s Drupalem vyžaduje nastavit údaje k jeho databázi. Pokud to budete dělat na jednom hostingu a subdoméně, pak je to asi bez problémů. Pokud odjinud, počítejte samozřejmě s tím, že jako localhost vám položka Hostname logicky nebude fungovat. Tlačítkem je možné otestovat spojení s databází.

Tohle se tedy nijak neliší od migračního procesu v Drupalu 8. Ve WordPressu však dále určujete, kam se zkopírují úvodníky článků. Jestli do výňatku (excerpt), do obsahu či do obojího. Dost asi záleží na použité šabloně ve WordPressu.

Plugin FG Drupal to WordPress dovede zkopírovat i obrázky. Ba co víc, dovede nastavit úvodníkový obrázek ve WordPressu buď z obrázkového pole v Drupalu, nebo z prvního nalezeného obrázku v těle importovaného článku. Pro staré weby jako byl ten můj, ideální.

Následuje několik dalších voleb pro import médií a tlačítko pro spuštění samotného importu obsahu. Průběh je možné sledovat na ukazateli a ve výpisu logu.

Já se po jeho dokončení pustil do ručního přiřazování kategorií a štítků, ve kterých jsem tím zároveň udělal pořádek. Článků nebylo příliš, dalo se to tedy relativně rychle zvládnout. Pokud byste chtěli využít import starých kategorií a třeba i autorů, políček z CCK nebo metatagů, pak vám poslouží placená verze pluginu.

Doladil jsem tedy rozdělení taxonomie, nastavil menu, zkontroloval obrázky a případně některé vyměnil. A pustil do se dalších úprav WordPressu.

Téma vzhledu? Žádný problém pro WordPress

Jednou ze silných stránek WordPressu je dostupnost šablon. Já nejsem jejich fanoušek a už vůbec nesnáším webaře, kteří klientům vnucují prefabrikovaný web. Ten postup, kdy se vybere nějaká šablona a pak se zkouší na firemním webu napasovat různými hláškami do připravených chlívečků, je prostě špatně. Přece mám nějakou vizi, marketingovou strategii, záměr, jak prodávat a tomu přizpůsobím web. Nikdy ne naopak.

Na druhou stranu pro malý projekt, který by klidně mohl běžet na Webnode, případně pro jednoduchý blog mají šablony svoje opodstatnění. Zvlášť, pokud si jej člověk dělá sám a neplatí veliké peníze profesionálům, kteří mu pak prodají 50dolarovou šablonu z ThemeForrestu. Šablony ve výchozí instalaci se mi stejně jako v Drupalu nelíbí. Sáhl jsem po Codilight Lite, která mi přišla docela čistá, odladěná, bez hromady zbytečných prvků.

Výchozí šablony jsem ve WordPressu samozřejmě odstranil, abych snížil počet věcí, které budou vyžadovat aktualizace. Za pomoci pluginu Child Theme Creator by Orbisius jsem vytvořil odvozené téma vzhledu (child theme), abych mohl bez problémů aktualizovat vybranou šablonu. Zároveň však díky tomu mohu provádět drobné úpravy v CSS, hlavičce a patičce. Tam, kde by to s widgety nebylo možné.

Jinými slovy, child theme jsem potřeboval kvůli vložení reklamních prvků do míst, kde nebyla definovaná oblast pro widgety (začátek a konec článku).

Plugin Child Theme Creator by Orbisius lze po vytvoření child theme odebrat. Poslouží jen jako průvodce a dále jej nepotřebujete.

Užitečné pluginy pro WordPress

Seznam doplňujících pluginů se ve WordPressu snažím držet na minimu. Čím méně pluginů, tím méně potřebných aktualizací, menší bezpečnostní riziko, kratší čas věnovaný údržbě webu. Proto jsem přeci do WordPressu šel.

Jako první jsem nainstaloval svůj oblíbený Disable Comments. Nechci na uspaném webu komentáře, nechci je číst ani zpracovávat GDPR podmínky pro jejich ukládání. Plugin to elegantně vyřeší. Odstraní je z obsahu, odebere komentáře i z administrační lišty.

Co mi na WordPressu hodně vadí, to jsou nejrůznější prefixy v adresách. U článků to změníte jednoduše ve výchozím Nastavení > Trvalé odkazy. Potíž je s kategoriemi a tagy, které mají v URL adrese ještě svůj strojový název. Elegantně to řeší plugin WP No Base Permalink. Do nastavení trvalých odkazů přidá možnost pro úpravy adres kategorií i tagů. Navíc je kompatibilní s WPML.

Hned po nastavení URL adres následuje dvojice modulů pro SEO a statistiky. Namísto populárního Yoast SEO jsem si po kurzu Honzy Biena oblíbil The SEO Framework. Yoast to podle mě už přehání s reklamou v administraci.

The SEO Framework umí prakticky tytéž základní věci, které potřebuji – titulek, meta description, info pro sociální sítě, nastavení noindex a nofollow. To vše pro články, titulku i kategorie. Dále umí strukturovaná data pro drobečkovku a hledací políčko. V jeho nastavení přidáte ověřovací kódy nejen pro Google Search Consoli. A v neposlední řadě vygeneruje Sitemap pro vyhledávače včetně doplnění odkazu na ni do robots.txt. To vše bez reklam.

Nastavení informací pro SEO ve WordPressu

Pro rychlé napojení Google Analytics používám Google Analytics Dashboard Plugin for WordPress by MonsterInsights. Výhodou oproti vložení kódu přímo do šablony je odebrání uživatelských rolí z měření a také předávání dat o stahovaných souborech či proklicích mimo web. Umí toho více, ale nevyužívám.

Nastavení Google Analytics ve WordPressu

Od chvíle, kdy se prosazuje https, používám plugin Really Simple SSL. Zajistí vše potřebné pro přesměrování z http na https. Není tak třeba editovat .htaccess a ručně upravovat adresy v obsahu.

A zbývá poslední dvojice, která souvisí s výkonem webu. WP Super Cache je samozřejmost. Výrazně zrychlí načítání webu. Doporučuji si pohrát s výchozím nastavením a poštelovat jej dle vašich potřeb. Ale i bez jeho změny funguje výborně.

Plugin Autoptimize za vás vyřeší minimalizaci a spojení různých CSS a JavaScriptu, pokud jsou do stránky správně napojeny přes API WordPressu. Minimalizuje HTML. Dovede odstranit podporu pro Emoji a jiné věci, které třeba na webu nepoužíváte. Optimalizuje načítání fontů z Google Fonts a nabízí i optimalizaci obrázků ve spojení s CDN. Za chvilku jej máte nastavený a zrychlení webu na pomalém připojení stojí za to.

Nastavení optimalizací HTML, CSS a JS s pluginem Autoptimize ve WordPressu

A to je téměř vše. S migrací jednoduchého blogového či článkového webu jsem byl hotov za odpoledne. Poté jsem jej přesunul místo smazaného Drupalu na správnou doménu. Za pomoci pluginu Velvet Blues Update URLs jsem změnil vývojovou adresu za tu provozní ve všech článcích i nastaveních a bylo hotovo. I tento plugin je jednorázový a po použití jej klidně odeberte.

Nečekaný dopad na návštěvnost

Aniž bych se o to výrazně snažil, po dvou týdnech mi návštěvnost webu permanentně vzrostla o 63 %. Pravda, na Drupalu 6 byly špatně nastavené popisky pro vyhledávač a taky jsem měl u většiny článků nevhodně pojmenované obrázky. Původní šablona na Drupalu nebyla responzivní a nijak jsem neoptimalizoval rychlost načítání.

Takže ano, web na WordPressu jsem při migraci i trochu vylepšil z tohoto pohledu, přesto jsem tomu věnoval minimum času a zvýšení návštěvnosti, které se trvale drží, je příjemnou odměnou.

Ještě příjemnější je výsledek v PageSpeed Insights. Stovka pro počítač a 71 pro mobilní zařízení. Nevzpomínám si, že bych kdy s Drupalem dosáhl takového výsledku s tak malým úsilím. Když to přeženu, tady stačilo zapnout dva optimalizační pluginy. V Drupalu dosáhnete skvělých výsledků samozřejmě také, ale chce to více práce.

Reklama

Komentáře

Jsem zvědav na zkušenosti s WordPressem - já migruju všechny "článkové weby" z WordPressu na JAM stack. Problém s bezpečností definitivně vyřešen, problém s rychlostí taky. Všechno mám v Gitu. Vývojářské flow. Spokojenost.

Já s WordPressem obcuju skoro stejně dlouho, jako s Drupalem, takže si troufám tvrdit, že vím, do čeho jdu. Půlku menších webů, o které nechci tak moc pečovat, mám právě na WordPressu.

Předělat něco na JAM Stack je sice fajn, ale není to rychlé řešení, které jsem v případě popisovaném v článku hledal ;-) Já si s tím vážně nechtěl moc hrát. To můžu dělat, když budu tunit Maxiorla.

Majitel Maxiorla. Nabízím mimo jiné placené poradenství pro Drupal. Jsem i na Twitteru.

Přidat komentář