Five command-line tools that run on your computer, with just Python, no paid API and no account on any service other than Search Console and Bing Webmaster, which are free.

inemaseo-sistemas is a set of five free programs for handling the SEO (how your site shows up on Google and in AIs) of your own site. It is for anyone who has a site and wants to know what is broken, who finds you, which AI bots read your pages and whether the site is ready for AI agents. Everything runs on your computer, with Python 3.10 or newer, using only free data: the site, the server log and the files that Search Console and Bing Webmaster let you download.
Each tool answers one question, reads data you already have and delivers an HTML report (INEMA standard) plus JSON and CSV for another tool to read.
How many searches without your brand found you, week by week, forever. Search Console only keeps 16 months; here it stays in a SQLite database that never deletes.
Data: CSV from gsc_semanal.py (Search Console)
Which pages Copilot and Bing cited in AI answers and whether they also get clicks on Google. The AI queries you don't cover yet become content ideas.
Data: export of the Bing Webmaster AI Performance report
Which AI bots actually read the site, separated by purpose (search, user request, training), and which ones are fake, with the IP checked against the official lists.
Data: your server's access log + official IP lists
What is broken in the HTML the server delivers: canonical, hreflang, sitemap, robots.txt by AI bot purpose, CDN blocking, orphan pages. Each finding comes with a "how to fix" line.
Data: your site, crawled politely
A 0 to 100 readiness score for AI and agents, with public weights in pesos.json: you can disagree, change them and compare. Includes WebMCP (document.modelContext).
Data: your site
Bot names, official IPs, CSV columns and Google rules only get in with a source (link in each tool's README). Where there is no source, it says [to be confirmed].
License: MIT · Python standard library only
Nothing goes to the cloud. You point the tool at a file or at the site's address, it works on your computer and writes the results to a folder.
The weekly Search Console CSVs go into gsc-historico. The AI Performance CSV goes into bing-ia, which cross-references it with the gsc-historico database.
botlog reads nginx/Apache (combined, including .gz) and Cloudflare Logpush. Before sharing, the filtrar command keeps only the bot lines with an official IP (LGPD (Brazil's data protection law)).
auditor and agente-ready read the HTML like a bot that doesn't run JavaScript: GET only, 1 s pause, respecting robots.txt. agente-ready imports the auditor's core.
For the auditor and agente-ready, Python and an internet connection are enough. The other three need a file from you.
Standard library only: there is no pip install.
python3 --version git clone https://github.com/inematds/inemaseo-sistemas cd inemaseo-sistemas
For gsc-historico: the CSVs from gsc_semanal.py (inemaseo-metodo repository). For bing-ia: the CSV exported from AI Performance in the Bing Webmaster panel (there is no API for this data).
For botlog: the access log of your nginx/Apache or the Cloudflare Logpush JSON. Read-only, for example:
ssh root@YOUR_SERVER 'cd /var/log/nginx; zcat -f access.log.*.gz; cat access.log.1 access.log' > /tmp/site.log
The commands below run from the repository root. Every tool has --help in Portuguese and a README with all the options.
Crawls up to 50 pages (change with --max) and writes relatorio.html, auditoria.json, achados.csv and paginas.csv. In the terminal, the summary and the first 5 critical/important findings.
python3 ferramentas/auditor/auditor.py https://yoursite.com --max 50 --saida saida/auditor python3 ferramentas/auditor/auditor.py https://username.github.io/repo/guia/ --max 20 # only the guide folder
Reads the home page and 4 pages from the sitemap (change with --paginas), about 10 to 25 requests. Output: relatorio.html, agente-ready.json and criterios.csv. A criterion that doesn't apply is left out of the calculation, not counted as a failure.
python3 ferramentas/agente-ready/agente-ready.py https://yoursite.com --saida saida/agente-ready python3 ferramentas/agente-ready/agente-ready.py https://yoursite.com --paginas 8
Import the CSV folder (re-importing doesn't duplicate) and generate the week's report: brand × non-brand × anonymous, queries that rose and fell, content agenda (new query with no owner page) and pages with impressions and 0 clicks.
python3 ferramentas/gsc-historico/gsc_historico.py importar exemplos/gsc-historico/entrada --db dados/gsc.sqlite python3 ferramentas/gsc-historico/gsc_historico.py relatorio --db dados/gsc.sqlite --site inema.club --saida saida/inema.club
Import the AI Performance CSVs and cross-reference them with the gsc-historico database. If the tool doesn't recognize the columns, it asks for the map with --colunas (Microsoft doesn't document the export).
python3 ferramentas/bing-ia/bing_ia.py importar exemplos/bing-ia/entrada/*.csv --db dados/bing.sqlite python3 ferramentas/bing-ia/bing_ia.py relatorio --db dados/bing.sqlite --gsc-db dados/gsc.sqlite --site inema.pro --saida saida/inema.pro
Analyze the log (several files, .gz included). With --sitemap, it also shows the pages that no bot managed to read. Before showing or publishing a log, use filtrar.
python3 ferramentas/botlog/botlog.py analisar /tmp/site.log --sitemap https://yoursite.com/sitemap.xml --saida saida/site python3 ferramentas/botlog/botlog.py filtrar /tmp/site.log --saida /tmp/bots-only.log # only bots with an official IP
The tests don't use the network: the auditor and agente-ready are tested against a fake site in tests/fixtures/.
for t in ferramentas/*/; do [ -d $t/tests ] && python3 -m unittest discover -s $t/tests; done
The repository's examples were generated for real on 10/19/2026, using only GET on public INEMA sites. Each report opens in the browser.
On the last three, the entity category came in at 0 (no Organization/Person with @id in the JSON-LD) and WebMCP at 29 (no tool registered). inema.club registers a WebMCP tool and scored 100 in that category. · inema.club · eventos · news · REA guide
1 important finding: 2 course pages with fewer than 80 words in the delivered HTML (77 and 78). Among the improvements: 28 titles outside the 15–65 character range (a practical range, not a Google rule) and an entity without @id.
No critical or important findings across 50 pages. 4 improvements: long titles, repeated titles, more than one H1 and pages without JSON-LD.
On the rea-engenharia-reversa guide: sitemap not found and 3 pages without a canonical link. The robots.txt of github.io belongs to another repository.
impressions from searches without the brand, with 0 clicks (out of 702 impressions in total). The report pulled out 18 queries for the content agenda and 5 pages with impressions and no clicks.
log lines from 10/05 to 10/19 were from a bot with an official IP: GPTBot (4), ClaudeBot (2) and OAI-SearchBot (2). The rest (people, scanners, curl) was removed by filtrar.
The bing-ia example uses a CSV with made-up numbers (the URLs are real ones from inema.pro), cross-referenced with the real gsc-historico database. The column names are a guess [to be confirmed] with a real export.
The repository doesn't promise what free data can't deliver. What requires paid data stays outside it, as an option.
For that there are DataForSEO, Firecrawl, Apify, Semrush and Ahrefs: optional, outside this repository. Comparison in docs/ESPEC.md (in Portuguese).
With --max 50 on a site with a thousand URLs, "orphan" means "with no incoming link from the 50 pages read". agente-ready reads the home page and 4 pages: it is a thermometer.
The log shows who requested the page, not whether the AI used the content in an answer. For citations, use bing-ia. Behind a CDN, use the CDN's log.
Nothing runs JavaScript, on purpose. The auditor doesn't measure speed (Core Web Vitals) or backlinks.
inemaseo-sistemas is part of inemaSEO and is the basis of course 7 of the Formação inemaSEO.
The inemaSEO area, with the training courses.
eventos.inema.pro/inemaseo
Course 7 of 7The course that teaches these five tools, in 8 lessons with real output. Also available in Portuguese and Spanish.
inematds.github.io/formacao-inemaseo-sistemas-v72/en