Kaip išbandyti savo svetainę naudojant „Google“ švyturį?

Naujas „Google“ įrankis yra išbandyti ir pateikti jums rekomendacijas, kaip pagerinti našumą, SEO, saugumą, geriausią praktiką ir prieinamumą.


Neseniai paleista „Google“ Švyturys, atvirojo kodo įrankis, skirtas jūsų svetainei tikrinti rankiniu būdu ir automatiškai.

Kokią metriką išbando „Google“ Švyturys?

Yra daugiau nei 75 metrikos jis patikrina ir suteikia bendrą rezultatą. Kai kurie iš šių populiarių, kurie jus gali sudominti kaip svetainės savininkas, SEO analitikas, žiniatinklio valdytojai.

  • Spektaklis – laikas interaktyviam, delsos, greičio indeksas, išteklių optimizavimas, TTFB, turto pateikimas, scenarijų vykdymo laikas, DOM dydis ir kt..
  • SEO – Patogus mobiliesiems, meta, nuskaitymas, kanoninis, struktūra ir kt.
  • Geriausia praktika – Vaizdo optimizavimas, JS bibliotekos, naršyklės klaidų registravimas, prieinamas per HTTPS, žinomi JS pažeidžiamumai ir kt.
  • Prieinamumas  – Puslapio elementai, kalba, ARIA atributai ir kt.
  • PWA (Pažangi žiniatinklio programa) – nukreipkite HTTP į HTTPS, atsakymo kodas gerai, greitas įkėlimas 3G, splash screen, viewport ir kt..

Tai puikus įrankis, kurį galite naudoti keliais būdais.

Tai teisinga – tiek daug būdų. Jei esate kūrėjas, galite naudoti jį kartu su Node.js, norėdami atlikti testą programiškai. Rinkoje jau yra nedaug įrankių, kuriuos naudoja „Švyturys“ ir kurie siūlo nuolatinę svetainės veikimo stebėseną.

Sužinokime, kaip jūsų svetainėje atliekamas švyturio bandymas.

Pradėkite nuo paprasčiausio.

Išmatuoti pagal web.dev

„Google“ po kelių mėnesių išleido „web.dev“ ir sulaukė didelio populiarumo. Testuoti internete lengva.

Eiti į Išmatuoti puslapį ir įveskite URL, kad galėtumėte atlikti auditą. Tai užtruks keletą sekundžių, ir jūs turėtumėte pamatyti išsamią ataskaitą su bendru balu.

Rezultatai taip pat rodo sėkmės metrikos testą, kuris taip gerai atliktas atliktų auditų metu, ir darbas su tais, kuriems reikia skirti dėmesio.

Negailėkite daug laiko, kad gautumėte 100. Net „Google“ svetainės to nevertina.

Laikykite juos gairėmis ir stenkitės patobulinti kiek galite.

Pastaba: web.dev mėgdžioja testą naudodamas mobilųjį įrenginį. Rašydamas nematau galimybės išbandyti naudojant darbalaukį..

„Chrome“

Ar žinote, kad „Švyturys“ yra jūsų „Chrome“ naršyklėje? Puiki žinia yra ta, kad galite pasirinkti išbandyti naudodami mobilųjį arba darbalaukį. Tai galima rasti kūrėjų įrankiuose.

  • Atidarykite „Chrome“ naršyklę
  • Prieikite prie savo svetainės ir išbandykite
  • Atidarykite kūrėjo įrankius (paspauskite F12, jei naudojate „Windows“) arba dešiniuoju pelės mygtuku spustelėkite puslapį ir spustelėkite Patikrinti
  • Eikite į auditų skirtuką

Kaip matote aukščiau, turite galimybę pasirinkti, ką norite išbandyti. Tai puiku, nes galite susikoncentruoti į savo tikslą ir greičiau gauti audito rezultatus.

Rezultatai atrodo ir atrodo „Chome“ ir „web.dev“ yra beveik panašūs.

Bet jei atidžiai pažvelgsite, čia yra viena papildoma metrikos grupė – Pažangi žiniatinklio programa. Taigi dar viena priežastis atlikti auditą naudojant „Chrome“.

Node.js

Švyturį galima įsigyti kaip mazgo modulį. Galite jį įdiegti savo serveryje ir naudoti programiškai arba komandų eilutėje. Greitai patikrinkime, kaip įdiegti „Švyturį“, kad būtų galima atlikti testą.

Švyturio įrengimas Ubuntu 18.x

Aš išbandžiau šiuos dalykus „DigitalOcean“ serveris. Švyturiui reikalingas mazgas LTS 8.9 arba naujesnė versija, ir aš manau, kad jūs jį jau įdiegėte. Jei ne, žiūrėkite šį „Node.js“ diegimo vadovą.

Jums taip pat reikės chromo naršyklė būti įdiegtas serveryje. Čia aprašiau montavimo instrukcijas.

Kaip ir kitus modulius, švyturio įrengimas yra paprastas.

  • Prisijunkite prie savo serverio
  • Norėdami įdiegti, paleiskite šią komandą

npm įdiegti -g švyturys

Aš čia naudoju -g, kad jis būtų įdiegtas kaip globalus modulis.

[apsaugotas el. paštu]: ~ # npm įdiegti švyturį
/ usr / šiukšliadėžė -> /usr/lib/node_modules/lighthouse/lighthouse-cli/index.js
/ usr / bin / chrome-debug -> /usr/lib/node_modules/lighthouse/lighthouse-core/scripts/manual-chrome-launcher.js

> [apsaugotas el. paštu] postinstall / usr / lib / node_modules / Švyturys / node_modules / ax-core
> mazgas statyti / utils / postinstall.js

+ [apsaugotas el. paštu]
pridėjo 179 paketus iš 119 bendraautorių per 10 094 s
[apsaugotas el. paštu]: ~ #

Įdiegę paleiskite švyturio komandą, kad įsitikintumėte, jog jis tinkamai įdiegtas.

[apsaugotas el. paštu]: ~ # švyturys
Pateikite URL

Nurodykite – help for galimas parinktis
[apsaugotas el. paštu]: ~ #

Gerai, švyturys yra pasirengęs atlikti auditą. Pabandykime keletą bandymo variantų.

Norėdami atlikti testą naudodami naršyklę be galvos

švyturio URL – chromo vėliavos ="–be galvos"

Turite pateikti absoliutų URL, įskaitant http arba https.

Pvz .:

[apsaugotas el. paštu]: ~ $ švyturys https://geekflare.com – chromo vėliavos ="–be galvos"
„ChromeLauncher“ laukia naršyklės. + 0ms
„ChromeLauncher“ laukia naršyklės … + 1ms
„ChromeLauncher“ laukia naršyklės ….. + 511ms
„ChromeLauncher“ laukia naršyklės ….. ✓ + 2ms
būsena Prisijungimas prie naršyklės + 176 ms
būsena Atstatoma būsena maždaug: tuščia + 24ms
statuso palyginimo mašina + 30ms
būsena inicijuojama… + 508ms
statusas Įkeliamas puslapis & laukia įkėlimo Skriptai, CSSUsage, peržiūros sritis, ViewportDimensions, ThemeColor, manifeste RuntimeExceptions, ChromeConsoleMessages, ImageUsage, prieinamumas, LinkElements, AnchorsWithNoRelNoopener, AppCacheManifest, Dokumento tipo, DOMStats, JSLibraries, OptimizedImages, PasswordInputsWithPreventedPaste, ResponseCompression, TagsBlockingFirstPaint, MetaDescription, FontSize, CrawlableLinks, MetaRobots , „Hreflang“, „EmbeddedContent“, „Canonical“, „RobotsTxt + 27ms“
būsena Gavimas puslapyje: Skriptai + 2
būsena Gavimas puslapyje: CSSUsage + 0ms
būsena Gavimas puslapyje: peržiūros sritis + 0ms
būsena Gavimas puslapyje: „ViewportDimensions“ + 0ms
būsena Gavimas puslapyje: „ThemeColor“ + 0ms
būsena Gavimas puslapyje: Manifestas + 0ms
būsena Gavimas puslapyje: „RuntimeExmissions“ + 0ms
būsena Gaunamas puslapis: „ChromeConsoleMessages“ + 0 ms
būsena Gavimas puslapyje: „ImageUsage“ + 0ms
būsena Gavimas puslapyje: Prieinamumas + 0 ms
būsena Gavimas puslapyje: „LinkElements“ + 0 ms
būsena Gavimas puslapyje: AnchorsWithNoRelNoopener + 1ms
būsena Gavimas puslapyje: „AppCacheManifest“ + 0ms
būsena Gaunama puslapyje: „Doctype“ + 0ms
būsena Gavimas puslapyje: DOMStats + 0ms
būsena Gavimas puslapyje: JSLibraries + 0ms
būsena Gavimas puslapyje: „OptimizedImages“ + 0ms
būsena Gaunama puslapyje: „PasswordInputsWithPreventedPaste + 0ms“
būsena Gaunama puslapyje: „ResponseCompression“ + 0ms
būsena Gavimas puslapyje: TagsBlockingFirstPaint + 0ms
būsena Gavimas puslapyje: „MetaDescription“ + 0ms
būsena Gavimas puslapyje: „FontSize“ + 0ms
būsena Gavimas puslapyje: „CrawlableLinks“ + 0ms
būsena Gaunama puslapyje: „MetaRobots“ + 0ms
būsena Gaunama puslapyje: „Hreflang“ + 0ms
būsena Gavimas puslapyje: „EmbeddedContent“ + 0ms
būsena Gavimas puslapyje: „Canonical“ + 0ms
būsena Gavimas puslapyje: RobotsTxt + 0ms
būsena Gaunamas pėdsakas + 1ms
statusas Gaunami devtoolsLog & tinklo įrašai + 110ms
būsenos gavimas: scenarijai + 27 ms
būsenos gavimas: CSSUsage + 53ms
būsenos gavimas: peržiūros sritis + 192 ms
būsenos gavimas: „ViewportDimensions“ + 5ms
būsenos gavimas: „ThemeColor“ + 13ms
būsenos gavimas: manifestas + 2ms
būsenos gavimas: „RuntimeExmissions“ + 295 ms
būsenos gavimas: „ChromeConsoleMessages“ +1 ms
būsenos gavimas: „ImageUsage“ + 2ms
būsenos gavimas: pritaikymas neįgaliesiems + 22ms
būsenos gavimas: „LinkElements“ + 526 ms
būsenos gavimas: AnchorsWithNoRelNoopener + 10ms
būsenos gavimas: „AppCacheManifest + 6ms“
būsenos gavimas: „Doctype“ + 20ms
būsenos gavimas: DOMStats + 4ms
būsenos gavimas: JSLibraries + 50ms
būsenos gavimas: „OptimizedImages“ + 25 ms
būsenos gavimas: „PasswordInmissionsWithPreventedPaste“ + 234 ms
būsenos gavimas: „ResponseCompression“ + 3ms
būsenos gavimas: TagsBlockingFirstPaint + 7ms
būsenos gavimas: „MetaDescription“ + 6ms
būsenos gavimas: „FontSize“ + 7ms
būsenos gavimas: nuskaitytinos nuorodos + 245 ms
būsenos gavimas: „MetaRobots“ + 6ms
būsenos atkūrimas: „Hreflang“ + 2ms
būsenos gavimas: „EmbeddedContent“ + 2ms
būsenos gavimas: „Canonical“ + 3ms
būsenos gavimas: „RobotsTxt“ + 6ms
būsena Atstatoma būsena maždaug: tuščia + 19ms
statusas Įkeliamas puslapis & laukiama, kol bus įkeltas „ServiceWorker“, neprisijungęs, „StartUrl“ + 24ms
būsena Gavimas puslapyje: „ServiceWorker“ + 59 ms
būsena Gaunamas puslapis: Neprisijungęs + 0ms
būsena Gavimas puslapyje: „StartUrl“ + 1ms
statusas Gaunami „devtoolsLog“ & tinklo įrašai + 0ms
būsenos gavimas: „ServiceWorker“ + 2ms
būsenos gavimas: neprisijungęs + 1ms
būsenos gavimas: „StartUrl“ + 1ms
būsena Atstatoma būsena maždaug: tuščia + 5ms
statusas Įkeliamas puslapis & laukia „HTTPRedirect“ įkėlimo, HTMLWithoutJavaScript + 48ms
būsena Gaunama puslapyje: „HTTPRedirect“ + 260 ms
būsena Gavimas puslapyje: HTMLWithoutJavaScript + 0ms
statusas Gaunami „devtoolsLog“ & tinklo įrašai + 0ms
būsenos gavimas: „HTTPRedirect“ + 7 ms
būsenos gavimas: HTMLWithoutJavaScript + 12ms
būsena Atsijungiama nuo naršyklės … + 7ms
statusas Audito analizė ir vykdymas … + 6ms
būsena vertinama: naudoja HTTPS + 3ms
būsena vertinama: peradresuoja HTTP srautą į HTTPS + 24ms
būsena vertinama: registruoja aptarnaujantį darbuotoją, kuris kontroliuoja puslapį ir pradžios_url + 1ms
būsenos vertinimas: dabartinis puslapis reaguoja su 200, kai neprisijungęs + 0 ms
būsena vertinama: turi “ žymą su `pločiu` arba` pradine skale ‘+ 1ms
būsena vertinama: Yra tam tikro turinio, kai „JavaScript“ nėra. +1ms
statusas Vertinamas: pirmasis turinys dažams + 6ms
būsena Vertinama: Pirmasis prasmingas dažas + 54ms
būsena Įvertinama: Puslapiai įkeliami pakankamai greitai mobiliuosiuose tinkluose + 10 ms
būsena vertinama: greičio indeksas + 33ms
būsena Vertinama: Ekrano kopijos miniatiūros + 529 ms
būsena Vertinama: Galutinis ekrano vaizdas + 287 ms
būsena vertinama: numatomas įvesties delsos laikas + 2ms
būsena vertinama: Į konsolę neįrašytos jokios naršyklės klaidos + 16 ms
būsena vertinama: serverio reakcijos laikas yra trumpas (TTFB) + 1ms
būsena Vertinama: Pirmasis procesoriaus tuščiosios eigos laukimas + 1ms
būsena vertinama: laikas interaktyviam + 30ms
būsena vertinama: Vartotojo laiko žymės ir matmenys + 0ms
būsena vertinama: Sumažinkite kritinių užklausų gylį + 2ms
būsena vertinama: venkite kelių puslapių peradresavimų + 3ms
būsena vertinama: žiniatinklio programos manifestas atitinka diegimo reikalavimus + 2ms
būsena vertinama: sukonfigūruota pritaikytam splash screen + 1ms
būsena vertinama: nustato adreso juostos temos spalvą + 0ms
būsena vertinama: turinio dydis yra tinkamas peržiūros srities + 1ms
būsena vertinama: atvaizdai rodomi tinkamu kraštinių santykiu + 0ms
būsena vertinama: išvengiama pasenusių API + 1 ms
būsena Įvertinama: Sumažinamas pagrindinių gijų darbas + 0ms
būsena Įvertinama: „JavaScript“ vykdymo laikas + 11ms
būsena vertinama: iš anksto įkelkite klavišų užklausas + 3ms
būsena vertinama: iš anksto prijunkite prie reikalingų ištakų + 2ms
būsena vertinama: visas tekstas lieka matomas, kai žiniatinklio šriftas įkeliamas + 2ms
būsena vertinama: tinklo užklausos +1ms
būsena Vertinama: Metrika + 2ms
būsena vertinama: start_url reaguoja su 200, kai neprisijungęs +1
būsena Įvertinama: Svetainė veikia keliose naršyklėse + 1ms
būsena vertinama: Puslapių perėjimai nejaučiami kaip blokuojami tinkle + 0ms
būsena vertinama: kiekvieno puslapio URL yra + 0 ms
būsena vertinama: `[aria – *]` atributai atitinka jų vaidmenis +1ms
būsena vertinama: `[vaidmuo]` visi turi `[aria – *]` atributus +1ms
būsena vertinama: Yra elementų, turinčių „[vaidmuo]“, kuriems reikalingi konkretūs vaikai „[vaidmuo]“, + 0ms
būsena vertinama: „[vaidmuo]“ yra jų reikalaujamas pirminis elementas + 1ms
būsena vertinama: „[vaidmuo]“ vertės galioja + 1ms
būsena vertinama: `[aria – *]` atributai turi galiojančias reikšmes + 0ms
būsena vertinama: `[aria – *]` atributai galioja ir nėra klaidingai parašyti + 1ms
būsena vertinama: “ elementuose yra “ elementas su `[kind ="antraštes"] `+ 1ms
būsena vertinama: mygtukai turi prieinamą pavadinimą +1ms
būsena vertinama: Puslapyje yra antraštė, praleidžiama nuoroda arba orientyro sritis + 1ms
būsena vertinama: fono ir priekinio plano spalvos turi pakankamą kontrasto santykį + 1ms
būsena vertinama: “ ‘yra tik tinkamai išdėstytos “ ir “ grupės, “ arba “ elementai. +1ms
būsena vertinama: apibrėžimų sąrašo elementai suvynioti į “ elementus + 0ms
būsena vertinama: dokumentas turi “ elementą + 1ms
būsena vertinama: `[id]` atributai puslapyje yra unikalūs + 1ms
būsena vertinama: “ arba “ elementai turi pavadinimą +1ms
būsena vertinama: “ elementas turi `[lang]` atributą + 0ms
būsena vertinama: “ elemento reikšmė atributo `[lang ]` + 1ms galioja
būsena vertinama: Vaizdo elementai turi `[alt]` atributus +1ms
būsena vertinama: “ elementai turi `[alt]` tekstą + 1ms
būsena vertinama: formos elementai turi susietas etiketes + 0ms
statusas vertinamas: Presentacinis `

`elementai vengia naudoti` `,` `arba` [santrauka] `atributą. +1ms
būsena vertinama: Nuorodos turi aiškų pavadinimą +1ms
būsena vertinama: sąrašuose yra tik `
  • `elementai ir scenarijus palaikantys elementai (` `ir` `). +1ms
    būsena vertinama: išvardyti elementus (
  • “) yra”
      `arba`
        pradiniai elementai + 1ms
        būsena vertinama: dokumente nenaudojami “ + 0ms
        būsena vertinama: „[vartotojo mastelio ="ne"] `nenaudojamas elemente` `ir atributas` [maksimali skalė] `yra ne mažesnis kaip 5. + 1ms
        būsena vertinama: “ elementai turi `[alt]` tekstą + 1ms
        būsena vertinama: Nei vieno elemento vertė „[tabindex]“ yra didesnė nei 0 + 1ms
        būsena vertinama: langeliai `
  • elementas, kuris naudoja atributą `[antraštės]`, nurodo tik kitus tos pačios lentelės langelius. +1ms
    būsena vertinama: “ elementai ir elementai su `[role ="stulpelio vadovas"/"eiliuotojas"] `turi aprašomus duomenų langelius. + 0ms
    būsena vertinama: `[lang]` atributų galiojanti reikšmė yra + 1ms
    būsena vertinama: “ elementuose yra “ elementas su `[kind ="antraštes"] `+ 1ms
    būsena vertinama: “ elementuose yra “ elementas su `[kind ="apibūdinimas"] `+ 1ms
    būsena vertinama: `[accesskey]` reikšmės yra unikalios +1ms
    būsena vertinama: pasirinktiniai valdikliai turi susietas etiketes + 0 ms
    būsena vertinama: pasirinktiniai valdikliai turi ARIA vaidmenis + 1 ms
    būsena vertinama: Vartotojo dėmesys nėra atsitiktinai įstrigęs regione + 0ms
    būsena Įvertinama: Interaktyvūs valdikliai sufokusuojami į klaviatūrą + 0ms
    būsena Įvertinama: Antraštės nepraleidžia lygių + 0ms
    būsena vertinama: Interaktyvūs elementai nurodo jų paskirtį ir būseną + 1ms
    būsena vertinama: puslapyje yra logiška skirtukų tvarka + 0ms
    būsena vertinama: vartotojo dėmesys nukreiptas į naują turinį, pridėtą prie puslapio + 1ms
    būsena vertinama: ekrano turinys paslėptas nuo pagalbinių technologijų + 0 ms
    būsenos vertinimas: HTML5 orientyrų elementai naudojami pagerinti navigaciją + 0ms
    būsena vertinama: Vizualinė tvarka puslapyje atitinka DOM užsakymą + 0ms
    būsena vertinama: naudoja efektyvią talpyklos strategiją statiniams ištekliams +1ms
    būsena Įvertinama: išvengiama milžiniškų tinklo apkrovų + 3ms
    būsena vertinama: atidėkite išorinius ekrano vaizdus + 1ms
    būsena vertinama: Pašalinkite renderį blokuojančius išteklius + 12ms
    būsena vertinama: sumažinkite CSS + 28ms
    būsena vertinama: Sumažinkite „JavaScript“ + 64ms
    būsena vertinama: atidėkite nenaudojamą CSS + 69ms
    būsena vertinama: pateikite vaizdus kito formato formatais + 12 ms
    būsena vertinama: Efektyviai koduojami vaizdai + 11ms
    būsena vertinama: įgalinti teksto glaudinimą + 6ms
    būsena vertinama: Tinkamo dydžio vaizdai + 6ms
    būsena vertinama: naudokite vaizdo įrašo formatus animaciniam turiniui + 7 ms
    būsena vertinama: vengiama programos talpyklos + 11ms
    būsena vertinama: Puslapyje yra HTML dokumento tipas + 0ms
    būsena vertinama: Vengiama per didelio DOM dydžio + 1ms
    būsena vertinama: nuorodos į kryžminės kilmės vietas yra saugios + 2ms
    būsena vertinama: vengiama reikalauti geografinės padėties leidimo, kai puslapis įkeliamas + 1ms
    būsena Įvertinama: Vengiama `document.write ()` + 0ms
    būsena Įvertinama: Vengiama „JavaScript“ bibliotekų, turinčių žinomų saugos spragų + 0 ms
    būsena vertinama: aptiktos „JavaScript“ bibliotekos + 9ms
    būsena vertinama: vengiama reikalauti pranešimo leidimo įkeliant puslapį + 1ms
    būsena vertinama: leidžia vartotojams įklijuoti į slaptažodžio laukus + 0ms
    būsena vertinama: naudoja HTTP / 2 savo ištekliams + 0ms
    būsena vertinama: pasyviems klausytojams naudojama norint pagerinti slinkties našumą + 1ms
    būsena vertinama: dokumente yra meta aprašymas + 0ms
    būsenos vertinimas: Puslapis turi sėkmingą HTTP būsenos kodą + 1ms
    būsena vertinama: dokumente naudojami įskaitomi šrifto dydžiai + 5ms
    būsena vertinama: nuorodose yra aprašomasis tekstas + 1 ms
    būsena Įvertinama: Puslapis nėra užblokuotas norint indeksuoti +1ms
    būsena Įvertinama: robots.txt galioja + 2ms
    būsena vertinama: dokumente galiojantis „hreflang“ + 1ms
    būsena vertinama: dokumente išvengiama papildinių + 1 ms
    būsena vertinama: dokumentas turi galiojantį „rel = canonical“ + 0ms
    būsena Vertinama: Puslapis patogus mobiliesiems + 1ms
    būsena vertinama: struktūrizuoti duomenys galioja + 0ms
    būsena generuojami rezultatai … + 0ms
    „ChromeLauncher Killing Chrome“, pvz., 7098 ir 59 ms
    Spausdintuvo html išvestis parašyta /home/chandan/geekflare.com_2019-01-20_19-29-35.report.html + 46ms
    CLI Protip: paleiskite švyturį naudodami `–view`, kad iškart atidarytumėte HTML ataskaitą savo naršyklėje + 1ms

    Antroje paskutinėje eilutėje galite pamatyti, kad ji atspausdino kelią, kuriame galiu rasti ataskaitą. Pagal numatytuosius nustatymus ji sugeneruos HTML formato ataskaitą, kurią galėsite peržiūrėti atsisiuntę į savo kompiuterį arba pateiksite ją per tam tikrą interneto serverį..

    O kas, jei turite sugeneruoti ataskaitą JSON formatas?

    Tai galima atlikti taip.

    švyturio URL – chromo vėliavos ="–be galvos" –output json – output-path URL.json

    Naudodamiesi „Švyturio CLI“, jūs galite visiškai valdyti, kaip norite. Aš labai rekomenduočiau patikrinti „GitHub“ saugykla Norėdami sužinoti daugiau apie CLI naudojimą arba programiškai.

    Išvada

    „Google“ Švyturys atrodo perspektyvus įrankis atlikti tęstinumo testą, siekiant pagerinti svetainės našumą ir patogumą. Jei naudojate „WordPress“ ir norite, kad jūsų svetainė būtų greičiau įkeliama, tada patikrinkite Raketa.

    Jeffrey Wilson Administrator
    Sorry! The Author has not filled his profile.
    follow me
      Like this post? Please share to your friends:
      Adblock
      detector
      map