# Podgląd linku nie działa? Jak go naprawić i zmienić (Facebook, LinkedIn, X)

> Brak obrazka albo stary podgląd linku na Facebooku, LinkedInie, X czy w WhatsAppie: osiem przyczyn, jak zobaczyć to, co robot, i jak wymusić nowy podgląd.

Opublikowano 2026-11-04 · https://shareglint.com/pl/guides/og-image-not-showing

Gdy udostępniony link nie ma obrazka — albo ma wczorajszy — przyczyną prawie zawsze jest jedna z ośmiu rzeczy, a debuger samej platformy powie ci w minutę, która. Druga połowa problemu to pamięć podręczna: każda platforma trzyma własną kopię podglądu i każdą odświeża się inaczej. Ten poradnik omawia obie części, w kolejności, w jakiej warto je sprawdzać — także wtedy, gdy chcesz po prostu **zmienić podgląd linku** na nowy tytuł czy obrazek.

## Osiem typowych przyczyn

1. **Względny adres.** `content="/og/post.png"` działa w przeglądarce i zawodzi w każdym robocie. `og:image` musi być bezwzględnym adresem `https://`.
2. **Robot nie może pobrać obrazka.** Blokuje go logowanie, zapora, ochrona przed botami (tryby botów Cloudflare, wtyczki bezpieczeństwa), ochrona przed hotlinkowaniem albo reguła w `robots.txt` dla `facebookexternalhit`, `LinkedInBot` czy `Twitterbot`. Slack [nie respektuje robots.txt](https://api.slack.com/robots) przy rozwijaniu linków, więc „w Slacku działa, na LinkedInie nie” często wskazuje właśnie tutaj.
3. **Zły rozmiar lub plik.** Poniżej 200×200 Facebook ignoruje obrazek, powyżej 8 MB go odrzuca ([Meta](https://developers.facebook.com/docs/sharing/webmasters/images)). LinkedIn chce co najmniej 1200×627 i najwyżej 5 MB ([LinkedIn](https://www.linkedin.com/help/linkedin/answer/a521928)); formatów dla podglądu linku nie podaje — lista JPG/PNG/GIF na tej samej stronie dotyczy reklam. Bezpiecznie jest więc trzymać się JPEG lub PNG, nie WebP.
4. **Tagi dodaje JavaScript.** Roboty podglądu czytają HTML z serwera; aplikacja React czy Vue, która ustawia meta tagi po załadowaniu, nie pokazuje im niczego. Renderuj tagi na serwerze.
5. **Dwa tagi `og:image`.** Motyw i wtyczka SEO wypisują po jednym; robot bierze pierwszy, często ten zły.
6. **Twój cache serwuje stary HTML.** Cache strony albo CDN wciąż zwraca wersję sprzed dodania tagu.
7. **Adres obrazka źle przekierowuje albo zwraca zły typ.** Długie łańcuchy przekierowań, `200` ze stroną błędu w HTML-u albo `Content-Type: text/plain` przy pliku PNG.
8. **Pamięć podręczna platformy.** Wszystko jest już poprawione, ale platforma pokazuje to, co pobrała w zeszłym tygodniu.

## Krok 1: zobacz to, co widzi robot

Pobierz stronę tak jak robot i przejrzyj tagi:

```bash
curl -sL -A "facebookexternalhit/1.1" https://example.com/blog/post \
  | grep -Eio '<meta[^>]+(og:|twitter:)[^>]+>'
```

Jeśli w wyniku nie ma `og:image`, problem jest w twoim HTML-u (przyczyny 1, 4, 5, 6). Jeśli jest, sprawdź sam obrazek:

```bash
curl -sIL -A "facebookexternalhit/1.1" https://example.com/og/post.png
```

Na końcu powinno być `200`, `Content-Type: image/png` albo `image/jpeg` i `Content-Length` wyraźnie poniżej 5 MB. `403` to przyczyna 2; typ `text/html` to przyczyna 7.

Nasz darmowy [OG Checker](https://shareglint.com/pl/tools/og-checker) pobiera stronę tak jak robot Facebooka, wypisuje braki i pokazuje kartę na X, LinkedInie, Facebooku, w Slacku i na Discordzie; potrafi też przeskanować mapę witryny w poszukiwaniu stron bez tagów.

## Krok 2: zapytaj platformę

| Platforma | Narzędzie | Odświeża pamięć? |
|---|---|---|
| Facebook, Messenger | [Sharing Debugger](https://developers.facebook.com/tools/debug/) | Tak — *Scrape Again* |
| LinkedIn | [Post Inspector](https://www.linkedin.com/post-inspector/) | Tak, dla nowych postów ([LinkedIn](https://www.linkedin.com/help/linkedin/answer/a6233775)) |
| X | Wklej link do okna nowego posta (nie trzeba publikować) | Nie — karty są pobierane mniej więcej raz w tygodniu; zmień adres |
| Slack | Niepotrzebne | Wygasa po około 30 minutach ([Slack](https://api.slack.com/robots)) |
| Discord | Brak | Wygasa po około 30 minutach ([Discord](https://docs.discord.com/developers/link-previews/overview)); albo dopisz `?v=2` |
| Telegram | [@WebpageBot](https://t.me/WebpageBot) | Tak, dla nowych wiadomości |
| WhatsApp | Brak | Nie — zmień adres |

Debuger Facebooka to najlepsze narzędzie diagnostyczne, nawet jeśli Facebook cię nie interesuje: pokazuje dokładnie wybrany obrazek, jego wymiary, kod HTTP, jaki dostał od twojego serwera, i ostrzega, gdy obrazka nie dało się pobrać albo jest za mały. Bez ręcznego pobrania Facebook odświeża dane adresu mniej więcej co 30 dni; ponowne pobranie można też wywołać przez Graph API (`POST /?id={url}&scrape=true`), co przydaje się przy publikacji wielu stron naraz ([Meta](https://developers.facebook.com/documentation/sharing/webmasters/getting-started/change-link.md)). Istniejące udostępnienia zachowują dane z chwili, w której powstały.

## Krok 3: porządnie wyczyść pamięć podręczną

Platformy zapamiętują dwie rzeczy: **stronę** (jej tagi) i **obrazek** (plik pod adresem). Odświeżenie strony w debugerze nie zawsze odświeża obrazek — Meta sama radzi, by dla nowego obrazka „użyć nowego adresu” ([Meta](https://developers.facebook.com/docs/sharing/webmasters/images)).

Jeśli więc zmieniasz obrazek, zmień też jego adres:

```html
<!-- before -->
<meta property="og:image" content="https://example.com/og/post.png">
<!-- after: a new file name or a version parameter -->
<meta property="og:image" content="https://example.com/og/post-v2.png">
```

Generowane obrazki mają to za darmo, jeśli adres zależy od treści: skrót (hash) tytułu w nazwie pliku albo podpisany adres, którego parametry zawierają tytuł. Zmieniasz tytuł — zmienia się adres. Tak działają podpisane adresy `/i/` i adresy auto-OG `/u/` w Shareglint — a identyczny obrazek wraca z cache bez ponownego renderowania.

Na platformach bez narzędzia do odświeżania (X, Discord, WhatsApp) kluczem pamięci jest też adres strony. X pobiera karty mniej więcej co siedem dni i radzi udostępnić zmieniony adres, żeby szybciej zobaczyć poprawkę ([archiwalna dokumentacja X](https://web.archive.org/web/2024/https://developer.x.com/en/docs/twitter-for-websites/cards/guides/troubleshooting-cards)). Nowe posty dostaną nowy podgląd, gdy stary wygaśnie; żeby wymusić to od razu, udostępnij adres, którego platforma jeszcze nie widziała, np. `https://example.com/blog/post?v=2`. Nie licz na to, że zmienią się podglądy w wiadomościach i postach już wysłanych — na większości platform zostaje to, co pobrano wtedy.

## Pułapki konkretnych frameworków

- **Next.js:** od wersji 15.2 `generateMetadata` może strumieniować tagi po treści strony, ale dla „botów z ograniczoną obsługą HTML”, takich jak `facebookexternalhit`, rozpoznawanych po user agencie, Next.js zostawia je w `<head>` ([dokumentacja Next.js](https://nextjs.org/docs/app/api-reference/functions/generate-metadata#streaming-metadata)). Jeśli roboty przechodzą przez własne proxy albo user agent jest podmieniany, sprawdź, czy nadal dostają metadane blokująco. Więcej: [obrazki OG w Next.js](https://shareglint.com/pl/guides/nextjs-og-images-without-vercel-og-limits).
- **Aplikacje SPA (Vite, CRA, Vue CLI):** prerenderuj trasy, które mają być udostępniane, albo dodaj renderowanie po stronie serwera dla meta tagów; biblioteki typu helmet działające w przeglądarce robotom nie pomogą.
- **WordPress:** po zmianie ustawień wtyczki SEO wyczyść cache strony; zobacz [automatyczne obrazki OG w WordPressie](https://shareglint.com/en/guides/wordpress-og-images-without-code) (po angielsku).
- **Strony statyczne:** względna ścieżka obrazka w front matter to klasyczny błąd; zobacz [obrazki OG dla Hugo, Jekylla i Astro](https://shareglint.com/en/guides/og-images-static-sites-hugo-jekyll-astro) (po angielsku).

## Gdy obrazek powstaje dopiero na żądanie

Jeśli `og:image` wskazuje obrazek renderowany przy pierwszym żądaniu (podpisany adres, `next/og`, własny endpoint z Puppeteerem), koszt renderowania ponosi pierwsza wizyta robota. Roboty mają krótkie limity czasu; zimny Chrome bez interfejsu, który potrzebuje pięciu sekund, może sprawić, że pierwsze udostępnienie będzie bez obrazka — a platforma zapamięta ten wynik. Dwa wyjścia:

- **Rozgrzej go:** po publikacji sam raz pobierz obrazek (albo wklej adres do debugera Facebooka), zanim ktokolwiek udostępni link.
- **Renderuj z wyprzedzeniem:** generuj obrazek przy zapisie wpisu i zapisz jego adres, jak w poradnikach dla [Laravela](https://shareglint.com/en/guides/dynamic-og-images-laravel), [Rails](https://shareglint.com/en/guides/dynamic-og-images-rails) i [Django](https://shareglint.com/en/guides/dynamic-og-images-django).

## Lista kontrolna na 60 sekund

- [ ] `og:image` jest bezwzględny, `https://`, i występuje raz w HTML-u z serwera.
- [ ] Obrazek zwraca `200`, typ obrazka, 1200×630, poniżej 5 MB, JPEG lub PNG ([rozmiary dla każdej platformy](https://shareglint.com/pl/og-image-size)).
- [ ] Robotów nie blokuje logowanie, zapora, ochrona przed botami ani reguła hotlinkowania.
- [ ] Są `og:image:width`, `og:image:height` i `twitter:card`.
- [ ] Po zmianie: nowy adres obrazka, wyczyszczony cache strony, *Scrape Again* na Facebooku, Post Inspector na LinkedInie.

## FAQ

### Dlaczego podgląd linku na Facebooku nie pokazuje obrazka?

Zwykle z jednego z powodów: adres obrazka jest względny, obrazek jest mniejszy niż 200×200 albo większy niż 8 MB, robota blokuje zapora lub logowanie, albo Facebook pamięta starszą wersję strony. Wklej adres do Sharing Debuggera: pokaże znaleziony obrazek i ostrzeżenia, a przycisk Scrape Again odświeży pamięć podręczną.

### Jak zmienić podgląd linku na Facebooku?

Zmień tagi og:title, og:description lub og:image na stronie, a nowy obrazek daj pod nowym adresem pliku. Potem wklej adres strony do Sharing Debuggera i kliknij Scrape Again. Nowe posty pokażą nowy podgląd; posty opublikowane wcześniej zachowują dane z chwili udostępnienia.

### Jak wymusić odświeżenie podglądu na LinkedInie?

Sprawdź adres w Post Inspectorze LinkedIna — pobiera stronę od nowa i nowe posty używają odświeżonego podglądu. Posty już opublikowane zostają przy starym.

### Jak odświeżyć podgląd linku w Telegramie lub WhatsAppie?

Telegram ma oficjalnego bota @WebpageBot: wyślij mu adres, a zaktualizuje zapamiętany podgląd dla nowych wiadomości. WhatsApp nie ma takiego narzędzia; zmień adres obrazka (np. dopisz ?v=2) i w razie potrzeby adres udostępnianej strony.

### Czy roboty serwisów społecznościowych uruchamiają JavaScript?

Roboty podglądu linków, takie jak facebookexternalhit, LinkedInBot, Twitterbot i Slackbot, czytają HTML zwrócony przez serwer i nie czekają na JavaScript po stronie klienta. Meta tagi dodane przez aplikację SPA po załadowaniu są dla nich niewidoczne.
