Skip to content
Powrót do bloga
Poradniki

Znaczniki meta Open Graph: kompletny przewodnik (og:image)

Jak znaczniki Open Graph i Twitter Card sterują podglądem linków na Facebooku, X i LinkedIn: rozmiary og:image, fallback, debugowanie. Darmowe narzędzie online.

11 min czytania

Znaczniki meta Open Graph: kompletny przewodnik po podglądach linków społecznościowych

Znaczniki meta Open Graph to znaczniki <meta property="og:…">, które umieszcza się w sekcji <head> strony HTML. Sterują tytułem, opisem i obrazem, jakie pojawiają się, gdy ktoś udostępnia link na Facebooku, LinkedInie, Slacku, Discordzie, WhatsAppie i większości innych platform. Wystarczy zdefiniować je raz, a niemal każda sieć wyświetli bogaty podgląd zamiast gołego adresu URL. X (Twitter) czyta własne znaczniki Twitter Card, ale w razie braku odpowiednika sięga po znaczniki Open Graph, więc jeden dobrze przygotowany zestaw znaczników działa niemal wszędzie, dokąd może trafić link.

Ten jeden protokół decyduje o różnicy między linkiem, który pokazuje nagłówek, streszczenie i ostry obraz 1200×630, a nagim adresem, w który nikt nie kliknie.

Ten przewodnik omawia pełny zestaw znaczników meta do udostępniania w mediach społecznościowych: cztery wymagane znaczniki Open Graph, zasady doboru rozmiaru og:image, mechanizm fallbacku Twitter Card, sposób, w jaki poszczególne platformy renderują i buforują podglądy, błędy, które zostawiają udostępnienia puste, oraz sposób debugowania efektu po wdrożeniu.

Czym są znaczniki meta Open Graph?

Open Graph to otwarty protokół, stworzony pierwotnie w Facebooku i udokumentowany na ogp.me, który pozwala dowolnej stronie internetowej opisać samą siebie jako bogaty obiekt. Zamiast zgadywać, czego dotyczy link, platforma odczytuje garść znaczników i zamienia je w kartę podglądu.

Składnia to zwykły znacznik meta HTML z atrybutem property i wartością content, umieszczony w sekcji <head> dokumentu:

<meta property="og:title" content="How Open Graph Tags Work">

Łatwo tu pomylić sam atrybut. Klasyczne znaczniki meta HTML dla SEO (meta description, robots, viewport) używają name. Open Graph używa property, a Twitter Card znów name. Prawidłowy atrybut ma znaczenie: crawler, który oczekuje property="og:title", nie odczyta name="og:title".

Niemal każda platforma, która zamienia link w kartę, czyta Open Graph: posługują się nim Facebook, LinkedIn, Slack, Discord, WhatsApp, Pinterest i Telegram. Wyjątkiem jest X. Woli własne znaczniki twitter:*, ale w przypadku wszystkiego, czego nie znajdzie, sięga po znaczniki og:*, dlatego rzadko trzeba je duplikować.

Open Graph współistnieje z klasycznymi znacznikami meta SEO, a nie zastępuje ich. <title> i link kanoniczny wciąż napędzają wyszukiwanie, a meta description wciąż kształtuje fragment w wynikach. Znaczniki Open Graph nie wpływają na rankingi, tylko odpowiadają za kartę społecznościową. Kompletna sekcja <head> zwykle zawiera wszystkie trzy rodziny naraz.

Pisanie ich ręcznie jest żmudne i łatwo o subtelny błąd. Generator Open Graph i meta tagów buduje cały blok na podstawie krótkiego formularza, pokazuje podgląd na żywo i pilnuje spójności trudnych szczegółów (nazw atrybutów, bezwzględnych adresów URL, wymiarów obrazu), więc nie trzeba ich pamiętać.

Podstawowe znaczniki Open Graph, które są naprawdę potrzebne

Open Graph definiuje dziesiątki właściwości, ale dobre udostępnienie wymaga zaledwie kilku. Na większości stron wystarczą cztery wymagane znaczniki i opis.

Cztery wymagane znaczniki: og:title, og:type, og:image, og:url

Cztery znaczniki są w tym protokole obowiązkowe. Pominięcie jednego sprawia, że platformy albo rezygnują z karty, albo wypełniają ją kiepskim domysłem.

<meta property="og:title" content="How Open Graph Tags Work">
<meta property="og:type" content="website">
<meta property="og:image" content="https://example.com/og/cover.png">
<meta property="og:url" content="https://example.com/open-graph-guide">

og:title to pogrubiony nagłówek na karcie. og:type klasyfikuje obiekt (więcej o tym poniżej). og:image to obraz podglądu i musi być bezwzględnym adresem URL z HTTPS. og:url to kanoniczny adres strony, którego platformy używają do deduplikacji udostępnień i agregowania zaangażowania.

og:description i czym różni się od meta description w SEO

og:description to krótkie streszczenie wyświetlane pod tytułem na karcie udostępnienia:

<meta property="og:description" content="A practical guide to og:title, og:image and Twitter Card tags.">

To inny znacznik niż <meta name="description"> z SEO i służy innemu odbiorcy. Meta description rywalizuje o kliknięcia na stronie wyników Google i mieści się w około 155 znakach. Opis Open Graph czytany jest na karcie społecznościowej, gdzie miejsca jest mniej, a największą wagę ma pierwsze zdanie. W razie pominięcia og:description większość platform sięga po meta description, więc często można go pominąć. Osobny opis warto napisać tylko wtedy, gdy społecznościowy haczyk ma się różnić od fragmentu w wynikach wyszukiwania.

og:type i co dzięki niemu odblokowujesz

og:type mówi platformom, jakim rodzajem obiektu jest strona. Najczęstsze wartości to website, article, product i profile. Strona główna lub landing page to website, a wpis na blogu to article.

Wybór article odblokowuje dodatkowe właściwości i funkcje, których zwykły typ website nie może wykorzystać:

<meta property="og:type" content="article">
<meta property="article:published_time" content="2026-07-16T00:00:00Z">
<meta property="article:author" content="Ada Lovelace">

Znaczniki article:* dostarczają kartom daty publikacji i informacje o autorze oraz kwalifikują stronę do Pinterest Rich Pins, które pobierają dane strukturalne wprost ze znaczników Open Graph. Ustaw og:type na article we wpisach, a na website we wszystkim pozostałym. Odpowiednie pola pojawią się same.

Oto zestawienie znaczników, których faktycznie używa większość stron:

ZnacznikCo kontrolujePrzykładowa wartość
og:titleNagłówek pokazywany na karcieHow Open Graph Tags Work
og:typeTyp obiektu: website, article, product, profilearticle
og:imageObraz podglądu (bezwzględny adres URL z HTTPS)https://example.com/og/cover.png
og:urlKanoniczny adres URL stronyhttps://example.com/open-graph-guide
og:descriptionStreszczenie pod tytułemA practical guide to social meta tags.
og:site_nameNazwa całej witrynyExample
og:localeJęzyk i region treścien_US

og:image — rozmiary, proporcje i zasady, które psują udostępnienia

Obraz to element podglądu, który ludzie widzą jako pierwszy, i to na nim rozsypuje się najwięcej udostępnień. Dobierz właściwy rozmiar i format og:image, a jeden plik zadziała wszędzie.

Uniwersalny standard 1200×630 (1.91:1)

Zalecany rozmiar og:image to 1200×630 pikseli, czyli proporcje 1.91:1. Ten jeden obraz wyświetla się poprawnie na Facebooku, LinkedInie, Slacku, Discordzie oraz w karcie summary_large_image na X, więc nie potrzeba osobnego pliku dla każdej platformy.

Dolne granice rozmiaru też mają znaczenie. Facebook ignoruje każdy obraz mniejszy niż 200×200 i pokazuje ciasną, kwadratową miniaturę dla wszystkiego poniżej 600×315. Poniżej 1200 pikseli szerokości duże karty zaczynają wyglądać nieostro. Przy 1200×630 przekracza się wszystkie progi naraz.

Dlaczego og:image:width i og:image:height mają znaczenie

Gdy platforma po raz pierwszy natrafia na link, nie ma jeszcze pobranego obrazu i pobiera go asynchronicznie. Jeśli wymiary zadeklaruje się z góry, platforma może zarezerwować odpowiednie miejsce i od razu rozplanować kartę:

<meta property="og:image" content="https://example.com/og/cover.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Open Graph guide cover with the title in large type">

Ich pominięcie sprawia, że pierwsze udostępnienie strony może wyświetlić się jako puste, zanim crawler nadrobi zaległości. Ich dodanie sprawia, że karta jest poprawna już przy pierwszym wklejeniu. Znacznik og:image:alt opisuje obraz dla czytników ekranu na platformach, które to obsługują.

Format i rozmiar pliku

Używaj JPG lub PNG. Oba dekodują się niezawodnie w każdym crawlerze, a o to właśnie chodzi w og:image: musi się wyrenderować na serwerach, nad którymi nie ma się kontroli. W praktyce warto trzymać plik poniżej 1 MB, a dla WhatsAppa, który jest surowszy od reszty, poniżej 300 KB. Jeśli eksport jest cięższy, przepuść go przez kompresor obrazów, aby zejść poniżej 1 MB bez widocznej utraty jakości.

Kusi, by sięgnąć tu po nowoczesny format, ale to jedno z tych miejsc, w których warto się powstrzymać. Nowsze formaty oszczędzają bajty w przeglądarkach, lecz część crawlerów społecznościowych dekoduje je niespójnie, więc og:image w WebP lub AVIF może wrócić pusty na platformie, która nie potrafi go odczytać. Kompromisy omawia przewodnik WebP vs AVIF vs JPEG; w przypadku obrazów do udostępniania trzymaj się JPG lub PNG. Ponieważ platformy inaczej przycinają krawędzie, trzymaj logo i nagłówek w wyśrodkowanej strefie bezpiecznej 1080×600, żeby nic ważnego nie zostało obcięte.

Zasada bezwzględnego adresu URL z HTTPS

og:image i og:url muszą być pełnymi adresami URL w formie https://…, a nie ścieżkami względnymi. Ścieżka taka jak /cover.png rozwiązuje się bez problemu w edytorze i na działającej stronie, ale crawler pobierający adres URL nie ma bazy, względem której mógłby ją rozwinąć, więc udostępnienie wraca puste. Obraz musi być też publicznie dostępny: jeśli robots.txt blokuje crawler albo plik jest schowany za uwierzytelnianiem, podgląd pozostaje pusty.

Jeszcze jedno ograniczenie przesądza o wszystkim powyżej: crawlery nie uruchamiają JavaScriptu. Facebook, LinkedIn, WhatsApp, Telegram i Discord pobierają surowy kod HTML i czytają to, co w nim jest. Znaczniki wstrzyknięte po stronie klienta przez framework po załadowaniu strony są dla nich niewidoczne, więc znaczniki Open Graph muszą znajdować się w kodzie HTML renderowanym po stronie serwera lub statycznym.

Karty Twitter/X: jeden znacznik, potem fallback do Open Graph

X używa własnych znaczników meta Twitter Card, ale ich pokrywanie się z Open Graph sprawia, że pisze się ich znacznie mniej, niż można by się spodziewać. W praktyce dodaje się jeden znacznik, a reszta trafia do fallbacku.

twitter:card to jedyny wymagany znacznik Twittera

X w ogóle nie renderuje karty bez obecnego twitter:card, nawet przy kompletnym zestawie znaczników Open Graph. To jedyny wymagany znacznik Twitter Card:

<meta name="twitter:card" content="summary_large_image">

Wartość wybiera układ. summary_large_image daje duży baner zbudowany pod obraz 1200×630. summary daje zwartą kartę z małą, kwadratową miniaturą obok tekstu:

<meta name="twitter:card" content="summary">

Tym razem liczy się atrybut name: znaczniki Twitter Card używają name, a nie property jak Open Graph.

Jak X sięga po og:* dla tytułu, opisu i obrazu

W przypadku tytułu, opisu i obrazu X odczytuje og:title, og:description i og:image, gdy brakuje odpowiadającego znacznika twitter:*. Dlatego rzadko w ogóle pisze się twitter:title czy twitter:image. Wystarczy ustawić twitter:card i zadbać o czyste znaczniki Open Graph, a X złoży z nich kartę.

Pułapka pustego twitter:image

Fallback ma jeden ostry haczyk: pusty znacznik liczy się jako obecny. Jeśli wyemitujesz twitter:image z pustą wartością, X użyje tej pustej wartości zamiast sięgnąć po og:image, a karta straci swój obraz.

<!-- Wrong: blocks the fallback and leaves the card imageless -->
<meta name="twitter:image" content="">

<!-- Right: omit the tag entirely and X reads og:image -->

Nigdy nie wypisuj pustego znacznika społecznościowego. Pomiń go, gdy nie masz wartości.

Szczegóły dotyczące Slacka i Discorda

Slack czyta najpierw Twitter Card, a potem Open Graph, i może wyeksponować dwa dodatkowe pola przez twitter:label i twitter:data:

<meta name="twitter:label1" content="Reading time">
<meta name="twitter:data1" content="11 minutes">
<meta name="twitter:label2" content="Written by">
<meta name="twitter:data2" content="Ada Lovelace">

Pojawiają się one jako drobne, opisane szczegóły pod rozwinięciem w Slacku. Discord czyta Open Graph i dodaje jeden akcent, którego nie używa nikt inny: koloruje lewy pasek akcentu osadzenia zgodnie z theme-color strony.

<meta name="theme-color" content="#5865F2">

Jak podglądy linków renderują się na poszczególnych platformach

Te same znaczniki dają różne podglądy linków w mediach społecznościowych w zależności od tego, kto je czyta. Każda platforma wybiera własny podzbiór znaczników, buforuje we własnym oknie czasowym i dokłada jedną czy dwie osobliwości. Ta tabela to szybka ściąga.

PlatformaOdczytywane znacznikiBuforCharakterystyczne zachowanie
FacebookOpen Graph~30 dniIgnoruje obrazy poniżej 200×200; poniżej 600×315 pokazuje mały kwadrat
LinkedInOpen Graph~7 dniNieaktualny podgląd czyści Post Inspector
X (Twitter)twitter:card + fallback do og:*krótkiBrak twitter:card oznacza brak karty
SlackTwitter Card, potem Open Graphna wiadomośćRenderuje twitter:label/twitter:data jako dodatkowe pola
DiscordOpen Graphna wiadomośćUżywa theme-color do paska akcentu osadzenia
WhatsAppog:title + og:imagena wiadomośćChce metadanych blisko początku; trzymaj obraz poniżej 300 KB
TelegramOpen Graphna wiadomośćRenderuje niezawodnie tylko z JPEG lub PNG
PinterestOpen Graph lub Schema.orgArticle Rich Pins wymagają og:type=article

Kolumna bufora wyjaśnia częstą niespodziankę: poprawiasz znaczniki, udostępniasz ponownie, a Facebook wciąż tygodniami pokazuje stary tytuł. Facebook przechowuje dane Open Graph przez około 30 dni, a LinkedIn przez około 7, więc zmiana nie pojawi się, dopóki bufor nie wygaśnie albo nie wymusisz odświeżenia. Debuggery poniżej robią dokładnie to.

Częste błędy Open Graph (i jak je wychwycić)

Większość zepsutych podglądów sprowadza się do krótkiej listy błędów. Każdy z nich wygląda dobrze lokalnie i zawodzi dopiero wtedy, gdy crawler pobiera działającą stronę.

Względna ścieżka og:image

Ścieżka względna renderuje się w przeglądarce i psuje się przy udostępnianiu, ponieważ crawler nie ma bazowego adresu URL, względem którego mógłby ją rozwinąć.

<!-- Blank when shared -->
<meta property="og:image" content="/cover.png">

<!-- Renders everywhere -->
<meta property="og:image" content="https://example.com/cover.png">

Bez og:url liczba udostępnień i zaangażowanie rozpraszają się na warianty adresu URL (z www i bez, z parametrami śledzącymi, z ukośnikiem na końcu). Skieruj link kanoniczny i og:url na ten sam, jeden adres URL, aby sygnały pozostały razem.

Obraz zbyt mały lub o niewłaściwych proporcjach

Obraz poniżej 200×200 jest ignorowany od razu, a taki, którego proporcje odbiegają od 1.91:1, zostaje przycięty w niezaplanowany sposób. Wypuść 1200×630, a kadrowanie będzie przewidywalne na każdej platformie.

Zapomnienie o twitter:card

Pełny zestaw znaczników Open Graph i tak nie tworzy karty na X bez twitter:card. To najczęstszy powód, dla którego link świetnie wygląda na LinkedInie, a na X nie pokazuje niczego.

Znaczniki renderowane po stronie klienta, których crawler nie widzi

Jeśli aplikacja jednostronicowa wstrzykuje znaczniki Open Graph po załadowaniu, crawlery, które nie uruchamiają JavaScriptu, nigdy ich nie zobaczą. Renderuj znaczniki po stronie serwera albo wstępnie renderuj kod HTML.

charset umieszczony po pierwszych 1024 bajtach

Deklaracja <meta charset="utf-8"> musi pojawić się w pierwszych 1024 bajtach dokumentu, w przeciwnym razie przeglądarka ją zignoruje i może zniekształcić znaki spoza ASCII w tytule i opisie. Umieść ją na samym początku sekcji <head>:

<head>
  <meta charset="utf-8">
  <!-- everything else follows -->
</head>

Jak testować i debugować znaczniki Open Graph

Nigdy nie ufaj podglądowi, którego nie zweryfikowano na działającym adresie URL. Trzy narzędzia obejmują platformy, które mają znaczenie, i wszystkie potrafią wymusić odświeżenie bufora.

Facebook Sharing Debugger

Facebook Sharing Debugger pobiera działający adres URL, pokazuje dokładnie to, co sparsował Facebook, i wypisuje wszystkie brakujące lub błędne znaczniki. Jego najprzydatniejszym przyciskiem jest „Scrape Again”, który na żądanie odświeża około 30-dniowy bufor Facebooka. To najszybszy sposób, by poprawka pojawiła się bez czekania miesiąca.

LinkedIn Post Inspector

LinkedIn Post Inspector robi to samo dla LinkedIna. Wklej adres URL, a narzędzie ponownie pobierze stronę i wyczyści około 7-dniowy bufor LinkedIna, więc zaktualizowany tytuł lub obraz pojawi się już przy następnym udostępnieniu, a nie kilka dni później.

Walidacja kart X przeniosła się do portalu deweloperskiego

X wycofał swój samodzielny Card Validator. Od 2026 roku walidacja kart odbywa się wewnątrz portalu deweloperskiego X, a nie pod publicznym adresem URL, więc większość zespołów weryfikuje karty X inaczej: ponieważ X sięga po og:*, debuggery Facebooka i LinkedIna już potwierdzają znaczniki, które X odczyta, a zewnętrzne narzędzie do podglądu wypełnia lukę dla samego układu twitter:card.

Podgląd przed wdrożeniem

Debuggery potrafią zbadać tylko adres URL, który jest już aktywny, a to kiepski moment, by odkryć pusty obraz. Podglądaj kartę jeszcze podczas edycji. Generator Open Graph i meta tagów renderuje podglądy dla Google, Facebooka, X, LinkedIna, Slacka i Discorda na podstawie wpisywanych wartości, odczytuje w przeglądarce rzeczywiste wymiary og:image, aby wychwycić błędne proporcje, i potrafi zaimportować istniejącą sekcję <head>, dzięki czemu można zdiagnozować zepsute udostępnienie, zanim trafi na produkcję.

Szybka lista kontrolna

Oto minimum, które powinna zawierać każda strona. Skopiuj je, podstaw własne wartości, a otrzymasz podgląd renderujący się wszędzie:

<meta charset="utf-8">
<title>Your page title</title>
<meta name="description" content="Your 150-character summary.">
<link rel="canonical" href="https://example.com/page">

<meta property="og:title" content="Your page title">
<meta property="og:type" content="website">
<meta property="og:url" content="https://example.com/page">
<meta property="og:image" content="https://example.com/og/page.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:description" content="Your 150-character summary.">

<meta name="twitter:card" content="summary_large_image">

Przejdź przez podstawy przed wdrożeniem: bezwzględny og:image na HTTPS w rozmiarze 1200×630, og:url zgodny z linkiem kanonicznym, obecny twitter:card i znaczniki renderowane po stronie serwera. Jeśli potrzebujesz pełniejszego przeglądu narzędzi, które to przyspieszają, przewodnik po narzędziach deweloperskich zbiera resztę. A gdy będziesz gotów wygenerować i podejrzeć cały blok naraz, Generator Open Graph i meta tagów napisze go, sprawdzi i pokaże każdą kartę przed wdrożeniem.

Najczęściej zadawane pytania

Czym różnią się znaczniki Open Graph od Twitter Card?

Open Graph to protokół międzyplatformowy odczytywany przez Facebooka, LinkedIna, Slacka i inne serwisy; znaczniki Twitter Card (twitter:*) są charakterystyczne dla X. X sięga po znaczniki OG, gdy brakuje odpowiadającego znacznika twitter:*, więc zazwyczaj potrzeba OG plus jedna wartość twitter:card.

Czy znaczniki Open Graph wpływają na pozycje w wynikach Google?

Nie. Znaczniki Open Graph i Twitter Card nie wpływają na rankingi Google. Sterują tym, jak wyglądają linki przy udostępnianiu, i napędzają ruch społecznościowy. Dla SEO liczą się klasyczne znaczniki <title> i kanoniczny; meta description kształtuje fragment i klikalność, ale nie jest bezpośrednim czynnikiem rankingowym.

Gdzie w kodzie HTML umieszcza się znaczniki Open Graph?

Wewnątrz elementu <head>, w kodzie HTML renderowanym po stronie serwera lub statycznym. Crawlery Facebooka, LinkedIna, WhatsAppa i Telegrama nie wykonują JavaScriptu, więc znaczniki wstrzyknięte po stronie klienta nie zostaną zauważone. Umieść <meta charset> na początku, aby znalazł się w pierwszych 1024 bajtach.

Czy jeden obraz może działać dla Facebooka, X i LinkedIna?

Tak. Jeden obraz 1200×630 (1.91:1) renderuje się poprawnie na Facebooku, LinkedInie, Slacku, Discordzie i w karcie summary_large_image na X. Udostępnij go przez HTTPS pod publicznym adresem URL i zadeklaruj og:image:width/og:image:height, aby pierwsze udostępnienie nie było puste.

Dlaczego podgląd mojego linku nie pokazuje obrazu?

Częste przyczyny: względna ścieżka og:image zamiast bezwzględnego adresu URL z HTTPS, obraz poniżej 200×200, brak twitter:card na X albo znaczniki wstrzyknięte przez JavaScript, którego crawler nie uruchamia. Po naprawie zescrapuj stronę ponownie za pomocą Facebook Sharing Debugger.

Czy każda strona potrzebuje własnych znaczników Open Graph?

Najlepiej tak: każda strona powinna mieć og:title, og:description, og:image i kanoniczny og:url odpowiadające tej konkretnej stronie, aby udostępniane linki pokazywały trafne podglądy. Ogólnowitrynowy fallback jest lepszy niż nic, ale znaczniki dla każdej strony zdobywają znacznie więcej kliknięć społecznościowych.

Tagi: Open Graph Meta Tags SEO Social Media Web Development

Powiązane artykuły

Zobacz wszystkie artykuły