Jak zprovoznit SEO, neboli SEF v joomle (hezká URL, title a spol), je jeden z nejčastějších dotazů, pokládaných na našem fóru. Standa Bláha přináší svůj, v diskuzích nabitý a ověřený postup.
Takže jak na SEF URL s pomocí JoomSEF?
Tak jsem před pár dny na několika serverech pod Joomla! ver. 1.0.15 úspěšně zprovoznil SEO optimalizaci, konkrétně podobu URL adresného řádku (SEF) z takovýchto např. „http://www.xyxy.cz/index.php?option=com_content&task=category§ionid=4&id=14&Itemid=36" na líbivé „http://www.xyxy.cz/novy-clanek.html".
SEO SEF problematika byla na diskuzi tohoto webu probírána mnohokrát, ovšem ne celistvě s návodem tzv. od A do Z. Pokusím se tedy vlastními silami tento postup popsat, i když jsem výchozí data sám „nasosal" právě z diskuzí na joomlaportal.cz.
V diskuzích se objevuje názor, že pod Joomla! SEF nefunguje, ale bohudík to tak není. Může se také vyskytnout námitka, že SEF a celé SEO vlastně nemá žádný praktický význam. Tento názor ale vydrží pouze do chvíle, kdy např. google.com vytrvale odmítá indexovat stránky webů s tímto tvarem „index.php?option=com_content&task=category§ionid=4" s tím že naprosto nepomáhá vkládání klíčových slov do meta tagů, nadpisů atd. Nastává tedy velký problém, když se jedná o komerční web a klient se ptá, proč google najde jeho web při zadání klíčových slov až na 7. stránce. Je sice pravda, že nejsou veřejně známá (záměrně) pravidla googlu při indexaci stránek, ta se pouze odhadují viz. tento článek: http://interval.cz/clanky/google-search-engine-ranking-factors-v2/, ale čitelná a srozumitelná podoba URL svůj význam jistě má.
Ještě úvodem trocha alibismu, nespílejte mi prosím za případné technické nepřesnosti, není bohužel v mích silách jít až na doraz všech možností a předpokládat všechny stavy. Tento návod pouze shromažďuje některá moudra týkající se této problematiky z diskusního fóra serveru www.joomlaportal.cz a mé vlastní zkušenosti z aplikace na 5-ti webech. Také neřeším SEO jako takové - na to se specializují profesionální komerční služby, řeším pouze technickou část, tozn. zprovoznění „líbivých" URL vlastních webů (SEF). Nyní k samotnému postupu. Tento se skládá ze 4 kroků:
1. Na serveru, kde hostuje Váš web, je potřeba mít povolený mod_rewrite. U některých hostingů se toto povoluje v administraci k hostingu, ale asi u většiny jej povoluje administrátor. V mém případě u Forpsi.com zajišťuje povolení mod_rewrite administrátor.
2. Stáhněte si soubor .htaccess odtud: http://www.joomlaportal.cz/components/com_joomlaboard/uploaded/files/.zip. Jedná se o soubor, který automaticky konfiguruje chod Apache na Vašem serveru (fyzicky zajišťuje přepsání nečitelné URL za čitelnou). Tento konkrétní soubor na joomlaportal.cz umístil Al Bunda a je odladěn pro chod na serverech pipni.cz. V mém případě bez jakýchkoli úprav a bez problémů běží na Forpsi.com. Pro použití na jiných serverech je potřeba jej vyzkoušet, v případě problémů je na diskuzi tohoto webu popsáno několik rad k řešení. Sám na tomto místě nebudu rozebírat strukturu souboru .htaccess, protože to by bylo na samostatný článek od znalejších kolegů, než jsem já.
S .htaccess provedeme test provozuschopnosti souboru samotného a mod_rewrite na serveru. Pomocí FTP nahrajte soubor .htaccess tak jak je do rootu Joomly na serveru (již se tam nachází htaccess.txt ale toho si nevšímejte). Náš soubor .htaccess skutečně nemá žádnou příponu. V prohlížeči si zobrazte Váš web (např. www.ayay.cz). Pokud se stránky zobrazily bez chyby, tak máte to nejhorší za sebou, mod_rewrite i .htaccess pracují v pořádku. Pro jistotu vyzkoušejte ještě proklikat na nějaké položky z menu pro zobrazení ostatních podstránek Vašeho webu. Hlavně mě nyní na tomto místě neposílejte někam, jako že podoba URL je pořád ošklivá: (index.php?option=com_ content&task=category§ionid=4). Je to jen tím, že máme hotovou přípravu, ale SEO samotné není ještě zapnuto.
Pokud je vše na webu bez chyb, můžete pokračovat k bodu 3.Problém nastává v případě nějakého chybového hlášení - stránky samotné se vůbec nezobrazí(chyba 501, 401). Zde se s největší pravděpodobností jedná o nepovolený mod_rewrite na serveru. Je potřeba kontaktovat administrátora a mod_rewrite povolit. Pokud administrátor odpoví, že to nelze, tak to je pro SEF konečná. Osobně bych v tomto případě volil jiný hosting. Pokud ale administrátor odpoví, že mod_rewrite je povolený a přesto se stále zobrazují chybová hlášení, tak se jedná o chybu v .htaccess, konkrétně je zřejmě volána funkce, kterou server nepovolí. Je tedy potřeba provést úpravu v .htaccess, návody na úpravu je možno nalézt v diskuzi tohoto webu. U solidního webhostingu by podobu vnitřní struktury .htaccess (nebo samotný soubor) měl poskytnout administrátor (.htaccess odladěný přímo pro dotyčný hosting). Soubor .htaccess je čistě textový, takže úpravy se provádějí v jakémkoli jednoduchém textovém editoru. Jen pozor na to, že .htaccess nemá příponu! Jisté editory mají ve zvyku vytrvale dodávat souboru příponu txt, což samozřejmě není žádoucí.
Pokud se nedaří web zprovoznit a potřebujete jej uvést alespoň do funkčního výchozího stavu, tak je řešení jednoduché, smazat pomocí FTP soubor .htaccess z rootu na serveru. Zde ale na Vás může čekat šok! (tak jako kdysi mě). Soubor .htaccess z rootu zmizel! Jak jej mám smazat, když tam není. To si ho Apache natáhl do své vnitřní konfigurace, nebo co? Řešení je překvapivě jednoduché, soubor .htacces je jednoduše skrytý. U Vašeho FTP klienta stačí nastavit zobrazení skrytých FTP souborů, .htaccess je tedy poté v rootu vidět a je možno jej konečně smazat. Stránky by měly fungovat tak jako před našimi pokusy s .htaccess a mod_rewrite. Z tohoto důvodu také doporučuji toto provádět někdy v noci, protože v případě neúspěchu jsou Vaše stránky mimo provoz.
3. Zapneme samotné SEO. Toto se provádí v administraci Joomla - Global Configuration - záložka SEO - Search Engine Friendly URLs: - Yes. Po přepnutí na Yes vyskočí hláška, že máte přejmenovat v rootu Joomly soubor htaccess.txt na .htaccess. Toto přejmenování za žádných okolností nedělejte, Váš .htaccess je v této chvíli již odladěný a tímto přejmenováním dojde k nahrazení Vašeho .htaccess za defaultní, což může způsobit nefunkčnost webu a budete zpět u kroku 2.Nezapomeňte uložit konfiguraci stiskem SAVE (pozor na nastavení práv k zápisu do configuration.php). Nyní si znovu v prohlížeči načtěte stránky Vašeho webu. URL při načtení nějakých podstránek z menu by měla vypadat asi nějak takto: www.xyxy.cz/12/34 apod. Je to sice už podstatně lepší než původní hatmatilka s ??..//., ale naším cílem je podoba url asi takto: www.xyxy.cz/novy-clanek.html. Tohoto dosáhneme v následujícím 4. kroku.
4. Z této adresy http://www.artio.net/ si stáhněte komponentu ARTIO JoomSEF, k 10.6.2008 byla aktuální verze 2.2.6 - pro Joomla 1.0.x. Tato komponenta zajišťuje generování samotných líbivých URL adres.Komponentu nainstalujte obvyklým způsobem, pouze dejte pozor na konci instalace, neboť zde Vás instalátor opět nabádá ke vložení defaultních dat do Vašeho souboru .htaccess. Toto opět s klidem v našem případě ignorujte, .htaccess již máte odladěn (stažený z joomlaportal.cz), není potřeba žádných změn v tomto souboru. Opět zde opakuji, že vložení nějakých defaultních dat do .htaccess může způsobit pád celého webu a návrat k bodu 2. tohoto návodu.
V admin menu Components máme novou položku ARTIO JoomSEF. Pod touto položkou se nám zobrazilo mnoho tlačítek, ale popisky a vůbec všechno je anglicky. Admin rozhraní ARTIO JoomSEF sice umí mluvit česky, ale v některých případech se musí mírně přemluvit. Pomocí FTP nebo Xplorerem si z této cesty: root/administrator/components/com_sef/language stáhněte soubor czech.php. Tento soubor je uložen v kódování UTF-8 (tozn. verze pro Joomla 1.5.x). Pokud tedy web provozujete pod Joomla 1.0.x v českém kódování win1250 nebo ISO, musíte upravit kódování tohoto souboru do příslušné normy vhodným textovým editorem (např. PSPad, http://www.pspad.com/cz/ ), a patřičně jej přejmenovat. V případě win1250 se soubor bude jmenovat czech1250.php, v ISO to bude czechiso.php a v případě UTF pod Joomla 1.0.x se soubor pouze přejmenuje na czechutf.php. Kódování se v tomto posledním případě nemusí měnit, již je ve formátu UTF-8. Takto upravený soubor czechxxx.php nahrajte pomocí FTP zpět do tohoto umístění: root/administrator/components/com_sef/language. Nyní po stisku F5 by již mělo admin rozhraní ARTIO JoomSEF zobrazovat vše v plné češtině.
Postup, jak změnit kódování češtiny mezi různými normami je již několikrát popisován na fóru tohoto webu a nebudu se tedy tímto dále zabývat. Nyní opět v prohlížeči načtěte stránky Vašeho webu. URL při načtení např. článku „Aktuální počasí" by měla vypadat takto: www.xyxy.cz/aktu-ln--po-as-.html. Pokud to pořád není ono, je potřeba joomSEFu poradit, jak nahradit české znaky za znaky bez háčků a čárek, místo toho tam vypisuje pomlčky.
Budeme se tedy chvilku věnovat administraci ARTIO JoomSEF. Pod tlačítkem Konfigurace
ARTIO JoomSEF se nám zobrazilo mnoho voleb administrace této
komponenty. Nebudu zde popisovat všechny volby (nesnažím se nahradit
dokumentaci ke komponentě), jen zmíním z mého pohledu ty důležité
(ostatní volby můžete nechat ve výchozím stavu).
Znak pro oddělování stránek, defaultně pomlčka, doporučuji nechat, jedná se o znak který nahradí mezeru v názvu článku. (v url nesmí být mezera).
Přípona souborů - default - .html. Jedná se o tuto příponu: www.xyxy.cz/aktu-ln--po-as-.html. Můžete nechat tak, google a spol. nerozlišují mezi html a php.
Výchozí index soubor - default - index.php. Já používám index.html kvůli „naoko" jednotnosti s položkou výše
Přípona souborů.
U této volby se musím zastavit. Někde v diskuzi padl dotaz na problém,
že dochází k duplicitě indexovaných adres a sice např. www.xyxy.cz a
www.xyxy.cz/index.php. Ve skutečnosti se ale jedná o jedno a totéž a
jak se tedy zbavit tohoto tvaru - www.xyxy.cz/index.php. Někdo v
diskuzi nabízel řešení ke smazání právě této položky Výchozí index soubor
- index.php. Já bych se ale tomuto bránil. Tento výchozí soubor má
právě opodstatnění v takových případech, jako je např. komponenta
diskuzní fórum a nebo fotogalerie. Zde není jasný zdroj a tak by URL
bez tohoto výchozího souboru vypadala asi takto:
www.xyxy.cz/fotogalerie/33. S tím může, ale také nemusí mít robot
vyhledávače problém. Ve skutečnosti se tvar www.xyxy.cz/index.php
zobrazí vinou přímého url odkazu např. z menu. Proto pro načtení hlavní
stránky z menu používám komponentu Front Page (standardně obsažena v
instalaci Joomla). V případě, že se volá hlavní stránka odkazem (třeba
z obrázku) ze šablony, tak pomůže nahrazení odkazu index.php v šabloně
za plnou cestu, např. http://www.xyxy.cz.
Náhrada ne-ascii znaků - zde se vypisují znaky, které chceme do URL nahrazovat. Můžete použít tento seznam českých znaků: Á|a,á|a,Č|c,č|c,Ď|d,ď|d,Ě|e,ě|e,É|e,é|e,Í|i,í|i,Ň|n,ň|n,Ó|o,ó|o,Ř|r,ř|r,Š|s,š|s,Ť|t,ť|t,Ů|u,ů|u,Ú|u,ú|u,Ý|y,ý|y,Ž|z,ž|z Znaky
které byly v tabulce původně můžete smazat, pokud je nebudete používat
(psát názvy článků německy, finsky, atd). Jak nahrazování funguje, je
dobře popsáno v nápovědné bublině u této tabulky.
Přesměrovat neSEF odkazy na SEF?
- poslední volba u které se zastavím. Znamená, zda se má měnit odkazem
volaná URL v původním tvaru před SEO (např. z odkazu spřáteleného webu,
nebo vyhledávače) na novou líbivou a nebo ne. Já tuto volbu nastavuji
na Ano.
Konfiguraci uložíme stiskem SAVE.
Nyní naposledy v prohlížeči načtěte stránky Vašeho webu. URL při načtení článku „Aktuální počasí" by měla vypadat takto: www.xyxy.cz/aktualni-pocasi.html.Pokud se Vám URL takto zobrazila, tak si můžete gratulovat, právě máte úspěšně za sebou SEO adresního řádku - SEF. Užijte si jej.
Ještě jednou k ARTIO JoomSEF. Tuto komponentu je nutno upgradovat vlastními moduly po nainstalování jakékoli jiné nové komponenty (e-shop, apod.) ovšem za předpokladu, že ARTIO takový modul k nové cizí komponentě vydá. V opačném případě bude nová komponenta zobrazovat URL ve tvaru obyč. SEO, asi takto www.xyxy.cz/eshop/12/34/52, protože JoomSEF logicky nezná vnitřní strukturu nové komponenty. Je tedy třeba mít na paměti, že pro zachování SEF s každou novou instalací nějaké komponenty je třeba také doinstalovat příslušný modul do ARTIO JoomSEF patřící této dotyčné komponentě. Malý poznatek na závěr, takový modul SEF pro VirtueMart od ARTIO JoomSEF je za poplatek.
Standa Bláha