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