Google search console – chyba přesměrování
Dobrý den,
Google search console mi na mém webu https://re-bike.cz píše chybu přesměrování. Na webu využívám wordpress.
Hledal jsem zde na fóru a chyba může údajně být v .htaccess souboru od WEDOSu, ale v mém případě zde je (pokud tomu dobře rozumím) jen zápis z wordpressu a jeho pluginu Really Simple SSL kvůli HTTPS.
#Begin Really Simple Security <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] </IfModule> #End Really Simple Security # BEGIN WordPress # Direktivy (řádky) mezi "BEGIN WordPress" a "END WordPress" jsou # dynamicky generované a měly by být upravovány pouze pomocí filtrů WordPressu. # Veškeré změny směrnic mezi těmito značkami budou přepsány. <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Dle souboru Sitemap by google měl vědět o 15 stránkách, indexuje ale jen 3
chyba je např na https://re-bike.cz/servis/
a vidí správně https://re-bike.cz/kolo-na-miru/
přitom jsem stránky tvořil vesměs v podobnou dobu..
Pokud v Search console dám konkrétní stránku ručně k otestování, tak vyjde že je OK – dostupná k indexování, kvůli chybě přesměrování pak ale indexace selže.
Nemáte prosím tušení kde může být chyba? Jsem v tomhle celkem amatér..
Děkuji moc za pomoc.
3 Answers
Dobrý den,
za Google úplně mluvit nemůžeme. Dosavadní zkušenosti jsou takové, že problémy pozorovali uživatelé, kteří na webhostingu používali naše vynucení HTTPS kódem
RewriteCond %{HTTPS} off RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L] Header set Content-Security-Policy "upgrade-insecure-requests;"
Specificky vadilo pravidlo R=301, které znamená „Moved permanently“ tedy „obsah je permanentně přesunutý jinam (kam směruje toto přesměrování).“ Tento kód nijak nerozlišuje, jestli je „jinam“ skutečně úplně jiný web/stránka, nebo jestli jenom upgradujete HTTP na HTTPS. Řešením zpravidla byla úprava
RewriteCond %{HTTPS} off # RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L] Header set Content-Security-Policy "upgrade-insecure-requests;"
která řádek s problematickým R=301 vyřadila.
Z naší strany Vám bohužel lépe poradit nedokážu.
Dobrý den,
Google zde obvykle naráží právě na kód
RewriteEngine on RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Zkuste nastavit HTTPS pouze ve WordPressu podle tohoto návodu.
Dobrý den,
děkuji za odpověď, ale tím to bohužel (asi) nebylo. Htaccess a HTTPS jsem opravil dle návodu Google opravdu část stránek vidí a předpokládám, že by viděl nebo neviděl všechny. Každopádně poslední indexování „na vyžádání“ proběhlo dnes v noci a stav je stále stejný. Zajímavé je, že Search console hlásí, že na testovanou stránku https://re-bike.cz/servis neodkazuje žádný Sitemap soubor. Přitom v sitemapě stránka je, spolu s dalšími, které console vidí správně.
Ještě mě napadá, jestli nemůže být problém s přesměrováním způsoben tím „hlavním“ htaccess ve složce WWW na webhostingu.
# htaccess rules for subdomains and aliases # to create new subdomain, create a folder www/subdom/(subdomain name) # to create web for alias, create a folder www/domains/(whole domain name) # htaccess pravidla pro subdomeny a samostatne weby aliasu # pro vytvoreni subdomeny vytvorte adresar www/subdom/(nazev subdomeny) # pro vytvoreni webu pro alias vytvorte adresar www/domains/(cely domenovy nazev) # dalsi info a priklady: http://kb.wedos.com/r/32/webhosting-htaccess.html RewriteEngine On # cele domeny (aliasy) RewriteCond %{REQUEST_URI} !^domains/ RewriteCond %{REQUEST_URI} !^/domains/ RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$ RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d RewriteRule (.*) domains/%2/$1 [DPI] # subdomeny (s nebo bez www na zacatku) RewriteCond %{REQUEST_URI} !^subdom/ RewriteCond %{REQUEST_URI} !^/subdom/ RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$ RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d RewriteRule (.*) subdom/%2/$1 [DPI] # aliasy - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R] # subdomeny - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
A nebo zda nemůže být chybně robots.txt (re-bike.cz/robots.txt)
User-agent: * Disallow: /wp-admin/ Allow: /wp-admin/admin-ajax.php Sitemap: https://re-bike.cz/sitemap_index.xml
a ještě poslední myšlenka – nemůže to nějak blokovat cookies banner a souhlas? Používám plugin od CookieYes a při živém testu dostupnosti indexování vyskočí sice vše zeleně, ale v podrobnostech je jeden nepřístupný zdroj stránky a odkaz na jiný robots.txt
který je na webu cookieyes a obsahuje toto:
User-agent: Googlebot User-agent: Bingbot User-agent: Applebot User-agent: AhrefsBot Disallow: /
Moc děkuji za návrhy k opravě.