Element META — dodatkowe informacje na temat witryny

Włodzimierz Gajda

Witryny internetowe są często wzbogacone o dane nazywane metainformacjami. Informacje te, ustalane elementami META, służą między innymi do identyfikacji autora, klasyfikacji zawartości oraz zwiększają możliwości wyszukiwania informacji w Internecie. W artykule przeanalizujemy wszystkie popularne elementy META opisując ich rolę oraz celowość użycia.

Metainformacje

Elementy META występują w nagłówku stron WWW, czyli pomiędzy znacznikami <HEAD> oraz </HEAD>. Ich zadaniem jest dostarczenie dodatkowych informacji na temat witryny WWW. Dane ustalane elementami META są nazywane metainformacjami.

Listing 1 przedstawia kod przykładowej witryny wzbogaconej o trzy elementy META. Metainformacje zawarte na tej stronie ustalają kodowanie znaków, nazwisko autora oraz prawa autorskie. Elementy META mogą występować w kodzie HTML w dowolnej kolejności, zarówno w stosunku do siebie jak i pozostałych elementów nagłówka strony.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
  <HEAD>
    <TITLE>Strona o niczym</TITLE>
    <META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    <META name="author" content="Włodzimierz Gaja">
    <META name="copyright" content="(c) 2005 gajdaw">
  </HEAD>
<BODY>
...
</BODY>
</HTML>

Listing 1. Witryna zawierająca przykładowe metainformacje

Metainformacje nie są wyświetlane przez przeglądarki podczas wizyty na stronie. Ich zadanie polega na dostarczeniu dodatkowych danych na temat dokumentu HTML. Dane te odgrywają następują rolę:

Metainformacje są związane z konkretną witryną i należy je zawrzeć w kodzie HTML. Jeśli witryna składa się z wielu podstron, wtedy metainformacje dołączamy do każdej podstrony z osobna.

Składnia elementu META

Element META należy — wraz z elementami SCRIPT, STYLE, LINK oraz OBJECT — do grupy elementów nagłówka zdefiniowanych w specyfikacji języka HTML 4.01 makrem head.misc. Jest to element pusty o atrybutach przedstawionych w tabeli 1. Jedynym miejscem gdzie element ten może wystąpić jest nagłówek, przy czym, jak widzieliśmy na listingu 1, na jednej stronie możemy zawrzeć dowolną liczbę elementów META.

Lp.AtrybutOpis
Lp.AtrybutOpis
1. lang, dir Atrybuty ustalające język i kierunek przetwarzania tekstu
2. name Identyfikuje rodzaj metainformacji
3. http-equiv Identyfikator metainformacji używany zamiennie w stosunku do atrybutu name.
4. content Atrybut wymagany, zawierający metainformacje.
5. scheme Nazwa profilu metainformacji ustalonego atrybutem profile elementu HEAD.

Tabela 1. Atrybuty elementu META

Jeśli strona jest wykonana w języku HTML, wówczas — stosując konwencje specyfikacji języka HTML — element META zapisujemy:

<META name="keywords" content="lis, kot, pies">

Natomiast w języku XHTML stosujemy małe litery i poprzedzamy końcowy znak > znakiem ukośnika:

<meta name="keywords" content="lis, kot, pies" />

Znaczenie elementu META

Każda z metainformacji definiowanych elementami META ma postać:

nazwa=wartość

Do ustalenia nazwy służą atrybuty name oraz http-equiv, zaś do ustalenia wartości — obowiązkowy atrybut content:

<META name="imie" content="Jan">
<META http-equiv="nazwisko" content="Nowak">

Powyższy kod ustala dwie metainformacje. Pierwsza z nich ma nazwę imie i wartość Jan, zaś druga — nazwę nazwisko i wartość Nowak.

Specyfikacja języka HTML nie definiuje zbioru dopuszczalnych wartości atrybutu name, ani tym bardziej content. Ustala jedynie składnię znacznika <META ...>.

Dwa rodzaje elementów META

Z racji na to, że nazwa elementu META może być określona atrybutem name lub http-equiv, w istocie mamy do czynienia z dwoma rodzajami elementów META. Pierwszy z nich posługuje się atrybutem name:

<META name="Generator" content="Netscape Composer">

zaś drugi — atrybutem http-equiv:

<META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

Elementy stosujące element http-equiv są interpretowane przez oprogramowanie jako nagłówki protokołu HTTP. Zatem w odniesieniu do elementów META stosujących atrybut http-equiv listę wszystkich dopuszczalnych poprawnych metainformacji znajdziemy w specyfikacji języka HTTP (patrz RFC 2616).

Elementy META przyjmują jedna z dwóch postaci:

<META http-equiv="" content="">

lub

<META name="" content="">

W zależności od konfiguracji oprogramowania, elementy META z atrybutem http-equiv mogą, ale nie muszą, być interpretowane jako faktyczne nagłówki protokołu HTTP. Działaniem takim cechuje się przeglądarka FireFox wraz z zainstalowanym dodatkiem LiveHTTPHeaders w wersji 0.10. Jak widać na rysunku 1, metainformacje:

<META http-equiv="imie" content="Jan">
<META http-equiv="nazwisko" content="Nowak">

są interpretowane jako nagłówki protokołu HTTP:

imie: Jan
nazwisko: Nowak

Faktycznie odebrane nagłówki HTTP nie zawierają powyższych wpisów, czego dowodzi przykład 2-2.

Rys. 1. Nagłówki odpowiedzi HTTP wyświetlane w przeglądarce FireFox

Porównując przykłady 2-3 oraz 2-4 stwierdzimy, że nagłówki wysyłane w języku PHP funkcją header():

header("Content-type: text/csv");
header('Content-Disposition: inline; filename=beatles.csv');

nie mogą być zastąpione przez elementy META:

<META http-equiv="Content-Type" content="text/csv">
<META http-equiv="Content-Disposition"
    content="inline; filename=beatles.csv">

Jeśli korzystamy z języka PHP, to nagłówki HTTP należy przekazywać przy użyciu funkcji header(), a nie elementem META.

W stosunku do elementu META z atrybutem name specyfikacja HTML mówi, że w przypadku, gdy atrybut content zawiera adres URI:

<META name="DC.identifier" content="http://www.ietf.org/rfc/rfc1866.txt">

wówczas element META możemy zastąpić równoważnym elementem LINK:

<LINK rel="DC.identifier" type="text/plain"
    href="http://www.ietf.org/rfc/rfc1866.txt">

Stwierdzenie odwrotne nie jest prawdą. Elementy LINK nie mogą być zastąpione elementami META (patrz przykład 3-2).

Jakie metainformacje umieszczać na witrynach?

Znając składnię oraz ogólne znaczenie elementu META przejdźmy do zagadnień praktycznych. Kolejno omówimy metainformacje dotyczące:

Kodowanie znaków

Metainformacja o kodowaniu pozwala przeglądarce poprawnie wyświetlić dokument. Brak takiej informacji powoduje, że polskie znaki diakrytyczne wyglądają błędnie u części użytkowników. Wprawdzie przeglądarki posiadają opcję Widok → Kodowanie znaków, umożliwiającą wybór kodowania znaków, jednak witryna powinna wyglądać poprawnie bez żadnej akcji ze strony użytkownika.

Element META określający kodowanie znaków jest bardzo ważny i powinien się znaleźć na każdej witrynie.

Kodowanie witryny wykonanej w języku polskim ustalamy elementem:

<META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

W języku XHTML kodowanie znaków ustalamy w dwóch miejscach:

<?xml version="1.0" encoding="iso-8859-2"?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />

Kodowanie określane jako iso-8859-2 jest obowiązującą normą PN-93 T-42118 zatwierdzoną zarówno przez Polski Komitet Normalizacyjny (http://www.pkn.pl) jak i organizację ISO (http://www.iso.org). Produkty firmy Microsoft stosują inny rodzaj kodowania polskich znaków. Korzystając z produktów Microsoftu, polskie znaki są kodowane w standardzie windows-1250. Element META ma wówczas — w języku HTML — postać:

<META http-equiv="Content-Type" content="text/html; charset=windows-1250">

zaś w XHTML:

<?xml version="1.0" encoding="windows-1250"?>
<meta http-equiv="Content-Type"
    content="text/html; charset=windows-1250" />

Specyfikacja języka HTML radzi, by element ustalający kodowanie znaków był pierwszym elementem nagłówka, szczególnie wtedy, gdy pozostałe elementy stosują znaki specyficzne danego kodowania. Zatem strony zawierające ogonki w tytule należałoby zapisać:

<HEAD>
  <META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  <TITLE>Żółw</TITLE>
  ...
</HEAD>

jednakże nie ma to istotnego wpływu ani na wygląd, ani na poprawność dokumentu ocenianą walidatorem W3C.

Więcej informacji na temat kodowania polskich znaków diakrytycznych znajdziemy na znanej „Polskiej Stronie Ogonkowej” pod adresem: http://www.ogonki.agh.edu.pl/.

Napis definiujący kodowanie, czyli iso-8859-2 lub windows-1250 może być pisany literami dowolnej wielkości (np. ISO-8850-2). Lista wszystkich zarejestrowanych kodów jest zawarta w pliku character-sets.txt (tabela 6).

Strony w języku angielskim, niemieckim oraz francuskim stosują kodowanie iso-8859-1, zaś strony rosyjskie - windows-1251.

Zwróćmy uwagę na fakt, że definicja kodowania znaków dotyczy całego dokumentu. A zatem jeśli na stronie zechcemy umieścić teksty w kilku językach to pojawi się problem, jakiego kodowania użyć, by wszystkie teksty były wyświetlane poprawnie. W takim przypadku należy użyć kodowania utf-8, zaś wszystkie teksty konwertować na unikod.

Do konwersji kodowania znaków możemy użyć funkcji iconv() (dostępnej po zainstalowaniu biblioteki iconv). Jeśli zmienne $ru, $de, $pl zawierają teksty w językach rosyjskim (kodowanie windows-1251), niemieckim (kodowanie iso-8859-1) oraz polskim (kodowanie iso-8859-2) to konwersji na unikod dokonamy w następujący sposób:

$ru = iconv("windows-1251", "utf-8", $ru);
$pl = iconv("iso-8859-2",   "utf-8", $pl);
$de = iconv("iso-8859-1",   "utf-8", $de);

Strony napisane w unikodzie powinny posiadać element META:

<META http-equiv="Content-Type" content="text/html; charset=utf-8">

Język, w jakim przygotowano dokument

Informacje na temat języka, w jakim wykonana jest strona służą do klasyfikacji dokumentów między innymi przez wyszukiwarki oraz umożliwiają inteligentne przetwarzanie tekstu (np. sprawdzanie pisowni zależne od stosowanego języka). Informację na temat języka dokumentu dostarczamy na dwa sposoby: korzystając z atrybutów lang oraz umieszczając w nagłówku odpowiedni element META. Ponieważ każde z rozwiązań pełni inną rolę, zatem w dokumentach należy stosować oba rozwiązania na raz.

Atrybut lang ustala jednoznacznie język stosowany wewnątrz konkretnego elementu. Nadając wartość atrybutowi lang elementu HTML definiujemy język całej strony:

<HTML lang="pl">

Jeśli dokument zawiera wstawki obcojęzyczne, wówczas korzystamy z atrybutu lang w stosunku do użytych elementów:

<HTML lang="pl">
...
<H1>Witamy!</H1>
...
<P lang="en">
Quoting a well known French proverb: <EM lang="fr">C'est la vie</EM>...
</P>
</HTML>

lub w przypadku braku elementów tekstowych korzystamy z elementu SPAN:

<P lang="en">
Quoting a well known French proverb: <SPAN lang="fr">C'est la vie</SPAN>...
</P>

Stosując język XHTML przekazywany z nagłówkiem MIME postaci text/html stosujemy podwójny atrybut lang:

<span xml:lang="pl" lang="pl">koń</span>

Natomiast w kodzie XHTML przekazywanym jako application/xhtml+xml stosujemy składnię:

<span xml:lang="pl">koń</span>

Definicje języka ustalane za pomocą atrybutu lang jednoznacznie określają język pewnego fragmentu tekstu wewnątrz strony. Dzięki temu możliwe jest kontekstowe sprawdzanie pisowni zależne od użytego języka czy wybór odpowiedniego procesora tekstu w przypadku przeglądarki czytającej zawartość strony.

Nieco inną rolę pełni definicja języka dokumentu ustalana elementem META:

<META http-equiv="Content-Language" content="pl,en,fr">

Powyższa informacja ustala potencjalne grono czytelników witryny. Witryna zawiera teksty przeznaczone dla osób znających język polski, angielski lub francuski. Jak widać, w przeciwieństwie do atrybutu lang, element META może wskazywać na więcej niż jeden język.

Kody języków możemy pisać literami dowolnej wielkości. Pełny zestaw kodów jest zawarty w dokumentach publikowanych przez IANA, ISO oraz W3C (patrz tabela 6).

Witryny WWW powinny posiadać elementy i atrybuty określające języki, w jakim przygotowana została witryna. Do tego celu stosujemy atrybut lang elementu HTML oraz atrybuty lang elementów zawierających teksty w językach różnych od języka podanego w elemencie HTML. Ponadto definiujemy potencjalne grono czytelników stosując element META.

Jeśli strona jest w całości przygotowana w języku polskim, wówczas stosujemy elementy:

<HTML lang="pl">
<META http-equiv="Content-Language" content="pl">

Autor, prawa autorskie i firma

Metainformacje służą również do identyfikacji autora witryny, firmy oraz wydawcy, właściciela praw autorskich, oprogramowania użytego do wykonania witryny jak również dostarczenia adresu poczty elektronicznej do kontaktu z osoba odpowiedzialną za utrzymanie witryny. Informacje takie podajemy stosując następujące elementy META:

<META name="author"    content="Jan Nowak">
<META name="copyright" content="(c)2005 Jan Nowak">
<META name="generator" content="vim">
<META name="reply-to"  content="janek@nowak.com">
<META name="publisher" content="Nowak Publishing House">
<META name="company"   content="NowakSoft">

Atrybuty elementu META mogą zawierać znaki specjalne. Wiele osób oznacza prawa autorskie stosując symbol &copy;:

<META name="copyright" content="&copy;2005 Jan Nowak">

Pamiętajmy, że adresy opublikowane na stronie WWW są dostępne dla wszystkich, także tych, którzy rozsyłają niechciane listy email określane jako spam.

Tytuł, słowa kluczowe i opis

Tytuł strony WWW, tradycyjnie umieszczany wewnątrz elementu TITLE:

<TITLE>Tytuł strony WWW</TITLE>

bywa również przedstawiony elementem META:

<META name="title" content="Tytuł strony WWW">

Jeśli zdecydujemy się na stosowanie elementu META do podania tytułu strony, to i tak nie powinniśmy rezygnować z elementu TITLE. Stosujemy wtedy oba elementy na raz.

Element META o atrybucie name="description" dostarcza opis zawartości dokumentu. Opis ten powinien liczyć pomiędzy 100 a 200 znaków i powinien w sposób jasny informować o zawartości witryny:

<META name="description"
  content="Opis zawartości witryny liczący około 100-200 znaków.">

Podany opis witryny jest wyświetlany przez wyszukiwarki internetowe na liście znalezionych wyników. Rysunek 2 pokazuje wyniki wyszukiwania frazy 'Magazyn Internet' w wyszukiwarce Google.

Rys. 2. Opis strony wyświetlany przez wyszukiwarki

Przedstawiony opis jest ustalony elementem:

<meta name="Description" content="Magazyn INTERNET - jedyny w Polsce ...">

Natomiast następujący element META:

<META name="keywords" content="kot, pies, lis">

definiuje listę słów kluczowych, jakich dotyczy strona. Lista ta powinna liczyć od kilkunastu do kilkudziesięciu słów (podobnie jak poprzednio około 100-200 znaków). Kolejne słowa oddzielamy przecinkami lub spacjami. Spotykanymi formatami są:

<META name="keywords" content="kot, pies, lis">
<META name="keywords" content="kot,pies,lis">
<META name="keywords" content="kot pies lis">

Ustalenie tytułu, słów kluczowych oraz opisu strony może wpłynąć na wyniki wyszukiwania wybranych fraz w niektórych wyszukiwarkach. Ponieważ mechanizm ten bywa nadużywany do sztucznego promowania witryn w Internecie, wyszukiwarki coraz mniej poważnie traktują metainformacje mówiące o zawartości strony. Na pewno nie wolno stosować sztuczek polegających na umieszczeniu w słowach kluczowych wiele razy tego samego słowa. Do niedawna, jedną z technik poprawy pozycjonowania strony było umieszczenie na liście słów kluczowych kilkadziesiąt razy tego samego słowa, co podnosiło rangę witryny w wybranej kategorii. W ramach walki z tym negatywnym zjawiskiem wyszukiwarki często blokują witryny stosujące takie triki.

Najlepszą receptą dotyczącą stosowania słów kluczowych, opisu oraz tytułu strony jest:

Na przykład przygotowując witrynę poświęconą bajce „Wilk i zając” wybieramy słowa kluczowe: wilk, zając, bajka oraz rosyjska. Następnie przygotowujemy tytuł strony oraz opis w taki sposób, by zawierały one podane wyrazy:

<META name="title" content="Wilk i zając - moja ulubiona rosyjska bajka">
<META name="description"
  content="Witryna poświęcona rosyjskiej bajce p.t. Wilk i zając.">
<META name="keywords"
  content="wilk, zając, bajka, bajeczka, rosyjska, animowana">

Oprócz tego, wyrazy te koniecznie umieszczamy kilkukrotnie w treści witryny i umieszczamy w niewidocznych atrybutach:

Wilk i zając ...
<IMG src="wilk.jpg" alt="Wilk - postać z rosyjskiej bajki animowanej.">
...
<IMG src="zajac.jpg" alt="Zając - postać z rosyjskiej bajki animowanej.">
...

Dbamy o to, by lista wybranych słów nie była ani zbyt długa, ani zbyt krótka. Na liście słów kluczowych umieszczamy kilkanaście wyrazów, zaś te najważniejsze z nich powtarzamy w opisie dokumentu, w tytule oraz kilkukrotnie w treści strony.

Wspomniana technika sztucznego powielania słów bywa stosowana w odniesieniu do treści strony. Możemy na przykład wybrane słowo kluczowe umieścić w treści witryny kilkaset razy na niewidzialnym obszarze przez modyfikację koloru tła i czcionki, położenia (tj. przesunąć poza widoczny obszar przeglądarki), widzialności elementu (atrybut display) czy stosując elementy i atrybuty niewyświetlane na stronie (np. komentarze, alt lub title). Z takimi technikami należy uważać, gdyż przeglądarki eliminują wykrytych nieuczciwych graczy.

Z racji na nieuczciwe promowanie witryn waga elementów META odnośnie pozycjonowania witryn w wyszukiwarkach stale maleje i — zdaniem niektórych — stosowanie elementów META definiujących słowa kluczowe nie ma żadnego znaczenia. Słowa kluczowe dokumentu są ustalane na podstawie jego zawartości.

Czasami spotkamy w Internecie również metaelement abstract:

<META name="abstract" content="Witryna dotyczy...">

Atrybut ten definiuje abstrakt, czyli streszczenie dokumentu. Jego rola jest marginalna.

Roboty

Roboty internetowe to programy, które pobierają witryny w sposób automatyczny w celu umieszczenia odpowiednich informacji w bazie danych wyszukiwarki. Robot pobiera kod HTML witryny, analizuje go, po czym indeksuje witrynę. Indeksacja polega na wprowadzeniu do bazy danych wyszukiwarki informacji, umożliwiających znalezienie witryny.

Stosując element META możemy wpływać na zachowanie robotów indeksujących strony WWW. Metainformacje o atrybucie name="robots" dotyczą robotów i zezwalają na indeksację strony oraz przeszukanie witryn podanych w odnośnikach danej strony.

W celu zaindeksowania bieżącego dokumentu i przeanalizowaniu wszystkich jego podstron stosujemy jeden z dwóch równoważnych zapisów:

<META name="robots" content="all">
<META name="robots" content="index,follow">

Jeżeli indeksacja i przeszukiwanie ma być zabronione, wówczas stosujemy elementy:

<META name="robots" content="none">
<META name="robots" content="noindex,nofollow">

Poprawnymi są również rozwiązania mieszane:

<META name="robots" content="noindex,follow">
<META name="robots" content="index,nofollow">

Szczegółową dokumentację elementów META dotyczących wyszukiwarek i robotów znajdziemy na stronach http://www.robotstxt.org/wc/robots.html.

Jeśli chcemy wymusić na robocie ponowną indeksację po zadanym odcinku czasu, to służy do tego element:

<META name="revisit-after" content="5 Days">

jednak opinie, na temat wagi powyższego elementu są podzielone. W wielu artykułach dostępnych w Internecie element ten to tylko archaiczna pozostałość nie mająca zupełnie żadnego wpływu na proces indeksacji przez jakąkolwiek z liczących się wyszukiwarek. Za stosowaniem metainformacji revisit-after przemawia jej obecność na tak znanych witrynach jak na przykład http://www.alistapart.com.

Poszczególne roboty mogą także stosować własne, niestandardowe rozwiązania. Przykładem jest wyszukiwarka Google, która przechowuje kopie zaindeksowanych witryn. Jeśli nie chcemy, by wyszukiwarka Google tworzyła kopię strony, wtedy stosujemy element:

<META name="googlebot" content="noarchive">

Zaś element:

<META name="googlebot" content="nosnippet">

powoduje, że wyniki wyszukiwania zwracane przez Google nie będą zawierały fragmentu strony WWW z zaznaczonymi wyszukiwanymi wyrazami (patrz rysunek 3).

Rys. 3. Wyniki wyszukiwania wyrazów HTML W3C. Wydruk Google zawiera wytłuszczone wyrazy HTML oraz W3C

Więcej szczegółów na temat metainformacji zdefiniowanych na potrzeby Google znajdziemy pod adresami: http://www.google.com/bot.html oraz http://www.google.com/webmasters/faq.html.

Data powstania i ważności dokumentu

Do oznaczenia daty powstania dokumentu stosujemy element:

<META name="date" content="Wed, 25 May 2005 10:05:32 GMT">

zaś do oznaczenia terminu ważności:

<META http-equiv="Expires" content="Wed, 01 Jun 2005 10:05:32 GMT">

Specyfikacja protokołu HTTP 1.1 ustala, że data i czas winny być zapisane w formacie opisanym w dokumencie RFC 1123. Format ten składa się z dnia tygodnia oddzielonego przecinkiem od daty, godziny oraz napisu GMT:

wkday "," SP date SP time SP "GMT"

gdzie SP oznacza spację, wkday — dzień tygodnia (tj. jedno z Mon, Tue, Wed, Thu, Fri, Sat, Sun), zaś date i time — godzinę i datę. Przykładami dat zgodnymi z powyższym formatem są:

Wed, 01 Jun 2005 10:05:32 GMT
Mon, 05 Apr 2004 11:44:55 GMT
Thu, 31 May 2005 22:00:00 GMT

Data jest opisana przez numer dnia (dwie cyfry z ewentualnymi zerami z przodu), nazwę miesiąca (angielski skrót Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov lub Dec) oraz czterocyfrowy numer roku. Natomiast godzina jest zapisana w formacie:

gg:mm:ss

gdzie gg, mm oraz ss są liczbami dwucyfrowymi oznaczającymi godzinę, minuty i sekundy. Poprawny numer godziny jest zawarty pomiędzy wartościami: 00:00:00 i 23:59:59.

Do wygenerowania daty w opisanym formacie możemy użyć w języku PHP funkcji date():

$strDzis = date("D, d M Y G:i:s") . " GMT";

Jeśli data ma wskazywać dzień lub godzinę inną od bieżącej, stosujemy połączenie funkcji mktime() oraz date():

$jutro_ts = mktime(date("G"), date("i"), date("s"),
                   date("m"), date("d") + 1, date("Y"));
$strJutro = date("D, d M Y G:i:s", $jutro_ts) . " GMT";

Czasami w Internecie można znaleźć dokumenty, w których uaktualnienia są oznaczane w poniższy sposób:

<META name="revised" content="Jan Nowak, 20.05.2005">

Przechowywanie stron WWW przez pośredników

Strony WWW mogą być przechowywane przez systemy pośredniczące w transakcji pomiędzy klientem a serwerem. Przykładami są serwery proxy, które zazwyczaj zapisują kopie pobieranych witryn w celu przyspieszenia kolejnych transakcji. Jeśli witryna nie powinna być zapisywana przez systemy pośredniczące, należy użyć jednego z dwóch równoważnych elementów META:

<META http-equiv="Cache-Control" content="no-cache">
<META http-equiv="Pragma" content="no-cache">

Skrypty i style — domyślny język

Style osadzone w dokumencie zazwyczaj zawierają informacje na temat zastosowanego języka. Do tego celu służy atrybut type elementów LINK oraz STYLE:

<LINK rel="stylesheet" href="style.css" type="text/css">
<STYLE type="text/css">...</STYLE>

Jeżeli jednak na stronie pojawiają się style definiowane atrybutem style:

<P style="color: red">
...
</P>

wtedy konieczne jest ustalenie domyślnego języka stylów. Do tego celu służy element:

<META http-equiv="Content-Style-Type" content="text/css">

Podobnie sprawa wygląda w przypadku skryptów. Element SCRIPT posiada atrybut type definiujący język dołączanego skryptu:

<SCRIPT type="text/javascript" src=""></SCRIPT>

Jeśli jednak stosujemy skrypty w obsłudze zdarzeń:

<DIV onmouseover="this.style.color = 'red';">
XXXXXX
</DIV>

wówczas w dokumencie należy umieścić element ustalający domyślny język skryptów:

<META http-equiv="Content-Script-Type" content="text/javascript">

Większość stron w Internecie nie stosuje elementów META definiujących domyślne języki stylów oraz skryptów. Dopóki stosujemy języki CSS oraz JavaScript strony będą interpretowane poprawnie nawet wówczas, gdy nie zawierają powyższych elementów.

W przypadku, gdy dokument jest wyposażony w kilka arkuszy stylów, powinniśmy wskazać style domyślne. Jeśli jednym z arkuszy jest arkusz zatytułowany compact:

<LINK href="compact.css" title="compact" rel="stylesheet" type="text/css">

do ustalenia stylu domyślnego stosujemy element:

<META http-equiv="Default-Style" content="compact">

Metainformacje w kilku językach

Jak wynika z tabeli 1, element META może zawierać atrybut lang. Poprawnymi elementami zatem są:

<META name="Author" lang="fr" content="Arnaud Le Hors">

oraz

<META name="keywords" lang="en"
         content="holiday, Greece, sunshine">

<META name="keywords" lang="fr"
         content="vacances, Gr&egrave;ce, soleil">

Tego typu rozwiązania są jednak niezmiernie rzadkie w Internecie. Wynika to głównie z faktu, iż witryny są zazwyczaj przygotowywane w jednym konkretnym języku, zaś ewentualne tłumaczenia są osobnymi stronami WWW. Gdy cały dokument jest przygotowany w jednym języku, wówczas stosujemy atrybuty lang w odniesieniu do elementu HTML.

Przekierowania

Wśród niewymienionych dotychczas elementów META ważną rolę odgrywa przekierowanie. Element:

<META http-equiv="Refresh" content="5 url=http://www.gajdaw.pl">

spowoduje po upłynięciu pięciu sekund pobranie dokumentu o adresie http://www.gajdaw.pl. Separatorem liczby sekund i adresu URL bywa także średnik:

<META http-equiv="Refresh" content="5;url=http://www.w3schools.com">

We współczesnych wersjach przeglądarek poprawne są oba zapisy. W starszych wersjach niestety nie ma takiej zgodności, na przykład Netscape 4 poprawnie interpretuje wyłącznie element, w którym separatorem jest średnik.

Rozwiązanie takie jest stosowane przez archiwa oprogramowania, na przykład SourceForge. Pobieranie biblioteki gtk ze strony http://gimp-win.sourceforge.net/stable.html zakończy się przekierowaniem:

<META http-equiv="refresh" content="5;
URL=http://mesh.dl.sourceforge.net/sourceforge/gimp-win/gtk+-2.6.7-setup-1.zip">

Różności

Wielu producentów oprogramowania wprowadziło w swoich produktach własne, specyficzne rozwiązania dotyczące metainformacji. Spośród setek dostępnych elementów (patrz http://vancouver-webpages.com/META/) wspomnijmy o wyłączeniu interpretacji znaczników typu SmartTag:

<META name="MSSmartTagsPreventParsing" content="true">

wyłączeniu menu wyświetlanego przez przeglądarkę IE, po umieszczeniu kursora nad obrazem (patrz rysunek 3):

<META http-equiv="imagetoolbar" content="no">

ustaleniu ciasteczek:

<META http-equiv="Set-Cookie" content="cookievalue=xxx;expires=Friday, 31-Dec-99 23:59:59 GMT; path=/">

czy klasyfikacji zawartości dokumentu:

<META name="rating"        content="general">
<META name="rating"        content="all">
<META name="doc-class"     content="Living Document">
<META name="distribution"  content="global">
<META name="resource-type" content="document">
<META name="page-topic"    content="Internet">
<META name="page-type"     content="Instruction">
<META name="audience"      content="General">
<META name="pagename"      content="Jeszcze jeden tytuł strony...">

SmartTags to rozwiązanie wprowadzone przez MicroSoft w narzędziach pakietu Office, w tym także przeglądarce IE. Pozwala ono na modyfikowanie zawartości strony WWW przez przeglądarkę. Wyrazy znajdujące się w tekście są zamieniane na hiperłącza do zewnętrznych stron. Ponieważ proces ten odbywa się bez żadnego udziału twórcy strony, jest on traktowany w środowisku twórców witryn jako add-ware. Więcej szczegółów pod adresem:

http://www.unwantedlinks.com/SmartTagsArticle.htm.

Rys. 4. Menu wyświetlane przez przeglądarkę IE po umieszczeniu kursora myszki nad obrazem

Przeszukując Internet znajdziemy jeszcze z pewnością dziesiątki innych elementów META, których składnia będzie zgodna z elementem:

<META name="nazwa" content="wartość">

W przypadku elementu

<META http-equiv="nazwa-nagłówka-http" content="wartość">

lista poprawnych elementów jest zdefiniowana przez protokół HTTP.

Standaryzacja

Elementy META przeżywały tę samą chorobę, która nękała kilka lat temu język HTML. Każdy twórca oprogramowania wprowadzał własne rozwiązania mające na celu wyprzedzenie konkurencji i podbój Internetu. Niestety metainformacje nie doczekały się jeszcze procesu standaryzacji, który byłby zaakceptowany przez szeroko rozumiane środowisko twórców witryn.

Dane na temat metainformacji zdobywamy na podstawie specyfikacji języka HTML i protokołu HTTP, przeglądając liczne zestawienia dostępne w Internecie (publikowane przez niezależnych autorów) oraz przeglądając źródła stron tworzonych przez osoby uznane za autorytety w dziedzinie webdesignu.

Informacje na temat procesu standaryzacji metainformacji znajdziemy na witrynie http://dublincore.org/.

Podsumowanie

Jedynym elementem, który musi znaleźć się na każdej witrynie jest definicja kodowania znaków. Wszystkie pozostałe elementy są opcjonalne. Do najczęściej stosowanych należą description, author, keywords oraz robots. Organizacja W3C zaleca definiowanie domyślnego języka stylów i skryptów oraz języków etnicznych, w jakich witryna została wykonana. Tabele 2, 3 oraz 4 zawierają sumaryczne zestawienie elementów META.

Lp.MetainformacjaAtrybut
name
Atrybut
http-equiv
Uwagi
Lp.MetainformacjaAtrybut
name
Atrybut
http-equiv
Uwagi
1. Kodowanie znaków - Content-Type Dokumentacja HTML radzi, by kodowanie znaków było pierwszym elementem strony (przed elementem TITLE).

Tabela 2. Metainformacje, jakie muszą się znaleźć na każdej stronie

Lp.MetainformacjaAtrybut
name
Atrybut
http-equiv
Uwagi
Lp.MetainformacjaAtrybut
name
Atrybut
http-equiv
Uwagi
1. Definicja grona czytelniczego - Content-Language Element ten stosujemy równocześnie z atrybutem lang elementu HTML.
2. Identyfikacja autora author, copyright - -
3. Opis description - Opis powinien zawierać od 100 do 200 znaków.
Podana wartość powinna odpowiadać treści witryny.
Należy w opisie zawrzeć kilka najistotniejszych słów kluczowych.
Nie należy powielać słów kluczowych.
4. Słowa kluczowe keywords - Lista słów kluczowych powinna liczyć od 100 do 200 znaków.
Wybrane słowa powinny odpowiadać treści witryny.
Nie należy powielać słów kluczowych.
Do oddzielenia słów kluczowych stosujemy przecinek lub spację.
Słowa kluczowe piszemy tylko małymi literami.
Zazwyczaj nie odmieniamy ich.
5. Roboty robots - -

Tabela 3. Metainformacje, jakie warto umieścić na witrynie

Lp.MetainformacjaAtrybut
name
Atrybut
http-equiv
Uwagi
Lp.MetainformacjaAtrybut
name
Atrybut
http-equiv
Uwagi
1. Identyfikacja autora — c.d. generator,
reply-to,
publisher,
company
- Podany adres email jest dostępny dla spamerów.
2. Tytuł dokumentu title - Nigdy nie wolno zrezygnować z elementu TITLE.
3. Abstrakt abstract - -
4. Wymuszenie rewizyty robotów revisit-after - -
5. Archiwizacja przez wyszukiwarkę Google googlebot - -
6. Data dokumentu date - -
7. Czas wygaśnięcia dokumentu - Expires W połączeniu z Cache-Control lub Pragma jest stosowany w odniesieniu do formularzy oraz stron wymagających uwierzytelniania.
8. Sterowanie przechowywaniem dokumentu przez serwery proxy - Cache-Control, Pragma W połączeniu z Expires są stosowane w odniesieniu do formularzy oraz stron wymagających uwierzytelniania.
9. Domyślny język stylów - Content-Style-Type Opcjonalny, jeśli stosujemy CSS.
10. Domyślny język skryptów - Content-Script-Type Opcjonalny, jeśli stosujemy JavaScript.
11. Przekierowanie - Refresh Nie należy tego mechanizmu stosować do trwałych przekierowań. Do tego celu służy nagłówek HTTP:
Location: adres-url.
Bywa wykorzystywany do automatycznego rozpoczynania pobierania pliku.
12. Wyłączenie SmartTagów MS-
SmartTags-
Prevent-
Parsing
- -
13. Wyłączenie menu kontekstowego obrazów w IE - image-
toolbar
-

Tabela 4. Metainformacje opcjonalne i stosowane w specyficznych sytuacjach