Abuz de functia search pe wordpress duce la declasare in google

AlexH

Merg pe strada catre Mine...
Membru personal
Administrative
Freelancer
SEO Expert
Metoda e veche si care o cunosc stiu ca functioneaza a draclui de bine, de asta e inca folosita. Una din cele mai usoare metode sa declasezi un site.
Ma uitam azi pe 3 site ale mele, toate pe wordpress unde va 11.000 de erori 404. Am ramas prost cand am vazut asta pentru ca nu am atatea articole.
Apoi m-am uitat la volumul de vizite venite din google in ultima saptamana sii care sunt la jumate.

Deci ce fac acesti ''bulangii'', ma scuzati de limbaj dar nu pot spune altfel.
  1. iti acceseza site
  2. apoi ia fiecare link in parte unde ii adauga functia de cautare urmat de un termn la plesneala
  3. termenul cautat va returan desigur un 404 error nu?
  4. repeta asta pana cand se satura sau oboseste
  5. google vede ca ai foarte multe link-uri cu 404 error si crede ca respectivul link/articol a fost sters
  6. bufffff te trezesti cu zero vizite


Daca prind un nenorocit din asta ii rup picioarele si apoi il oblig sa le manance.

Asa ce aveti grija pentru ca ''acestia'' stau la panda.

Cum te aperi de asta?
NU am nici cea ma vaga idee.

Cred ca ar f o idee prin htaccess sa faci o regula ca orice este dupa articol/hfdsfldlf sa il stearga si sa ramana url curat.
Daca stie cineva cum sa faca asta, poate posteaza mai jos solutia.
 
în functions.php
PHP:
function eliminare_search_din_post() {
    if ( is_404() or is_single()) {
        global $wp;
        $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $query = explode("/", $url);
        ###############################
        array_shift($query);
        array_shift($query);
        array_shift($query);
        array_shift($query);
        ###############################
        $query = implode("/", $query);
        $final = str_replace($query,"",$url);
        if ( strcasecmp( $url, $final ) != 0 ){
        wp_redirect($final);
        }
    }
}
add_action('template_redirect', 'eliminare_search_din_post');

În funcție de cum aveți url la site puneți sau scoateți array_shift($query);
Eu am structura la articole de forma https:// domeniumeu/articole-denumire/ deci 4 de /
 
în functions.php
PHP:
function eliminare_search_din_post() {
    if ( is_404() or is_single()) {
        global $wp;
        $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $query = explode("/", $url);
        ###############################
        array_shift($query);
        array_shift($query);
        array_shift($query);
        array_shift($query);
        ###############################
        $query = implode("/", $query);
        $final = str_replace($query,"",$url);
        if ( strcasecmp( $url, $final ) != 0 ){
        wp_redirect($final);
        }
    }
}
add_action('template_redirect', 'eliminare_search_din_post');

În funcție de cum aveți url la site puneți sau scoateți array_shift($query);
Eu am structura la articole de forma https:// domeniumeu/articole-denumire/ deci 4 de /
Am incercat si face exact ce zice. Esti Tare @Naruto9
 
Testa acum si merge super.
Am accesat url care este cu eroare in google webmaster si nu mai afiseaza 404 euro ci duce catre articol.
Eu am adaugat codul de mai sus asa cum este in function.php din thema imediat dupa <?php.
Inca odata mii de multumiri @Naruto9
 
în functions.php
PHP:
function eliminare_search_din_post() {
    if ( is_404() or is_single()) {
        global $wp;
        $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $query = explode("/", $url);
        ###############################
        array_shift($query);
        array_shift($query);
        array_shift($query);
        array_shift($query);
        ###############################
        $query = implode("/", $query);
        $final = str_replace($query,"",$url);
        if ( strcasecmp( $url, $final ) != 0 ){
        wp_redirect($final);
        }
    }
}
add_action('template_redirect', 'eliminare_search_din_post');

În funcție de cum aveți url la site puneți sau scoateți array_shift($query);
Eu am structura la articole de forma https:// domeniumeu/articole-denumire/ deci 4 de /
l-am băgat și eu imediat după ce l-am văzut.
Doar o simplă întrebare, se poate adapta în felul în care să funcționeze și pentru 4 de / și 5 de / în același timp?
 
l-am băgat și eu imediat după ce l-am văzut.
Doar o simplă întrebare, se poate adapta în felul în care să funcționeze și pentru 4 de / și 5 de / în același timp?
da, dar îți trebuie un element unic în link. De exemplu dacă ai https: //site/sezon/episod/nume-episod/ faci o interogare dupa sezon.

PHP:
function eliminare_search_din_post() {
    if ( is_404() or is_single()) {
        global $wp;
        $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $query = explode("/", $url);
        ###############################
        if (strrpos( $url, 'sezon')){
            array_shift($query);
            array_shift($query);
            array_shift($query);
            array_shift($query);
            array_shift($query);
            array_shift($query);
        } else {
            array_shift($query);
            array_shift($query);
            array_shift($query);
        }
        ###############################
        $query = implode("/", $query);
        $final = str_replace($query,"",$url);
        if ( strcasecmp( $url, $final ) != 0 ){
            wp_redirect($final);
        }
    }
}
add_action('template_redirect', 'eliminare_search_din_post');
 
Disallow: /search in robots.txt sau cum ai tu forma de linkuri din cautari rezolva aceasta problema
M-am gandit la asta insa google il vede ca 404 si asta e tot ce conteaza pentru el.
Disallow: /search nu e bine pentru ca nu are efect in cazul nostru.
 
Ca și idee observ că până și youtube au așa ceva.
Încercați pe un url de youtube de video să adăugați la final text random să vedeți că face redirect
ex video: youtube.com/watch?v=D0QT3ZULTaI
ex redirect: youtube.com/watch?v=D0QT3ZULTaIasdasdasd
 
Ultima editare:
Eu folosesc redirect din rank math, redirectioneaza orice pagina inexistenta spre homepage , banuiesc ca nu am nevoie de acest script nu?
 
în functions.php
PHP:
function eliminare_search_din_post() {
    if ( is_404() or is_single()) {
        global $wp;
        $url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
        $query = explode("/", $url);
        ###############################
        array_shift($query);
        array_shift($query);
        array_shift($query);
        array_shift($query);
        ###############################
        $query = implode("/", $query);
        $final = str_replace($query,"",$url);
        if ( strcasecmp( $url, $final ) != 0 ){
        wp_redirect($final);
        }
    }
}
add_action('template_redirect', 'eliminare_search_din_post');

În funcție de cum aveți url la site puneți sau scoateți array_shift($query);
Eu am structura la articole de forma https:// domeniumeu/articole-denumire/ deci 4 de /

Salut daca eu am la sfarsit in permalink cu .html ce trebuie sa modific exemplu: https://www.domain.com/articole-denumire.html
 
Decat sa ingreunati platforma PHP pentru a rezolva asta, cred ca cel mai usor este un pic htaccess.

Apache config:
ErrorDocument 404 http://yourwebsite.com
Bineinteles inainte sa puneti codul pe ceva site sa il testati.
 
Loading...
Back
Sus