Sitemap a sub-domény na Google Webmasters Tools
Srpen 13th, 2008
Pokud vám není lhostejná viditelnost vašich stránek a pojem SEO vám není úplně cizí, možná používáte nástroj Google Webmasters Tools (dále GWT). Je to skvělý nástroj, který vám umožní alespoň částečně nahlédnout pod pokličku indexace webu Google crawlerem, a umožní předat mu další informace o vašich stránkách. Jednou z ne zrovna zanedbatelných možností jak pomoci indexovat své stránky je tzv. sitemap soubor, který obsahuje všechna URL vašeho webu a užitečné informace jako čas poslední změny, priority stránky a podobně, problém ale nastává ve chvíli, kdy vaše stránky používají sub-domény jako logikou součást URL pro vaši aplikaci, GWT totiž neumožní odkazovat ze sitemap souboru na jiné domény a jen suše zahlásí:
Tato adresa URL není v tomto umístění pro soubor Sitemap povolena.
Zamyšlení: K čemu vlastně používat sub-domény?
Použití sub-domén jako proměnných součástí adresy je trochu sporné, někteří tvrdí, že je to zbytečné a matoucí, například mě se ale toto dělení líbí – vezměme si jako příklad katalog restaurací, proč by každá restaurace zařazená do katalogu neměla mít pěkné URL složené z jejího názvu a naší domény, vždyť na oné stránce jsou informace týkající se jen jí a restaurace jí může snadno použít jako svou „homepage“…
A jaké že je to slavné řešení?
Řešení je malinko složitější, spíše tedy na technické provedení než na pochopení. Musíme totiž GWT „vnutit“ ne sitemap soubor, ale sitemap index. To je vlastně seznam souborů, které se mají načíst a zpracovat. Google ho přečte a všechy soubory v něm obsažené přidá pod hlavní doménu. Sitemap index má následující podobu:
<sitemapindex xmlns=„http://www.sitemaps.org/schemas/sitemap/0.9“>
<sitemap>
<loc>http://www.example.com/Sitemap.xml</loc>
</sitemap>
<sitemap>
<loc>http://blog.example.com/Sitemap.xml</loc>
</sitemap>
<sitemap>
<loc>http://articles.example.com/Sitemap.xml</loc>
</sitemap>
</sitemapindex>
To složitější je, dostat na každou sub-doménu sitemap, který je platný jenom pro ni, já celou situaci řeším generováním XML souborů do speciální složky a poté je pomocí PHP zobrazím, vždy tedy jde o umístění http://subdomena.domena.cz/Sitemap.xml ale aplikace podstrčí správný XML soubor pro danou sub-doménu. Pokud nevíte jak na to, připravil jsem v PHP malý soubor (download na konci článku), který toto vyřeší za vás. Vy jen generujete XML do složky sitemaps (subdomena.xml), tento skript nasadíte přímo do rootu vaší stránky a nasměrujete na něj pomocí mod_rewrite soubor sitemap.xml:
RewriteCond %{REQUEST_FILENAME} /Sitemap.xml$
RewriteRule .* Sitemap.php [L]
Případně budeme sitemap indexem odkazovat přímo na Sitemap.php.
Závěr
Když tedy máme dostupný správný soubor Sitemap.xml na každé sub-doméně a SitemapIndex.xml, obsahující jejich umístění, stačí jej vložit do GWT a počkat až jej Google načte. První se načte Index a poté postupně všechny jednotlivé Sitemapy, to bude trvat nekolik desítek, minut, tak buďte trpěliví – výsledek stojí za to – Google bude přesně vědět které poddomény jsou součástí vašeho webu!

Download: sitemap.zip – třída sitemap, ukázková XML a soubor .htaccess
Home
Srpen 14th, 2008 at 11.21
Prošel jsem si ten tvuj class. Napadlo mě, jestli by neměl házet jiné hlavičky. Tím jiné myslím Content-type: application/xml. Možná je tam „text/xml“ schválně, ale zajímalo by mě proč ;)
Srpen 14th, 2008 at 21.35
Ajta :) diky za upozo, to vis, zmitam se ve viru typu … opravim …
Ps: Ale funguje to, alespon tedy IE7 pozna co jsem tim chtel rict!
Srpen 30th, 2008 at 12.51
Tak teď jsem zjistil, že stejnou chybovou hlášku „Tato adresa URL není v tomto umístění pro soubor Sitemap povolena.“ to hlásí ještě také v případě, že umístíte soubor sitemap.xml např. do adresáře /files/sitemap.xml a pak to odmítá číst všechny adresáře vyšší úrovně (takže je ta funkce vlastně k ničemu, že to google nabízí, že to přečte i odjinud než http://www.adresa.cz/sitemap.xml). Tak já pro případ, že někoho tento problém zavede na Vaši stránku, tak aby se dozvěděl v comments řešení :o)
Červen 13th, 2010 at 19.47
Bylo by možné zprovoznit ten download dole na stránce? :) Zrovna by se mi něco takového hodilo.