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 Odpověď
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ě.