Emmanuel OrtaVSNARY
Arvada · DenverBook a consult

VSNARY is my creator name. Emmanuel Orta is my birth name.

I'm Emmanuel Orta, and VSNARY is my creator name. I am a digital marketing consultant: I get businesses found by Google, by Google Maps and by the answer engines — ChatGPT, Claude, Perplexity — and I built CrawlCheck, the verification layer for the agentic web: one signed answer about any site that an AI agent can check before it reads, cites or acts, and a free A–F audit any site owner can run. I learned the work on my own money, on a network of Denver home-service brands I own and rank myself, not on a client's. The second thing I do is conservation: I keep and breed threatened reptile species, and I document them where the record is public — Wikimedia Commons, Wikidata, a lineage registry with accession numbers.

This page is a record rather than a pitch. Every claim below is followed by the place you can go and check it, and where a credential would have helped me and I do not have one, it is simply not here. That constraint removed the testimonials, the award badges and the invented statistics — and it is the only reason the rest is worth reading.

The stack this is actually built and measured with

Cloudflare WorkersWordPressGoogle Business ProfileGoogle Search ConsoleAhrefsSemrushCloudwaysWooCommerceStripeServer access logsSchema.org JSON-LD
I.ConsultingDigital marketing · four levers

Digital marketing, measured rather than promised.

I am a digital marketing consultant for businesses that want to be found — in Google, on Google Maps and in the answer engines people now ask instead of searching. Four levers, no more: each one is something I do inside my own companies first, every week, and then for yours.

Where a customer finds a business in 2026: Google search, Google Maps, and the answer engines, all reading the same site and the same machine layer Google searchpages that rank for the job Google Mapsthe Business Profile, aligned Answer enginesChatGPT · Claude · Perplexity your sitewhat each crawler is handed machine files · robots, sitemap, llms.txtstructured data · one entity, one @idthe record · measured, dated, re-checked Three surfaces, one site. The work is making the site say the same true thing to all three, and proving it.
Three surfaces, one site. Search, Maps and the answer engines all read the same page and the same machine layer — the consulting is making those agree, then measuring it.

Crawler and answer-engine visibility

What ChatGPT, Claude, Perplexity and Google actually receive from your site — not whether they can reach it, but what it costs them to read it, and whether the answer differs by who is asking. Measured from outside, and from your access logs when you can give me them.

Local search and Google Business Profile

Profiles rebuilt and kept aligned with the site — categories, services, hours, the fields an assistant is actually asked for. At multi-location scale, where the usual failure is fifteen declared entities and one real listing.

Structured data and entity graphs

The errors validators pass: a sameAs array that claims your business is fourteen cities, two nodes sharing one identifier, a keyword list where a topic graph should be. Every value legal, the meaning wrong.

Building the instrument

When the measurement does not exist, I build it. CrawlCheck, SpeciesVault and CredentialRecord all started as something I needed for my own work and could not buy. Cloudflare Workers, WordPress, and whatever the job actually requires — so a consulting engagement comes with its own instrument, not a slide about one.

II.The personArvada and Denver · both, really

One name, one person behind it.

Emmanuel Orta lives between Arvada and Denver — both, really. VSNARY is his creator name: one name for the businesses, the sites and the software, and one person behind it.

A working day is three things in whatever order the day demands: creating, self-improvement, and the care and maintenance of the animals. He started six or seven years ago with a single site, treeservicedenverllc.com, and built outward from it.

What he is proud of is not a number. It is the person he has become: someone who never needs to work a job, because he creates them.

III.The registerTwelve entries · twelve live

Everything I operate, with the URL next to it.

This is the portfolio, and it is also the consulting portfolio: every ranking, profile and machine layer here I built and hold myself. No logos, no “trusted by”, no client names. Each row is a live site you can open, score with any tool you like, and judge for yourself.

Map of the register: one operator, three kinds of asset, twelve entries VSNARY · one operator Instrumentsbuilt because none existed Conservation & commercebred here, documented Tradeseight brands, owned outright crawlcheck.io · verification layer, API, SDKs, open dataset extension · core · Chrome Web Store · GitHub, MIT credentialrecord.com · dated credential lookups speciesvault · lineage registry, Darwin Core terrariumstation.com · threatened species, bred and recorded tree · treeservicedenverllc.com · arvadatreeservicellc.com fencing · Denver · Lakewood · Arvada concrete · supremeconcreteco.com excavation · supremeexcavationdenver.com landscaping · supremelandscapersdenver.com
Twelve entries, three kinds. Everything on the right is a row in the ledger below, and every row has a URL that is re-checked hourly.
Properties held and operatedVerified 2026-10-18 23:36 UTC · re-checked hourly from the edge
№EntityWhat it doesDomainState
01CrawlCheckSoftwareThe verification layer for the agentic web: signed answers for agents, a free A–F audit for sites, an open dataset.crawlcheck.iolive02CredentialRecordRegisterPublic register of dated credential lookups. Four live resolvers.credentialrecord.comlive03Terrarium StationCommerceRare reptiles and invertebrates, bred here. Bioactive supplies.terrariumstation.comlive04SpeciesVaultRegistryLineage register — accession numbers, derived generation, Darwin Core export.terrariumstation.com/nature-databaselive05Tree Service DenverHome serviceRemoval, trimming, stump grinding. Crew run by Eric Petruska.treeservicedenverllc.comlive06Arvada Tree ServiceHome serviceTree care across the northwest metro.arvadatreeservicellc.comlive07Supreme Fencing DenverHome serviceFence installation and repair, Denver.supremefencingdenver.comlive08Supreme Fencing LakewoodHome serviceInstallation, repair, staining and refinishing.supremefencinglakewood.comlive09Supreme Fencing ArvadaHome serviceFence installation and repair, Arvada.supremearvadafencing.comlive10Supreme Concrete COHome serviceFlatwork, driveways, foundations.supremeconcreteco.comlive11Supreme Excavation & Septic LLCHome serviceExcavation and septic, Denver metro.supremeexcavationdenver.comlive12Supreme Landscapers DenverHome serviceLandscape design and installation.supremelandscapersdenver.comlive
Every “live” row answered the edge check stamped above. The check runs again the first time the page is opened after that stamp turns an hour old, and a row that stops answering reads “down” with its status code.12 entries
IV.The venturesFive things I am inside of every week

Not a portfolio of work. A portfolio of businesses.

These aren't logos on a wall. They're companies I am inside of every week — building, ranking and tightening the systems until they compound.

CrawlCheck · software · live

What an answer engine is handed, measured from outside your network.

ChatGPT, Claude, Perplexity and Google all send crawlers. Almost nobody checks what those crawlers were actually given. I built CrawlCheck because I needed the answer for my own sites and no tool would tell me.

It sends fifteen client identities to a homepage from one address inside one second and keeps every reply — status, bytes, content type, cache header — then reads the machine files, the structured data and the delivered HTML across 38 sections, 24 of them scored. The most common serious finding so far is a file returning 200 to every crawler while serving a verification page instead of the content.

How one scan works: fifteen crawler identities sent from one address inside one second, and what each one was handed GooglebotGPTBotClaudeBotPerplexityBotBingbotApplebotCCBota browser… fifteen in all one addressone second your edgeCDN · WAF · cache 200 · 71 KB · htmlthe page, readable text 200 · 12 KB · htmla “one moment” challenge, cached 403 · 0 KBrefused outright Same second, same address — so a difference between replies is the edge deciding, not the internet being busy.

The scan is free and stays free. What costs money is the record: a dated series that says what changed, which a single fetch can never produce after the fact. Plans run from $29 to $249 a month, with a Network tier from $690, priced by how many domains you keep a record of, and every report is hashed and anchored to Bitcoin daily so the record can be proved rather than remembered.

What the open dataset finds most often3,129 scans · 52 finding codes · read 2026-10-07 01:28 UTC
NO_LLMS_TXT96830.9%
PAGE_IS_MOSTLY_CODE91529.2%
MACHINE_CHAIN_HEAVY55917.9%
STALE_CACHE_SERVED54917.5%
ROBOTS_RULES_SHADOWED41813.4%
HSTS_MISSING2899.2%
ROBOTS_NO_SITEMAP2819.0%
NO_SITEMAP_FOUND2728.7%
4,111scans published in the open dataset
27.3%carry a high or critical finding
30.9%publish no llms.txt at all
CredentialRecord · register

Is that licence claim actually true?

Websites say “licensed, insured, certified” by default — increasingly because a model wrote the page and nobody read it back. There is no public place to check the claim against the register that issues it.

CredentialRecord publishes the lookup, never the conclusion: the claim as published, the registry consulted, what it returned, and the date. No business can ever pay for an outcome.

4live resolvers — ISA directory, Colorado SOS, Denver tree list, Colorado DORA
1record published — the site says so itself
Home service · eight brands

Eight Denver-metro trade brands, owned outright.

Tree, fencing, concrete, excavation, landscaping. I own the domains, the rankings and the phone numbers; crews do the work and get paid for it. This is not a client roster — it is a portfolio.

Lead generation is the half I am good at and the half that is cheap to replicate. Capacity is what decides how much of it turns into money. A ranked site attached to a crew that answers the phone is worth many times the same site attached to nobody, and I have run both.

8trade brands, listed above with URLs
0retainers holding it together
Terrarium Station · commerce

Rare species, bred here, documented properly.

A specialty breeder of reptiles and invertebrates raised in bioactive setups. Low volume, high value, mostly referred — the sort of trade where a buyer is paying as much for the record as for the animal.

My photographs illustrate the Wikipedia articles for Gonatodes daudini (on six language Wikipedias, Wikispecies and Wikidata) and Cnemaspis chanthaburiensis. Terrarium Station is named as the collection in the daudini infobox on English Wikipedia, and on the Commons file record. The images themselves were adopted by editors I have no connection to, on wikis I do not edit — which is why that use is worth more than anything I could write about myself.

18Wikimedia pages carrying my photographs, across 8 projects
1infobox naming Terrarium Station as the source
SpeciesVault · registry

Who bred what, from whom, provably.

An F-number means nothing unless the chain behind it exists. Most of this trade runs on a claim in a forum post: someone says an animal is F3 and there is no way on earth to check it.

SpeciesVault gives every animal an accession number, links sire and dam as records rather than as text, and derives the generation by walking that chain. A number that cannot be derived renders differently and says so. It exports Darwin Core, so an institution can read it without asking me for anything.

Derivednot typed in by the seller
Publicthe record stays up after the animal is sold
CrawlCheck · the family · every part links

One signed answer, thirteen surfaces around it.

The measurement is the centre: a site fetched as fifteen client identities, GPTBot, ClaudeBot, PerplexityBot and Googlebot among them, its machine files, crawl policy and declared capabilities read, findings decided by published rules, and the answer signed so an agent can verify it offline before it reads, cites, connects or acts. Around it sit the things built because the measurement kept needing them — a second vantage from your own browser, the open core, an API and SDKs, a glossary, a library of dated findings, and the monitoring that turns one measurement into a record. Each one below is a link, and the counts are read live.

The CrawlCheck family: the signed measurement at the centre, and the thirteen surfaces built around itcrawlcheck.iothe verification layer38 sections · 24 scoredBrowser extension · Chrome Web Store · the second vantagecrawlcheck-core · MIT, v0.5.0, CI passingAPI · one signed answer per domain, no key neededGlossary · 768 terms, each with its limitsLibrary · 97 findings · sixty-seven guidesOpen dataset · 4,111 scans, recomputed on requestDirectory · vendors measured on their own sitesWatch · the dated record, from $29 a monthWatch Intelligence · competitor and market monitoringProof · daily digests anchored to BitcoinTrust center · retention, headers, mail authDE · FR · ES · PT · the site in four languagesMobile app · in build; tokens served live
Every leaf is a link. The counts — sections, terms, findings, guides, scans, the core version and its CI state — are read from the sources hourly and never typed.
V.ConservationThreatened species · public records

Conservation is the second thing I do. It started with two green anoles.

Two green anoles from a PetSmart, at eight years old. The collection came first and the business came after; Terrarium Station is a lifestyle that was turned into a company, not a company that acquired a hobby. What it became is a conservation practice: threatened species kept and bred in captivity, each animal on a lineage register with an accession number, and the photographs placed where the public record lives.

The register behind it is SpeciesVault: accession numbers, derived generation, Darwin Core export — the same fields a museum collection carries, applied to a living one. The photographs go to Wikimedia Commons under one account, Vsnary, where Eight of them are in use on 18 pages across 9 projects, re-counted hourly from the Commons API.

Some of the animals in it are the only photographs of their species on Wikimedia Commons. On 9 September 2026 he published the first photograph of a Gonatodes daudini hatchling recorded on Wikimedia Commons, Wikidata, iNaturalist or GBIF — a Critically Endangered gecko, hatched here, photographed minutes old on a fingertip. It is now the species’ juvenile image on Wikidata and in its Wikipedia article. Those are the claims in this section that are not his own word, and each is checkable at the link.

Species in the collection, with the status the IUCN gives each one, read from Wikidata. “Bred here” is stated only where it is true.
SpeciesIUCN statusProvenanceRecord
Gonatodes daudiniUnion Island geckoCritically Endangeredbred here · first hatchling image on recordQ3110413
Phelsuma klemmeriNeon day geckoEndangeredbred hereQ882598
Correlophus ciliatusCrested geckoVulnerablebred hereQ24276246
Varanus kordensisBiak tree monitorData Deficientcaptive-bredQ2013825
Gekko pradapdaoNot assessed—Q107283404
Cnemaspis chanthaburiensisChanthaburi rock geckoLeast Concernbreeding pair, hatched hereQ2980830
Gonatodes annularisAnnulated geckoLeast Concern—Q3110407
Gehyra marginataHalmahera giant geckoLeast Concern—Q3100138
Chlamydosaurus kingiiFrilled dragonLeast Concerncaptive-bredQ501566
One Critically Endangered, one Endangered, one Vulnerable, one Data Deficient, one never assessed. Three provenance classes are stated and never blurred: bred here, captive-bred elsewhere, and imported breeding stock whose offspring hatched here. Rare is your conclusion, not my claim — every row links to the record that says so.
VI.The entity graphOne @id per thing · twelve profiles

Every entity, and the identifier it answers to.

This is the work I sell, shown on myself. An answer engine does not read a brand; it resolves a node. One Person identifier, one Brand, one Organization per business, one identifier per product — declared once, reused by every site that mentions them, and published in the machine files as well as the page. The table is the graph in the <script type=application/ld+json> above, row for row.

The entity graph: one Person node at the centre, the VSNARY brand, the organisations it owns, the twelve profiles it is the same as, and the machine files that publish the graphPerson · #personEmmanuel Orta · alternateName VSNARYbrand → #vsnarycrawlcheck.io/authordeclares the same #persongithub.com/emmanuelortawebsite field → this sitecommons.wikimedia.org · User:Vsnaryuser page links this sitefacebook.com/VSNARYlinks row carries this sitelinkedin.com/in/emmanuelortainstagram.com/emmanuel_ortacoldblooded.com/VSNARYtiktok.com/@vsnaryemmanuelortacrunchbase.com/person/emmanuel-orta-aff6producthunt.com/@emmanuel_ortaquora.com/profile/VSNARYsubstack.com/@vsnaryCrawlCheckcrawlcheck.io/#orgThe Credential Recordcredentialrecord.com/#orgTerrarium Stationterrariumstation.com/#organizationSpeciesVaultterrariumstation.com/nature-database#speciesvaultTree Service Denvertreeservicedenverllc.com/#organizationArvada Tree Servicearvadatreeservicellc.com/#organizationSupreme Fencing Denversupremefencingdenver.com/#businessSupreme Fencing Lakewoodsupremefencinglakewood.com/#businessSupreme Fencing Arvadasupremearvadafencing.com/#businessSupreme Concretesupremeconcreteco.com/#organizationSupreme Excavation & Septicsupremeexcavationdenver.com/#organizationSupreme Landscapers Denversupremelandscapersdenver.com/#organizationentitymap.jsonthe same graph, one filellms.txtthe site for language modelsagents.mdinstructions for agents.well-known/media-kit.jsonthe kit as JSON-LDsitemap.xmlevery URLapi/liveevery figure, hourlysameAs · 12 profilesowns · 12 entities, one @id eachpublished in · six machine files, from the same constants as the page
The graph as it is deployed: one Person @id, reused by crawlcheck.io and terrariumstation.com rather than re-declared; twelve profile edges; every organisation with its own canonical identifier; and the machine files that publish the same graph. Nothing here is a second copy that can drift — the files are built from the constants the page is built from.
Every entity, its canonical identifier, and where it is declaredTrading names only · one @id per thing · no second copies
TypeEntityCanonical @idDeclared 
PersonEmmanuel Orta · VSNARYhttps://emmanuelorta.com/#personthis page; reused verbatim by crawlcheck.io/author and terrariumstation.com
BrandVSNARYhttps://emmanuelorta.com/#vsnarythis page; every organisation below points brand → here
ServiceDigital marketing consultinghttps://emmanuelorta.com/#consultingthis page; provider → #person
OrganizationCrawlCheckhttps://crawlcheck.io/#orgcrawlcheck.io, every page; founder → #person
SoftwareApplicationCrawlCheckhttps://crawlcheck.io/#appcrawlcheck.io; offered by #org
SoftwareApplicationCrawlCheck browser extensionhttps://crawlcheck.io/extension#appcrawlcheck.io/extension; install URL on the Chrome Web Store
SoftwareSourceCodecrawlcheck-corehttps://github.com/emmanuelorta/crawlcheck-core#codeGitHub, MIT; version and CI read hourly
WebAPICrawlCheck APIhttps://crawlcheck.io/docs/api#apicrawlcheck.io/docs/api
DefinedTermSetMachine-layer glossaryhttps://crawlcheck.io/glossary#setcrawlcheck.io/glossary; 768 DefinedTerm nodes
DatasetCrawlCheck open datasethttps://crawlcheck.io/data#datasetcrawlcheck.io/data; 4,111 scans
DatasetVendor website benchmarkhttps://crawlcheck.io/directory#datasetcrawlcheck.io/directory
OfferCatalogCrawlCheck plans, Watch and Watch Intelligencehttps://crawlcheck.io/pricing#catalogcrawlcheck.io/pricing
OrganizationThe Credential Recordhttps://credentialrecord.com/#orgcredentialrecord.com
Organization · StoreTerrarium Stationhttps://terrariumstation.com/#organizationterrariumstation.com; foundingDate 2022-08-04
SoftwareApplicationSpeciesVaulthttps://terrariumstation.com/nature-database#speciesvaultterrariumstation.com/nature-database
SoftwareSourceCodePhotoFind-iOShttps://github.com/emmanuelorta/PhotoFind-iOS#codeGitHub, Swift, MIT
LocalBusiness ×8The trade brandsone @id per domain, trading names onlyeach site; legalName only where the registered name is the trading name
ImageObject ×10Own-work photographsthe Commons file URL is the @idWikimedia Commons; creator and copyrightHolder → #person
The page graph, entitymap.json and the media kit are generated from the same constants, so they cannot disagree. Nine home-service names and one former experiment site were removed from the graph in September 2026; nothing that is not operated is declared.
VII.The methodThree steps, in this order

Measure it. Fix it. Keep measuring it.

No vague retainer and no discovery theatre. The first step produces something you can read whether or not we ever work together, and the last one is the only part a single audit can never give you.

How a lead flowsSix steps from a search to a job; the owned steps are marked.1.A searchsomeone in Denver needs a tree down2.The siteowned, ranked, structured for the crawler3.The profileGoogle Business Profile, verified4.The call or formtracked number; form stores first, then mails5.The crewa contractor who does the work6.The jobthe only outcome that countsWhat I own: steps 2, 3 and 4. What I do not: the crew — and that is the ceiling, not the traffic.
How a lead flows: the owned steps in gold, the crew at the end of it.
I

Measure

Your site is fetched from outside your network as fifteen different crawler identities inside one second. You get a graded report showing exactly what each one received — status, bytes, how much of the payload was readable text, and which machine files answered. Free, no account, and yours to keep even if the conversation ends there.

II

Fix

The findings get corrected, not forwarded. Schema that validates but asserts the wrong thing, a robots rule silently voiding itself, a listing pointing at a page that costs a crawler 300KB to read a paragraph. Then the site is re-measured, so the fix is a before and an after rather than an assurance.

III

Keep measuring

Sites break quietly: a plugin update, a cache rule, a host toggle. Weekly re-measurement turns “it is broken today” into “it broke on the 14th, and here is the receipt”. That record cannot be bought after the fact at any price — it exists only if something was already watching.

VIII.The chronicleThirteen dates · each with a source

Six years, in the order it happened.

The chronicle13 dated events on one line, 2020 to 2026.29 Mar 2020First tree-service domain registered4 Aug 2022Terrarium Station goes online2024Supreme Fencing opens in three cities23 Jul 2026First first-party review recorded7 Aug 2026CrawlCheck scans its first site13 Aug 2026First finding published21 Aug 2026CredentialRecord and this page go live2 Sep 2026A lead arrives tagged from ChatGPT3 Sep 2026crawlcheck-core published, MIT9 Sep 2026First G. daudini hatchling photo on record19 Sep 2026The extension reaches the Chrome Web Store29 Sep 2026API v1, trust center, finding states ship3 Oct 2026Resolve: the signed answer for agents shipsSix years in the order it happened. Each date has a source on the page.
The chronicle on one line. Each date has its source below.
The instrument, explodedCrawlCheck as six stacked layers from the fetch to the sealed record.Fifteen identities, one address, one secondGPTBot, ClaudeBot, Googlebot and twelve more, compared reply by replyMachine filesrobots.txt · sitemap · llms.txt · agents.md · entitymapReaders38 sections read from the delivered HTML — 24 scored, the rest shownThree outcomes, never twotrue · false · unverifiable — an unmeasured row is never a zeroThe gradecapped only by finding severity, and the cap names its reasonThe recorda row per domain per day, changes receipted, sealed to BitcoinTop to bottom is the order a scan runs. Nothing reaches the grade without passing the third outcome.
The instrument, exploded: the order a CrawlCheck scan runs, top to bottom.

Not a story arc. A list of dates, each with the place that records it — a registry, a page that recomputes itself, a register that says when it opened.

  1. The first tree-service domain is registered.

    treeservicedenvercolorado.com, the domain the tree business traded on before it moved. It still redirects, path for path.

    Verisign registry record
  2. Terrarium Station goes online.

    The date the site itself declares as its founding, and the date the shop has been keeping records since.

    terrariumstation.com
  3. Supreme Fencing opens in Denver, Lakewood and Arvada.

    Three brands, one crew, and the first time the model was run at more than one listing at once.

    Rows 07–09 in the register
  4. The first customer signs off on a job, on the site itself.

    Tree Service Denver stops relying on third-party review widgets and records its first first-party review through its own moderated system.

    The reviews page
  5. CrawlCheck scans its first site.

    Built because I needed to know what my own sites were handing a crawler, and no tool would tell me.

    crawlcheck.io
  6. The first finding is published.

    The author page counts every piece since, with dates, and recomputes the count when it is opened.

    The author page
  7. CredentialRecord opens. This page goes live the same day.

    A register that states the lookup and never the conclusion. Its own manifest records the opening date.

    credentialrecord.com/llms.txt
  8. A tree-service lead arrives tagged from ChatGPT.

    One quote request on treeservicedenverllc.com carried utm_source=chatgpt.com. One lead is not a rate, and the note says so — but it is the first outcome on a record that had only measured inputs.

    The note
  9. crawlcheck-core is published under the MIT licence.

    The readers at the centre of the measurement — robots.txt policy, user-agent group shadowing, crawler-IP verification — extracted verbatim from production and put on GitHub with their tests. The repository records its own first commit.

    The repository
  10. The first photograph of a Gonatodes daudini hatchling goes on the public record.

    Hatched here from adults in the collection and photographed minutes old. As of that date no other juvenile image of the species existed on Wikimedia Commons, Wikidata, iNaturalist or GBIF; the file page carries that dated, platform-scoped sentence and the upload timestamp.

    The Commons file
  11. The browser extension is published on the Chrome Web Store.

    A second vantage: what a crawler is served from your own address, after your JavaScript runs. At launch it sent nothing back; since 1.0.3 the grade badge sends the site’s hostname and signed readings are shared, each behind its own switch. The store listing carries its own publication date.

    Chrome Web Store
  12. API v1, the trust center and finding states ship together.

    A versioned public API with a schema, a trust center that states retention from the code, and every finding carrying a state — new, persisted, worsened, resolved — across scans. The release note is dated and lists each one.

    The release note
  13. CrawlCheck becomes the verification layer for the agentic web.

    One signed answer about any domain, read by an AI agent before it acts, specified as the Resolve protocol with a typed SDK and conformance fixtures; the first agentic-web census of the Tranco top 1,000; every rule published, every fix ending in a signed receipt, disputes resolved in public. The release note names where each one can be checked.

    The release note
IX.The proofTen claims · nine places to check

Every claim on this page, and where to check it.

Most personal sites ask you to believe a number. This one gives you the third-party page instead — and names the one claim that has nothing behind it, because leaving that out would defeat the exercise.

ClaimHow it is checkableWhere

I own and operate eleven live domains.

Each one is listed above with its URL. Open any of them; there is no logo wall standing in for a link.

The register

I built CrawlCheck, and it is a working product.

Put any domain into it. The free scan runs without an account and returns a graded report you can read in full. The findings from 4,111 of those scans are published as an open dataset that recomputes itself on every request.

crawlcheck.io

I publish research, including my own mistakes.

Ninety-seven notes, each one a measurement with the method attached. Several of them document defects in my own instrument — an audit that labelled one page and measured another, a forgery rate that was counting my own extension.

The writing

My photographs illustrate Wikipedia articles in six languages.

Eight own-work images on Wikimedia Commons (user Vsnary) are in use on 18 pages across 9 projects: the Gonatodes daudini article on six language Wikipedias plus Wikispecies, the crested gecko on Cebuano Wikipedia, Arborist, Synthetic fence and Chanthaburi rock gecko on English Wikipedia, and five Wikidata items. Terrarium Station is named as the collection on the daudini file record; the full usage list is on Commons.

My Commons uploads

The tree business is real work done by a real crew.

Tree Service Denver is operated by Eric Petruska. The site carries first-party reviews submitted by customers, not testimonials I wrote.

Customer reviews

Every CrawlCheck report can be proved to have existed, unaltered, on its date.

Each report is reduced to its measurements, hashed, and each day’s digests are anchored to the Bitcoin blockchain. That proves the report existed in that form at that time — not that the measurement was right, and the page says which claim is which.

Timestamp proof

Everything I have written is dated, counted and listed on one page.

97 findings, sixty-seven guides and the glossary, with first and latest dates, recomputed from the post registry each time the page is opened. The pieces about my own mistakes are listed on purpose.

The author page

The extension is published, not planned.

The CrawlCheck browser extension is listed on the Chrome Web Store under the CrawlCheck name, with its own listing page, permissions and publication date. Install it and read the network tab: it sends nothing back.

Chrome Web Store

My developer identity is public, under one name.

The GitHub profile carries this same register, and the public repositories are listed there. Code that is private is described as private, not left out.

GitHub profile

The verification layer is open at its core.

crawlcheck-core publishes the robots.txt policy reader, the user-agent group shadowing detector and the crawler-IP verifier as MIT-licensed, dependency-free JavaScript with no build step. The test suite runs in CI on every push — passing at the last hourly check —, including byte-parity checks against the production service’s own live endpoints. Clone it and check my results against my code.

crawlcheck-core

I hold no certification I have not earned.

There is no ISA arborist claim, no agency award, no press badge on this page. Where a credential would help me and I do not have it, it is absent.

Nothing to link — that is the point
X.The writingNinety-seven notes published

The playbook, in writing.

Every note is a measurement with the method attached, so you can run it yourself and disagree with me. Several of them are corrections to my own work, which is the only reason to trust the rest.

Finding

The state of AI visibility, September 2026: what 1,364 scans say a crawler actually receives

Seven findings from the open dataset: the most common defect is a stale cache, a quarter of sites carry a grade-capping finding, opt-outs travel by copy-paste, and a third of crawler traffic is forged.

2 Sep 2026Read →
Finding

A tree-service lead arrived with utm_source=chatgpt.com. Here is what that does and does not prove.

A quote request on a Denver tree-service site carried the tag ChatGPT appends to links it hands out. One lead is not a rate, but it is the first outcome point on a record that had only measured inputs until today.

2 Sep 2026Read →
Finding

llms.txt returned 200 and was a login wall: why status codes lie about machine files

The same page that answered a nonexistent path answered /llms.txt. One layer of our scanner noticed; the other called it present.

1 Sep 2026Read →
Finding

A Worker cannot fetch its own host: the sameAs profile we called dead

A customer's schema pointed at a page on our own domain. From outside it answered 200. From inside the scanner it answered nothing, and we reported it dead.

1 Sep 2026Read →
Finding

Our placeholder check accused a newspaper of publishing NaN. The NaN was in a URL.

A self-audit rule that scans every stored record for the token NaN found three of them. All three were inside the letters of one URL slug.

1 Sep 2026Read →
Finding

E-E-A-T is not on the wire. Here is what a scanner can measure instead.

Experience, expertise, authoritativeness and trust are judgements an evaluator makes. A fetch cannot make them. It can check whether the evidence for them exists in a form a machine can find.

1 Sep 2026Read →

Ninety-seven notes so far, plus an open dataset of what 4,111 scanned sites actually returned. No gated PDFs and no email wall.

Read all 97
XI.The manifestoFour articles

I don't build content. I build assets that compound.

Article I

Own the asset.

A retainer ends the month you stop. A ranked domain with a tracked number attached is worth something whether or not I am working on it today. I would rather own one asset than bill for ten.

Article II

Measure, don't claim.

If a number cannot be linked to the thing that produced it, it does not go on a page. That rule cost this site its testimonials, its award badges and its invented statistics, and the page is better for it.

Article III

Label it honestly.

Captive-bred means captive-bred. ISA member is not ISA certified. Representative photo means representative photo. The businesses that last are the ones that never had to walk a claim back.

Article IV

Fix it, then say so.

A diagnosis handed over with nothing done about it is not a deliverable. If the fix is within reach, it ships before the message does — and the message reports both.

OWN THE ASSET · MEASURE, DON’T CLAIM · LABEL IT HONESTLY · FIX IT, THEN SAY SO · VSNARY

Emmanuel Orta, VSNARYWritten and maintained by me, between Arvada and Denver. If anything here stops being true, the page is wrong and I want to know.

XII.Work with meConsulting · two ways in

Digital marketing consulting, two ways in.

A small number of engagements at a time, because the work is done by me rather than passed to a team — and every one starts with a measurement you keep whether or not we go further.

For businesses

Get found by people already looking for you — in search, on Maps, and in the answer engines.

If you are in a truck more than at a desk: when someone nearby searches or asks an assistant for what you do, you come up, you look legitimate, and the phone rings. I run this playbook on my own brands first.

  1. Google Business Profile rebuilt and kept aligned with the site
  2. Pages that rank for the jobs you want, in the areas you serve; structured data that says one true thing to every engine
  3. Tracking that tells you which calls came from where — and a dated record that shows what changed

Start with the free scan — it shows what a crawler sees before we talk. Scope and pricing on the first call.

For agencies

The layer underneath your AI-visibility pitch.

You already sell GEO, AI SEO or local search. I supply the instrument and the hands, white-labelled under your brand.

  1. CrawlCheck reports and continuous monitoring across your client roster, branded as yours
  2. Schema, entity-graph and machine-file audits that validators do not catch
  3. Google Business Profile builds and alignment at multi-location scale

Scope and pricing on the first call. Monitoring across a roster is priced publicly at crawlcheck.io/pricing.

Tell me what isn't working.

Agency looking for the layer under your pitch, a local business that wants the phone to ring, or a keeper with a problem SpeciesVault might solve. One form, one reply, from me.

Before you write, run the free scan.Put your domain into crawlcheck.io and paste the report link below. It saves the first twenty minutes of the call.

Specifics beat adjectives. Domain, city, what you have already tried.

No list. No sequence. One reply.