PageSourceSearch

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

js kokobeo.com collected 2026-10-02 04:21:30 UTC 8,468 bytes, 188 lines download raw bytes

1/**
2 * Kokobeo SEO Categories - USA
3 * 188 categories × 150 cities × 20 patterns = 564.000 keywords
4 * Injects meta keywords dynamically with rotation on each load
5 * File: seo-categories-us.js
6 * NOTE: Activates on lang="en" OR default (kokobeo.com = English)
7 */
8(function() {
9  'use strict';
10
11  function getLang() {
12    return (document.documentElement.lang || '').toLowerCase().substring(0, 2);
13  }
14
15  // 188 categories in English
16  var C = [
17    "Plumber","Electrician","Locksmith","Painter","Carpenter",
18    "Cleaning service","Gardener","Handyman","Mover","HVAC Technician",
19    "Mason","Pest control","Roofer","Welder","Tiler",
20    "Glazier","Flooring specialist","Demolition","Pool technician","Solar panel installer",
21    "Residential plumber","Commercial plumber","Emergency plumber 24H",
22    "Industrial plumber","Green plumber",
23    "Residential electrician","Commercial electrician","Emergency electrician 24H",
24    "Industrial electrician","Smart home electrician",
25    "Emergency locksmith 24H","Auto locksmith","Commercial locksmith",
26    "Residential locksmith","Safe technician",
27    "Interior painter","Exterior painter","Commercial painter",
28    "Decorative painter","Wallpaper installer",
29    "Furniture carpenter","Cabinet maker","Finish carpenter","Structural carpenter",
30    "House cleaner","Office cleaner","Deep cleaning",
31    "Post-construction cleaning","Window cleaner",
32    "Landscape gardener","Tree surgeon","Lawn care",
33    "Irrigation specialist","Garden designer",
34    "Furniture assembly","General repairs","Drywall repair","Pressure washing",
35    "Local mover","Long distance mover","Office mover",
36    "Piano mover","Packing services",
37    "AC repair","Heating repair","Ventilation",
38    "Heat pump installer","Furnace technician",
39    "Bricklayer","Stone mason","Concrete worker","Block layer",
40    "Termite control","Rodent control","Bed bug treatment",
41    "Mosquito control",
42    "Roof repair","Roof installation","Waterproofing",
43    "Gutter repair","Roof inspection",
44    "Appliance repair","Washer repair","Dryer repair",
45    "Refrigerator repair","Dishwasher repair","Oven repair",
46    "Microwave repair","Freezer repair",
47    "Appliance repair 24H","Appliance installation",
48    "Computer repair","Computer repair 24H","IT support",
49    "Phone repair","Data recovery","Network installation",
50    "Printer repair","Virus removal","Smart home setup",
51    "Security camera installation",
52    "Auto mechanic","Auto body shop","Tire shop","Auto electrician",
53    "Mobile mechanic","Auto repair 24H","Oil change","Car inspection",
54    "Photographer","Wedding photographer","Event photographer","Portrait photographer",
55    "Videographer","Real estate photographer",
56    "Event planner","Wedding planner","Catering","DJ",
57    "Florist","Event decorator","Event equipment rental",
58    "Kids party entertainment",
59    "Personal trainer","Home personal trainer","Online personal trainer",
60    "Massage therapist","Sports massage","Therapeutic massage",
61    "Relaxation massage","Lymphatic drainage massage",
62    "Nutritionist","Physical therapist",
63    "Hair stylist","Barber","Esthetician","Manicure and pedicure",
64    "Makeup artist","Eyelash extensions","Facial treatments","Hair removal",
65    "Tutoring","Language teacher","Music teacher",
66    "Math tutor","Computer tutor","Test prep",
67    "Dog sitter","Cat sitter","Dog walker","Pet groomer",
68    "Dog trainer",
69    "Lawyer","Accountant","Financial advisor",
70    "Notary","Tax consultant","Mortgage broker",
71    "Web developer","App developer","Graphic designer",
72    "Social media manager","SEO expert","Copywriter",
73    "Web designer","E-commerce developer","Digital marketing consultant",
74    "Video editor",
75    "Chauffeur service","Airport transfer","Courier",
76    "Freight transport","Car service",
77    "Interior designer","Architect","General contractor",
78    "Kitchen designer","Home stager",
79    "Tailor","Cobbler","Upholsterer","Furniture restorer",
80    "Curtain installer","Screen installer","TV antenna technician",
81    "Bicycle repair","Watch repair","Piano tuner"
82  ];
83
84  // 150 major US cities (all 50 states represented)
85  var P = [
86    "New York","Los Angeles","Chicago","Houston","Phoenix","Philadelphia","San Antonio","San Diego",
87    "Dallas","San Jose","Austin","Jacksonville","Fort Worth","Columbus","Charlotte","Indianapolis",
88    "San Francisco","Seattle","Denver","Washington DC","Nashville","Oklahoma City","El Paso","Boston",
89    "Portland","Las Vegas","Memphis","Louisville","Baltimore","Milwaukee","Albuquerque","Tucson",
90    "Fresno","Sacramento","Mesa","Kansas City","Atlanta","Omaha","Colorado Springs","Raleigh",
91    "Long Beach","Virginia Beach","Miami","Oakland","Minneapolis","Tampa","Tulsa","Arlington",
92    "New Orleans","Wichita","Cleveland","Bakersfield","Aurora","Anaheim","Honolulu","Santa Ana",
93    "Riverside","Corpus Christi","Lexington","Stockton","St. Louis","Pittsburgh","Cincinnati",
94    "Anchorage","Henderson","Greensboro","Plano","Newark","Lincoln","Orlando","Irvine",
95    "Toledo","Jersey City","Chula Vista","Durham","Laredo","Madison","Gilbert","Norfolk",
96    "Reno","Winston-Salem","Glendale","Hialeah","Garland","Scottsdale","Irving","Fremont",
97    "Boise","Richmond","Spokane","Des Moines","Montgomery","Fargo","Tacoma","Shreveport",
98    "San Bernardino","Grand Rapids","Huntsville","Salt Lake City","Birmingham","Rochester",
99    "Knoxville","Chattanooga","Providence","Savannah","Charleston","Little Rock",
100    "Baton Rouge","Sioux Falls","Hartford","Columbia","Tallahassee","Topeka",
101    "Jackson","Trenton","Cheyenne","Bismarck","Montpelier","Concord",
102    "Dover","Frankfort","Pierre","Harrisburg","Annapolis","Springfield",
103    "Lansing","Olympia","Salem","Carson City","Santa Fe","Helena",
104    "Juneau","Augusta","Burlington","Wilmington","Bridgeport","New Haven",
105    "Stamford","Syracuse","Buffalo","Albany","Yonkers","Worcester",
106    "Naples","Fort Lauderdale","St. Petersburg","Sarasota","Cape Coral","Daytona Beach",
107    "Scottsdale","Tempe","Chandler","Paradise","Henderson"
108  ];
109
110  // 20 keyword patterns
111  var T = [
112    "{p} {c}",
113    "{p} in {c}",
114    "best {p} {c}",
115    "cheap {p} {c}",
116    "emergency {p} {c}",
117    "{p} 24 hours {c}",
118    "{p} near me {c}",
119    "{p} cost {c}",
120    "free quote {p} {c}",
121    "{p} at home {c}",
122    "trusted {p} {c}",
123    "certified {p} {c}",
124    "{p} service {c}",
125    "find {p} {c}",
126    "hire {p} {c}",
127    "{p} reviews {c}",
128    "{p} prices {c}",
129    "professional {p} {c}",
130    "top rated {p} {c}",
131    "affordable {p} {c}"
132  ];
133
134  function shuffle(arr) {
135    var a = arr.slice();
136    for (var i = a.length - 1; i > 0; i--) {
137      var j = Math.floor(Math.random() * (i + 1));
138      var tmp = a[i]; a[i] = a[j]; a[j] = tmp;
139    }
140    return a;
141  }
142
143  function generateKeywords(count) {
144    var kws = [];
145    var cats = shuffle(C);
146    var provs = shuffle(P);
147    var pats = shuffle(T);
148    var numCats = Math.min(15, cats.length);
149    var numProvs = Math.min(12, provs.length);
150    var numPats = Math.min(8, pats.length);
151    for (var ci = 0; ci < numCats; ci++) {
152      for (var pi = 0; pi < numProvs; pi++) {
153        for (var ti = 0; ti < numPats; ti++) {
154          kws.push(pats[ti].replace('{p}', cats[ci]).replace('{c}', provs[pi]));
155        }
156      }
157    }
158    kws = shuffle(kws);
159    return kws.slice(0, count);
160  }
161
162  function injectKeywords() {
163    var lang = getLang();
164    // Activate for English OR default (kokobeo.com = English by default)
165    if (lang !== 'en' && lang !== '') return;
166    var existing = document.querySelector('meta[name="keywords"][data-source="seo-categories-us"]');
167    if (existing) existing.remove();
168    var keywords = generateKeywords(80);
169    var meta = document.createElement('meta');
170    meta.name = 'keywords';
171    meta.content = keywords.join(', ');
172    meta.setAttribute('data-source', 'seo-categories-us');
173    document.head.appendChild(meta);
174  }
175
176  if (document.readyState === 'loading') {
177    document.addEventListener('DOMContentLoaded', injectKeywords);
178  } else {
179    injectKeywords();
180  }
181
182  var obs = new MutationObserver(function(mutations) {
183    mutations.forEach(function(m) {
184      if (m.attributeName === 'lang') injectKeywords();
185    });
186  });
187  obs.observe(document.documentElement, { attributes: true });
188})();

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.