WordPress má v sobě kritickou chybu!

20.02.2010 03:15:31 | by admin |

Aktualizace 22.2.2010: tato chyba byla zatím potvrzena pouze u WP + godaddy hosting. Přečtěte si pro detaily diskuzi a článek o migraci.

Před pár dny jsem psal, že mi seznam srazil srank na 50. Pravděpodobně se jednalo o nějaký výpadek hostingu, nebo lokální nedostupnost crawlera. Ovšem narazil jsem také na jednu zvláštnost. Z nějakého neznámého důvodu házela domovská stránka chybu 302.

Svádět to na hosting, nebo nějakou chybu v aktualizaci je jednoduché, jenomže tato nenápadná chyba může mít za následek problém indexování u crawlovacích robotů největších vyhledávačů. Jednak všechny zpětné odkazy většinou tlačíte na hlavní stránku, která se vyhledávačům hlásí pod chybou 302 (dočasně přesměrováno) a vyhledávač tak čeká až se vše vrátí do původních kolejí, a také wordpress přes hlavní stránku převádí nemalé množství linkjuice, které získá z odkazů na jednotlivé stránky. Prostě pokud hlavní stránka vyhledávačům hlásí 302 tak je to doslova sebevražda.

Po několika hodinách hledání na interentu jsem zjistil, že je to chybou, která se u WordPressu vyskytuje od verze 2.8.2, což je poměrně dlouhá doba a týká se blogů, které jsou směřované na verzi domény bez www. Ta totiž neexistuje i když vyhledávače čekají kdy se znovu objeví, protože jim chybová hláška 302 říká, že je jen dočasně přesměrována. Celé se to přitom dá opravit naprosto jednoduše a to tak, že místo chyby 302 bude crawlerům oznámen kód 301, tedy přesunuto permanentně, tak přestaňte čekat a jděte crawlovat.

Jak poznáte, že se problém týká právě vás? Jděte do Google Webmáster Tools. Najděte si váš blog. Klikněte na Laboratoř Google a Načíst jako googlebot. Odklikněte načíst. Chvilku počkejte a znovu klikněte na Načíst jako googlebot. Bude pro vás připravená zpráva. Tu si otevřete. Pokud na vás vyskočí něco podobného:

HTTP/1.1 302 Moved Temporarily

Content-Length: 0

Location: /?a1106cd8

Tak máte problém. Právě vám utíká většina link juice. U některých čteček se možná objevil i problém s nemožností přijmout RSS, některé prohlížeče zobrazují jen prázdnou stránku atd.

A jak to opravit?

Existuje několik řešení. Já jsem si vybral to nejjednodušší. Upravím si soubor .htaccess.

# BEGIN WordPress

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.404m\.com [NC]

RewriteRule ^(.*)$ http://404m.com/$1 [L,R=301]

<IfModule mod_rewrite.c>

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Jak je uvedeno na příkladu stačí do kódu přidat modře označený text a místo 404m.com dát vaší URL. Jestli to funguje poznáte velice rychle pomocí zopakování testu v google webmaster tools. Pokud je odpovědí html kód vaší stránky, před kterým je něco hlavička s kódem 200 je vše přesně jak má být.

Štítky:, , , , , ,




  1. 16 Komentářů

  2. Meph

    Za článek díky!

    Mimochodem Ahyde začal zase blogovat :)

    Co vy na to? Thumb up 0 Thumb down 0

    | | 20.02.2010 17:07:23 |

  3. admin

    Meph: už to vím nějakou dobu, ale to že bloguje pod jiným pseudonymem než dříve má asi nějaký důvod, tak to nechci zbytečně rozvádět. Články jsem popravdě ještě nečetl, na složitější anglický text musí mít člověk klid ale hlavně náladu.

    Co vy na to? Thumb up 0 Thumb down 0

    | | 20.02.2010 17:24:11 |

  4. paprikáš

    Neexistuje nějaký jednoduší způsob? Nějak si nedovedu představit mít každý miniweb evidovaný ve webmaster tools??

    Co vy na to? Thumb up 0 Thumb down 0

    | | 20.02.2010 18:11:23 |

  5. Separatista

    Pěkný titulek :-) Moc se mi to ale nezdá… Ve WordPressu 2.8.2 se neměnilo skoro nic (byla to bezpečnostní verze, oprava XSS) a nic z toho určitě nemohlo způsobit toto přesměrování. Ta úprava pomocí .htaccess neřeší příčinu, ale až následek neznámého problému. Zkoušel jsi před změnou .htaccess vypnout všechny pluginy, nasadit defaultní šablonu a aktualizovat strukturu trvalých odkazů? Nejpravděpodobnější příčinou je podle mě zmiňovaný výpadek hostingu a následně nějaké jeho jiné nastavení, které způsobilo (možná v kombinaci s nějakým pluginem) tento problém… Ale neviděl bych v tom asi hned „kritickou“ chybu WordPressu. Mimochodem, zatím ji nikdo vývojářům oficiálně nenahlásil a ani jsem ji moc neviděl řešit na oficiálních fórech. A už vůbec se mi nezdá, že by si takovéhle chyby nikdo v zahraničí takové „kritické“ chyby přes půl roku nevšiml a pořádně ji nerozmáznul… Objevilo se to jen na homepage?

    Co vy na to? Thumb up 0 Thumb down 0

    | www.separatista.net | 20.02.2010 18:45:55 |

  6. admin

    Separatista: stejný problém mají všechny WP které směřují na newww. verzi. Zkus si to podle toho návodu otestovat. Prostě pokud ti dělá ve vyhledávačích problém index stránka (není zaindexovaná, doačasně vyřazená z indexu) tak je to právě tímto. Samotný chod WP tato chyba neohrožuje prostě jen index stránku nevidí vyhledávače a každý se s tím popere jinak.

    Btw. je toho plný internet:
    http://mu.wordpress.org/forums/topic/14952
    http://websitebuilding.biz/cms/fix-wordpress-302/
    http://www.richardshepherd.com/htaccess-and-302-redirect-problems-fixed/

    a mnoho dalších. Není to nic nového, jen se tomu u nás nikdo nevěnoval, protože chyba je vidět jen u vyhledávačů a index stránace.

    Co vy na to? Thumb up 0 Thumb down 0

    | | 20.02.2010 20:05:01 |

  7. Unreal][

    mel jsem problem s nacitanim tveho rss. pripadalo mi to jako nejaky nepovedeny plugin. vyhodilo to kod, ten se musel navstivit a pak se zobrazil obsah – jako ochrana proti robotum temer idealni :)

    Co vy na to? Thumb up 0 Thumb down 0

    | pagerank.jklir.net | 20.02.2010 21:08:36 |

  8. radek

    Na tento článek jsem se opět dostával velmi těžko, na 3 refreshe. Řekl bych, že to nebude WordPressem :)

    Co vy na to? Thumb up 0 Thumb down 0

    | www.nakafco.cz | 20.02.2010 21:46:12 |

  9. Robert

    Nepoužíváš náhodou ještě nějakou starou verzi WP? Protože jsem se koukal na několik stránek přes Web-Sniffer a tu chybu jsem našel jenom u tebe. A mimochodem pořád to nemáš opravený?

    Co vy na to? Thumb up 0 Thumb down 0

    | www.skramlik.cz | 20.02.2010 21:46:15 |

  10. Separatista

    Jj, tyhle odkazy jsem viděl, ale to bylo asi tak všechno. Když se objeví ve WordPressu opravdu nějaký problém, tak se rozšíří mnohem rychleji (a nejen, že to zaznamená několik blogů). Zkoušel jsem to u několika svých webů, ale vše je v pořádku (200 OK).

    Našel jsem k tomu ještě toto: http://www.pdxtc.com/wpblog/wordpress/wordpress-2-82-changing-url-is-bad/ (odpovídá tam i jeden z hlavních vývojářů WordPressu Mark Jaquith). A na nic se nepřišlo (kromě toho že to nebude WordPressem, ale patrně nějakým pluginem, šablonou, nebo nastavením serveru).

    Každopádně je to zajímavé a bylo by fajn, kdybys to mohl ještě jednou pořádně otestovat (tedy standardní neupravený .htaccess, deaktivované pluginy, defaultní šablona a aktualizované trvalé odkazy). A pokud se to stále objevuje, tak by bylo úplně super, kdybys mohl nahodit na subdoméně testovací WordPress a poslat mi přístupy, aby se to mohlo nahlásit vývojářům (lepším řešením je oprava v nové verzi, než aby si každý upravoval na desítkách webů .htaccess). Díky moc…

    Co vy na to? Thumb up 0 Thumb down 0

    | www.separatista.net | 20.02.2010 21:55:37 |

  11. admin

    Vím že se něco děje s hostingem. Pluginy mám aktivní jen Executable PHP widget, KB Advanced RSS Widget, Raven’s Antispam a WP-Polls. Z toho na jiném blogu jsem neměl nic jiného a dělalo to to samé. Uznávám že godaddy hosting nemá klasické .htaccess a pár věcí tady nefunguje jak má. Instalace mám aktuální.

    Co vy na to? Thumb up 0 Thumb down 0

    | | 20.02.2010 22:28:06 |

  12. Berlin

    Mám sice ve WMT jen jeden web, ale za to ho hostuju na Godaddy (EU region)a všechno OK.

    Co vy na to? Thumb up 0 Thumb down 0

    | domena.bz | 21.02.2010 01:22:01 |

  13. admin

    Hmm teď jsem prováděl několik hodin pár testů a vypadá to, že dreamhost tento problém nemá a to jsem zkusil instalace od 2.8.2+. Instalace na godaddy jsou naopak problémové. No nastal čas poslat dotaz na podporu.

    Co vy na to? Thumb up 0 Thumb down 0

    | | 21.02.2010 03:54:17 |

  14. Milan Kryl

    Dreamhost tyto problemy nema, protoze pri registraci vybiras, jestli se ti maji www nebo ne-www varianty presmerovat. Pravidlo se vytvori implicitne a neni potreba to mit explicitne v htaccess…

    Co vy na to? Thumb up 0 Thumb down 0

    | www.milankryl.cz | 21.02.2010 15:41:16 |

  15. admin

    OK tak po konzultaci s podporou godaddy hostingu jsem usoudil, že kombinace WP + .htaccess + Godaddy akcelerátor = velký problém. Takže vše přesouvám na VPSku do ČR. Takže 2 dny tu bude asi trochu mrtvo :)

    Co vy na to? Thumb up 0 Thumb down 0

    | | 22.02.2010 12:53:42 |

  16. Re4DeR

    Tak to když tak prosím napiš na začátek příspěvku, že to tak vážný není.

    Co vy na to? Thumb up 0 Thumb down 0

    | re4der.info | 22.02.2010 17:33:57 |

  17. sazka

    Doporučuji Hostgator(space) + Godaddy(domain)

    Co vy na to? Thumb up 0 Thumb down 0

    | www.doxxbet.cz | 10.03.2010 11:47:51 |


1. Komentářům obsahující místo jména klíčové slovo bude URL upravena na náhodnou neziskovou organizaci.
2. Příspěvkům bez hlavy a paty bude upravena URL, anebo budou smazány úplně.
3. Odkazy nemají nofollow, takže pokud je chcete použít na linkbuilding musí váš příspěvek být přínosem.
4. Každý příspěvek je posuzován individuálně. Některé příspěvky, zvláště s rozporuplnou morální hodnotou, mohou být schváleny až po několika dnech.
5. Nepoužívejte v komentářích URL na warez, adult materiál, alkohol, drogy, sázení anebo jiný obsah určený pro věkovou hranici 15+. Díky.

Napsat komentář