OGP không hiện trên Zalo, Facebook, LinkedIn | Cache, kích thước ảnh, checklist launch
Card không hiện trên Zalo / Facebook / LinkedIn hầu như không phải do “OGP hỏng một cách bí ẩn” — mà do cache scraper, ảnh sai kích thước/URL, hoặc meta chưa lộ ra HTML public. Sửa code xong phải scrap lại; preview local không xóa cache MXH. Trước launch: checklist meta → OGP Preview → debugger từng nền tảng → rồi mới đăng bài.
Launch landing hoặc bài tuyển dụng, team marketing Việt Nam paste link vào Zalo OA / group, Facebook, LinkedIn — và nhận một trong ba: không có ảnh, ảnh cũ tuần trước, chỉ hiện URL trần. Founder hỏi “SEO hỏng à?”. Thường là Open Graph (OGP) + cache.
Bài này đi theo đúng thứ tự debug khi share không ra card, tập trung Zalo/Facebook/LinkedIn (kênh phổ biến cho SME và hiring VN), kèm kích thước ảnh và checklist trước post.
OGP quyết định card thế nào
Các mạng xã hội đọc thẻ trong <head> (không chạy full JS như người dùng nếu bạn render meta chỉ client-side — SSR/SSG hoặc inject đầu đủ):
<meta property="og:title" content="Kawa Dev Tools — công cụ cho developer" />
<meta property="og:description" content="Contrast, OGP, case converter… chạy trên trình duyệt." />
<meta property="og:image" content="https://example.com/og/launch-2026.png" />
<meta property="og:url" content="https://example.com/vi/launch/" />
<meta property="og:type" content="website" />
Thiếu og:image hoặc image relative (/og.png) → nhiều crawler bỏ ảnh. og:url lệch domain (www vs non-www) → cache tách đôi khó xóa.
Twitter/X còn twitter:card, nhưng Facebook/Zalo/LinkedIn chủ yếu dựa Open Graph.
Ba nguyên nhân card “không hiện” hoặc “cũ”
1. Cache scraper (hay nhất)
Lần đầu ai đó share URL, nền tảng lưu title/ảnh. Bạn đổi PNG trên CDN — họ vẫn phục vụ bản cũ hàng giờ đến vài ngày cho đến khi được re-scrape.
Refresh trình duyệt của bạn không có tác dụng với cache phía Facebook/Zalo/LinkedIn.
2. Ảnh không fetch được
- URL http (mixed) hoặc 403/401 với bot
- Ảnh > giới hạn thực tế / timeout
- Kích thước quá nhỏ (ví dụ 200×200) bị bỏ hoặc crop xấu
- Cloudflare/Hotlink chặn user-agent lạ
3. Meta không có trong HTML tĩnh
SPA chỉ set document.title sau hydrate — crawler share thường không thấy og:*. Dùng SSR (Next/Nuxt), SSG (Astro), hoặc middleware inject.
Kích thước và định dạng ảnh
| Khuyến nghị | Chi tiết |
|---|---|
| Kích thước | 1200×630 px (an toàn đa nền tảng) |
| Tỷ lệ | ~1.91:1 — tránh ảnh vuông làm letterbox xấu |
| Định dạng | JPG/PNG/WebP tùy CDN; JPG thường ổn cho ảnh chụp |
| URL | https://… tuyệt đối, ổn định |
| Safe zone | Text quan trọng tránh mép — LinkedIn/Facebook crop khác nhau |
Ảnh story dọc 1080×1920 không thay cho og:image link card. Tách asset: story vs link preview.
Đổi ảnh nhưng giữ nguyên URL → cache bám. Cách cưỡng bức: og:image = https://cdn…/launch.png?v=20260719.
Checklist theo nền tảng
| Kênh | Công cụ / hành động | Lưu ý VN |
|---|---|---|
| Facebook / Messenger | [Sharing Debugger](https://developers.facebook.com/tools/debug/) → Scrape Again | Group và ads hay lấy cache Facebook; scrap trước khi boost bài |
| Post Inspector / inspector LinkedIn → submit URL | Hiring post: title cắt ngắn — viết og:title ≤ ~60–70 ký tự hữu ích | |
| Zalo | Share thử trên app; xóa cache phía Zalo khó hơn Facebook | Thử link sạch (ít UTM), https đúng, ảnh đủ lớn; đổi ?v= nếu kẹt |
| X (Twitter) | Preview khi compose / Card validator (thay đổi theo thời kỳ) | Nên có twitter:card = summary_large_image nếu nhắm X |
Zalo không luôn có debugger công khai ổn định như Facebook — vì vậy chặn lỗi từ đầu (meta đúng + ảnh đúng) quan trọng hơn “cậy clear cache”.
Checklist trước khi post launch
In và tick trước giờ G:
HTML / deploy
-
og:title,og:description,og:image,og:urlcó trong View Source -
og:imagehttps tuyệt đối, ~1200×630 - Trang không trả 404/5xx cho bot
- Không chặn crawler cần thiết trong
robots.txtđối với URL landing (cẩn thận Disallow toàn site)
Xem trước
- Chạy OGP Preview với URL production (hoặc staging giống hệt meta)
- Title không bị cắt nghĩa; description có CTA ngắn
Sau deploy
- Facebook Debugger → Scrape Again → xác nhận ảnh mới
- LinkedIn Post Inspector
- Share thử Zalo từ tài khoản thật (không chỉ giả lập)
- Mới đăng hàng loạt group / OA / ads
Nếu vẫn cũ
- Đổi query
?v=trênog:image - Đổi path file ảnh hoàn toàn
- Kiểm tra CDN vẫn trỏ bản cũ (purge CDN)
Case study: launch tool trên Zalo và Facebook
Team indie ship trang /vi/tools/…, gắn UTM ?utm_source=zalo. Lần share đầu (trước khi thêm og:image) tạo cache “không ảnh”. Sau khi thêm ảnh 1200×630, Zalo/Facebook vẫn trống.
Xử lý:
- Confirm View Source đã có meta
- Facebook Debugger scrape — Facebook ra ảnh
- Zalo vẫn cũ → đổi
launch.png?v=2và share URL không UTM lần đầu để tạo cache sạch, rồi mới dùng link UTM trong campaign (hoặc chấp nhận card theo URL canonicalog:url)
Bài học: URL đầu tiên được share gắn với cache. Nên hoàn thiện OGP trước khi paste link vào group đông.
Dùng OGP Preview trong quy trình
Xem trước OGP giúp kiểm tra title, mô tả và ảnh trước khi nhờ marketing đăng. Phù hợp vòng lặp design ↔ dev trên staging. Sau khi public, vẫn cần debugger chính thức vì chỉ chúng mới xóa/refresh cache phía mạng xã hội.
Không giả định “preview đẹp trên Chrome = Zalo đẹp” — luôn thử một share thật.
Meta tối thiểu copy-paste
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Tên thương hiệu" />
<meta property="og:title" content="Tiêu đề ≤ ~60–70 ký tự có nghĩa" />
<meta property="og:description" content="1–2 câu lợi ích + CTA ngắn" />
<meta property="og:url" content="https://domain.com/vi/landing/" />
<meta property="og:image" content="https://domain.com/og/landing-1200x630.png?v=1" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
og:locale (vi_VN) hữu ích nếu site đa ngôn ngữ — giúp một số nền tảng chọn đúng bản.
Liên kết hữu ích
- Xem trước OGP — kiểm tra title / description / ảnh trước khi share
- Danh sách công cụ
Tóm lại: card Zalo/Facebook/LinkedIn phụ thuộc meta public + ảnh fetch được + cache scraper. Hoàn thiện OGP trước lần share đầu, đo kích thước 1200×630, scrap lại sau mỗi lần đổi ảnh — rồi mới bấm đăng campaign.