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 ConsoleCloudwaysWooCommerceStripeServer 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 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 registerFour entries · four 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, four 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 trade brands · names kept private
Four 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-29 22:10 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-databaselive
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.4 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 47 sections, 26 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. Watch keeps that record from $29 a month; the fixes themselves are done once, from $500; agencies and agent builders pay for volume, with the API from $99 a month and Agency at $249 for 40 domains. Every report is hashed and anchored to Bitcoin daily so the record can be proved rather than remembered.

What the open dataset finds most often4,934 scans · 66 finding codes · read 2026-10-29 22:10 UTC
NO_LLMS_TXT1,56731.8%
PAGE_IS_MOSTLY_CODE1,27825.9%
MACHINE_CHAIN_HEAVY92818.8%
STALE_CACHE_SERVED75815.4%
HSTS_MISSING65313.2%
ROBOTS_RULES_SHADOWED59312.0%
UNIFORM_REFUSAL58711.9%
NO_SITEMAP_FOUND51210.4%
4,936scans published in the open dataset
35.6%carry a high or critical finding
31.8%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 layer47 sections · 26 scoredBrowser extension · Chrome Web Store · the second vantagecrawlcheck-core · MIT, v0.6.0, CI passingAPI · one signed answer per domain, no key neededGlossary · 768 terms, each with its limitsLibrary · 103 findings · seventy guidesOpen dataset · 4,936 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 · thirteen 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 thirteen profiles it is the same as, and the machine files that publish the graphPerson · #personEmmanuel Orta · alternateName VSNARYbrand → #vsnarycrawlcheck.io/authordeclares the same #personorcid.org/0009-0001-5269-1515researcher iD; record links this sitegithub.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#speciesvaultentitymap.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 · 13 profilesowns · 4 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; thirteen 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,936 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
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 chronicleSixteen dates · each with a source

Six years, in the order it happened.

The chronicle16 dated events on one line, 2020 to 2026.29 Mar 2020First tree-service domain registered4 Aug 2022Terrarium Station goes online2024Fencing brands open 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 ships7 Oct 2026Agent safety benchmark published14 Oct 2026Every live figure gets a signed edition20 Oct 2026The open data gets DOIsSix 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 · entitymapReaders47 sections read from the delivered HTML — 26 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.

    The domain the tree business first traded on. It still redirects, path for path.

  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. The fencing brands open in Denver, Lakewood and Arvada.

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

  4. The first customer signs off on a job, on the site itself.

    The tree business stops relying on third-party review widgets and records its first first-party review through its own moderated system.

  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 the tree business's site 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
  14. The agent safety benchmark is published.

    Thirty-nine frozen cases — a sign-in on a lookalike domain, a poisoned tool, a payment on a revoked receipt, an action on a stale answer — each run with only what an agent can see for itself, then again with CrawlCheck’s signed answer added. The cases and the scoring are public; the page carries its own date.

    The benchmark
  15. Every live figure becomes a signed weekly edition.

    Each page that shows a live number now publishes a signed weekly edition, an Atom feed and a JSON twin that verifies offline with the published key; the site is reorganised around who is asking, and Watch gains a free 30-day trial. The release note lists each change and how to check it.

    The release note
  16. The open data gets DOIs.

    The weekly agentic-web census is deposited on Zenodo as a citable edition with its own DOI, followed by the AI-use rights feed, and the datasets are mirrored on Hugging Face. A DOI resolves whether or not this site exists; the record carries its own publication date.

    The DOI record
IX.The proofTwelve claims · eleven 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 three 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,936 of those scans are published as an open dataset that recomputes itself on every request.

crawlcheck.io

I publish research, including my own mistakes.

103 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

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.

103 findings, seventy 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. Every request it makes to crawlcheck.io is listed on its privacy page by version, and the usage counts switch off from the popup.

Chrome Web Store

My data is citable, with DOIs.

The weekly agentic-web census and the AI-use rights feed are deposited on Zenodo, each edition under its own DOI, and ten datasets are published under the CrawlCheck account on Hugging Face. A DOI keeps resolving whether or not this site does.

Zenodo record

My research identity is registered.

ORCID iD 0009-0001-5269-1515, under my birth name with VSNARY as the other name, linking this site, CrawlCheck and GitHub. The same iD is in this page’s Person record.

ORCID record

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 writing103 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.

Guide

Website crawlers in 2026: who crawls your site, how to verify them, and which tool to check with

A 2026 guide to website crawlers: search, AI training, AI search and user-triggered fetchers, how to verify them, measured block rates across the top 10,000 sites, and Ahrefs, Screaming Frog, aicrawlercheck and CrawlCheck compared.

26 Oct 2026Read →
Finding

Which AI crawlers the top 10,000 sites block most, October 2026

Census of the Tranco top 10,000, October 2026: robots.txt block rates for 12 AI crawlers, how many sites refuse them at the door, and how training and search crawlers are treated differently.

26 Oct 2026Read →
Guide

Google-Extended and Applebot-Extended: opt out of AI training and stay in search

Google-Extended and Applebot-Extended explained: control tokens, not crawlers, that opt a site out of AI training without leaving Google Search or Apple Search. With the robots.txt lines and census figures.

26 Oct 2026Read →
Correction

Three sections said “not scored”. Our grade counted them.

Three CrawlCheck report sections labelled not scored counted in the grade for twelve hours on 22 October 2026: who it affected, and the fix.

22 Oct 2026Read →
Guide

How to tell if an SEO fix worked: compare fixed and untouched pages

Measure whether a website fix moved search traffic by comparing fixed pages with untouched pages on the same site. Steps, a worked example, traps.

22 Oct 2026Read →
Correction

One 503 is not a blocked site: refusal or hiccup?

Why one 503 on robots.txt or a sitemap is not proof a site blocks crawlers, and a three-request test that tells a refusal from a hiccup.

22 Oct 2026Read →

103 notes so far, plus an open dataset of what 4,936 scanned sites actually returned. No gated PDFs and no email wall.

Read all 103
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.