Skip to main content

findable

Score how findable a website is, from the outside. No account, no API key, no signup.

$ pipx install findable
$ findable example.com

findable running against guestar.ai

Run against our own site, because a checker whose author exempts himself is not worth much.

Why another site checker

Most of them are lead-capture forms that email you a PDF of colour-coded acronyms. This is a CLI that prints findings a business owner can act on, and a library you can build on.

Three things it does differently:

It writes for the owner, not the developer. No "schema", no "canonical", no "SERP". There is a unit test that fails the build if a finding contains jargon. "Search engines cannot tell what kind of business you are" is a thing someone can act on; "missing LocalBusiness schema" is a thing they have to go and look up first.

A check it could not run never costs you points. Unknowns shrink the denominator instead of the score. If bot protection blocks the sitemap probe, you do not get marked down for a sitemap we never looked at. Tools that penalise unknowns are really scoring how hard your site is to crawl, and telling you it is a quality problem.

It checks whether you come up for your own name. Optional, because it needs a search provider, and skipped rather than guessed at when there isn't one. It is usually the most useful line in the output: plenty of businesses have a perfectly good website that does not appear when someone searches the name on their own business card.

Install

No dependencies, so any of these work:

pipx install findable    # isolated, recommended
pip install findable
git clone https://github.com/guestarAI/findable && cd findable && python3 -m findable example.com

Use

findable example.com                 # human-readable
findable example.com --json          # machine-readable
findable example.com --search        # also check your own name in search

--search needs a provider key in the environment:

export JINA_API_KEY=...      # or BRAVE_API_KEY
findable example.com --search

Exit code is 1 when a high-severity finding exists, so it works in CI:

- run: pip install findable && findable "$SITE"

As a library:

from findable import check
from findable import providers

report = check("example.com", search=providers.auto())
print(report.score, report.grade)
for f in report.findings:
    print(f.severity, f.title, "->", f.fix)

Bring your own search provider, it is just a callable:

report = check("example.com", search=lambda q: my_search(q))   # -> list[str] of URLs

What it checks

Can search engines tell what you are? page title, summary, machine-readable business description, main heading, share preview image
Can they find all of your pages? robots, sitemap, llms.txt, mobile rendering
Can a customer actually reach you? enquiry form, email / phone / WhatsApp links, one-tap contact
Does the site look looked-after? most recent date, regularly published content, linked social profiles, how much there is to read
Do you own your own name? optional, needs a search provider

It also detects a site that is suspended or parked — returning valid HTML and HTTP 200 while serving nothing. That case is invisible to signal-level checks and it is usually the most urgent thing you can tell someone.

If you build on this

The SSRF guard in fetch.py is not decoration. If you expose this over HTTP, a service that fetches a user-supplied URL from inside your network can be pointed at 127.0.0.1 or at 169.254.169.254 for cloud metadata. The guard resolves the hostname before judging it, and re-runs on every redirect hop — checking only the first is a real bug with a real exploit.

A warning that cost us time: do not scrape a search engine from your own IP and trust the result. Bing returned us a page with the correct title, our query echoed back, and ten well-formed result rows whose URLs decoded cleanly to a children's clothing retailer on one run and French anime sites on the next. It looks exactly like a working provider. If you add a scraper, assert that results contain the query's own terms before trusting any of them.

Limits

Reads one page plus two small probes. It cannot see your traffic, your rankings, or anything behind a login, and it does not pretend to. It tells you where it could not look.

Licence

MIT. Built by Guestar, which runs a hosted version at guestar.ai/get-found that adds an AI-written explanation of what the findings mean for your particular business.

Metadata

Release files for findable 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for findable 0.1.1
File Size Uploaded
findable-0.1.1.tar.gz 22.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for findable 0.1.1
File Interpreter ABI Platform
findable-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 43.0 kB

Release files / findable-0.1.1.tar.gz

Download URL findable-0.1.1.tar.gz
Size 22.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9fcd2570316d8bc4829b975928a86a3d9d722e75dd9d54aa714860bf7797ca1a
BLAKE2b-256 checksum
How to use checksums
292c144b0c5d9dcb33c294c6582acff17bd122b53972130ce2fda6db567bbc8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / findable-0.1.1-py3-none-any.whl

Download URL findable-0.1.1-py3-none-any.whl
Size 20.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a6f797a58cae8dc9c8b0e297277c88e1d7329f7bf634f5aa0cd835f50972fb57
BLAKE2b-256 checksum
How to use checksums
8b6fb72cc9345efb3f0749255dc5ab32138c34271d814cff2d83c329d93e69ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page