# Guides

> Working notes and step-by-step playbooks: ranking drops, site migrations, keyword gaps, rank tracking, crawl cost and reading an SEO workspace from an agent.

Source: https://netweft.com/blog

Every guide is also available as markdown at the same path plus `.md`.

- [An agent's first five calls over MCP](https://netweft.com/blog/an-agents-first-calls): Start with whoami for the workspace and plan, list_projects to find the domain, get_project_overview for counts and the latest audit, then get_rank_trend or get_keyword_rank_history for what moved. Read get_credit_balance before suggesting paid work. Every call reads stored rows and spends nothing.
- [Auditing by template, not by page](https://netweft.com/blog/auditing-by-template): A large site is a few templates rendered many times, so a finding on forty product pages is usually one fault in one template. netweft groups URLs into shapes by replacing ids, dates and long slugs, measures performance once per shape, up to ten pages, and lists duplicates with the pages sharing them.
- [How netweft is built, and a prompt to build your own](https://netweft.com/blog/build-an-seo-saas-like-netweft): netweft is four Cloudflare Workers over one D1 database: static marketing and dashboard sites, a Hono API with Workflows and a cron, and an analytics relay. Six decisions shaped it: a provider port, reserve-then-settle credits, stored snapshots, one-statement D1 guards, a read-only MCP surface and no free tier.
- [Checking a site migration in the first week](https://netweft.com/blog/checking-a-site-migration): Before a migration, audit the old site and run a rank check so there is a baseline. After it, crawl the new site and fix Broken internal link, Redirect chain, Page returns an error, Conflicting canonical and noindex first, then compare a fresh rank check and Search Console with the baseline.
- [Choosing which keywords to track](https://netweft.com/blog/choosing-what-to-track): Track the keywords whose movement would change what you do next, and save the rest. At the default depth a rank check is 40 credits per keyword per device, so 100 keywords checked weekly on both devices cost about 32,000 credits a month.
- [Diagnosing a ranking drop before you change anything](https://netweft.com/blog/diagnosing-a-ranking-drop): Confirm the drop is real in the keyword's stored history, check whether the ranking URL changed, compare Search Console clicks and impressions for the same window, then audit the affected page. Change nothing until one of those names a cause.
- [Measuring and earning mentions in AI answers](https://netweft.com/blog/earning-mentions-in-ai-answers): Record your competitors, check AI visibility once per assistant, read Mentions and Share of voice against them, then improve the pages assistants already cite and write the pages your strongest competitors have and you lack. Check again about once a month, when the dataset is rebuilt.
- [Finding keyword gaps against a competitor](https://netweft.com/blog/finding-keyword-gaps-against-a-competitor): List the keywords a competitor ranks for, remove the ones your own domain already ranks for, and keep the rest that match a page you could write. In netweft that is two Ranking keywords lookups on Domain overview, a save, a tag, and a tracker on the survivors.
- [GA4 beside Search Console, per project](https://netweft.com/blog/ga4-beside-search-console): Search Console reports what happened on Google: impressions, clicks, click-through rate and position, by query and page. GA4 reports what happened next: sessions, active users, engagement rate and key events, by channel, device and landing page. netweft reads both read-only, per project, for no credits.
- [Planning a topic cluster from one seed keyword](https://netweft.com/blog/planning-a-topic-cluster): Research a seed, group the ideas into one broad hub term and the narrower questions under it with tags, give each planned page one group, record the pages as hub and spoke key pages in project context, and audit the cluster for orphan pages once it is live.
- [Reading an SEO workspace from an agent](https://netweft.com/blog/reading-a-workspace-from-an-agent): netweft exposes MCP at POST /mcp under an API key, alongside an OpenAPI 3.1 document for the whole HTTP API. An agent reads a workspace's stored audits, keywords, rankings and project overview, and reading costs no credits because the credits were spent when the observation was made.
- [Reading a site audit by severity](https://netweft.com/blog/reading-an-audit-by-severity): Work critical first: server errors, broken internal links, missing titles and pages the crawler was blocked from. Warnings hold most of the ranking work, from duplicate titles to thin content and orphan pages. Info findings are often deliberate. A 403 or 429 means the crawl was refused, not that a page is broken.
- [Why netweft's cache and rate limiter fail open](https://netweft.com/blog/redis-is-optional): netweft's cache and rate limiter fail open: a cache that cannot answer is a miss, and a limiter that cannot count lets the request through, so the product keeps working, more slowly and more permissively. Choosing that up front is what stops a performance dependency becoming an availability one.
- [Refreshing pages that rank just off page one](https://netweft.com/blog/refreshing-pages-in-striking-distance): Sort Search Console queries by impressions, keep those with an average position between 8 and 20, group them by the page that ranks, and refresh the page that collects the most impressions first. Track the queries before the change ships so the result is measurable.
- [Reserve, then settle: pricing a call before you know its cost](https://netweft.com/blog/reserve-then-settle): netweft reserves credits at the rate card's price before a paid call goes out, then reads the real charge off the response and settles against it. The reservation is a ceiling, so a cheaper operation releases the difference, and a workspace that cannot cover it is refused before anything is bought.
- [Why connecting Search Console is two steps, not one](https://netweft.com/blog/search-console-two-steps): Google access is granted once per account, and the property a project reads is chosen per project. netweft keeps them as two separate steps because a single control that sometimes does one and sometimes both is unpredictable.
- [Why a rank tracker should store snapshots, not recompute them](https://netweft.com/blog/snapshots-not-recomputation): Store each rank check as an immutable snapshot — position, URL and the timestamp it was seen — rather than deriving history on read. A recomputed history can change without the SERP changing, which makes it useless as evidence.
- [Spending a trial's credits on one real domain](https://netweft.com/blog/spending-a-trial-well): A trial gets 3,000 to 8,000 credits by plan, 10 paid requests a minute and no auto top-up. Spend them on one domain you know: an overview, its referring domains, metrics for your terms, one audit, and a tracker on twenty keywords and one device, run by hand.
- [Why the SEO data provider sits behind a port](https://netweft.com/blog/the-provider-sits-behind-a-port): netweft's SEO data provider is an interface with two implementations: DataForSEO for real data, and a mock serving deterministic fixtures with no credentials. Nothing above the port knows which answered, so the product runs offline, every test is deterministic, and credit accounting is identical on both paths.
- [Top-ups and auto top-up: when to turn it on](https://netweft.com/blog/top-ups-and-auto-top-up): A dollar buys 2,500 top-up credits, from $10 a purchase. They never expire and are spent after plan credits. Auto top-up starts on: under 10% of the allowance it buys $20 more, at most 3 times and $60 a day.
- [What a 500-page crawl costs, and why Lighthouse is opt-in](https://netweft.com/blog/what-a-crawl-costs): A crawled page costs one credit, so a 500-page crawl is 500 credits. A Lighthouse pass costs 50 credits a page, so netweft measures a sample, the start URL and one page per URL shape up to 10, adding at most 500 credits. It is opt-in per audit.
- [What a scoped API key is actually protecting](https://netweft.com/blog/what-a-scoped-key-protects): Because every netweft MCP tool is read-only over rows already stored — none of them writes, crawls or spends a credit — a scope cannot withhold a capability, only a subject. The useful one is billing: it is how a key handed to an outside integration is stopped from reading the workspace's balance and plan.
- [What an SEO data lookup actually costs](https://netweft.com/blog/what-an-seo-lookup-costs): Almost every number in an SEO tool is bought from a data vendor per call or per keyword. netweft prices one credit at $0.0001 of raw vendor cost, reserves credits before a call runs, and settles the reservation against what the vendor actually charged.
- [Volume, CPC, difficulty and intent: what each number is for](https://netweft.com/blog/what-keyword-metrics-mean): Volume says how often a term is searched, the twelve-month history says when, cost per click says what a visit is worth to advertisers, difficulty estimates how hard the first page is to reach, and intent says what the searcher wants. None of them says whether your page can rank: that is what a rank check is for.
- [Why netweft has no free tier](https://netweft.com/blog/why-no-free-tier): Every netweft lookup costs real vendor money before anybody pays anything, so a free tier spends that money on accounts that will never convert. Instead there is a read-only demo, and a short trial with 3,000 to 8,000 credits by plan, a tighter rate limit and no auto top-up.
