SEO pre PrestaShop: nastavenia, ktoré rozhodujú o indexácii
PrestaShop patrí k systémom, ktoré vedia pre vyhľadávanie urobiť veľa, lenže väčšinu z toho treba zapnúť ručne a nastavenia nie sú na jednom mieste. Prepisovanie adries, kanonické presmerovanie, podoba trás, generovanie súboru robots.txt aj správanie vypnutých produktov sa riadia z troch rôznych stránok administrácie, pričom práve tieto nastavenia rozhodujú o tom, koľko duplicitných adries e-shop vyrobí a ako rýchlo ich Google prehľadá. Tento článok prechádza všetky štyri oblasti v poradí, v akom ich treba riešiť, ku každej uvádza presné miesto v administrácii PrestaShopu 8 a dopĺňa ich pravidlami z dokumentácie Google pre filtre vo výpisoch, kanonické adresy a štruktúru adries.
1. Kde v PrestaShope sídlia SEO nastavenia
Pri PrestaShope sa väčšina chýb nerodí v šablóne ani v moduloch, ale v tom, že časť nastavení nikto nikdy neotvoril. Rozhodujúce voľby sú rozdelené do troch miest administrácie, takže kto pozná len jedno z nich, pracuje s tretinou možností a o zvyšku sa dozvie až z Search Console.
- Parametre obchodu, Návštevnosť, SEO a adresy URL. Tu sa zapína prepisovanie adries, nastavuje kanonické presmerovanie, upravuje schéma trás a generuje súbor robots.txt.
- Karta SEO na stránke produktu alebo kategórie. Tu sa píše meta titulok, meta popis, prívetivá adresa a správanie adresy po vypnutí produktu.
- Parametre obchodu, Nastavenia produktov. Tu sa rozhoduje o stabilite adries pri premenovaní produktu, o dĺžke krátkeho popisu a o počte produktov na stránku výpisu.
Na poradí pritom záleží, keďže zmena schémy trás mení adresy celého katalógu, a tak sa robí pred tým, než sa začne pracovať s jednotlivými produktmi. Širší kontext k indexácii, výpisom a štruktúre katalógu nájdete v článku o SEO pre e-shop, tento text rieši výhradne to, čo sa nastavuje v PrestaShope 8.
2. Prívetivé adresy a schéma trás
Bez zapnutého prepisovania adries vyrába PrestaShop adresy, ktoré o obsahu nepovedia nič. Dokumentácia to pomenúva priamo a ako príklad uvádza adresu http://www.myprestashop.com/product.php?id_product=27, ktorá návštevníkovi nenapovie, aký produkt je na stránke, zatiaľ čo prívetivá podoba má tvar http://www.myprestashop.com/2-music-players/27-ipod-nano-green (SEO and URLs, PrestaShop 8). Číselné identifikátory v adrese pritom zostávajú, pretože podľa tej istej dokumentácie sa v predvolenom stave odstrániť nedajú a meniť sa dá len slovná časť, ktorú si buď necháte vygenerovať z názvu, alebo ju napíšete ručne.
Odporúčanie Google ide v rovnakom smere, keďže v dokumentácii k štruktúre adries žiada používať v adresách čitateľné slová namiesto dlhých číselných identifikátorov a oddeľovať slová spojovníkom, nie podčiarkovníkom (Keep a simple URL structure). Predvolená podoba adresy produktu v PrestaShope tomu zodpovedá len čiastočne, no identifikátor pred názvom nie je prekážka indexácie a jeho odstránenie si vyžaduje zásah do trás, ktorý má svoje riziká.
Prvé zapnutie prepisovania adries je jediné miesto v tomto článku, kde sa dá e-shop skutočne vyradiť z prevádzky. Dokumentácia pri voľbe „Prívetivá adresa URL" upozorňuje, že funkcia pracuje len na serveri s podporou prepisovania adries, napríklad cez modul mod_rewrite webového servera Apache, a že zapnutie prívetivých adries na serveri bez tejto podpory môže obchod úplne zneprístupniť zákazníkom. Preto sa to overuje u poskytovateľa hostingu ešte predtým, než nastavenie uložíte.
Keď prívetivé adresy bežia, otvorí sa v tej istej sekcii aj schéma trás, teda osem polí, ktoré určujú, ako adresy vznikajú. Predvolená trasa produktovej stránky je podľa dokumentácie {category:/}{id}-{rewrite}{-:ean13}.html a vedie k adrese v tvare /summer-dresses/7-printed-chiffon-dress.html, pričom povinné zástupné slová sú v administrácii označené hviezdičkou. Zmena trasy prepíše adresy celého katalógu naraz, takže patrí k rozhodnutiam, ktoré sa robia pred spustením webu, prípadne spolu s premyslenou sadou trvalých presmerovaní zo starých adries na nové.
Dve menšie voľby majú pritom väčší vplyv, než sa zdá. Voľba „Adresa URL s diakritikou" rozhoduje, či PrestaShop vyrobí pri produktoch s neanglickými názvami adresy so špeciálnymi znakmi, a dokumentácia Google k tomu žiada znaky mimo rozsahu ASCII v odkazoch percentuálne kódovať, takže pri slovenskom katalógu je čistejšie nechať adresy bez diakritiky. Druhou je nastavenie „Vynútiť aktualizáciu prívetivej adresy URL" v Nastaveniach produktov, ku ktorému dokumentácia uvádza, že prívetivá adresa sa v predvolenom stave generuje z názvu produktu a po jeho zmene zostáva rovnaká, lebo adresy majú byť pre dobrú indexáciu stabilné (Product Settings, PrestaShop 8).
| Nastavenie | Kde sa nachádza | Odporúčaná hodnota |
|---|---|---|
| Prívetivá adresa URL | SEO a adresy URL | Áno, ale až po overení podpory prepisovania adries na serveri |
| Adresa URL s diakritikou | SEO a adresy URL | Nie, aby adresy nevyžadovali percentuálne kódovanie |
| Presmerovať na kanonickú adresu | SEO a adresy URL | Trvalé presmerovanie 301, keď sú úpravy adries dokončené |
| Vynútiť aktualizáciu prívetivej adresy | Nastavenia produktov | Nie, adresy majú zostať stabilné aj po premenovaní produktu |
| Atribúty v meta titulku | SEO a adresy URL | Áno pri katalógu s variantmi, kde titulky inak splývajú |
| Generovať robots.txt | SEO a adresy URL | Raz na začiatku, vlastné pravidlá sa dopisujú až potom |
3. Kanonické adresy, parametre a kombinácie
Najčastejším zdrojom duplicít v PrestaShope nie je skopírovaný text, ale tá istá stránka dostupná na viacerých adresách. Dokumentácia to vysvetľuje na parametroch a uvádza, že adresy http://example.com/product.php?id=5&option1 a http://example.com/product.php?id=5&option2 ukazujú na ten istý produkt, takže pre takú stránku chcete jedinú adresu namiesto mnohých duplicitných. Na riešenie slúži voľba „Presmerovať na kanonickú adresu URL", ktorá podľa dokumentácie pracuje so štandardnou značkou rel="canonical", no jej správna podoba v hlavičke závisí od toho, či ju šablóna implementuje korektne.
Voľba má tri stavy a každý z nich znamená iné správanie. Bez presmerovania môžu podľa dokumentácie vznikať duplicitné adresy, trvalé presmerovanie vracia kód 301 a oznamuje vyhľadávačom, že do úvahy sa má brať len hlavná adresa, a dočasné presmerovanie vracia kód 302 s informáciou, že hlavná adresa sa môže neskôr zmeniť. Dokumentácia odporúča trvalé presmerovanie po dokončení úprav, čo v praxi znamená nastaviť ho vtedy, keď už adresy nemeníte.
Pri katalógu s variantmi treba poznať ešte jedno pravidlo, ktoré dokumentácia uvádza ako zmenu od verzie 1.7.6: predvolene sa volá kanonická adresa produktu a pri kombináciách smeruje kanonická adresa na predvolenú kombináciu. Pre praktické rozhodovanie z toho vyplýva, že adresy jednotlivých variantov sa v indexe zlučujú na jednu produktovú stránku, takže variant, ktorý má mať samostatnú viditeľnosť, musí byť samostatným produktom, nie kombináciou.
Dokumentácia Google k zlučovaniu duplicitných adries pridáva tri pravidlá, na ktorých sa v e-shopoch chybuje najviac. Súbor robots.txt sa na zlučovanie používať nemá, keďže Google môže zablokované adresy aj tak indexovať bez ich obsahu, pravidlo noindex sa na výber kanonickej stránky v rámci jedného webu neodporúča, pretože stránku z vyhľadávania vyradí úplne, a interné odkazy majú viesť na kanonickú adresu namiesto duplicitnej, lebo dôsledné odkazovanie pomáha Google pochopiť vašu preferenciu (How to specify a canonical URL). Rovnaká dokumentácia zoraďuje silu signálov, pričom presmerovanie a značka rel="canonical" sú silné signály, zatiaľ čo zaradenie do mapy stránok je signál slabý. Viac o samotnom princípe a o tom, čo Google za duplicitu považuje, je v článku o duplicitnom obsahu.
4. Filtre vo výpise a prehľadávací rozpočet
Vrstvená navigácia je v PrestaShope obľúbená a zároveň je najväčším generátorom zbytočných adries, pretože z niekoľkých atribútov vznikne kombinatoricky obrovské množstvo filtrovaných výpisov. Dokumentácia Google k filtrovanej navigácii hovorí o dvoch konkrétnych škodách: o nadmernom prehľadávaní, lebo prehľadávač nedokáže užitočnosť adresy posúdiť bez toho, aby ju navštívil, a o pomalšom objavovaní nového obsahu, keďže čas strávený na neužitočných adresách chýba pri nových stránkach.
Rozhodnutie je binárne a treba ho urobiť vedome. Ak filtrované adresy v indexe nepotrebujete, dokumentácia odporúča ich prehľadávanie zakázať, a to najpriamočiarejšie pravidlami v súbore robots.txt, ktoré zakážu adresy s danými parametrami a zároveň povolia prehľadávanie stránok jednotlivých produktov spolu s jedným výpisom bez filtrov. Ako príklad uvádza dokumentácia pravidlá v tvare disallow: /*?*color= doplnené výnimkou allow: /*?products=all$ (Faceted navigation best practices).
Ak filtrované výpisy v indexe naopak chcete, napríklad preto, že na kombináciu značky a parametra existuje reálny dopyt, platia podľa dokumentácie tri podmienky. Oddeľovačom parametrov má byť znak &, pretože čiarku, bodkočiarku a hranaté zátvorky prehľadávače rozpoznávajú ako oddeľovač ťažko, pri filtroch zapísaných do cesty adresy má zostať ich logické poradie vždy rovnaké a bez duplicitných filtrov, a kombinácia filtrov bez výsledkov má vrátiť kód 404 priamo na adrese, kde k nej prehľadávač prišiel, namiesto presmerovania na spoločnú chybovú stránku.
Posledné z týchto pravidiel je v PrestaShope najčastejšie porušené, keďže prázdny výpis sa zvyčajne zobrazí s textom o nenájdených produktoch, ale server pošle kód 200. Dokumentácia Google k stavovým kódom pri skupine 2xx uvádza, že ak obsah pôsobí pre vyhľadávanie Google ako chyba, prázdna stránka alebo chybové hlásenie, Search Console zobrazí mäkkú chybu 404 (HTTP status codes, network and DNS errors). Takýchto adries pritom pri filtroch vznikne toľko, koľko je prázdnych kombinácií, a prehľadávanie, ktoré na ne padne, chýba stránkam, na ktorých naozaj záleží. Nastavenie počtu produktov na stránku sa pritom rieši v Nastaveniach produktov v sekcii predvolieb stránkovania a súvisiace pravidlá sú v článku o stránkovaní a filtroch.
Dokumentácia Google ponúka aj dve mäkšie možnosti, ktoré sama označuje za dlhodobo menej účinné. Značka rel="canonical" smerujúca z filtrovaného výpisu na nefiltrovanú verziu môže v čase znížiť objem prehľadávania nekanonických adries a atribút rel="nofollow" na odkazoch na filtrované výsledky môže pomôcť, no len vtedy, keď ho má každý odkaz na danú adresu. Pri filtroch postavených na fragmente adresy za znakom mriežky nemá ich podoba na prehľadávanie vplyv ani pozitívny, ani negatívny, pretože Google fragmenty adries pri prehľadávaní a indexácii vo všeobecnosti nepodporuje.
5. Meta údaje, popisy a obrázky produktov
Pri meta údajoch sa v PrestaShope nenastavuje nič zložité, zato sa tu vo veľkých katalógoch najviac šetrí časom, a práve preto tisíce produktov zdieľajú jeden titulok podľa šablóny. Dokumentácia k produktom označuje meta titulok za najdôležitejšie pole a žiada, aby bol v rámci webu pre daný produkt jedinečný, pričom ako dobrý príklad uvádza konkrétny tvar so značkou, modelom a variantom namiesto titulku zloženého z interného kódu a slova bestseller (Managing Products, PrestaShop 8). Pri meta popise tá istá dokumentácia odporúča dĺžku ideálne pod 155 znakov a opäť jedinečnosť v rámci webu.
Pri katalógu postavenom na variantoch pomáha nastavenie zo stránky SEO a adresy URL, ktoré dokumentácia uvádza ako novinku od verzie 1.7.5.1 a ktoré dovoľuje zapnúť zobrazenie atribútov produktu v jeho meta titulku. Bez neho sa pri produktoch s desiatkami kombinácií titulky na seba podobajú natoľko, že sa z nich nedá rozlíšiť, ktorý variant je na stránke.
Krátky popis produktu má v PrestaShope osobitnú úlohu a aj osobitný limit. Dokumentácia k nastaveniam produktov vysvetľuje, že produkt má dva popisy, krátke zhrnutie a bežný popis, pričom zhrnutie sa zobrazuje vo výpise kategórie a jeho dĺžka je predvolene obmedzená na 800 znakov. Práve toto zhrnutie teda nesie prvý kontakt zákazníka s produktom vo výpise, takže sa doň nekopíruje úvod dlhého popisu, ale píše sa samostatne.
Obrázky majú v PrestaShope jednu pascu, ktorú si správcovia uvedomia až po rokoch. Popis obrázka, ktorý sa zadáva ako jeho titulok, sa podľa dokumentácie používa ako atribút alt, takže ide o jediné miesto, kde sa alternatívny text produktových fotografií dá vyplniť bez zásahu do šablóny. Dokumentácia zároveň pripomína, že pri viacjazyčnom obchode treba tento popis preložiť do všetkých jazykov, inak zostane celá jazyková verzia katalógu bez alternatívnych textov.
6. Vypnuté produkty, robots.txt a kontrola
Vypnutie produktu v PrestaShope nie je len zmena príznaku, ale rozhodnutie o tom, čo sa stane s jeho adresou. Dokumentácia opisuje na karte SEO sekciu venovanú presmerovaniu a dáva tri možnosti, ktoré sa od seba líšia práve vplyvom na index.
- Bez presmerovania, kód 404. Zobrazí sa stránka s chybou „nenájdené" a adresa postupne vypadne z indexu.
- Trvalé presmerovanie 301. Podľa dokumentácie nebude súčasná adresa produktu vyhľadávačmi ďalej indexovaná a nahradí ju adresa zvoleného produktu alebo kategórie, takže voľba je vhodná len vtedy, keď adresu naozaj už nepotrebujete.
- Dočasné presmerovanie 302. Vyhľadávače adresu podľa dokumentácie naďalej indexujú, takže sa dá neskôr znovu použiť, napríklad keď produkt opäť zapnete.
Z toho vyplýva jednoduché pravidlo pre každodennú prácu: tovar, ktorý sa vráti do ponuky, dostane dočasné presmerovanie, zrušený model s priamym nástupcom trvalé a produkt bez náhrady zostane na kóde 404. Pri voľbe cieľa dokumentácia dovoľuje vybrať produkt alebo kategóriu, pričom pri kategórii treba cieľovú kategóriu určiť výslovne.
Súbor robots.txt si PrestaShop vie vygenerovať sám, lenže poradie krokov tu rozhoduje o tom, či o svoje pravidlá neprídete. Dokumentácia uvádza, že nástroj vytvára súbor s pravidlami pre vylúčenie súborov a priečinkov, ktoré nemajú byť verejné, že vygenerovaný súbor používa zápis User-agent: *, a hlavne že kliknutie na tlačidlo na generovanie nahradí akýkoľvek existujúci súbor robots.txt novým. Vlastné pravidlá, napríklad tie pre filtrované adresy z predchádzajúcej sekcie, sa preto dopisujú až po vygenerovaní, nikdy pred ním.
Dokumentácia k tomu dodáva realistickú poznámku, ktorú si pri práci s filtrami treba pamätať, keďže najhoršie roboty pravidlá tohto súboru nerešpektujú a súbor je len odporúčaním. Pre rozpočet prehľadávania vášho obchodu to znamená, že zákaz v súbore robots.txt zaberie na Googlebota, no server môže byť ďalej zaťažovaný inými nástrojmi, takže samotný súbor nie je ochranou pred nadmerným prehľadávaním ako takým (Introduction to robots.txt).
Kontrola výsledku má štyri kroky a dá sa urobiť za jedno popoludnie. Najprv si v prehliadači otvorte jednu produktovú stránku s parametrom v adrese a v zdrojovom kóde skontrolujte, či značka rel="canonical" ukazuje na čistú adresu bez parametra. Potom skúste kombináciu filtrov, ktorá nemá žiadny výsledok, a overte kód odpovede, keďže práve tu sa najčastejšie skrýva pôvod mäkkých chýb 404. Nakoniec si v Search Console prejdite prehľad indexovania stránok a pozrite si, koľko adries skončilo v kategóriách s parametrami, respektíve ako vyzerá ich pomer k počtu produktov v katalógu.
Jedna vec sa pritom nedá uponáhľať a je ňou čas. Zmena schémy trás, zapnutie kanonického presmerovania aj zákazy v súbore robots.txt sa prejavujú postupne, pretože Googlebot musí dotknuté adresy najprv znovu navštíviť, a pri veľkých katalógoch to trvá týždne. Priebežné čísla z prvých dní preto nie sú dôvodom nastavenie znovu meniť, zmysel má až porovnanie po niekoľkých týždňoch.
Časté otázky
Zhorší SEO číslo v adrese produktu PrestaShopu?
Samotný identifikátor pred názvom indexácii neprekáža. Dokumentácia PrestaShopu uvádza, že číselný identifikátor sa v predvolenom stave z adresy odstrániť nedá a meniť sa dá len slovná časť, zatiaľ čo Google v dokumentácii k štruktúre adries žiada hlavne čitateľné slová namiesto dlhých číselných identifikátorov. Adresa so slovami aj krátkym číslom túto podmienku spĺňa, takže zásah do trás na odstránenie čísla sa pri bežnom e-shope neoplatí.
Akú hodnotu má mať voľba presmerovania na kanonickú adresu?
Trvalé presmerovanie 301, ale až po dokončení úprav adries. Dokumentácia PrestaShopu pri tejto voľbe uvádza, že bez presmerovania môžu vznikať duplicitné adresy, kód 301 oznamuje vyhľadávačom, že sa má brať do úvahy len hlavná adresa, a kód 302 hovorí, že hlavná adresa sa môže neskôr zmeniť. Kým adresy ešte prestavujete, dočasná voľba 302 vás nezaväzuje.
Majú sa filtrované výpisy v PrestaShope indexovať?
Vo väčšine e-shopov nie. Dokumentácia Google k filtrovanej navigácii hovorí o nadmernom prehľadávaní a o pomalšom objavovaní nového obsahu, pretože prehľadávač nedokáže užitočnosť filtrovanej adresy posúdiť bez jej návštevy, a preto odporúča pri nepotrebných filtrovaných adresách zakázať ich prehľadávanie. Výnimkou sú kombinácie, na ktoré existuje samostatný dopyt, a tie potom musia spĺňať pravidlá pre oddeľovač parametrov, poradie filtrov a kód 404 pri prázdnom výsledku.
Prečo moje varianty produktu nemajú vlastné pozície?
Pretože ich PrestaShop zlučuje na jednu adresu. Dokumentácia uvádza ako zmenu od verzie 1.7.6, že predvolene sa volá kanonická adresa produktu a pri kombináciách smeruje kanonická adresa na predvolenú kombináciu, takže jednotlivé varianty samostatnú adresu v indexe nedostanú. Ak má variant získať vlastnú viditeľnosť, musí byť samostatným produktom.
Môžem si do súboru robots.txt dopísať vlastné pravidlá?
Môžete, ale až po vygenerovaní súboru PrestaShopom. Dokumentácia výslovne uvádza, že kliknutie na tlačidlo na generovanie nahradí akýkoľvek existujúci súbor robots.txt novým, takže vlastné pravidlá dopísané pred generovaním sa stratia. Rovnaká dokumentácia pripomína, že súbor je iba odporúčaním a najhoršie roboty ho nerešpektujú.
Kde sa v PrestaShope vyplní alternatívny text obrázka?
V popise obrázka na karte s obrázkami produktu. Dokumentácia k produktom uvádza, že tento popis sa používa ako atribút alt obrázka, takže ide o jediné miesto, kde sa dá alternatívny text produktových fotografií zadať bez zásahu do šablóny. Pri viacjazyčnom obchode ho treba preložiť do všetkých jazykov, inak zostane celá jazyková verzia bez alternatívnych textov.