Skip to content
Powrót do bloga
Poradniki

Limity znaków i słów 2026 — Twitter, SMS, SEO, Instagram

Przewodnik 2026 po limitach znaków i słów — Twitter, SMS GSM-7/UCS-2, meta SEO, Instagram, LinkedIn — z matematyką liczenia Unicode i licznikiem słów online.

13 min czytania

Limity znaków i słów 2026 — Twitter, SMS, SEO, Instagram

Limit znaków to maksymalna liczba punktów kodowych (codepoint) Unicode, jaką platforma akceptuje w pojedynczym polu: 280 dla wpisu na Twitterze, 160 dla jednosegmentowego SMS w GSM-7, około 160 dla meta opisu Google przed obcięciem. Liczba, która ma znaczenie, zależy od tego, gdzie publikujesz oraz czy tekst zawiera emoji, cudzysłowy drukarskie albo znaki CJK. Każdy z tych elementów zmienia rachunek.

Ten przewodnik jest dla autorów treści w mediach społecznościowych, specjalistów SEO, copywriterów marketingowych, nadawców SMS rozliczanych za segment oraz programistów piszących walidację, która musi odpowiadać temu, co Twitter, Instagram lub bramki SMS faktycznie liczą. Przejdź do tabeli szybkiej referencji, aby zobaczyć ściągę 25 platform, albo sprawdź szkic na żywo na sześciu największych platformach w Liczniku słów. Paski postępu zmieniają kolor na czerwony w momencie przekroczenia limitu.

Tabela szybkiej referencji — limity znaków i słów na każdej platformie

Poniższa tabela obejmuje ponad 30 pól, z którymi autorzy i programiści spotykają się najczęściej. „Twardy limit” to pułap egzekwowany przez platformę; „Widoczne / nad linią zwijania” to tekst widoczny przed punktem obcięcia; „Słodki punkt” to empiryczny zakres, w którym treść osiąga najlepsze wyniki.

PlatformaTwardy limitWidoczne / nad linią zwijaniaSłodki punktLiczy emoji jako
Wpis Twitter / X280 znaków28070-100 znaków1 codepoint
Bio Twitter / X160 znaków1601 codepoint
Nazwa wyświetlana Twitter / X50 znaków501 codepoint
X Premium long-form25 000 znaków1 codepoint
Podpis Instagram2200 znakówpierwsze 125 (potem „więcej”)<125 dla haczyka1 codepoint
Bio Instagram150 znaków1501 codepoint
Hashtagi Instagrammaks. 305-10
Wpis LinkedIn3000 znakówpierwsze 210 (potem „zobacz więcej”)<13001 codepoint
Artykuł LinkedIn110 000 znaków1 codepoint
Nagłówek LinkedIn220 znaków2201 codepoint
Wpis Facebook63 206 znaków~477 na desktopie / ~125 na mobile<80 dla zasięgu organicznego1 codepoint
Podpis TikTok2200 znakówpierwsze ~100<1501 codepoint
Tytuł YouTube100 znaków70 (wyszukiwanie)<601 codepoint
Opis YouTube5000 znakówpierwsze 100-150 nad linią zwijaniapierwsze 150 dla haczyka1 codepoint
Komentarz YouTube10 000 znaków1 codepoint
Tytuł Reddit300 znaków<60 (zależnie od subreddita)1 codepoint
Komentarz Reddit10 000 znaków1 codepoint
Wiadomość Discord2000 znaków20001 codepoint
Opis embedu Discord4096 znaków1 codepoint
Wiadomość Slack40 000 znaków<2000 dla czytelności1 codepoint
Opis pinu Pinterest500 znakówpierwsze 50-60<1251 codepoint
Toot Mastodon500 znaków (konfigurowalne)5001 codepoint
Wpis Bluesky300 znaków3001 grapheme cluster
Wpis Threads500 znaków5001 codepoint
Meta opis SEO (Google)~160 znaków desktop / ~120 mobile150-160150-1601 codepoint
Tytuł strony SEO (Google)~60 znaków desktop / ~50 mobile50-6050-601 codepoint
Opis Open Graph~200 znaków przed obcięciem przez LinkedIn/FB150-200150-2001 codepoint
Opis Twitter Cardmaks. 200 znaków200150-2001 codepoint
Pojedynczy segment SMS (GSM-7)160 znakówspecjalne — patrz niżej
Pojedynczy segment SMS (UCS-2 / emoji)70 znaków1 codepoint
Tekst wiadomości WhatsApp65 536 znaków1 codepoint
Temat e-mailabrak limitu platformy~60 desktop / ~30 mobile<501 codepoint
Nagłówek Google Ads30 znaków × 15 nagłówkówpo 30301 codepoint
Opis Google Ads90 znaków × 4 opisypo 90901 codepoint
Tytuł App Store30 znaków30301 codepoint
Podtytuł App Store30 znaków30301 codepoint
Opis App Store4000 znakówpierwsze 252 nad linią zwijania252 dla haczyka1 codepoint
Krótki opis Play Store80 znaków80801 codepoint
Długi opis Play Store4000 znakówpierwsze 80 nad linią zwijania80 dla haczyka1 codepoint

Treść powyżej linii „słodkiego punktu” zwykle zostaje obcięta, obniżona w rankingu albo wykadrowana z widocznej karty. X Premium long-form i Mastodon (konfigurowalny per instancja) to rzadkie wyjątki, w których można pisać powyżej 500 znaków bez kary. Każda powyższa liczba (poza przypadkami, w których obowiązują reguły SMS) to liczenie po punktach kodowych Unicode: jedno emoji kosztuje 1 znak, nie 2. Aby zweryfikować szkic naraz względem sześciu najczęstszych limitów, wklej go w Liczniku słów. Paski postępu wychwytują tekst po przekroczeniu limitu, zanim klikniesz publikuj.

Jak naprawdę liczy się znaki (punkty kodowe Unicode vs UTF-16)

Trzy różne narzędzia mogą zwrócić trzy różne liczby znaków dla tego samego ciągu. „Znak” to nie jedna rzecz: może oznaczać punkt kodowy (codepoint) Unicode, jednostkę kodową (code unit) UTF-16 lub klaster graficzny (grapheme cluster), a każda platforma wybiera jedno z tych pojęć.

Czym jest „znak” — codepoint vs code unit vs grapheme

Codepoint (punkt kodowy) to wartość skalarna Unicode: dowolna liczba całkowita od U+0000 do U+10FFFF, którą Unicode przypisał do znaku albo oznaczył jako zarezerwowaną. Code unit (jednostka kodowa) to najmniejszy element kodowania; UTF-16 używa 16-bitowych jednostek kodowych, UTF-8 używa 8-bitowych. Grapheme cluster (klaster graficzny) to to, co człowiek postrzega jako jeden widoczny znak: czasem jeden codepoint, czasem codepoint bazowy plus znaki łączące, czasem sekwencja z zero-width joinerem, jak emoji rodziny 👨‍👩‍👧‍👦 (siedem codepointów połączonych w jeden widoczny glif).

Dla ciągu "a🌍👨‍👩‍👧" trzy metody liczenia dają różne wyniki:

Metoda liczeniaWynikStosowana przez
Jednostki kodowe UTF-16 (JS string.length)10Naiwny kod JavaScript
Punkty kodowe Unicode6Twitter, Instagram, bramki SMS
Klastry graficzne3Bluesky, czytniki ekranu, edytory tekstu

Dlaczego string.length kłamie w sprawie emoji

JavaScript przechowuje ciągi wewnętrznie jako UTF-16. Każdy codepoint powyżej U+FFFF (wszystkie emoji, wszystkie znaki z płaszczyzn astralnych) jest kodowany jako para zastępcza (surrogate pair), czyli dwie 16-bitowe jednostki kodowe. Właściwość .length zgłasza obie te jednostki, nie jeden znak.

"🌍".length              // 2   (UTF-16 code units)
[..."🌍"].length         // 1   (codepoints — what Twitter/SMS counts)
"🌍".match(/./gu).length // 1   (codepoints via regex with /u flag)

Operator rozproszenia (spread) oraz flaga regex /u obie iterują po codepointach, co odpowiada temu, jak Twitter, Instagram i bramki SMS mierzą tekst względem swoich limitów. Funkcja walidująca używająca surowego .length odrzuci tweety, które są w rzeczywistości poniżej limitu, albo (jeszcze gorzej) przepuści wiadomości, które późniejszy system odrzuci.

Co z CJK i znakami łączącymi

Ideogramy chińskie, japońskie i koreańskie są każdy pojedynczym codepointem i liczą się jako jeden znak na każdej platformie. Drogo wychodzą jednak w SMS-ach: każdy znak spoza GSM-7 przełącza całą wiadomość na kodowanie UCS-2, obniżając limit segmentu ze 160 do 70 (omówione w następnej sekcji).

Znaki łączące zachowują się inaczej. Akcentowane á zapisane jako á to jeden codepoint; to samo á zapisane jako a + ́ (łączący akcent ostry) to dwa codepointy, ale jeden grapheme cluster. Większość platform liczy po codepointach, więc druga forma kosztuje jeden znak więcej. Bluesky jest widocznym wyjątkiem: liczy klastry graficzne, więc obie formy kosztują 1.

Liczenie w różnych językach — szybka referencja

// JavaScript
[...str].length                          // codepoints
Array.from(str).length                   // codepoints

// Python 3 — len() is codepoint by default
len(s)

// Go — utf8 package
utf8.RuneCountInString(s)

// Rust — chars() iterates codepoints
s.chars().count()

// Java — codePointCount
s.codePointCount(0, s.length())

Dla porównania koder Base64 przypomina o odwrotnym kierunku: gdy tekst jest kodowany do Base64 w celu transmisji, każde 3 bajty wejścia UTF-8 stają się 4 znakami ASCII na wyjściu, więc długość zakodowana zależy od liczby bajtów, nie od liczby codepointów. Wklej pojedyncze emoji i zobacz, jak wyjście Base64 rozszerza się do 8 znaków. To samo emoji, które kosztuje 1 znak na Twitterze, zajmuje 4 bajty w UTF-8.

Aby zobaczyć liczbę codepointów (liczbę, którą Twitter faktycznie mierzy) na dowolnym szkicu, Licznik słów jest domyślnie poprawny wobec Unicode.

Limit znaków SMS — GSM-7, UCS-2 i wiadomości wieloczęściowe

SMS to jedyny duży kanał, w którym dodanie jednego emoji może dosłownie podwoić rachunek. Odpowiada za to kodowanie, a matematyka pozostaje taka sama od 1985 roku.

Skąd bierze się 160 — historia GSM-7

Standard GSM-03.38 z 1985 roku ustalił payload SMS na 140 bajtów. Przy 7-bitowym kodowaniu znaków 140 bajtów mieści 1120 bitów ÷ 7 = 160 znaków. Stąd limit znaków SMS wynoszący 160. Zestaw znaków GSM-7 obejmuje 128 znaków bazowych plus 10-znakowe rozszerzenie (pokrywające { } [ ] | \ ~ ^ € oraz wysuw strony). W ramach tego zestawu otrzymujesz pełny budżet 160 znaków na segment.

Znaki, które wychodzą poza GSM-7 i wymuszają przełączenie:

  • Wszystkie emoji
  • Cudzysłowy drukarskie / typograficzne (" " ' '); uwaga, to nie to samo, co proste cudzysłowy ASCII " '
  • Większość akcentowanych liter łacińskich poza 35 znajdującymi się w GSM-7 (é á ñ ü ø itp.; GSM-7 zawiera tylko ä ö å æ ø à è ì ò ù i kilka innych)
  • Pełnoszerokościowa interpunkcja, znaki CJK, arabski, hebrajski, greckie małe litery, cyrylica
  • Backtick ` i tylda ~ (tylda jest w tablicy rozszerzenia GSM-7, więc kosztuje 2 z 160 znaków)

Pułapka UCS-2 — jedno emoji zrzuca cię ze 160 do 70

W chwili, gdy pojedynczy znak spoza GSM-7 pojawi się gdziekolwiek w wiadomości, cała wiadomość przełącza się na kodowanie UCS-2. UCS-2 używa 16 bitów na znak, więc 140 bajtów ÷ 2 = 70 znaków na segment. Kilka przykładów z życia:

"Hello, your code is 12345"            → 26 chars, GSM-7, 1 segment
"Hello, your code is 12345 ✓"          → 28 chars, GSM-7 (✓ in extension), 1 segment
"Hello, your code is 12345 ✅"          → 28 chars, UCS-2 (emoji), 1 segment (under 70)
"Hello, "your" code is 12345 ✅"        → smart quotes + emoji → UCS-2
"Hi 你好"                                → CJK → UCS-2, 1 segment (5 chars)

Ostatni przykład „Hi 你好” jest pułapką: to tylko 5 znaków, ale konsumuje cennik UCS-2 i kolejne 65 znaków zmieści się w jednym segmencie, a potem zacznie się segment 2.

Wieloczęściowe segmenty SMS (konkatenacja)

Gdy przekroczysz 160 (GSM-7) lub 70 (UCS-2), wiadomość dzieli się na wiele segmentów. Każdy segment niesie 7-znakowy User Data Header (UDH) używany do ponownego składania, więc dostępny payload na segment spada:

  • GSM-7 wieloczęściowy: 153 znaki na segment
  • UCS-2 wieloczęściowy: 67 znaków na segment

Odbierający telefon składa segmenty z powrotem niewidocznie dla odbiorcy, ale rozliczenie jest za segment, nie za wiadomość. Wiadomość GSM-7 o długości 161 znaków kosztuje 2 segmenty. Wiadomość GSM-7 o długości 1000 znaków kosztuje 7 segmentów (153 × 6 = 918, 7. segment niesie ostatnie 82).

Matematyka kosztu — gdy jedno emoji podwaja rachunek

Rozważ 80-znakową marketingową wiadomość tekstową:

  • Czysty tekst: 80 znaków → GSM-7 → 1 segment za cenę X
  • Dodaj jedno emoji: 80 znaków → UCS-2 → 80 > 70 → 2 segmenty za cenę 2X

Podwojenie rachunku przez jedno emoji to nie hipoteza, a efekt, który skaluje się liniowo. Kampania 100 000 wiadomości po 0,0075 USD za segment kosztuje 750 USD w GSM-7 vs 1500 USD w UCS-2, czyli emoji za 750 USD. Każdy duży dostawca SMS (Twilio, Bandwidth, AWS SNS, MessageBird, Vonage) rozlicza w ten sposób. Reguły kodowania to standard GSM, nie polityka dostawcy. Głęboka historia kompromisów kodowania na poziomie bajtów (oraz dlaczego ASCII, UTF-8 i UCS-2 w ogóle istnieją jako osobne standardy) została opisana w Understanding Base64, gdzie ta sama rodzina problemu „bity na znaki” zastosowana jest do e-maila zamiast do SMS-a.

Jak utrzymać wiadomości w GSM-7

  • Używaj prostych cudzysłowów ASCII " ', nie cudzysłowów drukarskich
  • Używaj łącznika ASCII -, nie pauzy ani półpauzy
  • Pisz (c) i (R), a nie © i ®
  • Unikaj emoji, chyba że budżet kampanii uwzględnia koszt UCS-2
  • Konsole dostawców (Twilio, Bandwidth, MessageBird) pokazują „encoding: GSM-7” lub „UCS-2” obok podglądu; zweryfikuj przed wysyłką

Najszybsza kontrola zdrowego rozsądku w trakcie pisania to pasek postępu SMS w Liczniku słów, który raportuje względem bazowych 160 znaków. Jeśli tekst wyzwoli UCS-2, podziel mentalnie liczbę znaków przez 2,29, aby oszacować liczbę segmentów według reguły 70 znaków.

Limity SEO — meta opis, tag tytułu, OG, Twitter Card

Limity znaków w SEO są bardziej miękkie niż limity platform: Google nie odrzuci strony, jeśli meta opis osiągnie 300 znaków, ale praktyczne reguły obcinania mają znaczenie dla współczynnika klikalności (CTR). Oto liczby, które nadal obowiązują w 2026 roku.

Meta opis — słodki punkt 150-160 znaków

Wyniki wyszukiwania Google na desktopie obcinają meta opis około 155-165 znaków; mobile tnie gdzieś między 100 a 120. Dokładny punkt obcięcia różni się, ponieważ Google mierzy piksele wyświetlania, nie znaki. Opis pełen glifów W i M trafia na piksel obcięcia wcześniej niż opis pełen i i l.

Reguły do zastosowania w pisaniu:

  • Celuj w 150-160 znaków łącznie
  • Umieść kluczowy przekaz w pierwszych 120 znakach (bezpiecznie dla mobile)
  • Rozpocznij od słowa kluczowego meta description character limit dla strony w pierwszych 30 znakach
  • Zakończ CTA w ostatnich 30 znakach, żeby pozostało czytelne nawet, gdy desktop tnie środek

W latach 2017-2018 Google na krótko rozszerzył wyświetlanie meta opisu do 320 znaków, a całe pokolenie poradników SEO nadal podaje tę liczbę. Google wrócił do 160 w połowie 2018 roku. Pisanie powyżej 200 znaków dzisiaj jedynie ukrywa drugą połowę.

Inny tryb porażki: opisy poniżej 120 znaków często bywają w całości zastępowane. Google decyduje, że dany opis nie obsługuje w pełni zapytania, i pobiera inny fragment z treści strony, więc kontrola nad CTR znika bez ostrzeżenia.

Tag tytułu — 60 desktop, 50 mobile

Tagi tytułu obcinają się w okolicy 60 znaków na desktopie i 50 na mobile. To samo obcinanie pikselowe co przy opisach, to samo zastrzeżenie dotyczące szerokich glifów.

Słodki punkt: 50-60 znaków, ze słowem kluczowym docelowym w pierwszych 30, żeby przetrwało dowolne obcięcie. Sufiksy marki w stylu long-tail (| Brand Name) należą na końcu, gdzie obcięcie boli najmniej.

Szerokość pikselowa vs liczenie znaków — rzeczywista reguła Google

Kontener opisu w SERP-ach Google ma na desktopie szerokość około 920 pikseli. Średnia szerokość znaku to około 6,5 piksela, co daje empiryczny cel 140-160 znaków. Ale rozrzut na znak jest duży: i renderuje się przy około 3 pikselach, M przy około 11. Opis pisany kapitalikami („NAJLEPSZE WIDŻETY NA ZIMOWE WESELA”) obcina się znacznie wcześniej niż jego odpowiednik pisany małymi literami.

Podglądy przed publikacją wykorzystujące symulatory SERP z dokładnością do piksela są pewniejsze niż liczniki znaków dla kopii SEO.

Opis OG i Twitter Card

Pole og:description z protokołu Open Graph to to, co Facebook, LinkedIn, Slack i Discord renderują pod podglądem udostępnionego linku. Limity wyświetlania różnią się między platformami: większość obcina około 200 znaków, niektóre rozciągają do 300. Pole Twitter Card twitter:description jest sztywno ograniczone do 200 znaków w parserze Twittera.

Rozsądne wartości domyślne:

  • 150-200 znaków zarówno dla OG, jak i Twitter Card
  • Mogą zgadzać się z meta opisem, ale OG może być nieco dłuższy, bo długość OG nie wpływa na ranking wyszukiwania
  • Zwaliduj wybory dotyczące danych strukturalnych (zwłaszcza to, co przez pomyłkę trafia do OG), korzystając ze wzorców w Security Best Practices, gdzie nieufne metadane OG są częstym wektorem phishingu

Co naprawdę znaczy „brak limitu znaków”

Tagi H1, treść główna i slugi URL nie mają limitu znaków egzekwowanego przez SEO platformy, ale miękkie limity nadal obowiązują:

  • H1 > 70 znaków łamie hierarchię wizualną i czytelność przy skanowaniu wzrokiem
  • Slugi URL są technicznie nieograniczone; Google wyświetla około 90 znaków w SERP, wszystko ponad to jest kosmetyczne
  • Treść główna nie ma limitu długości, ale Google ocenia treść pomocną wyżej niż wypełniacz; sama liczba słów nie jest sygnałem rankingowym

Licznik słów śledzi zarówno meta opis (160), jak i tag tytułu (60) na żywo w trakcie pisania, z paskami postępu zmieniającymi kolor na bursztynowy i czerwony, gdy zbliżasz się do piksela obcięcia.

Platformy społecznościowe — Twitter/X, Instagram, LinkedIn, Facebook i nie tylko

Sufit znaków każdej platformy ma swoją historię oraz słodki punkt poniżej twardego limitu, w którym treść faktycznie osiąga wyniki.

Twitter / X — 280, Premium 25 000, reguła podmiany URL

Standardowy limit znaków Twittera wynosi 280 znaków, podwojony ze 140 w listopadzie 2017. Subskrybenci X Premium mogą publikować treści long-form do 25 000 znaków z bogatym formatowaniem, ale wpis 280-znakowy nadal pozostaje dominującą formą dla zasięgu organicznego.

Nieoczywistą regułą jest podmiana URL. Twitter pakuje każdy URL (niezależnie od długości) w 23-znakowy krótki link t.co w momencie publikacji. Koszt 23 znaków jest stały.

published_length = raw_length − URL_length + 23

Przykład: szkic taki jak "Check this: https://example.com/very-long-path?id=12345" ma 53 znaki surowe. URL ma 38 znaków, więc zostaje zastąpiony 23-znakowym linkiem t.co, a opublikowana długość to 53 − 38 + 23 = 38 znaków. Odzyskujesz 15 znaków, o których nie wiedziałeś.

Przy wklejaniu długiego URL do szkicu koder/dekoder URL to szybki sposób na zweryfikowanie, co liczy się jako URL (Twitter rozpoznaje URL według wzorców RFC 3986, łącznie z query string i fragmentami). Subdomeny, schematy, porty, ścieżki, query i fragmenty są wchłaniane przez 23-znakową podmianę.

Inne pola Twittera: nazwa wyświetlana 50 znaków, bio 160 znaków, handle 15 znaków. Threads (odpowiednik Twittera od Meta) stosuje zamiast tego limit 500 znaków.

Instagram — 2200 podpis, 30 hashtagów, haczyk 125 znaków

Podpisy Instagrama pozwalają na 2200 znaków, ale feed pokazuje tylko pierwsze 125 znaków przed zwinięciem reszty pod stuknięciem „…więcej”. Ponad połowa czytelników nigdy nie stuka. Limit podpisu Instagrama, który ma znaczenie dla zaangażowania, to więc 125, mimo że twardy limit wynosi 2200.

Limit 30 hashtagów jest sztywny: próba dodania 31. hashtaga kończy się odrzuceniem postu. Zakres 5-10 hashtagów zwykle osiąga najlepsze wyniki; powyżej 11 wzrost odkrywalności wypłaszcza się, a post zaczyna wyglądać dla algorytmu jak spam.

Inne pola: bio 150 znaków, nazwa wyświetlana 30 znaków, DM 1000 znaków.

LinkedIn — 3000 wpis, słodki punkt 1300, linia zwijania „zobacz więcej”

Limit znaków LinkedIn dla wpisów wynosi 3000, ale feed wyświetla jedynie pierwsze 210 znaków przed linią zwijania „zobacz więcej”. Wpisy w przedziale 1200-1500 znaków wygrywają zaangażowanie na LinkedIn (wiele badań Buffera i Hootsuite’a zbiega się w okolicach 1300 jako szczytu): są wystarczająco długie, żeby pokazać wartość, na tyle krótkie, żeby nie wyczerpać scrolla.

Artykuły LinkedIn (powierzchnia publikacji long-form) pozwalają na 110 000 znaków, czyli praktycznie bez limitu. Nagłówki profilu kapują się na 220, tekst sekcji „about” na 2600.

Facebook — 63 206 znaków, słodki punkt organiczny 80 znaków

Limit wpisu Facebooka 63 206 znaków to przeważnie ciekawostka; w praktyce wpisy poniżej 80 znaków otrzymują około 30% większy zasięg organiczny niż dłuższe (HubSpot konsekwentnie raportuje to od lat). Nad linią zwijania desktop pokazuje około 477 znaków; mobile tnie przy około 125.

Maksymalna długość komentarza to 8000 znaków. Reakcje, udostępnienia i kliknięcia przesuwają się w stronę krótszych postów; długa kopia należy do podlinkowanego artykułu, nie do podpisu na Facebooku.

Nowsze platformy — Bluesky, Mastodon, Threads, TikTok

  • Bluesky kapuje wpisy na 300 znaków i jest nietypowym przypadkiem: Bluesky liczy klastry graficzne, więc siedmiocodepointowe emoji rodziny 👨‍👩‍👧‍👦 kosztuje 1 znak, nie 7
  • Mastodon domyślnie ustawia 500 znaków na toot, ale administratorzy instancji mogą podnieść to do 5000 lub nawet bez limitu; sprawdź instancję, z której publikujesz
  • Threads stosuje limity 500 znaków w stylu Twittera z liczeniem po codepointach
  • TikTok podpisy pozwalają na 2200 znaków z około 100 pokazanymi nad linią zwijania

Reddit, Discord, Slack — long-form i ustawienia domyślne społeczności

  • Reddit tytuł 300 znaków (moderatorzy subredditów często wymuszają <60 przez AutoModerator); komentarze 10 000 znaków
  • Discord standardowa wiadomość 2000 znaków; opisy embed 4096; Nitro podnosi do 4000 w czystych wiadomościach
  • Slack wiadomość 40 000 znaków; powyżej 2000 czytelność spada gwałtownie i wielu odbiorców ignoruje długie wiadomości

Cele liczby słów według typu treści

Limity znaków dominują w mediach społecznościowych i SEO; liczba słów dominuje we wszystkim innym: pracach akademickich, fakturowaniu, content marketingu, manuskryptach. Tabela poniżej podaje docelowy zakres i szacowany czas czytania (230 słów na minutę, mediana metaanalizy cichej lektury Brysbaerta 2019) dla każdego typowego typu treści.

Typ treściCel słówCzas czytania @ 230 wpmUwagi
Tweet30-40 słów10 soptymalizuj pod znaki, nie słowa
Wpis LinkedIn (słodki punkt)170-250 słów1 minnad linią zwijania
Podpis Instagram (haczyk)20-25 słów<10 spierwsze 125 znaków
Wpis na blogu — krótki500-700 słów2-3 minlisticle, news, gorący temat
Wpis na blogu — standard1000-1500 słów4-7 mintutorial, głęboki przewodnik
Wpis na blogu — długi2000-3000 słów9-13 minprzewodnik kompleksowy
Strona filar SEO2500-5000 słów11-22 minautorytet tematyczny
Esej akademicki (liceum)500-1500 słów2-7 minzależnie od zadania
Esej akademicki (studia)1500-3000 słów7-13 minna zadanie
Dzień NaNoWriMo1667 słów/dzień50 tys. słów w 30 dni
Powieść — krótka50 000-70 000 słówYA, kryminał
Powieść — standardowa80 000-100 000 słówfikcja dla dorosłych
Prelekcja konferencyjna (12 min @ 130 wpm)1500-1600 słówmówioneprzećwicz, aby potwierdzić
Odcinek podcastu (30 min @ 130 wpm)3900 słówmówioneczęść skryptowana

Czas czytania to bardziej użyteczna jednostka docelowa dla content marketingu: czytelnicy reagują na etykietę „5 min czytania” pewniej niż na „1150 słów”. Liczba słów pozostaje jednostką dla fakturowania (tłumaczenie rozliczane za słowo źródłowe), zgodności z platformą (50 tys. NaNoWriMo, akademicki sufit 2000 słów) i warunków umownych. Licznik słów pokazuje obie w czasie rzeczywistym podczas pisania, plus czas mówienia przy 130 wpm dla prelekcji i podcastów.

6 błędów liczenia, które rozwalają realne aplikacje

To powracające awarie obserwowane w wysłanym kodzie i wysłanych kampaniach marketingowych. Każdej towarzyszy objaw, źródłowa przyczyna oraz poprawka.

Błąd 1: Użycie string.length do walidacji limitu znaków

Objaw: Użytkownik wkleja tweeta z trzema emoji, który w rzeczywistości ma 270 codepointów. Walidacja front-endu mówi 276 i odmawia wysyłki. Albo gorzej: kod akceptuje szkic 285-codepointowy, bo budżet emoji się znosi, a Twitter odrzuca go po stronie serwera.

Przyczyna źródłowa: String.prototype.length w JavaScript zwraca jednostki kodowe UTF-16. Każde emoji jest parą zastępczą, kosztując 2 jednostki. Każdy znak z płaszczyzny astralnej (symbole matematyczne, pisma starożytne) robi to samo.

Poprawka: Iteruj po codepoincie operatorem spread albo Array.from.

// ❌ wrong
function isUnderTwitterLimit(text) {
  return text.length <= 280;
}

// ✅ correct
function isUnderTwitterLimit(text) {
  return [...text].length <= 280;
}

Po głębsze wzorce iteracji po codepoincie oparte na regex (w tym obsługa klastrów graficznych) sięgnij do Regex Cheat Sheet, który obejmuje flagi /u i /v oraz Unicode property escapes.

Błąd 2: Dzielenie tekstu CJK po białych znakach przy liczeniu słów

Objaw: 500-znakowy artykuł chiński raportowany jest jako 1 słowo. Wycena tłumaczenia oparta na tej liczbie jest pomyłkowa o 500x.

Przyczyna źródłowa: Języki CJK nie używają spacji między słowami. text.split(/\s+/) zwraca pojedynczy token zawierający całe wypracowanie.

Poprawka: Licz każdy ideogram CJK jako jedno słowo; tę konwencję stosują Microsoft Word, Google Docs i każdy natywny edytor CJK.

function countWordsMixed(text) {
  const cjk = (text.match(/[一-鿿぀-ヿ가-힯]/g) || []).length;
  const latin = (text
    .replace(/[一-鿿぀-ヿ가-힯]/g, ' ')
    .match(/[A-Za-z0-9]+(?:['’-][A-Za-z0-9]+)*/g) || []).length;
  return cjk + latin;
}

Zakresy Unicode pokrywają CJK Unified Ideographs (U+4E00 do U+9FFF), hiraganę i katakanę (U+3040 do U+30FF) oraz Hangul Syllables (U+AC00 do U+D7AF); cztery bloki, które Microsoft Word liczy jako ideogramy.

Błąd 3: Zapomnienie o podmianie URL Twittera na 23 znaki

Objaw: Szkic pokazuje 320 znaków w twoim liczniku, w tym 80-znakowy URL. Spędzasz 10 minut na przycinaniu, aby zdać sobie sprawę, że Twitter zaakceptowałby oryginał przy 263 znakach.

Przyczyna źródłowa: Twitter zastępuje każdy URL 23-znakowym linkiem t.co w momencie publikacji. Twój surowy licznik o tym nie wie.

Poprawka: Wstępnie wylicz długość po publikacji wzorem raw − URL_length + 23 dla każdego URL. Dla szkiców zawierających wiele URL zsumuj korekty. Wykrywanie URL w opublikowanej treści idzie za RFC 3986, tymi samymi regułami parsowania, które przedstawia przewodnik URL Encoding & Decoding.

Błąd 4: Pisanie meta opisu do 320 znaków (stara wytyczna)

Objaw: Stworzyłeś 280-znakowy meta opis z CTA na końcu. W wynikach wyszukiwania Google opis urywa się w środku zdania na znaku 158, a CTA nigdy się nie pojawia.

Przyczyna źródłowa: Między grudniem 2017 a majem 2018 Google na krótko rozszerzył wyświetlanie meta opisu do 320 znaków. Wiele poradników SEO nadal podaje tę liczbę. Google wrócił do ~160 w połowie 2018 roku i utrzymuje to od tamtej pory.

Poprawka: Pisz do 150-160 znaków. Wstaw podstawowe słowo kluczowe w pierwszych 30 znakach i CTA w ostatnich 30. Dla stron o wysokiej stawce użyj symulatora SERP z dokładnością do piksela: szerokie glify (W, M, K) zjadają budżet szybciej niż wąskie (i, l, t).

Błąd 5: Mylenie 280 znaków z 280 słowami

Objaw: Ktoś z zespołu pisze „potrzebujemy tweeta na 280 słów” i produkuje 1500 znaków idealnie poprawnej prozy. Tweet się nie opublikuje.

Przyczyna źródłowa: Pomieszanie znaków i słów. Te dwie jednostki różnią się około 5-6 razy dla prozy angielskiej.

Poprawka: Przypnij regułę do platformy. Twitter, SMS i meta SEO liczą znaki. NaNoWriMo, zadania akademickie, kontrakty tłumaczeniowe i większość briefów content-marketingowych liczą słowa. W razie wątpliwości sprawdź własny licznik platformy (pole kompozycji Twittera, Word > Recenzja > Liczba słów) przed zatwierdzeniem specyfikacji.

Błąd 6: Wklejanie cudzysłowów drukarskich, które po cichu przełączają SMS na UCS-2

Objaw: Kopiujesz szablon paragonu klienta z Google Docs do swojego nadawcy SMS. Oryginał miał 145 znaków i szedł jako jeden segment GSM-7. Po wklejeniu nadal ma 145 znaków, ale jest rozliczany jako 2 segmenty UCS-2. Koszty się podwajają w kampanii na milion wiadomości.

Przyczyna źródłowa: Google Docs i Word automatycznie zamieniają " i ' na cudzysłowy typograficzne " " i ' '. Te cudzysłowy nie są w zestawie znaków GSM-7, co przełącza całą wiadomość na UCS-2.

Poprawka: Normalizuj przed wysyłką:

function toGsm7Quotes(s) {
  return s
    .replace(/[“”]/g, '"')   // " " → "
    .replace(/[‘’]/g, "'")   // ' ' → '
    .replace(/[–—]/g, '-');  // – — → -
}

Uruchom to przed wysyłkami wrażliwymi na rozliczenia. Twilio, MessageBird i Bandwidth wszystkie udostępniają pole kodowania w odpowiedzi: loguj je i alarmuj, gdy UCS-2 pojawi się w szablonach, które miały być GSM-7.

FAQ

Jaka jest różnica między liczbą znaków a liczbą słów?

Liczba znaków zlicza każdy znak, w tym spacje, interpunkcję i emoji, mierząc po codepoincie Unicode na większości nowoczesnych platform. Liczba słów zlicza tokeny rozdzielone białymi znakami dla pism łacińskich i ideogram po ideogramie dla CJK. Twitter, SMS i meta opisy SEO używają liczby znaków. Eseje akademickie, manuskrypty NaNoWriMo i faktury tłumaczeniowe używają liczby słów.

Dlaczego Twitter liczy emoji jako 1 znak, a JavaScript liczy je jako 2?

Twitter mierzy po punkcie kodowym Unicode: każde emoji to jeden codepoint, jeden znak. string.length w JavaScript mierzy jednostki kodowe UTF-16. Większość emoji znajduje się powyżej U+FFFF i jest kodowana jako pary zastępcze w UTF-16, więc zajmuje dwie jednostki kodowe, a .length zwraca 2. Użyj [...text].length albo Array.from(text).length, aby uzyskać liczbę codepointów, którą Twitter faktycznie liczy.

Dlaczego limit znaków SMS to czasem 160, a czasem 70?

SMS domyślnie używa 7-bitowego kodowania GSM-7, dając 160 znaków w 140-bajtowym payloadzie. Jeśli wiadomość zawiera dowolny znak spoza GSM-7 (emoji, cudzysłowy drukarskie, CJK, akcentowane litery łacińskie poza małym zestawem), cała wiadomość przełącza się na 16-bitowe kodowanie UCS-2, a limit na segment spada do 70 znaków. Jedno emoji gdziekolwiek w wiadomości wyzwala przełączenie.

Jaka jest idealna długość meta opisu w 2026 roku?

Celuj w 150-160 znaków. SERP Google na desktopie obcina około 155-165, zależnie od pikselowej szerokości wyświetlania; mobile tnie między 100 a 120. Poniżej 120 znaków Google często w całości zastępuje twój opis fragmentem z treści strony. Rozpocznij od głównego słowa kluczowego w pierwszych 30 znakach i zakończ CTA w ostatnich 30, aby komunikat przetrwał obcięcie z obu stron.

Czy limit znaków obejmuje spacje i emoji?

Tak, na praktycznie każdej platformie. Spacje, znaki nowej linii, interpunkcja i emoji każde liczą się jako jeden codepoint Unicode. Dwa wyjątki warte zapamiętania: SMS, gdzie emoji wyzwala opisane wyżej przełączenie kodowania, oraz Bluesky, który liczy klastry graficzne, więc wielocodepointowe emoji takie jak rodzina 👨‍👩‍👧‍👦 kosztuje 1 znak zamiast 7.

Jak liczy się słowa w tekście chińskim, japońskim, koreańskim?

Każdy ideogram CJK liczy się jako jedno słowo; tę konwencję stosuje liczenie słów Microsoft Worda w trybie chińskim, Google Docs, natywne edytory CJK i każdy komercyjny system pamięci tłumaczeniowej. 500-znakowy esej chiński raportowany jest jako 500 słów. Tekst mieszany liczy ideogramy CJK po znaku, a tokeny łacińskie po białych znakach, sumując oba wyniki.

Jak Twitter obsługuje długość URL w limicie 280 znaków?

Twitter automatycznie pakuje każdy URL w 23-znakowy krótki link t.co w momencie publikacji, niezależnie od pierwotnej długości. Długość po publikacji idzie za wzorem published = raw − URL_length + 23 na każdy URL. Szkic 320 znaków zawierający jeden 100-znakowy URL idzie jako 243 znaki. Twitter rozpoznaje URL według wzorców RFC 3986, więc query string i fragmenty są wchłaniane w token URL.

Powiązane lektury

Powiązane artykuły

Zobacz wszystkie artykuły