1. diel - Ako na Sitemap v PHP
Vitajte u dvojdielnej série o sitemapách. V prvom článku sa spoločne zameriame na problematiku sitemap skôr teoreticky. Na začiatku si vysvetlíme, čo to vôbec sitemapa je a prečo ju používať. Potom si ukážeme, ako taká sitemapa vyzerá, čo musí obsahovať a spĺňať. Nakoniec si ukážeme spôsoby tvorby sitemapy. Vo nasledujúcom diele si vytvoríme automatický generátor sitemap v PHP.
Čo je sitemapa?
Sitemapa je, ako názov napovedá, mapa všetkých rôznych podstránok na jednej doméne vo formáte XML. Podstatné je, že nie je určená pre ľudí, ale pre roboty. Či už od Googlu alebo od iných spoločností. Sitemapa teda pomáha robotom pri prehliadaní stránok.
Prečo používať Sitemap?
Ako som už písal vyššie, sitemapa robotom zjednodušuje prechádzanie podstránok, čo je veľmi dôležité pre SEO - s earch e ngine o ptimalization (optimalizácia pre vyhľadávače), o ktorom je celý kurz tu na itnetwork. Hlavným účelom je dať jednoducho robotom prístup k podstránkam, ktoré by pre nich boli inak ťažko dosiahnuteľné (napríklad podstránky v podstránkach a v podstránkach ...).
Použitie sa odporúča hlavne v 3 rôznych prípadoch webe:
- začínajúci web - aby všetky stránky Google lepšie objavil a mohol ich tak dať do svojho vyhľadávača.
- veľa rozvetvený web s množstvom podstránok a odkazov
- veľký web
Spomenul som síce iba vyhľadávač Google, ale jedná sa o všetky vyhľadávače. Ďalšie môžu byť napríklad Zoznam, Yandex, Yahoo, DuckDuckGo a ďalšie.
Ako vyzerá sitemapa?
Maximálna veľkosť každej sitemapy Google určil na 50 tis. záznamov (50 MB). Ako som naznačil na začiatku, sitemapa je XML súbor. Sitemapa môže mať však aj príponu HTML či priamo PHP, nemusí mať príponu XML. Pre XML súbor pridáme na začiatok súboru nasledujúce tag:
<?xml version="1.0" encoding="UTF-8"?>
ktorý určuje, že sa bude jednať o XML súbor a nastavuje kódovanie na
UTF-8
. Ďalej sa sitemapa delia na dva základné typy:
- jednoduchá sitemapa a
- Indexové sitemapa.
1. Jednoduchá sitemapa
U jednoduché sitemapy sa všetko nachádza v jednom súbore. Poďme si spoločne predstaviť používané XML tagy:
tag (element) | povinnosť | popisok |
---|---|---|
<urlset> |
povinný | Obaľuje celú Sitemap a uvádza odkaz na aktuálny
štandard protokolu pomocou atribútu xmlns . |
xmlns |
povinný | Atribút <urlset> , ktorý odkazuje na štandard sitemap:
http://www.sitemaps.org/schemas/sitemap/0.9 . |
<url> |
povinný | Obaľuje tagy jednej konkrétnej podstránky (je rodičovským tagom pre všetky nasledujúce tagy). |
<loc> |
povinný | Odkaz na konkrétnu podstránku. |
<lastmod> |
nepovinný | Dátum poslednej zmeny podstránky vo formáte W3C DATETIME alebo RRRR-MM-DD. |
<priority> |
nepovinný | Dôležitosť podstránky voči ostatným podstránkam iba na našom webe (tým, že dáte všetkým stránkam priority 1.0 ničomu nepomôžete). Nadobúda hodnoty od 0.0 až do 1.0 (defaultný je 0.5). |
<changefreq> |
nepovinný | Početnosť zmeny podstránky. |
<changefreq>
môže nadobúdať hodnoty:
- always - zmena pri každej návšteve
- hourly
- daily
- weekly
- monthly
- yearly
- never - archivované url (napríklad súbory, ktoré sa nikdy nezmení)
K tabuľke ešte musím dodať, že roboti sa vami poskytnutými
dátami nepovinných elementov neriadi, ale používajú ich
iba ako nápovedu. To znamená, že hoci si dáte napríklad .:
<changefreq>weekly</changefreq>
, robot danú stránku
nemusí každý týždeň navštevovať. Informácie pre neho slúži len ako
jedna z mnohých, podľa ktorých sa rozhoduje.
V nasledujúcom príklade sú vidieť najrozmanitejšie kombinácie tagov v Sitemap, aby ste videli ich použitie (v praxi sa dobrovoľné tagy veľmi často vynechávajú):
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://www.example.com/</loc> <lastmod>2021-08-05</lastmod> <changefreq>always</changefreq> <priority>1.0</priority> </url> <url> <loc>http://www.example.com/elektronika/mobilni-telefony/apple-12-pro</loc> <changefreq>monthly</changefreq> </url> <url> <loc>http://www.example.com/elektronika/mobilni-telefony/nokia-3310</loc> <lastmod>2017-11-01</lastmod> <changefreq>never</changefreq> </url> <url> <loc>http://www.example.com/elektronika/prislusenstvi/nabijecka-samsung-a10</loc> <lastmod>2020-12-23T18:00:15+00:00</lastmod> <priority>0.3</priority> </url> <url> <loc>http://www.example.com/mobilni-telefony</loc> <lastmod>2015-11-23</lastmod> </url> </urlset>
2. Indexové sitemapa
Indexové sitemapa obsahuje odkazy na viac jednoduchých sitemap. Jej tagy sú veľmi podobné ako u jednoduché sitemapy. Tu prikladám ich zoznam:
tag (element) | povinnosť | popisok |
---|---|---|
<sitemapindex> |
povinný | Obaľuje celú Sitemap (ekvivalent <urlset> z jednoduchej
sitemapy) |
xmlns |
povinný | Obsahuje odkaz na štandard sitemapy (pozri vyššie u jednoduché sitemapy) |
<sitemap> |
povinný | Obaľuje tagy pre jednu Sitemap (ekvivalent <url> z
jednoduchej sitemapy) |
<loc> |
povinný | Odkazuje na Sitemap (rovnaké ako <loc> v jednoduchej
Sitemap) |
<lastmod> |
nepovinný | Dátum poslednej modifikácie danej sitemapy (rovnaké ako
<lastmod> u jednoduché sitemapy) |
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>http://www.example.com/sitemap1.xml.gz</loc> <lastmod>2004-10-01T18:23:17+00:00</lastmod> </sitemap> <sitemap> <loc>http://www.example.com/sitemap2.xml.gz</loc> <lastmod>2005-01-01</lastmod> </sitemap> </sitemapindex>
Túto Sitemap využíva sieť itnetwork. Môžete ju navštíviť na tejto URL adrese.
Uvádzacích
Odkazy v Sitemap musia byť tzv. Uvádzacích (nesmie sa používať špeciálne znaky ako napr .: háčiky, čiarky, apod.).
Umiestnenia súboru
Súbor sa Sitemap sa najčastejšie umiestňuje do koreňového priečinka
(tam kde je index), takže sa dá nájsť pod odkazom
example.com/sitemap.xml
. Toto sa používa z jednoduchého dôvodu,
sitemapa nesmie odkazovať na iné podstránky, takže napríklad sitemapa
umiestnená v example.com/catalog/sitemap.xml
už by nemohla
odkazovať na example.com/menu/homepage
. Toto všetko však
neplatí v prípade, že dokážeme, že máme prístup k root priečinku
projektu a pridáme odkaz na sitemap do súboru robots.txt
, viď
ďalej. Napríklad sieť itnetwork SiteMap tiež nemá v koreňovom
adresári.
Ako dať Googlu o Sitemap vedieť?
Akonáhle máte Sitemap hotovú a umiestnite ju na stránky, musíte dať Googlu nejako vedieť, že tento súbor existuje. Máme 3 možnosti:
- Odoslanie cez rozhranie vyhľadávača- http://www.google.com/...sters/tools/ - prejdete relatívne jednoduchú cestou, po ktorej vás Google relatívne dobre vykoná
- Pridanie odkazu na Sitemap do súboru robots.txt (prípad
itnetwork)- Táto možnosť sa používa veľmi často, pretože je veľmi
jednoduchá. Musíte vytvoriť (ak ho nemáte) súbor
robots.txt
v koreňovom adresári, ktorý vložíme opäť do hlavnej zložky projektu (tam, kde je index). Ďalej len pridáme riadok s kódom:
Sitemap: http://www.example.com/sitemap.xml
a máte postarané. V súbore robots.txt
môžete mimochodom aj
blokovať robotom prechádzanie vašich stránok a to pomocou kódu
User-agent:
"názov robota" (* je znak pre
všetkých), Disallow:
"jedna stránka, ktorú nechcem, aby
robot prechádzal" (/
je pre všetky). Opäť musím
povedať, že sa tým roboti riadiť nemusí. 3. Poslanie
http dotazu
- Jednoducho pošleme http dotaz (to v praxi znamená zadať nasledujúci url do
vyhľadávača) na:
url_vyhledavace/ping?sitemap=url_sitemapy
napr .:
https://www.google.com/ping?sitemap=https://www.example.com/sitemap.xml
Validácia
Pre validáciu sitemap je ideálne použiť nasledovné nasledujúce nástroj: https://www.xml-sitemaps.com/...sitemap.html. Ten vám po zadaní url povie, či vaše sitemapa obsahuje chyby.
Spôsoby tvorby sitemapy
1. Vytvoriť Sitemap ručne
Túto možnosť by som mohol odporučiť iba u menších statických webov. Výhodou je, že si môžete dopísať viac nepovinných tagov, ktoré ostatní riešenie neponúkajú. Pre všetky ostatné typy lokalít je táto možnosť úplne nevhodná.
2. Vygenerovať Sitemap cez generátor
Na internete existuje veľa možností generátorov. Najznámejší je asi https://www.xml-sitemaps.com/...nerator.html, ktorý vytvorí Sitemap po zadaní url. Je k dispozícii zdarma do 500 podstránok, unlimited verzia je za $ 20 (okolo 450 Sk). Táto možnosť sa dá veľmi dobre využiť pre stredne veľké statické weby, ktoré sa moc nemení a nepoužívajú PHP pre vlastné generovanie stránok.
3. Skript v PHP
Tejto možnosti je venovaný celý druhý diel, kde si ukážeme automatickú generáciu vlastných stránok v PHP.
Záver
Výborne, teóriu máme za sebou. Už vieme, čo to sitemapa je, ako vyzerá, čo musí obsahovať a spĺňať, ako o nej dať vedieť Googlu, ako ju zvalidovat a taky sme naťukli spôsoby tvorby.
V budúcej lekcii, Tvorba sitemapy v PHP , sa pozrieme na sitemapy z praktického pohľadu a jednu si s využitím PHP vytvoríme.