Działania SEO na WordPress co warto wiedzieć?

3 min czytania
Działania SEO na WordPress  co warto wiedzieć?

Od lat zdecydowanie najpopularniejszym systemem CMS jest WordPress. Bezpłatny dostęp, ciągły rozwój, ogromna liczba darmowych wtyczek i motywów, oraz społeczność, dzięki której można łatwo rozwiązać każdy problem związany z tym oprogramowaniem, sprawiają, że zainteresowanie tym CMS-em ciągle rośnie. Czy WordPress jest jednak dopracowany pod względem SEO? A może wymaga szerokiej optymalizacji?

Czym jest WordPress?

WordPress to system CMS, który powstał z myślą o blogerach. Z czasem okazało się, że sprawdza się również jako oprogramowanie serwisów informacyjnych, forów, katalogów stron, a nawet sklepów internetowych. W bazie WP dostępnych jest ponad 60 tys. pluginów, dzięki którym można uzyskać mnóstwo funkcji bez konieczności inwestowania w nowe rozwiązania.

Pierwsze wydanie systemu pojawiło się w 2003 roku. Od tamtej pory WordPress przeszedł wiele aktualizacji. Według w3techs.com w styczniu 2023 roku miał ponad 43% udziału w rynku systemów CMS, uwzględniając wszystkie strony www. Jeśli weźmiemy pod uwagę wyłącznie witryny, które bazują na CMS-ie, to udział rośnie do ponad 63%. Jak widzisz, WP jest zdecydowanym liderem.

Wiesz już, co to jest WordPress. Dowiedz się, czy to system dopracowany pod względem SEO, który zapewnia wszystkie rozwiązania potrzebne do optymalizacji strony.

Wtyczka SEO Yoast

Pozycjonowanie stron opartych na systemie WordPress wymaga skorzystania z dodatkowych pluginów, gdyż nie wszystkie opcje, których potrzebujesz, znajdziesz w podstawowej wersji CMS-a. Możesz postawić na różne wtyczki, w tym jedną z najpopularniejszych Yoast SEO. Liczba aktywnych instalacji, w połowie stycznia 2023 roku, wyniosła ponad 5 milionów. Podstawowa wersja jest bezpłatna, ale możesz też skorzystać z płatnej, dającej więcej możliwości. Yoast SEO umożliwia Ci:

  • łatwe wygenerowanie mapy strony , którą dodasz w Google Search Console.
  • personalizację tytułów i opisów poszczególnych stron tagi i <description>. Pierwszy z nich ma duży wpływ na widoczność w Google, zaś drugi może pojawiać się w wyszukiwarce i wpływać na klikalność;</li> <li><strong>analizę treści pod kątem SEO</strong> wtyczka sprawdza, czy content jest odpowiednio zoptymalizowany i zawiera niezbędne elementy;</li> <li><strong>automatyczne włączenie danych strukturalnych</strong> dzięki temu roboty Google mogą lepiej zrozumieć stronę. To dzięki nim w wynikach mogą pojawić się m.in. ceny produktów z Twojego serwisu, stan magazynowy czy też gwiazdki, które wynikają ze średniej oceny produktu/materiału.</li> </ul> <p>Więcej funkcji zapewnia odpłatna wersja Yoast SEO. Pozycjonowanie strony opartej na WordPress jest łatwiejsze dzięki takim wtycztom. Nie musisz zlecać przygotowania rozwiązań specjalnie dla Ciebie możesz skorzystać z gotowych.</p> <h2 id="korzyści-seo-dla-strony-zbudowanej-na-wordpress"><strong>Korzyści SEO dla strony zbudowanej na WordPress</strong></h2> <p>Dzięki Yoast SEO strona na WordPress może być lepiej zoptymalizowana. Podstawowa wersja WP zapewnia wiele rozwiązań, dzięki którym pozycjonowanie witryny jest łatwiejsze. Należą do nich m.in. przyjazne linki. Możesz dodawać zdjęcia i wypełniać od razu tag alt opis obrazka.</p> <p>Największą zaletą systemu jest możliwość łatwego wdrożenia różnych przydatnych rozwiązań. Dostępne są pluginy, które ułatwiają wewnętrzne linkowanie <strong>możesz włączyć menu okruszkowe czy też wyświetlać wpisy podobne tematycznie</strong>. Za pomocą wtyczki włączysz dane strukturalne oraz dodasz tagi rel dla linków, np. nofollow i sponsored. To tylko wybrane opcje. Prawdopodobnie uruchomisz każdą, jaka przyjdzie Ci do głowy kwestia znalezienia odpowiedniego rozwiązania.</p> </div> <div class="border-l-4 border-zinc-300 pl-4 py-3 bg-zinc-50 mb-6 italic rounded-r-lg"> <p class="text-base text-zinc-700">Autor: <span class="font-semibold">Zewnętrzny materiał partnerski</span></p> </div> <span style="position:absolute;opacity:0;" data-sponsored-keyword="halotorun_kf">halotorun_kf</span> <div class="my-8 text-center"> <a href="https://serwisylokalne.pl/" rel="nofollow"> <img src="/banners/serwisylokalne.webp" alt="Serwisy Lokalne - Oferta artykułów sponsorowanych" class="w-full max-w-2xl mx-auto rounded-lg shadow-sm"> </a> </div> <div class="post-sections flex flex-col gap-4 md:gap-6"> <div class="order-1 md:order-1"> <div class="share-buttons"> <span class="share-label">Udostępnij:</span> <div class="share-icons"> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3a%2f%2fhalotorun.pl%2f20230126532090%2fdzialania-seo-na-wordpress-co-warto-wiedziec" target="_blank" rel="nofollow noopener" class="share-icon facebook" aria-label="Udostępnij na Facebook"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M12 2.04c-5.5 0-10 4.49-10 10.02 0 5 3.66 9.15 8.44 9.9v-7H7.9v-2.9h2.54V9.85c0-2.51 1.49-3.89 3.78-3.89 1.09 0 2.23.19 2.23.19v2.47h-1.26c-1.24 0-1.63.77-1.63 1.56v1.88h2.78l-.45 2.9h-2.33v7a10 10 0 0 0 8.44-9.9c0-5.53-4.5-10.02-10-10.02z"/> </svg> </a> <a href="https://wa.me/?text=Dzia%c5%82ania%20SEO%20na%20WordPress%20%20co%20warto%20wiedzie%c4%87%3f%20https%3a%2f%2fhalotorun.pl%2f20230126532090%2fdzialania-seo-na-wordpress-co-warto-wiedziec" target="_blank" rel="nofollow noopener" class="share-icon whatsapp" aria-label="Udostępnij przez WhatsApp"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z"/> </svg> </a> <button class="share-icon copy-link" data-url="https://halotorun.pl/20230126532090/dzialania-seo-na-wordpress-co-warto-wiedziec" id="copy-link-button" aria-label="Kopiuj link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/> </svg> </button> <a href="mailto:?subject=Dzia%c5%82ania%20SEO%20na%20WordPress%20%20co%20warto%20wiedzie%c4%87%3f&body=https%3a%2f%2fhalotorun.pl%2f20230126532090%2fdzialania-seo-na-wordpress-co-warto-wiedziec" rel="nofollow" class="share-icon email" aria-label="Udostępnij przez email"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/> </svg> </a> </div> <div id="copy-notification" class="copy-notification"> Link skopiowany do schowka! </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { const copyButton = document.getElementById('copy-link-button'); const notification = document.getElementById('copy-notification'); if (copyButton) { copyButton.addEventListener('click', function() { const url = 'https:\/\/halotorun.pl\/20230126532090\/dzialania-seo-na-wordpress-co-warto-wiedziec'; const tempInput = document.createElement('input'); tempInput.value = url; document.body.appendChild(tempInput); tempInput.select(); try { const successful = document.execCommand('copy'); if (successful) { notification.classList.add('show'); copyButton.innerHTML = ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z"/> </svg> `; setTimeout(function() { notification.classList.remove('show'); copyButton.innerHTML = ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18" height="18"> <path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/> </svg> `; }, 2000); } } catch (err) { console.error('Nie udało się skopiować tekstu: ', err); } document.body.removeChild(tempInput); if (navigator.clipboard) { navigator.clipboard.writeText(url) .catch(err => { console.error('Nie udało się skopiować tekstu: ', err); }); } }); } }); </script> </div> <footer id="post-footer" class="post-section order-2 md:order-5 not-prose mt-0 md:mt-0 border-t pt-4"> <div id="related-post" class="mt-4 md:mt-6"> <h2 class="text-xl md:text-2xl font-bold mb-4 md:mb-6">Zobacz też:</h2> <div class="space-y-0"> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-4 mb-4 last:border-b-0 last:mb-0"> <a href="/20260227861132/iskra-zajezdnia-przy-sienkiewicza-ma-stac-sie-dzielnica-kreatywna" class="flex mobile-list-link hover:no-underline" aria-label="ISKRA – zajezdnia przy Sienkiewicza ma stać się dzielnicą kreatywną"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/28.webp" alt="ISKRA – zajezdnia przy Sienkiewicza ma stać się dzielnicą kreatywną" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-02-27T11:51:00+01:00"> 27 lutego 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight mb-1"> ISKRA – zajezdnia przy Sienkiewicza ma stać się dzielnicą kreatywną </h3> <p class="text-sm text-zinc-600 dark:text-zinc-400 line-clamp-2 leading-snug"> W sercu Bydgoskiego Przedmieścia rodzi się pomysł na przestrzeń, która ma łączyć sztukę, naukę i codzienne życie. Toruń … </p> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-4 mb-4 last:border-b-0 last:mb-0"> <a href="/20260228904232/zimowe-proby-przed-swiatem-70-halowe-mistrzostwa-polski-w-lekkoatletyce" class="flex mobile-list-link hover:no-underline" aria-label="Zimowe próby przed światem – 70. Halowe Mistrzostwa Polski w lekkoatletyce"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/torunimg/webp/14.webp" alt="Zimowe próby przed światem – 70. Halowe Mistrzostwa Polski w lekkoatletyce" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-02-28T01:52:00+01:00"> 28 lutego 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight mb-1"> Zimowe próby przed światem – 70. Halowe Mistrzostwa Polski w lekkoatletyce </h3> <p class="text-sm text-zinc-600 dark:text-zinc-400 line-clamp-2 leading-snug"> Toruń znów przyciąga ludzi z biegów, skoków i rzutów – hale wypełnią się rywalizacją, emocjami i rozmowami o składzie … </p> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-4 mb-4 last:border-b-0 last:mb-0"> <a href="/20260304956424/przedszkolaki-poznaly-policyjne-tajniki-ruchu-lekcja-ktora-moze-uratowac-zycie" class="flex mobile-list-link hover:no-underline" aria-label="Przedszkolaki poznały policyjne tajniki ruchu - lekcja, która może uratować życie"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/policja/spotkanie-z-przedszkolakami-na-temat-bez-20260304-20260304034747.webp" alt="Przedszkolaki poznały policyjne tajniki ruchu - lekcja, która może uratować życie" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T02:03:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight mb-1"> Przedszkolaki poznały policyjne tajniki ruchu - lekcja, która może uratować życie </h3> <p class="text-sm text-zinc-600 dark:text-zinc-400 line-clamp-2 leading-snug"> Policjantka z wydziału ruchu drogowego odwiedziła przedszkolaków i uczyła ich, jak bezpiecznie przechodzić przez … </p> </div> </a> </article> </div> </div> </footer> <div class="order-3 md:order-3"><nav class="flex flex-col md:flex-row gap-4 my-8 not-prose"> <a href="/20230126532087/prezent-dla-elektryka-co-wybrac-na-prezent-dla-elektryka" title="Prezent dla elektryka co wybrać na prezent dla elektryka?" class="flex-1 group block"> <div class="bg-zinc-100 hover:bg-blue-50 rounded-xl p-4 transition-all duration-300 border border-zinc-200 hover:border-blue-200"> <div class="flex items-center text-sm text-zinc-500 mb-2"> <span class="group-hover:text-blue-500 transition-colors duration-300"><< Poprzedni</span> </div> <span class="font-medium group-hover:text-blue-600 transition-colors duration-300">Prezent dla elektryka co wybrać na prezent dla elektryka?</span> </div> </a> <a href="/20230126532092/jak-wybrac-buty-bokserskie" title="Jak wybrać buty bokserskie?" class="flex-1 group block"> <div class="bg-zinc-100 hover:bg-blue-50 rounded-xl p-4 transition-all duration-300 border border-zinc-200 hover:border-blue-200 text-right"> <div class="flex items-center justify-end text-sm text-zinc-500 mb-2"> <span class="group-hover:text-blue-500 transition-colors duration-300">Następny >></span> </div> <span class="font-medium group-hover:text-blue-600 transition-colors duration-300">Jak wybrać buty bokserskie?</span> </div> </a> </nav></div> <div class="order-4 md:order-2"> <section class="social-follow-banner" aria-label="Obserwuj nas na Facebooku"> <a href="https://www.facebook.com/halotorunpl" target="_blank" rel="nofollow noopener external" class="social-follow-link"> <img src="/banners/facebook_banner_min.png" data-src="/banners/facebook_banner_min.png" alt="Facebook" width="64" height="64" loading="lazy" decoding="async"> <div class="social-follow-text"> <div class="social-follow-title">Nie przegap wiadomości z Torunia i okolic - obserwuj nas na Facebooku!</div> </div> </a> </section> </div> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "NewsArticle","headline": "Działania SEO na WordPress co warto wiedzieć?","description": "Od lat zdecydowanie najpopularniejszym systemem CMS jest WordPress. Bezpłatny dostęp, ciągły rozwój, ogromna liczba darmowych wtyczek i motywów, oraz …", "datePublished": "2023-01-26T11:42:24\u002b01:00", "dateModified": "2023-01-26T11:42:24\u002b01:00", "url": "https:\/\/halotorun.pl\/20230126532090\/dzialania-seo-na-wordpress-co-warto-wiedziec", "wordCount": 478 , "inLanguage": "pl","articleBody": "Od lat zdecydowanie najpopularniejszym systemem CMS jest WordPress. Bezpłatny dostęp, ciągły rozwój, ogromna liczba darmowych wtyczek i motywów, oraz społeczność, dzięki której można łatwo rozwiązać każdy problem związany z tym oprogramowaniem, sprawiają, że zainteresowanie tym CMS-em ciągle rośnie. Czy WordPress jest jednak dopracowany pod względem SEO? A może wymaga szerokiej optymalizacji? Czym jest WordPress? WordPress to system CMS, który powstał z myślą o blogerach. Z czasem okazało się, że sprawdza się również jako oprogramowanie serwisów informacyjnych, forów, katalogów stron, a nawet sklepów internetowych. W bazie WP dostępnych jest ponad 60 tys. pluginów, dzięki którym można uzyskać mnóstwo funkcji bez konieczności inwestowania w nowe rozwiązania. Pierwsze wydanie systemu pojawiło się w 2003 roku. Od tamtej pory WordPress przeszedł wiele aktualizacji. Według w3techs.com w styczniu 2023 roku miał ponad 43% udziału w rynku systemów CMS, uwzględniając wszystkie strony www. Jeśli weźmiemy pod uwagę wyłącznie witryny, które bazują na CMS-ie, to udział rośnie do ponad 63%. Jak widzisz, WP jest zdecydowanym liderem. Wiesz już, co to jest WordPress. Dowiedz się, czy to system dopracowany pod względem SEO, który zapewnia wszystkie rozwiązania potrzebne do optymalizacji strony. Wtyczka SEO Yoast Pozycjonowanie stron opartych na systemie WordPress wymaga skorzystania z dodatkowych pluginów, gdyż nie wszystkie opcje, których potrzebujesz, znajdziesz w podstawowej wersji CMS-a. Możesz postawić na różne wtyczki, w tym jedną z najpopularniejszych Yoast SEO. Liczba aktywnych instalacji, w połowie stycznia 2023 roku, wyniosła ponad 5 milionów. Podstawowa wersja jest bezpłatna, ale możesz też skorzystać z płatnej, dającej więcej możliwości. Yoast SEO umożliwia Ci: łatwe wygenerowanie mapy strony , którą dodasz w Google Search Console. personalizację tytułów i opisów poszczególnych stron tagi i . Pierwszy z nich ma duży wpływ na widoczność w Google, zaś drugi może pojawiać się w wyszukiwarce i wpływać na klikalność; analizę treści pod kątem SEO wtyczka sprawdza, czy content jest odpowiednio zoptymalizowany i zawiera niezbędne elementy; automatyczne włączenie danych strukturalnych dzięki temu roboty Google mogą lepiej zrozumieć stronę. To dzięki nim w wynikach mogą pojawić się m.in. ceny produktów z Twojego serwisu, stan magazynowy czy też gwiazdki, które wynikają ze średniej oceny produktu/materiału. Więcej funkcji zapewnia odpłatna wersja Yoast SEO. Pozycjonowanie strony opartej na WordPress jest łatwiejsze dzięki takim wtycztom. Nie musisz zlecać przygotowania rozwiązań specjalnie dla Ciebie możesz skorzystać z gotowych. Korzyści SEO dla strony zbudowanej na WordPress Dzięki Yoast SEO strona na WordPress może być lepiej zoptymalizowana. Podstawowa wersja WP zapewnia wiele rozwiązań, dzięki którym pozycjonowanie witryny jest łatwiejsze. Należą do nich m.in. przyjazne linki. Możesz dodawać zdjęcia i wypełniać od razu tag alt opis obrazka. Największą zaletą systemu jest możliwość łatwego wdrożenia różnych przydatnych rozwiązań. Dostępne są pluginy, które ułatwiają wewnętrzne linkowanie możesz włączyć menu okruszkowe czy też wyświetlać wpisy podobne tematycznie. Za pomocą wtyczki włączysz dane strukturalne oraz dodasz tagi rel dla linków, np. nofollow i sponsored. To tylko wybrane opcje. Prawdopodobnie uruchomisz każdą, jaka przyjdzie Ci do głowy kwestia znalezienia odpowiedniego rozwiązania.", "mainEntityOfPage": { "@type": "WebPage", "@id": "https:\/\/halotorun.pl\/20230126532090\/dzialania-seo-na-wordpress-co-warto-wiedziec" }, "provider": { "@type": "Organization", "name": "HaloTorun - Wiadomości, informacje, aktualności dla Torunia - Halo Torun", "url": "https:\/\/halotorun.pl\/", "identifier": "halotorun.pl\/" },"author": { "@type": "Organization", "name": "Artykuł sponsorowany" },"publisher": { "@type": "NewsMediaOrganization", "name": "HaloTorun - Wiadomości, informacje, aktualności dla Torunia - Halo Torun", "url": "https:\/\/halotorun.pl\/" , "logo": { "@type": "ImageObject", "url": "https:\/\/halotorun.pl\/logo-halotorun.png" } },"image": { "@type": "ImageObject", "url": "https:\/\/halotorun.pl\/foto\/pics\/473946b61c0953b99f0d9859906909eb.webp", "caption": "Działania SEO na WordPress co warto wiedzieć?" } , "articleSection": "Aktualności" } </script> </article> <aside> <div class="lg:sticky lg:top-8"><div class="aside-banner"> <div class="relative"> <div class="aside-banner-container"> <svg class="aside-banner-svg" viewBox="0 0 400 250" xmlns="http://www.w3.org/2000/svg"> <defs> <linearGradient id="gradient" x1="0%" y1="0%" x2="100%" y2="100%"> <stop offset="0%" style="stop-color:#6366F1;stop-opacity:0.1"> <animate attributeName="stop-opacity" values="0.1;0.15;0.1" dur="8s" repeatCount="indefinite" /> </stop> <stop offset="100%" style="stop-color:#F43F5E;stop-opacity:0.1"> <animate attributeName="stop-opacity" values="0.1;0.15;0.1" dur="8s" repeatCount="indefinite" /> </stop> </linearGradient> </defs> <rect width="100%" height="100%" fill="url(#gradient)" /> <circle cx="30" cy="30" r="60" fill="#6366F1" opacity="0.1"> <animate attributeName="r" values="60;63;60" dur="6s" repeatCount="indefinite" /> </circle> <circle cx="370" cy="220" r="80" fill="#F43F5E" opacity="0.1"> <animate attributeName="r" values="80;83;80" dur="7s" repeatCount="indefinite" /> </circle> <g transform="translate(180, 35) scale(1.0)"> <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 48 48"> <path fill="#A855F7" opacity="0.9" d="M17.4 33H15v-4h4l.4 1.5c.3 1.3-.7 2.5-2 2.5zM37 36s-11.8-7-18-7V15c5.8 0 18-7 18-7v28z"/> <g fill="#4F46E5"> <circle cx="9" cy="22" r="5"/> <path d="M40 19h-3v6h3c1.7 0 3-1.3 3-3s-1.3-3-3-3zM18.6 41.2c-.9.6-2.5 1.2-4.6 1.4c-.6.1-1.2-.3-1.4-1L8.2 27.9S17 21.7 17 29c0 5.5 1.5 8.4 2.2 9.5c.5.7.5 1.6 0 2.3c-.2.2-.4.3-.6.4z"/> </g> <path fill="#6366F1" d="M9 29h10V15H9c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2z"/> <path fill="#A855F7" opacity="0.9" d="M38 38c-1.1 0-2-.9-2-2V8c0-1.1.9-2 2-2s2 .9 2 2v28c0 1.1-.9 2-2 2z"/> </svg> </g> <text x="50%" y="120" text-anchor="middle" font-size="22" fill="#4B5563" class="banner-text-title"> Zareklamuj się na </text> <text x="50%" y="145" text-anchor="middle" font-size="28" fill="#4F46E5" class="banner-text-url"> halotorun.pl! </text> <foreignObject x="50" y="180" width="300" height="50"> <div xmlns="http://www.w3.org/1999/xhtml" class="h-full flex items-center justify-center"> <a href="/artykuly-sponsorowane" target="_blank" rel="noopener" class="aside-banner-button"> SPRAWDŹ SZCZEGÓŁY </a> </div> </foreignObject> </svg> </div> </div> <p class="aside-banner-promo-text">autopromocja</p> </div> <div class="space-y-3"> <h2 class="font-bold text-xl mb-8">Ostatnie Artykuły</h2> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304434901/jak-pomorzanin-przetrwal-dekady-90-lat-klubu-opowiedziane-w-toruniu" class="flex mobile-list-link hover:no-underline" aria-label="Jak Pomorzanin przetrwał dekady - 90 lat klubu opowiedziane w Toruniu"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/bibliotekaimg/webp/303cnv.webp" alt="Jak Pomorzanin przetrwał dekady - 90 lat klubu opowiedziane w Toruniu" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T02:18:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Jak Pomorzanin przetrwał dekady - 90 lat klubu opowiedziane w Toruniu </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304638113/mlodzi-koszykarze-z-powiatu-pokazali-charakter-turniej-w-turznie-i-ostaszewie" class="flex mobile-list-link hover:no-underline" aria-label="Młodzi koszykarze z powiatu pokazali charakter – turniej w Turznie i Ostaszewie"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/powiat/wydarzenia-br-sportowe-powiat-torunski-20260304-20260304034900.webp" alt="Młodzi koszykarze z powiatu pokazali charakter – turniej w Turznie i Ostaszewie" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T02:14:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Młodzi koszykarze z powiatu pokazali charakter – turniej w Turznie i Ostaszewie </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304652280/mlodziez-ma-realny-wplyw-na-decyzje-regionu-ruszyl-nabor-do-sejmiku" class="flex mobile-list-link hover:no-underline" aria-label="Młodzież ma realny wpływ na decyzje regionu – ruszył nabór do sejmiku"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/powiat/pozostale-aktualnosci-powiat-torunski-20260304-20260304034834.webp" alt="Młodzież ma realny wpływ na decyzje regionu – ruszył nabór do sejmiku" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T02:12:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Młodzież ma realny wpływ na decyzje regionu – ruszył nabór do sejmiku </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304505386/w-toruniu-szkolili-kulture-upcykling-ai-i-wideocasty-daja-nowe-zycie-ksiazkom" class="flex mobile-list-link hover:no-underline" aria-label="W Toruniu szkolili kulturę - upcykling, AI i wideocasty dają nowe życie książkom"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/bibliotekaimg/webp/17.webp" alt="W Toruniu szkolili kulturę - upcykling, AI i wideocasty dają nowe życie książkom" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T02:12:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> W Toruniu szkolili kulturę - upcykling, AI i wideocasty dają nowe życie książkom </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304654887/powiat-porozumial-sie-z-wopr-wspolne-dzialania-dla-bezpieczenstwa-nad-woda" class="flex mobile-list-link hover:no-underline" aria-label="Powiat porozumiał się z WOPR – wspólne działania dla bezpieczeństwa nad wodą"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/powiat/pozostale-aktualnosci-powiat-torunski-20260304-20260304034748.webp" alt="Powiat porozumiał się z WOPR – wspólne działania dla bezpieczeństwa nad wodą" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T02:08:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Powiat porozumiał się z WOPR – wspólne działania dla bezpieczeństwa nad wodą </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304956424/przedszkolaki-poznaly-policyjne-tajniki-ruchu-lekcja-ktora-moze-uratowac-zycie" class="flex mobile-list-link hover:no-underline" aria-label="Przedszkolaki poznały policyjne tajniki ruchu - lekcja, która może uratować życie"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/policja/spotkanie-z-przedszkolakami-na-temat-bez-20260304-20260304034747.webp" alt="Przedszkolaki poznały policyjne tajniki ruchu - lekcja, która może uratować życie" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T02:03:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Przedszkolaki poznały policyjne tajniki ruchu - lekcja, która może uratować życie </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304207219/mochnacki-na-nowo-krytyk-ktory-dzis-wyglada-jak-intelektualny-influencer" class="flex mobile-list-link hover:no-underline" aria-label="Mochnacki na nowo - krytyk, który dziś wygląda jak intelektualny influencer"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/bibliotekaimg/webp/304cnv.webp" alt="Mochnacki na nowo - krytyk, który dziś wygląda jak intelektualny influencer" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T01:59:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Mochnacki na nowo - krytyk, który dziś wygląda jak intelektualny influencer </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304266612/nagranie-sesji-zapomniane-nabrzeze-pokazuje-co-skrywalo-nabrzeze-torunia" class="flex mobile-list-link hover:no-underline" aria-label="Nagranie sesji - Zapomniane nabrzeże pokazuje, co skrywało nabrzeże Torunia"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/muzeum/zapis-sesji-popularnonaukowej-towarzysza-20260304-20260304034709.webp" alt="Nagranie sesji - Zapomniane nabrzeże pokazuje, co skrywało nabrzeże Torunia" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T01:56:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Nagranie sesji - Zapomniane nabrzeże pokazuje, co skrywało nabrzeże Torunia </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304138895/spotkanie-w-szkole-policjant-obnazyl-ryzyka-hejtu-i-cyberprzemocy" class="flex mobile-list-link hover:no-underline" aria-label="Spotkanie w szkole - policjant obnażył ryzyka hejtu i cyberprzemocy"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/policja/bezpieczenstwo-w-sieci-oraz-hejt-policyj-20260304-20260304034808.webp" alt="Spotkanie w szkole - policjant obnażył ryzyka hejtu i cyberprzemocy" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T01:55:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Spotkanie w szkole - policjant obnażył ryzyka hejtu i cyberprzemocy </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304920316/odkrycie-przy-domu-kopernika-drewno-z-wykopu-ma-wrocic-na-miejscu-jako-wystawa-in-situ" class="flex mobile-list-link hover:no-underline" aria-label="Odkrycie przy Domu Kopernika – drewno z wykopu ma wrócić na miejscu jako wystawa "in situ"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/miasto/in-situ-w-domu-mikolaja-kopernika-20260304-20260304034646.webp" alt="Odkrycie przy Domu Kopernika – drewno z wykopu ma wrócić na miejscu jako wystawa "in situ" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T01:54:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Odkrycie przy Domu Kopernika – drewno z wykopu ma wrócić na miejscu jako wystawa “in situ </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260304982430/nowa-grupa-wsparcia-dla-opiekunow-osob-z-alzheimerem-ruszyla-w-toruniu" class="flex mobile-list-link hover:no-underline" aria-label="Nowa grupa wsparcia dla opiekunów osób z Alzheimerem ruszyła w Toruniu"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/miasto/ruszyla-grupa-wsparcia-dla-opiekunow-oso-20260304-20260304034720.webp" alt="Nowa grupa wsparcia dla opiekunów osób z Alzheimerem ruszyła w Toruniu" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-04T01:51:00+01:00"> 4 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Nowa grupa wsparcia dla opiekunów osób z Alzheimerem ruszyła w Toruniu </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260303188859/chelmza-gospodarzem-promocji-vi-tomu-slownika-biograficznego-powiatu-torunskiego" class="flex mobile-list-link hover:no-underline" aria-label="Chełmża gospodarzem promocji VI tomu Słownika biograficznego powiatu toruńskiego"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/powiat/aktualnosci-powiat-torunski-20260303-20260303021112.webp" alt="Chełmża gospodarzem promocji VI tomu Słownika biograficznego powiatu toruńskiego" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-03T00:20:00+01:00"> 3 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Chełmża gospodarzem promocji VI tomu Słownika biograficznego powiatu toruńskiego </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260303790124/zielen-z-podlewaniem-kropelkowym-i-prace-nawierzchniowe-na-trasie-staromostowej" class="flex mobile-list-link hover:no-underline" aria-label="Zieleń z podlewaniem kropelkowym i prace nawierzchniowe na Trasie Staromostowej"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/miasto/prace-na-trasie-staromostowej-wwwtorunpl-20260303-20260303021039.webp" alt="Zieleń z podlewaniem kropelkowym i prace nawierzchniowe na Trasie Staromostowej" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-03T00:17:00+01:00"> 3 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Zieleń z podlewaniem kropelkowym i prace nawierzchniowe na Trasie Staromostowej </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260302749991/torun-zaczyna-konsultacje-w-sprawie-ograniczen-nocnej-sprzedazy-alkoholu-mieszkancy-zaproszeni-do-rozmowy" class="flex mobile-list-link hover:no-underline" aria-label="Toruń zaczyna konsultacje w sprawie ograniczeń nocnej sprzedaży alkoholu – mieszkańcy zaproszeni do rozmowy"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/miasto/konsultacje-spoleczne-ograniczenia-w-noc-20260302-20260302141901.webp" alt="Toruń zaczyna konsultacje w sprawie ograniczeń nocnej sprzedaży alkoholu – mieszkańcy zaproszeni do rozmowy" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-02T12:50:00+01:00"> 2 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Toruń zaczyna konsultacje w sprawie ograniczeń nocnej sprzedaży alkoholu – mieszkańcy zaproszeni do rozmowy </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260302838628/profilaktyka-zamiast-kary-policja-w-gorsku-uczy-uczniow-gdzie-szukac-pomocy" class="flex mobile-list-link hover:no-underline" aria-label="Profilaktyka zamiast kary - policja w Górsku uczy uczniów, gdzie szukać pomocy"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/policja/profilaktyczne-spotkanie-policji-z-uczni-20260302-20260302141817.webp" alt="Profilaktyka zamiast kary - policja w Górsku uczy uczniów, gdzie szukać pomocy" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-02T12:45:00+01:00"> 2 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Profilaktyka zamiast kary - policja w Górsku uczy uczniów, gdzie szukać pomocy </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260302896342/kto-pamieta-sztrallow-wilenscy-cukiernicy-ktorzy-zostali-z-nami" class="flex mobile-list-link hover:no-underline" aria-label="Kto pamięta Sztrallów - wileńscy cukiernicy, którzy zostali z nami"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/bibliotekaimg/webp/303cnv.webp" alt="Kto pamięta Sztrallów - wileńscy cukiernicy, którzy zostali z nami" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-02T12:43:00+01:00"> 2 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Kto pamięta Sztrallów - wileńscy cukiernicy, którzy zostali z nami </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260302101043/przedszkolaki-ze-starego-torunia-zapamietaly-112-odblaski-zrobily-roznice" class="flex mobile-list-link hover:no-underline" aria-label="Przedszkolaki ze Starego Torunia zapamiętały 112 - odblaski zrobiły różnicę"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/policja/torunscy-policjanci-z-wizyta-u-dzieci-w-20260302-20260302141750.webp" alt="Przedszkolaki ze Starego Torunia zapamiętały 112 - odblaski zrobiły różnicę" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-02T12:41:00+01:00"> 2 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Przedszkolaki ze Starego Torunia zapamiętały 112 - odblaski zrobiły różnicę </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260302927523/starostowie-uzgadniaja-priorytety-kolej-sciezka-rowerowa-i-sprawy-zdrowia" class="flex mobile-list-link hover:no-underline" aria-label="Starostowie uzgadniają priorytety – kolej, ścieżka rowerowa i sprawy zdrowia"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/powiat/pozostale-aktualnosci-powiat-torunski-20260302-20260302141924.webp" alt="Starostowie uzgadniają priorytety – kolej, ścieżka rowerowa i sprawy zdrowia" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-02T12:38:00+01:00"> 2 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Starostowie uzgadniają priorytety – kolej, ścieżka rowerowa i sprawy zdrowia </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260302187146/od-plaskiej-tarczy-do-milionow-galaktyk-spotkanie-o-naszym-miejscu-we-wszechswiecie" class="flex mobile-list-link hover:no-underline" aria-label="Od płaskiej tarczy do milionów galaktyk - spotkanie o naszym miejscu we Wszechświecie"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/bibliotekaimg/webp/308cnv.webp" alt="Od płaskiej tarczy do milionów galaktyk - spotkanie o naszym miejscu we Wszechświecie" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-02T12:34:00+01:00"> 2 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Od płaskiej tarczy do milionów galaktyk - spotkanie o naszym miejscu we Wszechświecie </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260302483007/dwa-anioly-pojawily-sie-na-starowce-figurki-pod-krzywa-wieza-i-przy-szczytnej" class="flex mobile-list-link hover:no-underline" aria-label="Dwa anioły pojawiły się na starówce – figurki pod Krzywą Wieżą i przy Szczytnej"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/miasto/dwa-nowe-anioly-sfrunely-do-torunia-20260302-20260302141819.webp" alt="Dwa anioły pojawiły się na starówce – figurki pod Krzywą Wieżą i przy Szczytnej" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-02T12:29:00+01:00"> 2 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Dwa anioły pojawiły się na starówce – figurki pod Krzywą Wieżą i przy Szczytnej </h3> </div> </a> </article> <article class="news-list-item group border-b border-zinc-200 dark:border-zinc-700 pb-2 mb-2 last:border-b-0 last:mb-0 sidebar-article"> <a href="/20260302951723/kryminalni-z-torunia-zlikwidowali-dostawe-ponad-6-kg-narkotykow-i-trzy-zatrzymania" class="flex mobile-list-link hover:no-underline" aria-label="Kryminalni z Torunia zlikwidowali dostawę - ponad 6 kg narkotyków i trzy zatrzymania"> <figure class="flex-shrink-0 mobile-list-image overflow-hidden"> <img class="object-cover group-hover:scale-105 transition duration-300" src="/images/zdjecia/policja/kilogramy-narkotykow-nie-trafia-na-nasze-20260302-20260302141910.webp" alt="Kryminalni z Torunia zlikwidowali dostawę - ponad 6 kg narkotyków i trzy zatrzymania" width="100" height="62" loading="lazy" decoding="async"> </figure> <div class="flex-1 min-w-0 flex flex-col justify-center ml-4"> <div class="text-xs text-zinc-500 dark:text-zinc-400 mb-1"> <time datetime="2026-03-02T12:23:00+01:00"> 2 marca 2026 </time> </div> <h3 class="text-base font-bold text-zinc-800 dark:text-zinc-200 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors line-clamp-2 leading-tight"> Kryminalni z Torunia zlikwidowali dostawę - ponad 6 kg narkotyków i trzy zatrzymania </h3> </div> </a> </article> </div> </div> </aside> </div> <script> function wrapTables() { const article = document.querySelector('article.prose'); if (article) { const tables = article.querySelectorAll('table'); tables.forEach(function(table) { if (!table.parentElement.classList.contains('table-wrapper')) { const wrapper = document.createElement('div'); wrapper.className = 'table-wrapper'; table.parentNode.insertBefore(wrapper, table); wrapper.appendChild(table); console.log('Tabela owinięta w kontener table-wrapper'); } }); } } wrapTables(); document.addEventListener('DOMContentLoaded', wrapTables); </script> </main> <footer class="bg-white py-6 border-t mt-10"> <div class="max-w-7xl mx-auto px-4 md:px-6 lg:px-8"> <div class="flex flex-col md:flex-row justify-between items-center"> <p class="text-sm mb-4 md:mb-0">Copyright © 2026 halotorun.pl Wszystkie prawa zastrzeżone.</p> <ul class="flex items-center space-x-4"> <li><a class="decoration-auto hover:underline font-semibold" href="https://halotorun.pl/kategorie/news">News</a></li> <li><a class="decoration-auto hover:underline font-semibold" href="https://halotorun.pl/podstrony/regulamin-i-polityka-prywatno%c5%9bci">Polityka Prywatności</a></li> <li><a class="decoration-auto hover:underline font-semibold" href="https://halotorun.pl/podstrony/polityka-cookies">Polityka Cookies</a></li> </ul> </div> </div> </footer> <button id="scroll-to-top" class="scroll-to-top" aria-label="Przewiń do góry strony" title="Do góry"> <svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 10l7-7m0 0l7 7m-7-7v18"></path> </svg> </button> <script> (function() { const scrollButton = document.getElementById('scroll-to-top'); if (!scrollButton) return; function toggleScrollButton() { if (window.innerWidth <= 767) { if (window.pageYOffset > 300) { scrollButton.classList.add('show'); } else { scrollButton.classList.remove('show'); } } else { scrollButton.classList.remove('show'); } } function scrollToTop() { window.scrollTo({ top: 0, behavior: 'smooth' }); } window.addEventListener('scroll', toggleScrollButton); window.addEventListener('resize', toggleScrollButton); scrollButton.addEventListener('click', scrollToTop); toggleScrollButton(); })(); </script> <div id="consent-notice" class="consent-notice"> <div class="max-w-7xl mx-auto px-4"> <div class="flex flex-wrap md:flex-nowrap items-center justify-between gap-4"> <div class="flex-1"> <p class="text-sm leading-relaxed text-left"> Nasza strona korzysta z plików cookies, aby działała prawidłowo. Używamy także plików cookies i podobnych technologii od zewnętrznych dostawców w celach analitycznych, marketingowych i społecznościowych. Informacje te mogą być przetwarzane również przez naszych partnerów. Kontynuując korzystanie ze strony lub klikając „Przechodzę do serwisu", wyrażasz zgodę na użycie dodatkowych plików cookies zgodnie z naszą <a href="https://halotorun.pl/podstrony/regulamin-i-polityka-prywatno%c5%9bci">polityką prywatności</a>. <a id="cookie-notice-personalization" href="#" class="underline opacity-75 hover:opacity-100 text-white">Zaawansowane ustawienia</a>. </p> </div> <div class="buttons flex flex-wrap gap-2 shrink-0"> <a class="policy-link hover:underline" href="https://halotorun.pl/podstrony/polityka-cookies">Polityka Cookies</a> <button id="cookie-notice-accept" class="accept"> Przejdź do serwisu </button> </div> </div> </div> </div> <div id="consent-overlay"> <div class="bg-white text-black p-6 rounded-lg shadow-lg max-w-md mx-auto mt-20 relative"> <button id="close-consent-overlay" class="absolute top-4 right-4 text-gray-500 hover:text-black text-2xl font-bold leading-none">×</button> <h2 class="text-xl font-bold mb-4 text-black">Ustawienia plików cookie</h2> <div class="cookie-option mb-4"> <label class="flex items-start space-x-3 cursor-pointer"> <input type="checkbox" id="analytics-cookies" value="1" name="analytics" checked class="mt-1" > <span class="text-black"> <span class="font-semibold mb-1 block">Google Analytics</span> <span class="text-sm text-gray-700 block">Pomagają nam zrozumieć, jak odwiedzający korzystają z witryny. Używamy Google Analytics do podstawowych statystyk.</span> </span> </label> </div> <div class="cookie-option mb-4"> <label class="flex items-start space-x-3 cursor-pointer"> <input type="checkbox" id="advertising-cookies" value="1" name="advertising" checked class="mt-1" > <span class="text-black"> <span class="font-semibold mb-1 block">Reklamy i remarketing</span> <span class="text-sm text-gray-700 block">Pozwalają nam wyświetlać spersonalizowane reklamy i mierzyć skuteczność kampanii reklamowych. Dane mogą być wykorzystywane do remarketingu w Google Ads.</span> </span> </label> </div> <div class="buttons flex gap-2 justify-end"> <button id="save-consent" class="btn save-consent px-4 py-2 bg-gray-200 hover:bg-gray-300 text-black rounded"> Zapisz preferencje </button> <button class="btn approve-consent px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded"> Akceptuj wszystkie </button> </div> </div> </div> <button id="cookie-preferences-toggle" title="Zmień ustawienia cookies" class="fixed bottom-4 right-4 bg-gray-600 hover:bg-gray-700 text-white p-2 rounded-full shadow-lg z-40 hidden transition-all hover:scale-110" style="width: 40px; height: 40px;"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" class="w-5 h-5"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.25 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"/> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/> </svg> </button> <script> document.addEventListener('DOMContentLoaded', function() { const notice = document.getElementById('consent-notice'); const overlay = document.getElementById('consent-overlay'); const toggleButton = document.getElementById('cookie-preferences-toggle'); let consentSettings = readCookie('consent-settings'); console.log('Wczytane ustawienia cookies:', consentSettings); if (consentSettings && consentSettings.length === 1) { console.log('Migracja starego formatu cookie:', consentSettings); consentSettings = consentSettings + "1"; createCookie('consent-settings', consentSettings, 365); console.log('Zaktualizowano cookie do nowego formatu:', consentSettings); } if (consentSettings && consentSettings.length === 2) { notice.style.display = 'none'; toggleButton.style.display = 'flex'; setConsentInputs(consentSettings); updateConsentMode(consentSettings); if (consentSettings[0] === '1') { loadGoogleAnalytics(); } if (consentSettings[1] === '1') { loadGoogleTagManager(); } } else { notice.style.display = 'block'; toggleButton.style.display = 'none'; document.body.classList.add('has-consent-banner'); } const personalizationBtn = document.getElementById('cookie-notice-personalization'); const acceptAllBtn = document.getElementById('cookie-notice-accept'); const savePreferencesBtn = document.getElementById('save-consent'); const approveAllBtn = document.querySelector('.approve-consent'); const closeOverlayBtn = document.getElementById('close-consent-overlay'); personalizationBtn.addEventListener('click', function(e) { e.preventDefault(); console.log('Kliknięto link personalizacji'); overlay.classList.add('active'); }); acceptAllBtn.addEventListener('click', function(e) { e.preventDefault(); console.log('Kliknięto przycisk akceptuj wszystkie'); acceptAllConsentScripts(); notice.style.display = 'none'; toggleButton.style.display = 'flex'; document.body.classList.remove('has-consent-banner'); }); approveAllBtn.addEventListener('click', function() { console.log('Kliknięto przycisk akceptuj wszystkie w overlay'); acceptAllConsentScripts(); overlay.classList.remove('active'); notice.style.display = 'none'; toggleButton.style.display = 'flex'; document.body.classList.remove('has-consent-banner'); }); savePreferencesBtn.addEventListener('click', function() { console.log('Kliknięto przycisk zapisz preferencje'); setConsentValue(); acceptSomeConsentScripts(this.dataset.consentvalue); overlay.classList.remove('active'); notice.style.display = 'none'; toggleButton.style.display = 'flex'; document.body.classList.remove('has-consent-banner'); }); toggleButton.addEventListener('click', function() { overlay.classList.add('active'); }); closeOverlayBtn.addEventListener('click', function() { console.log('Kliknięto przycisk X - zamykanie overlay'); overlay.classList.remove('active'); }); }); function createCookie(name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); expires = "; expires=" + date.toUTCString(); } var secureFlag = location.protocol === 'https:' ? '; Secure' : ''; document.cookie = name + "=" + value + expires + "; path=/; SameSite=Strict" + secureFlag; } function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); console.log('Próba odczytu ciasteczka:', name); console.log('Wszystkie ciasteczka:', document.cookie); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) { const value = c.substring(nameEQ.length,c.length); console.log('Znaleziono wartość:', value); return value; } } console.log('Nie znaleziono ciasteczka:', name); return null; } function eraseCookie(name) { createCookie(name,"",-1); } function acceptAllConsentScripts() { acceptSomeConsentScripts("11"); } function acceptSomeConsentScripts(consentValue) { console.log('Zapisywanie zgody:', consentValue); if (consentValue.length !== 2) { console.error('Nieprawidłowy format zgody:', consentValue); return; } setConsentInputs(consentValue); createCookie('consent-settings', consentValue, 365); updateConsentMode(consentValue); document.getElementById('consent-notice').style.display = 'none'; document.getElementById('consent-overlay').classList.remove('active'); document.getElementById('cookie-preferences-toggle').style.display = 'flex'; if (consentValue[0] === '1') { loadGoogleAnalytics(); } if (consentValue[1] === '1') { loadGoogleTagManager(); } } function updateConsentMode(consentValue) { if (typeof window.gtag !== 'function') { console.warn('gtag nie jest jeszcze dostępny - Consent Mode zostanie zaktualizowany po załadowaniu GA'); window.pendingConsentUpdate = consentValue; return; } const analyticsGranted = consentValue[0] === '1'; const adsGranted = consentValue[1] === '1'; console.log('Aktualizacja Consent Mode - Analytics:', analyticsGranted, 'Ads:', adsGranted); window.gtag('consent', 'update', { 'analytics_storage': analyticsGranted ? 'granted' : 'denied', 'ad_storage': adsGranted ? 'granted' : 'denied', 'ad_user_data': adsGranted ? 'granted' : 'denied', 'ad_personalization': adsGranted ? 'granted' : 'denied' }); if (window.pendingConsentUpdate) { delete window.pendingConsentUpdate; } } function setConsentInputs(consentValue) { const analyticsCheckbox = document.getElementById('analytics-cookies'); const advertisingCheckbox = document.getElementById('advertising-cookies'); if (analyticsCheckbox && consentValue.length >= 1) { analyticsCheckbox.checked = (consentValue[0] === "1"); } if (advertisingCheckbox && consentValue.length >= 2) { advertisingCheckbox.checked = (consentValue[1] === "1"); } } function setConsentValue() { const analyticsCheckbox = document.getElementById('analytics-cookies'); const advertisingCheckbox = document.getElementById('advertising-cookies'); const analyticsValue = analyticsCheckbox && analyticsCheckbox.checked ? "1" : "0"; const advertisingValue = advertisingCheckbox && advertisingCheckbox.checked ? "1" : "0"; const consentValue = analyticsValue + advertisingValue; document.getElementById("save-consent").dataset.consentvalue = consentValue; console.log('Ustawiono wartość zgody:', consentValue); } function loadGoogleAnalytics() { const gaScriptSelector = 'script[src*="googletagmanager.com/gtag/js?id=G-H4PFV2F904"]'; if (!document.querySelector(gaScriptSelector)) { console.log('Ładowanie Google Analytics...'); window.dataLayer = window.dataLayer || []; if (typeof window.gtag !== 'function') { function gtag(){dataLayer.push(arguments);} window.gtag = gtag; } const script = document.createElement('script'); script.async = true; script.src = 'https://www.googletagmanager.com/gtag/js?id=G-H4PFV2F904'; document.head.appendChild(script); script.onload = function() { const consentSettings = window.pendingConsentUpdate || readCookie('consent-settings'); const analyticsGranted = consentSettings && consentSettings[0] === '1'; const adsGranted = consentSettings && consentSettings[1] === '1'; if (typeof window.gtag === 'function') { window.gtag('consent', 'update', { 'analytics_storage': analyticsGranted ? 'granted' : 'denied', 'ad_storage': adsGranted ? 'granted' : 'denied', 'ad_user_data': adsGranted ? 'granted' : 'denied', 'ad_personalization': adsGranted ? 'granted' : 'denied' }); } window.gtag('js', new Date()); window.gtag('config', 'G-H4PFV2F904', { page_title: document.title, page_location: window.location.href }); console.log('Google Analytics załadowany:', 'G-H4PFV2F904'); console.log('Consent Mode - Analytics:', analyticsGranted ? 'granted' : 'denied', 'Ads:', adsGranted ? 'granted' : 'denied'); if (adsGranted) { const sponsoredElement = document.querySelector('[data-sponsored-keyword]'); if (sponsoredElement) { const keyword = sponsoredElement.dataset.sponsoredKeyword; const pageText = document.body.innerText; if (pageText.includes(keyword)) { console.log('➡️ custom_remarketing_hit: znaleziono "' + keyword + '" na stronie'); window.gtag('event', 'custom_remarketing_hit', { keyword_match: keyword }); } } } }; } else { console.log('Google Analytics już załadowany (skrypt w DOM)'); const consentSettings = readCookie('consent-settings'); if (consentSettings && consentSettings.length === 2 && typeof window.gtag === 'function') { updateConsentMode(consentSettings); } } } function loadGoogleTagManager() { const sponsoredElement = document.querySelector('[data-sponsored-keyword]'); if (!sponsoredElement) { console.log('Google Tag Manager: strona nie jest sponsorowana - pomijam ładowanie GTM'); return; } const gtmScriptSelector = 'script[src*="googletagmanager.com/gtm.js?id=GTM-PQHJMNST"]'; if (document.querySelector(gtmScriptSelector)) { console.log('Google Tag Manager już załadowany (skrypt w DOM)'); return; } console.log('Ładowanie Google Tag Manager dla strony sponsorowanej...'); window.dataLayer = window.dataLayer || []; (function(w,d,s,l,i){ w[l]=w[l]||[]; w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-PQHJMNST'); console.log('Google Tag Manager załadowany: GTM-PQHJMNST'); } </script> <script> document.addEventListener('DOMContentLoaded', function() { const dropdowns = document.querySelectorAll('.dropdown'); dropdowns.forEach(dropdown => { const dropdownLink = dropdown.querySelector('a'); const dropdownContent = dropdown.querySelector('.dropdown-content'); if (dropdownLink && dropdownContent) { dropdownLink.addEventListener('click', function(e) { e.preventDefault(); dropdownContent.classList.toggle('show'); dropdowns.forEach(otherDropdown => { if (otherDropdown !== dropdown) { const otherContent = otherDropdown.querySelector('.dropdown-content'); if (otherContent && otherContent.classList.contains('show')) { otherContent.classList.remove('show'); } } }); }); } }); document.addEventListener('click', function(e) { if (!e.target.closest('.dropdown')) { document.querySelectorAll('.dropdown-content').forEach(content => { content.classList.remove('show'); }); } }); const scrollToTopBtn = document.getElementById('scrollToTop'); if (scrollToTopBtn) { window.addEventListener('scroll', function() { if (window.pageYOffset > 300) { scrollToTopBtn.classList.add('show'); } else { scrollToTopBtn.classList.remove('show'); } }); scrollToTopBtn.addEventListener('click', function() { window.scrollTo({ top: 0, behavior: 'smooth' }); }); } }); document.addEventListener('DOMContentLoaded', function() { if ('loading' in HTMLImageElement.prototype) { const images = document.querySelectorAll('img[loading="lazy"]'); images.forEach(img => { if (img.dataset && img.dataset.src) { img.src = img.dataset.src; } }); } else { const script = document.createElement('script'); script.src = 'https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js'; document.body.appendChild(script); } }); </script> <script defer src="/js/events-tab.js"></script> <script defer src="/js/toc-links.js"></script> <aside id="events-tab" class="events-side-tab" aria-label="Sprawdź nadchodzące wydarzenia"> <button type="button" class="events-tab-handle" aria-expanded="false" aria-controls="events-tab" aria-label="Pokaż panel wydarzeń"> <span class="events-icon" aria-hidden="true"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" aria-hidden="true"><g fill="currentColor"><path d="M7.3 12.2a.7.7 0 0 1 .7-.7h2.8a.7.7 0 0 1 .7.7v2.6a.7.7 0 0 1-.7.7H8a.7.7 0 0 1-.7-.7v-2.6Zm1 .3v2h2.2v-2H8.3ZM8 17a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7h2.8a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7H8Zm.3 3v-2h2.2v2H8.3Zm-1 3.1a.7.7 0 0 1 .7-.7h2.8a.7.7 0 0 1 .7.7v2.6a.7.7 0 0 1-.7.7H8a.7.7 0 0 1-.7-.7v-2.6Zm1 .3v2h2.2v-2H8.3Zm6.3-11.9a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7h2.8a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7h-2.8Zm.3 3v-2h2.2v2h-2.2Zm-1 3.2a.7.7 0 0 1 .7-.7h2.8a.7.7 0 0 1 .7.7v2.6a.7.7 0 0 1-.7.7h-2.8a.7.7 0 0 1-.7-.7v-2.6Zm1 .3v2h2.2v-2h-2.2Zm-.3 4.4a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7h2.8a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7h-2.8Zm.3 3v-2h2.2v2h-2.2Zm5.6-13.2a.7.7 0 0 1 .7-.7H24a.7.7 0 0 1 .7.7v2.6a.7.7 0 0 1-.7.7h-2.8a.7.7 0 0 1-.7-.7v-2.6Zm1 .3v2h2.2v-2h-2.2Zm-.3 9.9a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7H24a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7h-2.8Zm.3 3v-2h2.2v2h-2.2Zm-.3-8.4a.7.7 0 0 0-.7.7v2.6a.7.7 0 0 0 .7.7H24a.7.7 0 0 0 .7-.7v-2.6a.7.7 0 0 0-.7-.7h-2.8Z"/><path d="M1.003 7A6.2 6.2 0 0 1 7.2 1h17.6a6.2 6.2 0 0 1 6.197 6H31v17.8a6.2 6.2 0 0 1-6.2 6.2H7.2A6.2 6.2 0 0 1 1 24.8V7h.003ZM3 9v15.8A4.2 4.2 0 0 0 7.2 29h17.6a4.2 4.2 0 0 0 4.2-4.2V9H3Z"/></g></svg> </span> </button> <a href="/wydarzenie/" class="events-tab-inner" aria-label="Zobacz kalendarz wydarzeń"> <div class="events-title">Sprawdź nadchodzące wydarzenia</div> <span class="events-cta">Zobacz kalendarz</span> </a> </aside> <script defer src="/js/theme.js"></script> </body> </html>