Fulltext Seznamu neumí pracovat se znakem + (plus) v URL

Nedávno psal Pavel Ungr na blogu H1.cz o tom, jak je nový fulltext Seznamu díky nasazení nového robota ne/povedený. Dnes jsem si všiml dalšího nedostatku, kterým trpí vyhledávání. Seznam v SERPu zobrazuje URL, která obsahují znak „+“ bez tohoto symbolu. Zaindexovat pro něj takovou stránku není problém, chyba bude zřejmě „pouze“ v konečném naservírování uživateli. Ptáte se, jestli je vůbec možné, aby byl znak „+“ v URL? Podle RFC 1738 je tento symbol legitimní částí URL (viz sekce 2.1).

Praktický příklad

Problém mohou mít především ty weby, kde se URL generují automaticky z názvů položek, kde se znak „+“ vyskytuje. Typicky to jsou realitní servery, kde jsou v nabídce například byty 1+1, 1+kk apod. URL je tak může vypadat například www.example.cz/byt-1+1-na-prodej. Jak se k tomu zachová SERP Seznamu vidíte na následujícím obrázku, případně když si vyhledáte příslušné byty na konkrétním realitním serveru, který symboly „+“ v URL používá. Zkuste si na jakýkoli výsledek v SERPu kliknout, dostanete buď chybovou stránku nebo se parametr s velikostí bytu (tedy např. 1+1) nebude zohledňovat. Nyní si zkopírujte URL, která je v SERPu zobrazená a místo bílého místa zadejte znak „+“. Bingo! Dostali jsme funkční URL, která by měla být správně zobrazena i v Seznam SERPu.

Google tímto neduhem netrpí.

Ukázka SERPu vyhledávače Seznam

Jak to řešit

Možnosti jsou nyní jen dvě:

  1. upravit informační systém, aby symbol „+“ do URL nedával a nahradil ho například pomlčkou („-„) – v tomto případě nezapomeňte přesměrovat pomocí stavového HTTP kódu 301 na novou stránku
  2. čekat, až programátoři Seznamu chybu opraví 🙂

Máte s tímto problémem zkušenosti, případně další tipy, jak jej řešit? Podělte se v komentářích.

4 komentáře u „Fulltext Seznamu neumí pracovat se znakem + (plus) v URL“

  1. Jakub: Znak „+“ právě není rezervovaný symbol, je to speciální znak, který může být použit v URL nezakódovaný. Viz také věta z RFC nebo z článku, který jste posílal „…Only alphanumerics [0-9a-zA-Z], the special characters „$-_.+!*'(),“ [not including the quotes – ed], and reserved characters used for their reserved purposes may be used unencoded within a URL.“

    Stejný „význam“ jako znak „+“ má také pomlčka „-“ nebo podtržítko „_“, které se také nekóduje. Chybu tedy stále vidím na straně Seznamu.

  2. Myslim, ze prave on „purpose“ pro znak plus v „reserved characters used for their reserved purposes“ je nahrazeni mezery, ktera povolena neni.
    Napriklad v http://tools.ietf.org/html/rfc3986#section-2.3 je videt, ze plus neni mezi znaky bez specialniho vyznamu. Jeste bych pridal, ze v sekci 2.1 RFC 1738 se mluvi pouze o znacich pripustnych v scheme casti URL.

    Kazdopadne je ukolem Seznamu poskytnout rozumne vysledky vyhledavani, takze by to bud meli kompenzovat nejen v robotovi, ale v hledani, nebo ty stranky teda „zaindexovat“ jako neexistujici.

  3. RFC, které jste teď poslal je k URI, což je (pokud se nemýlím) nadmnožina URL tj, URI je obecnější než URL, takže to, co platí pro URI, by to mělo platit i pro URL. Ale v RFC pro URL je znak „+“ mezi „povolenými“. Abych pravdu řekl, nepatřím mezi ty, kteří by si RFC četli po večerech, takže, zda se správně může nebo nemůže znak „+“ v URL objevit je mi nyní trochu záhadou.

    Každopádně je pravda, že když už Seznam dokument s „+“ v URL zaindexuje, tak by ho měl i správně zobrazit v SERPu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.