Tworzenie map witryn dla wyszukiwarek internetowych
Na prośbę NNaPlaya, i przemyślenia o tym że nadszedł czas na to żeby zamieścić na blogu jakiś artykuł przydatny szerszej widowni, przygotuję artykuł w którym pokaże wam jak za pomocą XML’a wykonać mapę witryny.
Zapewne wszyscy wiemy czym dla naszej strony jest wysoka pozycja w wyszukiwarce. Pozycjonowanie to bardzo ważne zagadnienie w tworzeniu stron internetowych, bo pozwala nam na całkowicie bezpłatną reklamę naszej witryny. W swoim artykule w ferie opisałem jak prostymi metodami zoptymalizować stronę internetową. Teraz przyszedł czas na ponowne starcie z wyszukiwarką google.
Aby nasza strona była lepiej pozycjonowana przez roboty powinniśmy napisać mapę witryny. Jest to stosunkowo proste, jeśli znamy html’a lub jeszcze lepiej jeśli znamy XML’a. Mapa witryny zawiera dane o wszystkich stronach w naszej witrynie. Na początek pokażę wam jak wykonać to tka żeby było jak najprościej, następnie wspólnie wykonamy mapę witryny która sama będzie sie generowała (przy pomocy języka PHP).
Jak wygląda dokument XML’a?
Zanim zajmiemy się tworzeniem właściwej mapy strony, powinniśmy wiedzieć jak wygląda dokument XML. Jeśli wiesz jak działa XML i z czym się to je, spokojnie możesz pominąć ten artykuł, gdyż opisywał on będzie jedynie podstawy. Jeżeli nie wiesz co to jest powinieneś przeczytać ten bardzo krótki rozdział.
XML, jak po rozwinięciu nazwa wskazuje to rozszerzony język znaczników (Extensible Markup Language). Służy on do opisu różnych danych. W naszym przypadku będzie to mapa strony. Jednak w przykładzie posłużę sie gotowym kodem z Wikipedii - książką telefoniczną.
<?xml version="1.0" encoding="UTF-8"?> <ksiazka-telefoniczna kategoria="bohaterowie książek"> <!-- komentarz --> <osoba charakter="dobry"> <imie>Ambroży</imie> <nazwisko>Kleks</nazwisko> <telefon>123-456-789</telefon> </osoba> <osoba charakter="zły"> <imie>Alojzy</imie> <nazwisko>Bąbel</nazwisko> <telefon/> </osoba> </ksiazka-telefoniczna>
Ten prosty kod źródłowy daje nam dobrze opisane dane z książki telefonicznej. Mamy tutaj wpisane osoby, wraz z ich charakterami, imiona, nazwiska i telefony. Wystarczy teraz zapisać ten kod w kodowaniu UTF-8, jako nazwa.xml i gotowe. Wszystko bardzo fajnie, ale przydało by się wytłumaczyć kilka bardzo istotnych rzeczy.
Przede wszystkim, po co to wszystko? Odpowiedź jest bardzo prosta, po dodaniu do kodu informacji o kaskadowym arkuszu stylu lub sprasowaniu dokumentu za pomocą XSLT mamy gotową stronę bardzo jasną dla każdego. To po prostu o wiele prostszy xHTML.
Kolejnym pytaniem może być to, dlaczego zadeklarowano znacznik bez którego przecież można było by się spokojnie obejść? Czy znany z html’a komentarz jest znacznikiem, czy może pozostaje komentarzem? Po co na początku zadeklarowano ? Na te wszystkie pytania jest bardzo łatwo odpowiedzieć, to jest po prostu XML, dokument napisany poprawnie z zasadami i wytycznymi autora języka (W3C). A dokładniej, początek jest zadeklarowaną informacją o tym że dokument ten jest dokumentem xml’a, wersji 1.0, zapisany w standardzie UTF-8. Każdy znacznik musi być domknięty (). Nie bedę pisał kursu XML’a, bo mamy od tego książki i dokumentację. Zależy mi na tym żebyś zrozumiał/a podstawową budowę dokumentu XML. Jeśli chcesz wiedzieć więcej to polecam Ci ten kurs XML’a.
Czas na mapę!
Nadszedł czas na napisanie naszej mapy. Oczywiście nie będzie to tak proste jak napisanie wymyślonych przez nas znaczników, ale na pewno damy sobie z tym radę. Aby było nam prościej, polecam otworzyć stronę pomocy google, z tym artykułem. Mamy tu wszystko dokładnie opisane, a więc zajmiemy sie od razu pisaniem kodu:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc>http://www.example.com/</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Poznajemy tutaj nasze standardowe znaczniki XML’a. Czas wyjaśnić jakie dane mapa zawiera.
Całość dokumentu opiera się o znacznik
Kolejnym znacznikiem jest URL, zawiera on dane o każdej lokalizacji na naszej stronie. W przykładzie użyto tylko jeden, adres http://www.example.com/ ale jeśli nasza strona jest większa powinniśmy umieścić w mapie tyle znaczników URL ile mamy stron, wiem że może to się okazać trudne i ciężkie, ale właśnie dlatego pod koniec przygotujemy program który zrobi to za nas.
Kolejne znaczniki występujące w
- Adres lokacji, przykładowo http://example.com/ jest on wymagany! - ostatnia modyfikacja, data powinna mieć format W3C Datetime - Częstotliwość zmian strony. Możliwe elementy to: - always
- hourly
- daily
- weekly
- monthly
- yearly
- never
-
- Pryjorytet, możliwe wartości to max 1.0 min 0.0, jeśli ta strona jest mniej ważna od innej strony, powinna mieć taki wpis
Pamiętajmy że w adresie, przesyłane GET’y zawierające znaki takie jak & muszą być podane jako &
Podaje inny przykład mapy:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc>http://www.example.com/</loc>
<lastmod>2005-01-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.example.com/catalog?item=12&desc=hawaje_wakacje</loc>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://www.example.com/catalog?item=73&desc=nowa_zelandia_wakacje</loc>
<lastmod>23.12.04</lastmod>
<changefreq>weekly</changefreq>
</url>
<url>
<loc>http://www.example.com/catalog?item=74&desc=nowa_funlandia_wakacje</loc>
<lastmod>2004-12-23T18:00:15+00:00</lastmod>
<priority>0.3</priority>
</url>
<url>
<loc>http://www.example.com/catalog?item=83&desc=usa_wakacje</loc>
<lastmod>23.11.04</lastmod>
</url>
</urlset>
Powinniśmy już umieć przeanalizować poniższą mapę. Jeśli tak jest zabierzcie sie za pisanie swojej, a niebawem zamieszczę program pozwalający na generowanie mapy.
0oo… Dziękuję bardzo za artykuł. Jest przydatny i napisany w sposób zrozumiały. Czuję się pozytywnie zaskoczony
Jeśli macie jakieś pytania, czy prośby o wyjaśnienie czegoś to zawsze możecie napisać do mnie na GG, lub zamieścić komentarz…