Musilda.cz

Přesměrování neexistujících url pomocí 301 na homepage webu

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

Exit mobile version