10 marca 2011

Mapy witryny XML

Dzisiaj chciałbym poruszyć dość istotne zagadnienie związane z optymalizacją serwisów internetowych - mapy witryn w formacie XML. Na dobry początek warto wspomnieć o optymalizacji serwisów i witryn internetowych. Optymalizacja w ujęciu witryn i portali to proces polegający na zwiększeniu efektywności wyszukiwarek internetowych w kontekście zawartości merytorycznej danego serwisu – inaczej mówiąc SEO (ang. earch engine optimizer).
Jedną z metod zwiększających skuteczność SEO jest stworzenie specjalnej mapy witryny w formacie XML. Protokół Sitemap najczęściej stosowany jest do wskazania robotom indeksującym listy adresów i odwołań konkretnej witryny internetowej. Co zatem zyskujemy? Istnieje zawartość witryny internetowej, która nie jest możliwa do zidentyfikowania przez roboty indeksujące naszą witrynę. Stosując mapy witryn wskazujemy robotom zawartość, którą powinny zaindeksować w wyszukiwarkach internetowych. Protokół Sitemap możemy wykorzystać nie tylko do stworzenia mapy adresów, ale także:
- map obrazów,
- map wideo,
- map treści dla telefonów komórkowych,
- map geolokalizacji,
- map kodów źródłowych,
- map newsów,
- indeks map.
Warto wspomnieć o ograniczeniach, które zostały nałożone na protokół Sitemap. Są to:
- rozmiar pliku do 10MB,
- 50000 adresów URL w pliku.

Mapa witryny
Przejdźmy więc do pierwszego przykładu standardowej mapy witryny XML w oparciu o protokół Sitemap w wersji 0.9.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
  <loc>http://www.piwnicait.blogspot.com/</loc>
  <lastmod>2011-03-10</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.9</priority>
 </url>
 <url>
  <loc>http://www.piwnicait.blogspot.com/link.html</loc>
  <lastmod>2011-03-10</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.5</priority>
 </url>
 <url>
  <loc>http://www.piwnicait.blogspot.com/kontakt.html</loc>
 </url>
</urlset>


Pierwsza linia kodu określa format pliku XML oraz kodowanie UTF-8. Linia druga zawiera wpis wskazujący rodzaj oraz wersję protokołu mapy. Kolejny element <url> definiuje pojedynczy wpis – odnośnik w mapie.
W znaczniku <url> rozróżniamy następujące elementy:
<loc> - określa pełną lokalizację danej podstrony serwisu internetowego – znacznik wymagany,
<lastmod> - określa ostatnią modyfikację adresu w formacie W3C DataTime (RRRR-MM-DD) – znacznik alternatywny,
<changefreq> - określa częstotliwość zmian i modyfikacji wewnątrz adresu URL – znacznik alternatywny, może przyjmować następujące wartości:
- never – nie nastąpi już aktualizacja,
- yearly – aktualizacja co rok
- monthly – aktualizacja co miesiąc,
- weekly – aktualizacja co tydzień,
- daily – aktualizacja codziennie,
- hourly – aktualizacja co godzinę,
- always – aktualizacja przy każdej próbie odczytu mapy witryny.
<priority> - określa priorytet ważności danego wpisu URL z zakresu od 0 do 1 – znacznik alternatywny, domyślna wartość 0.5.
Dodatkowo warto pamiętać aby w adresie URL <url> stosować znaki ucieczki (jeżeli występują), co narzuca standard plików XML. Tak skonstruowany plik gotowy jest do umieszczenia na serwerze witryny internetowej. Jak zatem dodać mapę witryny aby została zaindeksowana przez roboty sieciowe?
a) dodanie wpisu lub utworzenie pliku robots.txt:
Sitemap: http://www.piwnicait.blogspot.com/sitemap.xml
Szczegółowy opis pliku robots.txt dostępny jest pod adresem: http://www.robotstxt.org/

b) poprzez interfejs wyszukiwarki:
Najpopularniejszym narzędziem przeznaczonym do obsługi map witryny jest "Narzędzie dla webmasterów" koncernu Google.

c) wysłanie żądania HTTP:
<searchengine_url>/ping?sitemap=http://www.piwnicait.blogspot.com/sitemap.xml
Kolejnym ważnym zagadnieniem jest sprawdzenie poprawności zbudowanych map. Na rynku istnieje wiele narzędzi przeznaczonych do analizowania i sprawdzania map, jednym z nich jest popularny walidotor W3C http://validator.w3.org/. Oczywiście istnieją narzędzia, które posiadają mechanizmy automatycznie generujące mapę witryny internetowej.

Mapa obrazów
Jeżeli poznaliśmy już podstawową strukturę mapy witryny, czas przyjrzeć się innym mapom. Kolejnym zaprezentowanym przykładem jest mapa obrazów.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
 <loc>http://www.piwnicait.blogspot.com/</loc>
  <priority>0.7</priority>
  <image:image>
   <image:loc>http://www.piwnicait.blogspot.com/rys.gif</image:loc>
   <image:caption>Rysunek 1</image:caption>
  </image:image>
  <image:image>
   <image:loc>http://www.piwnicait.blogspot.com/rys2.gif</image:loc>
   <image:caption>Rysunek 2</image:caption>
  </image:image>
 </url>
 <url>
  <loc>http://www.piwnicait.blogspot.com/linki.html</loc>
  <priority>0.5</priority>
  <image:image>
   <image:loc>http://www.piwnicait.blogspot.com/wykres.jpg</image:loc>
   <image:caption>Wykres 1</image:caption>
  </image:image>
 </url>
</urlset>


Jak możemy zauważyć mapa obrazów niewiele różni się od mapy witryny. Pierwszą zauważalną różnicą jest rozszerzona deklaracja protokołu mapy (druga linia kodu). Kolejną zmianą jest wprowadzenie znacznika <image:image>, który powinien znaleźć się pomiędzy znacznikami <url>, a </url>. Pozostałe znaczniki w mapie obrazów mają identyczne znaczenie, jak zaprezentowane w pierwszym przykładzie. Przyjrzyjmy się zatem, co oferuje znacznik <image:image>, który jest wymagany w mapach obrazów:
<image:loc> - określa pełną lokalizację URL pliku graficznego (.jpg, .gif, .png, ect.) – znacznik wymagany,
<image:caption> - określa opis obrazu – znacznik alternatywny,
<image:title> - określa tytuł obrazu – znacznik alternatywny,
<image:license> - określa URL zawierający licencję obrazu – znacznik alternatywny,
<image:geo_location> - określa położenie geograficzne, które zawiera treść obrazu – znacznik alternatywny.
Umieszczenie mapy obrazów dla robotów indeksujących odbywa się w identyczny sposób, jak we wspomnianym na początku przykładzie - mapy witryny.


Mapa wideo
W podobny sposób możemy stworzyć mapę wideo dla klipów i filmów wideo, które zostały umieszczone w serwisie lub stronie internetowej. Poniższy przykład pokazuje mapę wideo.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
  <loc>http://www.piwnicait.blogspot.com/filmy.html</loc>
  <priority>0.6</priority>
  <video:video>
   <video:content_loc>http://www.piwnicait.blogspot.com/film.avi</video:content_loc>

   <video:thumbnail_loc> http://www.piwnicait.blogspot.com/minatura.jpg</video:thumbnail_loc>
   <video:title>Film wideo</video:title>
   <video:description>Opis filmu wideo.</video:description>
   <video:tag>film</video:tag>
   <video:tag>wideo</video:tag>
   <video:category>video</video:category>
  </video:video>
  <video:video>

   <video:content_loc>http://www.piwnicait.blogspot.com/film2.avi</video:content_loc>
   <video:thumbnail_loc>http://www.piwnicait.blogspot.com/minatura2.jpg</video:thumbnail_loc>
   <video:title>Film wideo</video:title>
   <video:description>Opis filmu.</video:description>
   <video:tag>wideo</video:tag>
  </video:video>
 </url>
</urlset>


W drugiej linii powyższego kodu XML zadeklarowano protokół obsługi wideo map. Na szczególną uwagę powyższej mapy zasługuje znacznik <video:video>, który należy umieścić pomiędzy elementem <url>, </url> i jest on wymagany. Znacznik <video:video> przyjmuje następujące wymagane elementy:
<video:thumbnail_loc> - określa adres URL miniatury pliku wideo (.jpg, .png, .gif) – znacznik wymagany,
<video:title> - określa tytuł pliku wideo - znacznik wymagany,
<video:description> - opis filmu wideo (do 2048 znaków) - znacznik wymagany.
Poza wymaganymi znacznikami istnieje szereg opcjonalnych elementów:
<video:duration> - określa czas trwania filmu w sekundach – znacznik zalecany,
<video:expiration_date> - określa datę w formacie W3C, po której film nie będzie już dostępny w danej lokalizacji – znacznik zalecany,
<video:rating> - określa ocenę filmu w skali 0.0-5.0 (liczby rzeczywiste),
<video:view_count> - określa liczbę wyświetleń filmu wideo,
<video:tag> - określa tag filmu (maksymalnie do 32 tagów w danej lokalizacji),
<video:category> - określa kategorię filmu video,
<video:price> - określa cenę za pobranie lub obejrzenie filmu,
<video:publication_date> - określa datę publikacji filmu w formacie W3C,
<video:uploader> - określa dane osoby publikującej materiał.
Opisane powyżej opcjonalne znaczniki nie są wszystkimi dostępnymi elementami w procesie tworzenia map wideo. Szczegółowy opis znaczników, można znaleźć m.in. w dziale pomocy Google „Narzędzi dla webmasterów”.

Mapa geolokalizacji
Kolejnym przykładem jest mapa geolokalizacji, która pozwala powiązać informacje zawarte w witrynie internetowej z lokalizacją geograficzną. Poniżej przedstawiono przykładową mapę geolokalizacji:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:geo="http://www.google.com/geo/schemas/sitemap/1.0" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
  <loc>http://www.piwnicait.blogspot.com/kml.xml</loc>
  <geo:geo>
   <geo:format>kml</geo:format>
  </geo:geo>
 </url>
</urlset>


Druga linia powyższej geolokalizacji określa protokół obsługi mapy geograficznej. Wymaganymi elementami, które powinny zostać umieszczone pomiędzy znacznikami <url> a </url>, są:
<loc> - określa adres URL, w którym wykorzystana jest geolokalizacja,
<geo:geo> - określa format zawartości danych geograficznych, m.in. format „kml” i „georss”.
Formaty typu kml i georss są oddzielnymi plikami XML o określonej specyfikacji i strukturze. Szczegółowe informacje można znaleźć na witrynie internetowej http://www.georss.org oraz http://code.google.com/.

Mapa kodu źródłowego
Następnym ciekawym rozwiązaniem jest dodanie do mapy witryny informacji dla wyszukiwarki Google Code Serach. Rozwiązanie to ułatwia użytkownikom znalezienie fragmentów kodu programu, który jest dostępny w internecie. Poniżej przedstawiono fragment mapy Code Serach.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:codesearch="http://www.google.com/codesearch/schemas/sitemap/1.0" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
  <loc>http://www.piwnicait.blogspot.com/program.c</loc>
  <codesearch:codesearch>
   <codesearch:filetype>C</codesearch:filetype>
   <codesearch:license>GPL</codesearch:license>
  </codesearch:codesearch>
 </url>
</urlset>


Podobnie jak w poprzednich przykładach w drugiej linii kodu następuje deklaracja rodzaju mapy witryny. Kluczowym elementem jest <codesearch:codesearch>, który powinien znaleźć się pomiędzy znacznikiem <url>, a </url>. Wewnątrz wspomnianego znacznika, mogą wystąpić następujące elementy:
<codesearch:filetype> - określa rodzaj języka, m.in.: C, C#, Java, ect, - znacznik wymagany,
<codesearch:license> - określa nazwę licencji, m.in.: GPL, BSD, - znacznik opcjonalny,
<codesearch:filename> - określa nazwę URL pliku - znacznik opcjonalny,
<codesearch:packageurl> - określa adres URL do pakietu najwyższego poziomu - znacznik opcjonalny.
Szczegółowy opis znaczników można znaleźć w Google „Narzędzia dla webmasterów”.

Mapa zawartości dla telefonów komórkowych
Interesującą mapą witryny jest Sitemap Mobile, która pozwala zaindeksować w wyszukiwarkach internetowych zawartość przeznaczoną dla telefonów komórkowych.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
  <loc>http://www.piwnicait.blogspot.com/opis.html</loc>
  <mobile:mobile/>
 </url>
</urlset>


Najważniejszą różnicą poza deklaracją protokołu w drugiej linii kodu jest znacznik <mobile:mobile>, który nie posiada znacznika zamykającego. Wspomniany element należy stosować pomiędzy znacznikami <url>, a </url> zaraz po lokalizacji pliku <loc>.

Indeks map
Na zakończenie warto wspomnieć o mapie indeksów, która pozwala zaindeksować w jednym pliku wszystkie wspomniane mapy. Jest to duże ułatwienie, gdyż nie musimy zgłaszać każdej mapy z osobna. Wystarczy zgłosić jedynie plik indeksu map. Poniżej przedstawiono przykładową mapę indeksu.
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <sitemap>
  <loc>http://www.piwnicait.blogspot.com/sitemap.xml</loc>
  <lastmod>2011-03-10</lastmod>
 </sitemap>
 <sitemap>
  <loc>http://www.piwnicait.blogspot.com/sitemap-video.xml</loc>
  <lastmod>2011-03-10</lastmod>
 </sitemap>
 <sitemap>
  <loc>http://www.piwnicait.blogspot.com/sitemap-image.xml</loc>
 </sitemap>
 <sitemap>
  <loc>http://www.piwnicait.blogspot.com/sitemap-geo.xml</loc>
 </sitemap>
 <sitemap>
  <loc>http://www.piwnicait.blogspot.com/sitemap-mobile.xml</loc>
 </sitemap>
 <sitemap>
  <loc>http://www.piwnicait.blogspot.com/sitemap-code.xml</loc>
 </sitemap>
</sitemapindex>


Pierwsza linia kodu określa standard pliku XML oraz kodowanie UTF-8. Druga zawiera znacznik <sitemapindex> wraz z deklaracją protokołu mapy witryny w wersji 0.9. Kolejny element <sitemap> (wymagany) jest wykorzystany do wskazania lokalizacji kolejnych witryn serwisu, który zawiera następujące znaczniki:
<loc> - określa URL dowolnej mapy witryny – znacznik wymagany,
<lastmod> - określa ostatnią modyfikację pliku – znacznik opcjonalny.

Zastosowanie map witryn daje szerokie możliwości optymalizacji serwisów internetowych, dlatego naprawdę warto zapoznać się z nimi i po prostu ich używać. Warto zaznaczyć, że większość systemów CMS posiada domyślnie wbudowane mapy witryny, jednak nie zawsze są one włączone lub dostępne. Dlatego warto przestudiować specyfikację techniczną danego systemu w celu odnalezienia informacji o mapach. Mam nadzieje, że zaprezentowane przeze mnie mapy pomogą w tworzeniu bardziej optymalnych i wydajnych witryn internetowych, czego wszystkim gorąco życzę.

Brak komentarzy:

Prześlij komentarz

Komentarze są moderowane.



Dziękuję za wszystkie celne i trafne uwagi!

Zapraszam ponownie na mój blog.



Maciej Koplin