Přestože se nás Google snaží přesvědčit o opaku, síla odkazů se nedá popřít. A pokud odkaz vede na neexistující stránku, přicházíte o jeho vliv na to, jak vás vyhledávače hodnotí. Ukážeme si, jak tomu zabránit.
Dnešní článek nebude dlouhý, protože ani řešení není nijak náročné. Buď poprosíte programátora, nebo použijete Ctrl+c a Ctrl+v a kód, který vám ukáži, vložíte do functions.php.
V případě, že odkaz na váš web, vede na neexistující stránku, má WordPress vytvořený pěkný mechanizmus, který vás odkáže na vlastní 404 stránku. To samozřejmě, pokud máte v šabloně soubor 404.php. Díky tomu máte možnost, vytvořit si obsah, jenž se uživateli zobrazí a ten pak na webu může zůstat.
Bohužel neexistující stránka vrací 404 error a síla odkazu tak přijde vniveč. Pomocí funkce můžeme takový odkaz detekovat a přesměrovat jej s 301 kódem na hlavní stranu.
Připravíme si funkci
function link_power_saver(){ } |
Přidáme globální proměnnou $wp_query a zjistíme, zda se jedná o 404
function link_power_saver(){ global $wp_query; if ( $wp_query->is_404 ) { } } |
Před přesměrováním musíme ještě vyloučit url, kterou používá Google pro verifikaci.
Připravíme si proměnnou $root a pokud se url neshoduje s verifikační, přesměrujeme na homepage.
function link_power_saver(){ global $wp_query; if ( $wp_query->is_404 ) { $root = '/'; if ( preg_match( '#^http://[^/]+(/.+)$#', get_option( 'siteurl' ), $matches ) ) { $root = $matches[1]; } if ( $root[ strlen($root) - 1 ] != '/' ) { $root .= '/'; } if ( strpos( $_SERVER['REQUEST_URI'], $root.'noexist_' ) !== 0 ) { wp_redirect( get_bloginfo( 'siteurl' ) , 301 ); exit(); } } } |
Celou funkci pak zavěsíme do akce wp
add_action('wp', 'link_power_saver', 100); |
Za inspiraci kódem děkuji mr. Flores a obrázek jsem si „vypůjčil“ z Paperblog.com
Tyhle přesměrování 404 na homepage jsou sice zajímavou fintou, ale osobně to takhle neřeším. Jak pak detekuješ skutečné 404 abys je mohl vyhodnocovat a třeba opravit jen nějakou chybu, kvůli které URL nejde? Ono z hlediska linkjuice tam asi je drobný přínos, ale zahýbá s analytikou a úplně mi přesměrování všech 404 na homepage nesedí.
Spíš preferuju odchytávat 404 a ty, které dávají smysl jako odstraněné články apod. pak směrovat nějakým 301 redirect pluginem.
Tak samozřejmě, že je lepší odchytávat neplatné url a pak pomocí nastavení jim podstrkávat konkrétní stránky. To umí plugin Redirect. Účel článku není podat na talíři připravené řešení, ale ukázat způsob.