Změnili jste kategorizaci či název produktu? Nastavte redirecty správně!

Změnili jste kategorizaci či název produktu? Nastavte redirecty správně!

Změna struktury e-shopu či názvu produktu je častý jev na velkých e-shopech. Není to nic špatného, ale je třeba k tomu přistupovat zodpovědně. Abyste nepřišli o všechen traffic z Google Search, který směruje na zaindexované adresy, je potřebné po změně URL adres nastavit redirecty. Častokrát se však střetáváme s tím, že při těchto redirectech se nepřenášejí parametry v URL (trackovací údaje pro náš script). Toto je obrovský problém, neboť publisheři, kteří vytvořili článek a odkazují na váš produkt, nezískávají provize, protože nepřenášíte parametry v URL při redirectu. Publisher nedokáže kontrolovat všechny svoje obsahové články a odkazy v nich. Je nereálné očekávat od publisherů, že okamžitě zareagují na změnu vašich URL adres a změní si odkazy na svých stránkách. Příklad:
  • původná adresa produktu: https://www.nejakyeshop.sk/539/eliptical-atlanta
  • nová adresa produktu: https://www.nejakyeshop.sk/539/elipticky-trenazer-atlanta
Problém:
  • Návštěvník webu je automaticky přesměrovaný z adresy https://www.nejakyeshop.sk/539/eliptical-atlanta?a_aid=123456 na https://www.nejakyeshop.sk/539/elipticky-trenazer-atlanta
  • Při redirectu se ztratily parametry v URL a tím pádem se nezapíše publisherovi proklik a ani případná provize

Řešení

Tvar redirectů má na starosti váš e-shop nebo server. Vždy se proto poraďte s vaším vývojářem. Nejjednodušším řešením je použít mod_rewrite.c v .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !#
RewriteCond %{REQUEST_URI} !(.*)/$

RewriteCond %{HTTP_HOST} ^(www.)?moj-eshop.sk [NC]
RewriteRule ^(.*)(moj-stary-produkt-1)(/.*)$ https://www.moj-eshop.sk/moj-novy-produkt-1$3  [L,QSA]
RewriteRule ^(.*)(moj-stary-produkt-2)(/.*)$ https://www.moj-eshop.sk/moj-novy-produkt-2$3  [L,QSA]

</IfModule>
Toto přesměruje:
  • moj-eshop.sk/moj-stary-produkt-1 -> https://www.moj-eshop.sk/moj-novy-produkt-1
  • www.moj-eshop.sk/moj-stary-produkt-1 -> https://www.moj-eshop.sk/moj-novy-produkt-1
  • moj-eshop.sk/moj-stary-produkt-2 -> https://www.moj-eshop.sk/moj-novy-produkt-2
  • www.moj-eshop.sk/moj-stary-produkt-2 -> https://www.moj-eshop.sk/moj-novy-produkt-2
Podstatné je na tom to QSA na konci řádku, což znamená „Query String Append“; tedy přenese query string (všechno za otazníkem v původní URL) do nové URL. To L-ko znamená „Last“, takže když se změní první z těch dvou RewriteRule, už nepokračuje na další. Šetří to čas, pokud jich tam je 100+. Ještě existuje statický způsob přesměrování, který ignoruje případné parametry (a tedy i query string). Tento není dobré používat, protože (v příkladu níže) explicitně odchytí jen URL končící „/moj-stary-produkt-1„. Pokud by URL končila např. „/moj-stary-produkt-1?a_aid=12345678„, přesměrování nenastane.
# toto je nevyhovující přesměrování
Redirect 301 /moj-stary-produkt-1 https://www.moj-eshop.sk/moj-novy-produkt-1
Většina e-shopů ale používá přesměrování ve zdrojovém kódu. V momentu přesměrování je potřebné přenést celý query string do nové URL:
// ziskame si $newProductURL z databáze a doplníme za ni query string
$newProductURL .= !empty($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : NULL;
// pošleme hlavičku Location s novou URL, což způsobí přesměrování browsera
header("Location: " . $newProductURL . "n");

Hlavním cílem je, aby se po změně URL přenášely affiliate parametry. Jakmile se zjistí, že inzerent neprovedl potřebná opatření, je možné proti tomu zasáhnout i penalizací nebo řešením kompenzace podle smlouvy. Nejdůležitější ale je poskytnout publisherům 100% funkční kampaň, což není možné, pokud se po přesměrování nepřenesou parametry.

Další články, které by tě mohly zajímat

Které inzerenty u nás najdete?