PageSourceSearch

https://kokobeo.com/seo-categories-pl.js

js kokobeo.com collected 2026-10-02 04:21:46 UTC 7,198 bytes, 170 lines download raw bytes

1/**
2 * Kokobeo SEO Categories - POLSKA
3 * 188 kategorii × 50 miast × 20 wzorów = 188.000 keywords
4 * Plik: seo-categories-pl.js
5 * Aktywuje się przy lang="pl"
6 */
7(function() {
8  'use strict';
9
10  function getLang() {
11    return (document.documentElement.lang || '').toLowerCase().substring(0, 2);
12  }
13
14  var C = [
15    "Hydraulik","Elektryk","Ślusarz","Malarz","Stolarz",
16    "Firma sprzątająca","Ogrodnik","Złota rączka","Firma przeprowadzkowa","Technik HVAC",
17    "Murarz","Dezynsekcja","Dekarz","Spawacz","Glazurnik",
18    "Szklarz","Posadzkarz","Rozbiórki","Technik basenów","Instalator paneli słonecznych",
19    "Hydraulik mieszkaniowy","Hydraulik komercyjny","Hydraulik awaryjny 24H",
20    "Hydraulik przemysłowy","Hydraulik ekologiczny",
21    "Elektryk mieszkaniowy","Elektryk komercyjny","Elektryk awaryjny 24H",
22    "Elektryk przemysłowy","Elektryk smart home",
23    "Ślusarz awaryjny 24H","Ślusarz samochodowy","Ślusarz komercyjny",
24    "Ślusarz mieszkaniowy","Technik sejfów",
25    "Malarz wnętrz","Malarz elewacji","Malarz komercyjny",
26    "Malarz dekoracyjny","Tapeciarz",
27    "Stolarz meblowy","Stolarz","Stolarz wykończeniowy","Cieśla",
28    "Sprzątanie domu","Sprzątanie biur","Sprzątanie gruntowne",
29    "Sprzątanie po remoncie","Mycie okien",
30    "Architekt krajobrazu","Pielęgnacja drzew","Pielęgnacja trawnika",
31    "Specjalista nawadniania","Projektant ogrodów",
32    "Montaż mebli","Naprawy ogólne","Naprawa regipsów","Mycie ciśnieniowe",
33    "Przeprowadzki lokalne","Przeprowadzki międzymiastowe","Przeprowadzki biurowe",
34    "Transport pianina","Usługi pakowania",
35    "Naprawa klimatyzacji","Naprawa ogrzewania","Wentylacja",
36    "Instalator pompy ciepła","Technik kotłów",
37    "Murarz ceglany","Kamieniarz","Betoniarz","Blokarz",
38    "Dezynsekcja termitów","Deratyzacja","Zwalczanie pluskiew",
39    "Zwalczanie komarów",
40    "Naprawa dachu","Montaż dachu","Hydroizolacja",
41    "Naprawa rynien","Przegląd dachu",
42    "Naprawa sprzętu AGD","Naprawa pralki","Naprawa suszarki",
43    "Naprawa lodówki","Naprawa zmywarki","Naprawa piekarnika",
44    "Naprawa mikrofalówki","Naprawa zamrażarki",
45    "Naprawa AGD 24H","Instalacja AGD",
46    "Naprawa komputera","Naprawa komputera 24H","Wsparcie IT",
47    "Naprawa telefonu","Odzyskiwanie danych","Instalacja sieci",
48    "Naprawa drukarki","Usuwanie wirusów","Konfiguracja smart home",
49    "Instalacja monitoringu",
50    "Mechanik samochodowy","Blacharz","Wulkanizacja","Elektryk samochodowy",
51    "Mechanik mobilny","Naprawa samochodów 24H","Wymiana oleju","Przegląd techniczny",
52    "Fotograf","Fotograf ślubny","Fotograf eventowy","Fotograf portretowy",
53    "Kamerzysta","Fotograf nieruchomości",
54    "Organizator eventów","Wedding planner","Catering","DJ",
55    "Kwiaciarnia","Dekorator eventów","Wynajem sprzętu eventowego",
56    "Animator imprez dziecięcych",
57    "Trener personalny","Trener personalny z dojazdem","Trener personalny online",
58    "Masażysta","Masaż sportowy","Masaż leczniczy",
59    "Masaż relaksacyjny","Drenaż limfatyczny",
60    "Dietetyk","Fizjoterapeuta",
61    "Fryzjer","Barber","Kosmetyczka","Manicure i pedicure",
62    "Makijażystka","Przedłużanie rzęs","Zabiegi na twarz","Depilacja",
63    "Korepetycje","Lektor języków","Nauczyciel muzyki",
64    "Korepetycje z matematyki","Korepetycje z informatyki","Przygotowanie do egzaminów",
65    "Opiekun psów","Opiekun kotów","Wyprowadzanie psów","Salon groomerski",
66    "Szkolenie psów",
67    "Adwokat","Księgowy","Doradca finansowy",
68    "Notariusz","Doradca podatkowy","Doradca kredytowy",
69    "Programista stron www","Programista aplikacji","Grafik",
70    "Social media manager","Specjalista SEO","Copywriter",
71    "Web designer","Programista e-commerce","Konsultant marketingu cyfrowego",
72    "Montażysta wideo",
73    "Usługi szoferskie","Transfer lotniskowy","Kurier",
74    "Transport towarów","Wynajem auta z kierowcą",
75    "Projektant wnętrz","Architekt","Generalny wykonawca",
76    "Projektant kuchni","Home stager",
77    "Krawiec","Szewc","Tapicer","Renowacja mebli",
78    "Montaż zasłon","Montaż moskitier","Technik anten TV",
79    "Naprawa rowerów","Zegarmistrz","Stroiciel fortepianów"
80  ];
81
82  // 50 polskich miast (wszystkie województwa)
83  var P = [
84    "Warszawa","Kraków","Łódź","Wrocław","Poznań","Gdańsk","Szczecin","Bydgoszcz",
85    "Lublin","Białystok","Katowice","Gdynia","Częstochowa","Radom","Sosnowiec","Toruń",
86    "Kielce","Rzeszów","Gliwice","Zabrze","Olsztyn","Bielsko-Biała","Bytom","Zielona Góra",
87    "Rybnik","Ruda Śląska","Opole","Tychy","Gorzów Wielkopolski","Elbląg",
88    "Płock","Dąbrowa Górnicza","Wałbrzych","Włocławek","Tarnów","Chorzów",
89    "Koszalin","Kalisz","Legnica","Grudziądz","Jaworzno","Słupsk",
90    "Jastrzębie-Zdrój","Nowy Sącz","Jelenia Góra","Siedlce","Mysłowice",
91    "Piła","Ostrów Wielkopolski","Lubin"
92  ];
93
94  var T = [
95    "{p} {c}",
96    "{p} w {c}",
97    "najlepszy {p} {c}",
98    "{p} tanio {c}",
99    "{p} awaryjny {c}",
100    "{p} 24 godziny {c}",
101    "{p} w pobliżu {c}",
102    "{p} cena {c}",
103    "wycena {p} {c}",
104    "{p} z dojazdem {c}",
105    "zaufany {p} {c}",
106    "certyfikowany {p} {c}",
107    "usługi {p} {c}",
108    "szukam {p} {c}",
109    "znajdź {p} {c}",
110    "{p} opinie {c}",
111    "{p} cennik {c}",
112    "profesjonalny {p} {c}",
113    "{p} polecany {c}",
114    "{p} darmowa wycena {c}"
115  ];
116
117  function shuffle(arr) {
118    var a = arr.slice();
119    for (var i = a.length - 1; i > 0; i--) {
120      var j = Math.floor(Math.random() * (i + 1));
121      var tmp = a[i]; a[i] = a[j]; a[j] = tmp;
122    }
123    return a;
124  }
125
126  function generateKeywords(count) {
127    var kws = [];
128    var cats = shuffle(C);
129    var provs = shuffle(P);
130    var pats = shuffle(T);
131    var numCats = Math.min(15, cats.length);
132    var numProvs = Math.min(12, provs.length);
133    var numPats = Math.min(8, pats.length);
134    for (var ci = 0; ci < numCats; ci++) {
135      for (var pi = 0; pi < numProvs; pi++) {
136        for (var ti = 0; ti < numPats; ti++) {
137          kws.push(pats[ti].replace('{p}', cats[ci]).replace('{c}', provs[pi]));
138        }
139      }
140    }
141    kws = shuffle(kws);
142    return kws.slice(0, count);
143  }
144
145  function injectKeywords() {
146    var lang = getLang();
147    if (lang !== 'pl') return;
148    var existing = document.querySelector('meta[name="keywords"][data-source="seo-categories-pl"]');
149    if (existing) existing.remove();
150    var keywords = generateKeywords(80);
151    var meta = document.createElement('meta');
152    meta.name = 'keywords';
153    meta.content = keywords.join(', ');
154    meta.setAttribute('data-source', 'seo-categories-pl');
155    document.head.appendChild(meta);
156  }
157
158  if (document.readyState === 'loading') {
159    document.addEventListener('DOMContentLoaded', injectKeywords);
160  } else {
161    injectKeywords();
162  }
163
164  var obs = new MutationObserver(function(mutations) {
165    mutations.forEach(function(m) {
166      if (m.attributeName === 'lang') injectKeywords();
167    });
168  });
169  obs.observe(document.documentElement, { attributes: true });
170})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.