Get Findable in 15 Minutes: A Step by Step Checklist
Contents
You can go from nothing to a working audit, an editor integration and a CI gate in about 15 minutes. Follow the steps in order. Each one is a command you can paste.
How do you install findable?
You install it with one Go command. It puts a binary called findable on your path. You need a recent Go toolchain, and this takes about one minute.
go install github.com/findable-page/findable/cmd/findable@latest
How do you run your first audit?
Point findable at a URL and pass your target phrase with -k. It fetches the page, runs every check and prints a score. You can also audit an HTML file on disk before you deploy it. Expect this to take about one minute.
findable -k "your keyphrase" https://example.com
findable ./page.html
How do you check robots.txt and llms.txt?
Add the -site flag. It also fetches /robots.txt and /llms.txt and reports whether GPTBot, ClaudeBot, PerplexityBot and Google-Extended are allowed. These site results are unscored, so they never change your grade. The flag needs a real URL and refuses a local file.
findable -k "your keyphrase" -site https://example.com
How do you read the output?
The score is SEO 50%, AEO 25% and GEO 25%. Each line is a check with a stable id, such as title_length or aeo_faq. Failures matter most. Read the failing ids first, then the site section if you used -site.
For a machine readable report, choose a format. You can write csv, json or sarif, send files to a folder with -o, and quiet the console with -q. These are handy when you want to diff two runs, or feed the findings into another tool.
findable -format json -o ./reports -q https://example.com
How do you fix the top failures?
Take the first three failing ids and fix them. Quick wins are usually title_length (30 to 60 characters), desc_length (120 to 160), h1_exists (exactly one h1) and canonical. Then re-run the same command and watch the score rise. Repeat until the top fails are gone.
findable -k "your keyphrase" -site https://example.com
To audit more than one page, crawl. Use -crawl with -limit, or feed a sitemap with -sitemap.
findable -crawl -limit 25 https://example.com
findable -sitemap https://example.com/sitemap.xml
How do you set up MCP?
Run findable as an MCP server so your editor agent can audit pages for you. Add this to your MCP config. To run it without Go, build the server from source: cd mcp && bun install && bun run build, then point "command": "node" with "args": ["/path/to/findable/mcp/dist/index.js"] at it. The tools are audit_page, audit_html_content, crawl_site and generate_csv_report.
{"mcpServers":{"findable":{"command":"findable","args":["-mcp"]}}}
The server also offers a prompt called seo_audit_prompt. It speaks over stdio, so there is no port to open and nothing is exposed to your network. Ask your agent to audit a page, and it calls these tools for you.
How do you use the web UI?
Open findable.page and paste a URL to get a scored report in your browser, with no install at all. If you want it local, serve it yourself. The same binary hosts the web UI and the API on a port you choose.
findable -serve 127.0.0.1:8080
How do you call the API with curl?
Send a POST to /api/scan with a JSON body. Set site to true for the robots.txt and llms.txt checks, and set format to json so you can parse the response in a script or a dashboard. The response uses the same check ids as the CLI.
curl -X POST https://findable.page/api/scan \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","keyphrase":"your keyphrase","site":true,"format":"json"}'
How do you gate CI with the GitHub Action?
Add the action to a workflow. Set fail-under to the lowest score you accept. The job fails below that number, and the action uploads SARIF so each failing check shows up as a code scanning alert in the repository. Set upload-sarif to false if you only want the exit code.
name: findable
on: [push]
jobs:
audit:
runs-on: ubuntu-latest
steps:
- uses: findable-page/findable@v0.2.0
with:
url: https://example.com
fail-under: 80
args: -site
You can get the same gate locally with findable -fail-under 80 https://example.com. It exits 1 below 80. Start with a threshold near your current score, then raise it as you fix more checks. The Site checks are unscored, so -site in args adds rows to the report but never changes whether the gate passes.
Key takeaways
- Install with one
go installline. The binary isfindable. - Run
findable -k "phrase" -site <url>and read the failing check ids first. - Fix the top three failures, then re-run to confirm.
- Use
-mcpfor editors,-serve 127.0.0.1:8080for a local UI, and POST/api/scanfor scripts. - Gate CI with
-fail-under Nor thefindable-page/findable@v0.2.0action.
FAQ
- Does findable need an API key?
- No. The CLI runs locally and audits any URL or local HTML file. You only need Go to install it.
- What is the binary called?
- The binary is named findable. Use findable in every command.
- How do I fail a build on a low score?
- Pass -fail-under N. The CLI exits with code 1 when the score is below N, which stops your CI job.
- Can I run it on a local file?
- Yes. Run findable ./page.html to audit a file on disk with no server.
How does findable score a page?
| Family | Weight | Question it asks |
|---|---|---|
| SEO | 50% | Can crawlers read and index this page? |
| AEO | 25% | Is it easy to lift an answer from this page? |
| GEO | 25% | Does the page give a generative model a reason to cite it? |
The hosted audit waits up to 10 s for a page and fetches at most 5 MB. It reads robots.txt and llms.txt up to 512 KB each.
More guides
- Every findable AEO Check ID and How to Fix It
- All 35 AEO checks in findable explained, from aeo_faq to aeo_summary. See what each id tests, how loose the test is and how to fix it. AEO is 25% of the score.
- Canonical Tags and Duplicate Content: How to Get Them Right
- Use one canonical link per page that points to its own absolute URL. Learn the checks canonical, canonical_self and canonical_absolute and fix them.
- FAQ Schema for Answer Engines: Markup and Checks
- How to add FAQPage JSON-LD that answer engines can lift, and how findable tests aeo_faq, aeo_faq_count and faq_valid. Includes a working example.
- Every findable GEO Check ID, Plus AI Crawler Checks
- All 27 GEO checks in findable explained, plus the unscored Site checks for GPTBot, ClaudeBot and llms.txt. GEO is 25% of the score. Fixes included.
- Image Alt Text, Dimensions and Lazy Loading Explained
- Fix img_alt, img_dimensions, img_alt_quality, img_lazy_loading and img_modern_format. See what each image check in findable tests and how to pass.
- JSON-LD Schema Basics: What findable Checks and Why
- Learn what JSON-LD is, which schema.org types findable validates, and how to fix jsonld_valid, jsonld_context and empty or relative values.
- llms.txt: What It Is and How findable Checks It
- llms.txt is a plain Markdown file at your site root that points AI tools to your key pages. See the llms-txt check and how to write the file.
- How to Write a Meta Description That Passes findable
- Write a meta description of 120 to 160 characters, one per page, that matches the page. See the checks desc_exists, desc_length and desc_single.
- Open Graph and Twitter Cards: Fix Your Share Previews
- Add og:title, og:description, og:image, og:url and twitter:card so links unfurl well. See every social check findable runs and how to pass it.
- robots.txt and AI Crawlers: GPTBot, ClaudeBot, PerplexityBot
- How robots.txt rules decide whether GPTBot, ClaudeBot, PerplexityBot and Google-Extended can fetch your page, and how findable tests each one.
- Every findable SEO Check ID and How to Fix It
- A plain guide to all 98 SEO checks in findable, from title_length to csp. See what each id tests, when it passes and the fix. SEO is 50% of your score.
- SEO vs AEO vs GEO: The Difference in Plain Words
- SEO, AEO and GEO each target a different reader: a search crawler, an answer box, or a generative AI model. See what wins in each and how to check them.
- Why AI Answer Engines Skip Your Site and How to Fix It
- ChatGPT, Perplexity and Claude may ignore your pages for five fixable reasons, from robots.txt blocks to missing answers. Learn each cause and its check id.