Canonical URL
ważność średniamierzonysposób seo
Czy strona główna ma poprawny tag canonical. Brak lub zły canonical to duplikacja treści w indeksie.
WIKI
artykuł z 16.09.2026 · źródeł 8Canonical URL to parametr monitoringu stron internetowych, który sprawdza, czy strona główna ma w kodzie HTML tag link rel="canonical" z niepustym adresem. Możliwe wyniki to: tag z adresem, tag bez adresu albo brak tagu. Relacja canonical wskazuje adres preferowany spośród zasobów o zduplikowanej treści [1]. MDN opisuje ją jako preferowany adres bieżącego dokumentu, który pomaga wyszukiwarkom ograniczać duplikację treści [5].
Jak działa
Adres docelowy musi według RFC 6596 wskazywać treść identyczną z treścią strony zawierającej tag albo obejmującą ją w całości [1]. Autor powinien się liczyć z tym, że wyszukiwarka zaindeksuje tylko treść adresu docelowego, przeniesie na niego np. popularność linków i pokaże go jako adres reprezentatywny [1]. Adres kanoniczny może być względny, wskazywać samą stronę, leżeć w innej domenie albo mieć inny schemat. Relację można też podać w nagłówku HTTP Link [1].
Google traktuje wskazanie jako wskazówkę. Strony o bardzo podobnej treści głównej łączy w grupę i sam wybiera z niej adres kanoniczny, który może się różnić od wskazanego przez właściciela [2]. Przekierowania i rel="canonical" są sygnałami silnymi, mapa witryny słabym [3]. Poza nimi Google bierze pod uwagę preferencję HTTPS przed HTTP [3].
Standardy i specyfikacje
- RFC 6596 (2012) definiuje relację i wytyczne: jeden tag na zasób, a cel nie powinien być źródłem przekierowania stałego, adresem z własnym tagiem wskazującym gdzie indziej ani adresem zwracającym błąd 4xx [1]. Błędną deklarację aplikacja może zignorować [1].
- Google Search Central zaleca adresy bezwzględne, choć obsługuje względne, oraz tag na samej stronie kanonicznej [3]. Tag jest akceptowany tylko w sekcji
head[3]. Dokumentacja odradza kanonizację przez plik robots.txt, bo zablokowany adres może trafić do indeksu bez treści, oraz przeznoindex, który usuwa stronę z wyszukiwarki całkowicie [3]. - WordPress ma funkcję
rel_canonical(), która wypisuje tag wyłącznie dla zapytań o pojedynczy wpis lub stronę (is_singular()) [6]. Adres dajewp_get_canonical_url(): bezpośredni link opublikowanego wpisu z numerem podstrony, modyfikowalny filtremget_canonical_url[7]. Strona główna z listą najnowszych wpisów nie jest zapytaniem pojedynczym, więc sam rdzeń nie wypisze na niej tagu [6]. - Wtyczki SEO przejmują tę rolę. Specyfikacja Yoast SEO przewiduje tag w
headkażdej indeksowalnej strony z kodem 200, a dla strony głównej adres złożony z protokołu, hosta i ukośnika [8].
Zagrożenia i skutki
Brak tagu. Bez wskazania Google sam wybiera wersję, którą uzna za najlepszą [3]. Typowe źródła duplikatów to warianty regionalne, wersje HTTP i HTTPS, sortowanie i filtry oraz przypadkowo dostępna wersja demonstracyjna [2].
Wiele tagów. Wtyczki SEO często dodają domyślny tag bez wiedzy właściciela. Przy wielu deklaracjach Google prawdopodobnie zignoruje wszystkie [4].
Wskazanie strony, która nie jest duplikatem. Tag z kolejnych stron artykułu na pierwszą sprawia, że ich treść nie zostanie zaindeksowana [4]. Tak samo działa szablon wpisujący każdej podstronie adres strony głównej, której treść nie obejmuje ich treści [1].
Skopiowany szablon i przejęcie. Strona zbudowana z kopii cudzego szablonu może wskazywać jako kanoniczną witrynę jego autora [4]. Po włamaniu tag może wskazać adres atakującego i przenieść na niego popularność linków, co dla ludzi jest prawie niewidoczne [1].
Przykłady
| Deklaracja | Ocena |
|---|---|
link rel="canonical" href="https://www.example.com/" w head | bezwzględny, wskazuje samą stronę [3] |
href="/" | względny: dopuszczalny [1], niezalecany przez Google [3] |
href="example.com/" | bez schematu to ścieżka względna, wskazanie może zostać zignorowane [4] |
| dwa tagi z różnymi adresami | prawdopodobnie zignorowane oba [4] |
tag w body | pomijany [3] [4] |
| cel z przekierowaniem 301 albo błędem 4xx | niezalecany, może zostać zignorowany [1] |
nagłówek Link: <https://…>; rel="canonical" | odpowiednik tagu, także dla plików PDF [3] |
- [1] RFC 6596 — The Canonical Link Relation · IETF
- [2] What is canonicalization · Google Search Central
- [3] How to specify a canonical URL with rel="canonical" and other methods · Google Search Central
- [4] 5 common mistakes with rel=canonical · Google Search Central Blog
- [5] HTML attribute: rel · MDN Web Docs
- [6] rel_canonical() — Function · WordPress.org
- [7] wp_get_canonical_url() — Function · WordPress.org
- [8] Yoast SEO: Canonical URLs — Functional specification · Yoast
STATS
wyniki z systemu · tylko liczby zbiorczeTen parametr nie zapisuje odczytu per strona — przebieg zostawia tylko ustalenia, więc liczby sprawdzonych stron i wyników „ok” system nie ma. Pojawią się po wdrożeniu zapisu przebiegów per strona per parametr.
Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.
- Przebiegów
- 33sposób seo
- W 30 dni
- 33przebiegów
- Ostatni
- 19.09.2026start przebiegu
- Stron w przebiegach
- —33 przebiegów bez liczby stron
CARD
karta z kodu CREATO_PING, odczyt 16.09.2026| Obszar i ważność | SEO · średnia (S04) |
|---|---|
| Workflow i częstotliwość | creato_ping_security_v2 · P3 działa na LAB247cron co 24 h, T1–T3; T4 raz po anomalii · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu. |
| Sonda i helper | sposób seo · CREATO_PING/helpers/seo_check.py |
| Testy |
|
| Typ wyniku | 0 albo 1 ustalenie seo_canonical_missing: brak tagu albo tag z pustym href |
| Jednostka | brak — wynik jakościowy |
| Próg i reguła | Reguła: brak tagu albo pusty href = ustalenie. Timeout 5,0 s, treść do 3 MB. |
| Gdzie leżą pokrętła | CREATO_PING/helpers/seo_check.py → _CANONICAL, _HREF_VALCREATO_PING/helpers/security_runner.py → _TASK_SEVERITIES (dalej idą tylko urgent i high)CREATO_PING/config/incident_policy.toml → [finding] seo_canonical_missing |
| Retencja odczytów | Nic: helper nadaje powagę poniżej wysokiej, filtr przebiegu odrzuca ustalenie przed zapisem, a produkcja idzie z --no-stats. Nie ma ani odczytu per strona, ani ustalenia, ani licznika — statystyki i replay niemożliwe. |
| Znane rozbieżności |
|
| Karta przepisana z | CREATO_PING/helpers/seo_check.py · CREATO_PING/helpers/html_fetch.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/config/incident_policy.toml · CREATO_PING/workflows/_prod/creato_ping_security_v2.json · odczyt 16.09.2026 |
Helper zgłasza powagę normalną, a filtr przebiegu przepuszcza tylko pilną i wysoką — ustalenie odpada przed polityką. Wpis w polityce (niska, gate=false) nie jest osiągany.
| Ustalenie | Powaga | Pewność | Skutek | Subtask / alarm | Co zrobić |
|---|---|---|---|---|---|
| Brak canonicalseo_canonical_missing | Niskie | Ewidentne | bez wpływu | nie / nie | Włącz canonical we wtyczce SEO. |
LOOP
bez pętliTrafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.
Ten parametr nie przeszedł jeszcze żadnej pętli. Kolejność po pierwszych pięciu grupach ustali miara trafności.