# Rankability Help Center

Learn how to research, create, optimize, review, and publish SEO content that ranks and earns AI citations with Rankability.

This Help Center is the public source of truth for using Rankability. Rankability helps you create SEO content that ranks and earns AI citations—going from an idea to publish-ready content in five minutes or less when the topic and workflow are ready for automation.

## Set up Rankability

* [What is Rankability?](/getting-started/what-is-rankability)
* [Quickstart checklist](/getting-started/quickstart-checklist)
* [Create a client](/getting-started/creating-a-new-client)
* [Terminology and key concepts](/getting-started/terminology-and-key-concepts)

## Find opportunities and create content

* [Research keywords and competitors](/researcher/getting-started-with-researcher)
* [Create optimized content](/copywriter/creating-a-content-project)
* [Assign supported work in Asana](/account-and-settings/connecting-asana)
* [Audit a site, page, GBP, or URL set](/audit/audit-overview)
* [Analyze backlinks and find prospects](/promote/promote-overview)

## Measure search performance

* [Set up keyword tracking](/track/setting-up-keyword-tracking)
* [Understand the Track workspace](/track/reporter-executive-summary)
* [Understand Search Performance Index](/track/understanding-spi)
* [Connect GSC, GA4, and other data](/track/data-integrations-overview)
* [Compare portfolio performance](/agency/portfolio-performance)

## Work with Serena

* [What Serena can do](/serena/what-serena-can-do)
* [Use Serena chat](/serena/using-advisor)
* [Add sources and data connections](/serena/advisor-knowledge-base-and-data-connections)
* [Use Activity](/activity/tasks-board)

## Account, developer, and support resources

* [Understand billing and usage](/account-and-settings/understanding-billing-and-credits)
* [Manage team and client access](/account-and-settings/managing-team-and-client-access)
* [Get started with the API](/api/api-getting-started)
* [Connect Rankability through MCP](/api/mcp-getting-started)
* [Troubleshoot common issues](/troubleshooting/troubleshooting-common-issues)
* [Read the product changelog](/changelog)

## Need more help?

Sign in to Rankability and [contact support](https://app.rankability.com/support) if the documentation does not resolve your question.


# Product changelog

New features, improvements, and fixes released in August 2026. Release dates reflect the original in-app publication dates.

{% hint style="info" %}
Historical entries describe Rankability at the time of release. Features, names, prices, and credit rules in older entries may have changed or been retired. Use the [Help Center](/) for current product instructions and availability.
{% endhint %}

## Tracker - Start with the customer questions that matter

**Improved**

New full-platform accounts now move from a website to their first useful AI-visibility reports in one guided setup, without having to learn the entire application first.

**Ground the setup in the real brand** — Enter the website, review the brand and primary market Rankability found, then choose one product, service, or category the business should be recommended for. Nothing is tracked until you confirm the final step.

**Start with useful customer questions** — Rankability proposes ten buyer questions and selects five varied recommendations by default. Edit the wording, remove irrelevant questions, or add the other suggestions before tracking begins. Each selected question receives its own report and history.

**Use the platforms already included** — The last step selects the recommended AI platforms available on the subscription and explains that tracking starts immediately. The first usable results open as they become ready while slower answers continue saving in the background.

Follow the [Quickstart checklist](https://help.rankability.com/getting-started/quickstart-checklist) for the current five-step setup.

## Billing - Add the AI platforms you need without changing plan

**New**

Current Core and Team subscriptions can now add an individual AI tracking platform from Billing instead of moving the entire organization to another base plan.

**Choose only the missing platform** — Billing shows every supported AI platform, which ones are included, and which are available to add. Select the platform that matters to the client mix rather than paying for a broader plan solely to unlock one provider.

**See the subscription impact before confirming** — The confirmation shows the add-on price, proration, and new recurring total. Access begins only after any required payment succeeds, and a paid add-on can be removed later from the same platform list.

**Keep add-ons through plan changes** — Added platforms stay attached when you change plan or billing interval unless the new base plan already includes that platform. Platforms included with a base plan cannot be removed individually.

See [Understanding billing and usage](https://help.rankability.com/account-and-settings/understanding-billing-and-credits) for the current access and payment rules.

## Automate - Turn approved Research topics into an ordered content queue

**New**

Saved Research keywords can now feed a recurring content schedule, keeping topic qualification, article direction, generation order, and completed drafts connected in one client workflow.

**Queue the topics you already approved** — Select qualified rows in a saved Research list, choose Add to Automate, and send up to 100 topics to an existing content schedule for the same client. Adding them to the queue does not start generation.

**Control what runs next** — Reorder pending topics and save optional guidance for each article. Research topics run before the schedule's manual fallback list, so the most deliberate work stays first.

**Recover without duplicating work** — Open the created draft when it exists, remove a pending topic, or retry a failed item after correcting the underlying problem. The same saved keyword is not added twice to one schedule.

Follow [Using Automate](https://help.rankability.com/automate/using-automate) to create the schedule and manage its Research queue.

## Tracker v5.28 - See the searches behind an AI answer

**New**

Tracker can now show the search queries an AI provider exposed while building a captured answer, helping you understand the research path behind the response and find useful follow-up topics.

**See provider-returned searches** — Expand Fan-out queries on an AI-answer card to review the searches returned by ChatGPT, Gemini, Claude, Grok, or Meta. The section stays hidden when the provider did not return query evidence, so citations and page visits are not presented as searches.

**Turn useful queries into research** — Select any of the captured queries and add them to an existing keyword list or create a new list without retyping them. Duplicate queries are recognized instead of being added again.

**Keep the evidence with the answer** — Fan-out queries stay attached to the captured platform result, preserving the answer, scan, and provider context you need before turning one query into a broader recommendation.

See [Reading AI answers](https://help.rankability.com/track/ai-answers-tab), then open [Tracker](https://app.rankability.com/tracker) and expand an AI-answer card with available fan-out evidence.

## Client Brain v2.7 - Keep monitored knowledge trustworthy

**Improved**

Knowledge Base monitoring now has one reviewable workflow in Automate for choosing pages, checking changes, and approving updates, so monitoring can stay automatic without replacing content you already trust.

**Monitor the pages that matter** — Choose the saved pages you want to watch and run checks weekly or monthly. Use Check now when you need an immediate comparison, or add a new page to the knowledge base and begin monitoring it in the same guided step.

**Approve every knowledge change** — When a monitored page changes, Review changes shows the saved and live content side by side. Update the knowledge base only when the new version is correct, or dismiss the change and keep the approved source; detection alone never rewrites your knowledge.

**Handle moved pages separately** — When a saved page permanently moves, review the original and destination URLs before changing the source. Temporary and cross-site redirects do not silently replace the page Serena uses.

Follow [Serena sources and data connections](https://help.rankability.com/serena/advisor-knowledge-base-and-data-connections) to choose and monitor the client pages Serena should trust.

## MCP v1.15 - Do more Rankability work from your AI assistant

**New**

Rankability's Agent API and hosted MCP connection now cover substantially more of the platform, so an approved AI assistant can inspect saved work, start supported jobs, and follow results without losing the client context.

**Work across the platform** — The MCP server now registers 90 tools spanning clients, Knowledge, Researcher, Copywriter, Optimize, Tracker, Search Console, auditing, crawling, Search Intelligence, Prospector, backlink evidence, Routines, publishing, and Serena consultation.

**Read saved evidence before starting work** — Your assistant can inspect existing projects, results, usage history, audit artifacts, outreach lists, and publishing receipts before proposing another run. Missing measurements remain unavailable rather than becoming false zeros.

**Keep consequential actions controlled** — OAuth and scoped API keys limit access. Work that uses pooled capacity requires an impact estimate and your confirmation, while retry-safe operations use a stable request key to avoid duplicate jobs or changes.

Follow [Connecting Rankability to AI assistants with MCP](https://help.rankability.com/api/mcp-getting-started) to reconnect, verify the active organization, and load the current tool set.

## Rankability - Every full-platform tool included, with pooled usage

**Announcement**

Paid full-platform plans include every Rankability tool and unlimited users, while on-demand work is managed through pooled limits that recover automatically.

**Your existing terms are protected** — If you already had a paid full-platform subscription, you keep the price and client or workspace terms you were sold. Rankability does not automatically move a protected subscription to current plan packaging.

**Current plans match the pricing page** — As of August 28, Core is $199 per month with 75 daily tracked prompts and 3 brand workspaces; Team is $399 with 150 daily prompts and 10 workspaces; Agency is $799 with 250 daily prompts and 25 workspaces. Annual billing is $1,990, $3,990, and $7,990 respectively, and AI-platform access varies by plan. The short-lived $99-per-active-website offer from this release was retired.

**Scheduled work stays protected** — Routine tracking and monitoring are recorded separately from ordinary on-demand work, so active work does not consume the capacity reserved for recurring client reporting.

Check the current totals and platform access on the [pricing page](https://www.rankability.com/pricing/), then review your own subscription and usage in [Billing](https://app.rankability.com/billing).

## Copywriter - Catch unsupported claims before content is published

**Improved**

Copywriter now evaluates the saved final draft more carefully before publication, with stronger evidence requirements for comparisons and commercial claims.

**Review the content you will actually publish** — Quality and publish-readiness checks run against the final saved artifact instead of relying on an earlier draft or intermediate generation step.

**Require stronger support for commercial claims** — Claims about a product, service, price, guarantee, credential, or business capability need appropriate first-party evidence. Competitor research can inform the draft, but it is not treated as proof of what your business offers.

**Keep comparisons grounded** — Copywriter retains the evidence used for comparison content so important distinctions can be reviewed instead of disappearing after generation.

**Turn a blocker into a specific edit** — When a claim is unsupported, the review explains what needs attention and helps narrow the correction. Resolve, qualify, or remove the claim before using a live publishing destination.

These checks improve review quality; they do not replace a human editor or guarantee that every statement is correct. Use [Reviewing a draft in the editor](https://help.rankability.com/copywriter/running-an-editor-review) before publishing.

## Rankability - Connect Claude or Codex and work through your AI assistant

**New**

Rankability now provides a guided way to connect Claude or Codex and use the selected client's Rankability context and tools from your assistant.

**Start from organization settings** — Open Settings → API keys, choose Connect Claude or Codex, and follow the assistant-specific OAuth or scoped-key instructions.

**Verify the connection before starting work** — The setup checks that the Rankability endpoint is ready and gives you a read-only verification prompt. Confirm the active organization, shared-credit balance, and available tools before approving a consequential action.

**See whether the connection is actually ready** — Connection status distinguishes a configured assistant from one that still needs authentication or attention, reducing guesswork when no tools appear.

**Keep usage and job states clear** — The assistant can read the active credit state, estimate supported work before it starts, and distinguish saved drafts, queued jobs, stale integrations, and unavailable measurements instead of presenting them as completed work or zeros.

Follow [Connecting Rankability to AI assistants with MCP](https://help.rankability.com/api/mcp-getting-started) to connect and verify your assistant.

## Copywriter - Create, optimize, and resume work from one simpler Projects workspace

**Improved**

Copywriter now gives each common job a clear starting point and carries the same workflow through setup, processing, and review.

**Start with the outcome you need** — From Projects, choose Create content for one new asset, Optimize content for a published page, or Bulk create from the More menu for a reviewed keyword list. Existing projects stay in the same library, so you can check a run before starting duplicate paid work.

**Choose the level of help in plain language** — For a new asset, choose Complete the draft, Review the brief first, or Write it myself. Each option says what Serena will complete before you commit, and the focused Create flow keeps the primary action unavailable until you make the choice.

**Keep language and market decisions visible** — If a project's language or location differs from the workspace, topic, or selected market, Copywriter shows the mismatch before work begins while preserving your ability to use the intentional project-specific settings.

**Follow one consistent progress story** — Autopilot now uses the same five customer-facing stages from research through preparation for review. Refreshing or returning to a project resumes the current state, and recoverable finishing work continues without asking you to create another project.

See [Creating a content project](https://help.rankability.com/copywriter/creating-a-content-project) or [Optimizing existing content](https://help.rankability.com/copywriter/optimizing-existing-content) for the current workflows.

## Tracker - Ask Serena about a report and read richer ChatGPT results

**Improved**

Tracker now makes it easier to move from a result to an explanation and to understand structured results captured from ChatGPT.

**Take the exact report to Serena** — Choose Ask Serena from a non-portal Tracker report to open a dedicated conversation grounded in that client, project, keyword, and report. You can investigate a change or compare evidence without rebuilding the context by hand.

**Read map businesses as businesses** — ChatGPT map results can show the captured business name and available details such as image, rating, category, and open status. Use Copy names to move the returned names into comparison or follow-up research.

**Keep ads separate from map listings** — Sponsored creative is presented separately when the provider returns enough ad detail. A map business is not mislabeled as an advertiser simply because it has a name or logo, and unavailable structured fields remain unavailable instead of being converted into a false zero.

See [Understanding the Track overview](https://help.rankability.com/track/reporter-executive-summary) and [Reading AI answers](https://help.rankability.com/track/ai-answers-tab) for interpretation guidance.

## Copywriter v5.14 - Copywriter credits are now simpler—and up to 75% lower

**Announcement**

We've standardized Copywriter pricing around completed work. The cost no longer changes depending on whether you use Editorial mode or Autopilot.

**One simple price per outcome** — The new rates for full-platform customers are: completed new content asset, 750 credits; completed existing-content optimization, 400 credits; successful user-requested full-document rewrite, 250 credits. Research and brief work alone, automatic finishing, manual editing, publishing, and exporting cost 0 credits.

**Up to 75% lower** — Previously, a new content asset could cost 3,000 credits through Autopilot, 2,100 credits for a brief and draft, or a different amount based on the selected research sources. A completed new content asset now costs 750 credits. That means you can save 75% compared with the previous Autopilot rate and 64% compared with the previous brief-and-draft rate.

**More completed content on every plan** — This significantly increases how many content assets can be completed with the credits included in each plan: Starter, up to 13; Growth, up to 40; Scale, up to 100; Agency, up to 266.

**You pay for the completed outcome** — If work fails before producing the billable outcome, its reservation is released. Automatic retries and repairs do not create another Copywriter charge. An Autopilot run reaches its charge point once it has produced a usable draft, even if a later finishing step still needs attention.

See the current [credit costs reference](https://help.rankability.com/account-and-settings/credit-costs-reference), then open [Copywriter](https://app.rankability.com/copywriter) to put your credits to work.

## Serena - Turn approved site fixes into reviewable GitHub changes

**New**

Serena can now move supported technical website work from diagnosis to a bounded GitHub pull request instead of stopping at recommendations.

**You stay in control** — Connect the correct repository and choose how Serena may act: ask before creating a change, automatically prepare a pull request, or use the broader access your organization has explicitly allowed. Repository changes remain scoped and reviewable rather than writing directly to the default branch.

**Follow the work without starting over** — Serena preserves the objective through connection steps and refreshes, shows the current work state in chat, and records the result in Activity. When a pull request exists, you can open it directly and follow its checks and merge state.

**Verify supported fixes after deployment** — Once you deploy a change, Serena can recheck supported URL-specific Site Auditor findings and distinguish verified fixes from issues that remain open.

See [what Serena can do](https://help.rankability.com/serena/what-serena-can-do) and review the execution boundary before approving a repository change.

## Activity - See what needs attention, what is running, and what was completed

**New**

Activity is now a clearer client workspace for deciding what to do next and confirming what Rankability already delivered.

**Start with the real priorities** — The Priority view separates work waiting on you, work currently running, important alerts, and the strongest recommended next actions. The Activity badge counts items that actually need human review instead of every raw monitoring condition.

**Keep alerts useful** — Critical and warning conditions are grouped in the Alerts view, while substantive knowledge-source changes and broken sources can surface as client-level actions instead of remaining buried in source history.

**Keep a durable record** — Serena actions and other completed outputs appear in History with the available result link, status, and timing. This makes Activity useful for both the next decision and the record of work already performed.

Learn how to use each view in [Using Activity](https://help.rankability.com/activity/tasks-board).

## Copywriter - Move researched keywords into ready-to-run content batches

**Improved**

The handoff from Researcher to Copywriter now carries the selected keywords with it, so you can move from an approved keyword list to content setup without retyping the work.

**One keyword or a complete batch** — Choose Create content for one saved keyword or select several and choose Send to Copywriter. The single-asset topic or multiple-asset table opens already populated, with up to 100 selected keywords ready for review.

**Confirm the decisions that shape the output** — Copywriter now keeps workspace language and location defaults together, while research sources remain an explicit per-asset choice. It also requires an explicit page format for every valid asset before paid work begins. This reduces accidental wrong-language drafts and article-shaped output for commercial or service pages.

Review the keywords, remove duplicates, confirm each asset's format and estimate, then start the batch. See [Managing keyword lists](https://help.rankability.com/researcher/managing-keyword-lists) and [Creating a content project](https://help.rankability.com/copywriter/creating-a-content-project).

## Serena - Plan content without creating competing pages

**New**

Before creating a content cluster, Serena can now review the client's existing content portfolio and turn the proposal into a decision you can correct.

**Check what already exists** — Serena compares proposed topics with client-scoped Copywriter projects, the latest Site Auditor crawl, recent Search Console pages, and tracked keywords.

**Choose the right action per topic** — Each recommendation is labeled Create, Update existing, Consolidate, or Skip. You can edit the action and target before confirming the plan, and Serena revalidates existing-page targets before creating work.

**Avoid unnecessary new pages** — Approved updates create optimize-mode projects for the selected existing page, matching projects are reused, and Consolidate or Skip decisions do not create duplicate content projects. This gives content planning a practical cannibalization check without allowing Serena to change a live customer page directly.

Start with [what Serena can do](https://help.rankability.com/serena/what-serena-can-do), then review every proposed action before creating the cluster.

## Archives

* [July 2026](/changelog/2026-07)
* [June 2026](/changelog/2026-06)
* [May 2026](/changelog/2026-05)
* [April 2026](/changelog/2026-04)
* [March 2026](/changelog/2026-03)
* [February 2026](/changelog/2026-02)
* [January 2026](/changelog/2026-01)


# July 2026

Rankability product updates originally published in July 2026.

{% hint style="info" %}
Historical entries describe Rankability at the time of release. Features, names, prices, and credit rules in older entries may have changed or been retired. Use the [Help Center](/) for current product instructions and availability.
{% endhint %}

[Back to the latest product updates](/changelog)

## Releases

## Client reports - Show the work completed, not only the results

**New**

Shared client reports can now show the meaningful work delivered for the client alongside performance and recommended next steps.

**Make ongoing value visible** — The Work completed section summarizes eligible completed and measuring work for the selected reporting period and pairs it with the lifetime total. A quieter week therefore stays in the context of the longer delivery record.

**Keep the report client-ready** — The section uses concise, active descriptions without attributing every line to Serena, a specific employee, or an agency name. Low-value setup activity and raw monitoring noise are excluded.

**Control each shared report** — Work completed can be enabled or disabled with the other report-visibility options and disappears when there is nothing eligible to show.

See [Setting up the client portal](https://help.rankability.com/account-and-settings/client-portal-sharing) to configure the share link and visible report sections.

## Tracker - Export complete AI answers for deeper analysis

**New**

Tracker's multi-report spreadsheet export now includes the complete captured AI answers, giving you evidence you can audit, compare, and analyze outside Rankability.

**Keep the answer with its context** — Each exported answer includes its report, keyword, platform, capture time, location, mention and citation states, sentiment evidence, cited URLs, provider, and provider tier. Missing answers are not mislabeled as successful captures.

**Preserve long responses** — When an answer exceeds Excel's per-cell limit, Rankability continues it across numbered rows so the workbook retains the complete text instead of silently cutting it off. Citation URLs are canonicalized to reduce superficial duplicates.

From the Tracker project list, select the reports you need and export them to a spreadsheet. The full-answer section appears with the existing traditional-search and citation evidence. See [Reading AI answers](https://help.rankability.com/track/ai-answers-tab) for interpretation guidance.

## Rankability's Help Center and product changelog are now public

**Announcement**

Rankability product guidance is now available at help.rankability.com without requiring an application login.

**One source of truth** — The public Help Center owns current setup instructions, product behavior, supported platforms, integrations, costs, API guidance, and troubleshooting. In-app help links route to the same canonical articles instead of maintaining a separate gated documentation library.

**A public release history** — The product changelog now lives in GitBook with monthly archives. Historical entries describe Rankability at the time of release, while the linked Help Center articles remain authoritative for current behavior.

Open the [Rankability Help Center](https://help.rankability.com/) to search the documentation, follow a workflow, or review the public changelog.

## Tracker v5.27 - See which ranking pages actually mention your brand

**New**

The Traditional search tab can now open up the pages that outrank you and tell you whether they mention your brand at all — turning a list of competitor rankings into a list of places you could be mentioned.

**Analyze the pages ranking above you** — Click "Analyze results" above the results table and each ranking page is visited, read, and checked for your brand. It runs across your Google, Bing, DuckDuckGo, and Brave results, and you can re-analyze at any time to pick up changes.

**Four clear outcomes per result** — Every row gets a Status. "Linked" means the page mentions you and links to a domain you own. "Unlinked" means it mentions you but doesn't link. "Not mentioned" means your brand is absent from the page. "Not available" means the page couldn't be read — usually a paywall, a login wall, or a site that was temporarily down. Hover any badge for the full explanation.

**Filter straight to the opportunities** — Once analysis finishes you get live counts for All, Has mention, and Not mentioned. Filter to "Not mentioned" for a clean outreach list of pages that rank for your keyword and have never talked about you. The "Unlinked" pages are usually the fastest win — they already mention you and just need a link.

**Carried into your CSV export** — The results export now includes Mention Status, Brand URL, and Analyzed At columns alongside the ranking data, so you can hand the list straight to whoever is running outreach.

**Kept separate from AI citation scoring** — This analysis doesn't touch your Citation Visibility Score, which still describes AI-cited sources only. It runs on demand rather than on every scan, so you only pay for the pages you choose to check.

Open the [Tracker](https://app.rankability.com/tracker), pick a project, and click Analyze results on the Traditional search tab.

## Page Auditor v1.19 - See where your content stands apart from competitors

**New**

Every page audit now includes a Content Differentiation analysis — a scored breakdown of how much your page contributes beyond what the competing pages already cover, and exactly where it's leaving value on the table.

**A score against the pages actually ranking** — The analysis reads your page alongside the competitors currently ranking for your target keyword, scores the content across five dimensions, and produces an overall 0–100 score. The exact comparison cohort is listed so you know which pages your content was measured against.

**Five dimensions of differentiation** — The breakdown covers: Distinct contribution (does your page make claims competitors don't?), First-party evidence (do you cite original data, case studies, or direct experience?), Question coverage (do you answer the questions the search results leave open?), Original examples or methodology (do you demonstrate a process rather than just describe one?), and Passage clarity (is your writing direct and scannable, or padded?).

**Validated differentiators and claims needing proof** — Specific passages in your content are categorized as validated differentiators (verifiably distinct from competitor content), potential differentiators (promising but not yet backed by evidence in the page), or claims needing proof (assertions that competitors also make or that lack supporting detail). This tells you exactly what to keep, what to strengthen, and what to cut.

**Prioritized recommendations** — The analysis closes with a ranked list of the highest-impact opportunities to make the page more distinctive, so you know where to focus the next revision.

**Beta — not yet in the overall score** — Content Differentiation runs on every audit but is shown as an unweighted subsection while we validate its relationship to citation outcomes. It does not affect your overall page score yet.

Open the [Page Auditor](https://app.rankability.com/page-auditor) and run or re-run an audit to see Content Differentiation in the results.

## Serena v5.3 - Show Serena a screenshot

**New**

You can now paste or attach screenshots directly into any Serena conversation — up to four images per message — and Serena will analyze what she sees alongside your question.

**Paste or attach any image** — In any Serena chat, paste a screenshot from your clipboard or attach an image file. Up to four images per message are supported. Each image appears inline in the conversation before Serena responds, so you can confirm what she received.

**Ask about anything visual** — Share a screenshot of a search results page, a competitor's layout, a Google Business Profile, a site audit finding, an analytics chart, or anything else you'd normally have to describe in words. Serena reads the image and responds based on what she actually sees, grounded in the client's data and knowledge.

**Live context, not stored** — Images are used for the turn you attach them to and are not saved or re-sent in later messages. If you reference a screenshot in a follow-up, attach it again.

Open [Serena](https://app.rankability.com/clients) for any client and paste a screenshot into the chat to get started.

## Tracker v5.14 - Share the tracker with clients — no login required

**New**

You can now generate a private share link for any client's tracker and send it directly to them. Anyone with the link can view live keyword rankings, AI answer data, and performance history without creating an account or signing in.

**One toggle, instant link** — In a client's settings under "Client portal access," flip the "Share link" toggle on and a unique URL appears immediately. Copy it and send it however you like — email, Slack, a client report. The link works on any device, in any browser.

**Branded experience** — The shared tracker displays your agency logo and brand colors. Clients see their performance data in a portal that looks like your platform, not Rankability's.

**Full tracker access, read-only** — The shared view includes keyword positions across traditional search and AI platforms, mention data, citation history, and trend charts — the same data you see inside the platform, with no ability to make changes.

**Rotate or revoke any time** — If you need to cut off access, flip the toggle off to disable the link immediately. Use the rotate button to generate a fresh link and invalidate the old one without disabling sharing.

Open any client's [settings](https://app.rankability.com/client-settings) and scroll to "Client portal access" to turn on the share link.

## Page Auditor v1.18 - Schema checks that match your page's intent and query

**New**

The Page Auditor now checks whether your page's structured data and content components match what the search query actually expects — so instead of just telling you "schema is present," it tells you whether the right schema is there for your intent and whether your page is built the way search engines and AI answer engines need it to be.

**Schema matched to your page's intent** — The audit compares your structured data against what's expected for your page's detected intent and components. An informational article should expose Article or BlogPosting markup; a local-service page needs LocalBusiness; a commercial or comparison page needs Product, Review, or ItemList. If the page has an FAQ section or numbered steps, the matching FAQPage or HowTo schema is required too. The audit lists exactly which types are present and which are missing.

**Query-implied components** — For comparison and "best of" queries, the audit checks whether the page has a comparison table. For how-to queries, it checks for a step-by-step structure. For question-style queries, it checks for a FAQ or direct-answer block. Only the checks that apply to your specific query are scored — so a page is never flagged for not having a component its query doesn't call for.

**Semantic HTML structure** — The audit checks whether the page uses proper HTML5 structural regions like \`

\` and \`\`, and estimates what share of the page is primary content versus boilerplate like navigation and footers. Pages that lack a clear main region, or where boilerplate dominates, are flagged so you can see what crawlers and AI answer engines are likely struggling to isolate.

Open the [Page Auditor](https://app.rankability.com/page-auditor) for any client and run or re-run an audit to see the new signals.

## Serena v1.5 - YouTube videos as a knowledge source

**New**

You can now add YouTube videos to your client's knowledge base — paste any YouTube link and Serena extracts the full transcript automatically, making everything said in the video available for every conversation about that client.

**Paste any YouTube URL** — In the Client Brain, click Add source, paste a YouTube video link, and Serena pulls the full transcript in the background. The video's title and word count are stored alongside the content so you can see exactly what's been indexed.

**Serena draws on it immediately** — Once the transcript is imported, it's available to Serena just like any other knowledge source. Ask questions about the client's market, products, talking points, or positioning, and Serena will pull from the video alongside your other sources.

**Works alongside your existing knowledge base** — YouTube transcripts sit next to website sources, uploaded documents, and pasted text. Serena uses all of them together to give grounded, client-specific answers.

**One credit per import** — Importing a transcript costs 1 brain credit and is charged only on success. If a video has captions disabled, Serena lets you know rather than silently failing.

Open the [Client Brain](https://app.rankability.com/brain) for any client, click Add source, and paste a YouTube URL to get started.

## Serena in Slack (beta) - Ask Serena about your clients without leaving Slack

**New**

Serena is now available directly in Slack. Install the app, connect it to your Rankability organization, and mention Serena in any channel or thread to ask about your clients' performance — no need to switch tabs.

**Ask about any client** — Ask Serena what's going on with a client, why rankings dropped, what the latest GSC trends look like, or what to focus on next. Serena pulls from the same data and knowledge it uses inside Rankability, so the answers are grounded in real numbers rather than generic SEO advice.

**Works in channels and threads** — Mention the Serena app in any channel your workspace has access to, or use it in a thread to keep the conversation context tight. Serena remembers the thread, so you can follow up without repeating yourself.

**Propose and approve actions** — For write actions like starting a content project or running a site audit, Serena proposes the action before doing anything and waits for your explicit approval. Nothing happens until you say yes.

**Connect in settings** — Go to [Settings](https://app.rankability.com/settings) → Connected apps and click **Connect Slack** to install the app and pair your workspace to your Rankability organization. Once paired, mention the Serena app in Slack to get started.

**This is an early beta.** Some features available in the in-app Serena experience are not yet available in Slack, and behavior may change as we improve it. Serena is AI and can make mistakes — please double-check responses before acting on them, especially for client-facing work.

## Tracker v5.26 - Track your visibility in Meta AI's answers

**New**

Meta AI is now a trackable answer engine in the Tracker — see whether your brand shows up, and which sources get cited, when people ask Meta AI.

**A new engine alongside the rest** — Meta AI joins ChatGPT, Perplexity, Gemini, Claude, Grok, Copilot, Brave AI, and DeepSeek as a trackable platform. Its answers are grounded in live web search, so you're measuring what people actually see today.

**Turn it on per project** — Meta AI is opt-in. Add it to a project's tracked platforms whenever you want to start measuring it, and leave it off for the clients that don't need it.

**Rolls into your SPI and citations** — Meta AI results feed your Search Performance Index and citation tracking just like every other AI platform, so you can see where you stand and which pages and domains Meta AI is citing.

Open the [Tracker](https://app.rankability.com/tracker), edit a project's platforms, and add Meta AI to start tracking.

## Copywriter v5.13 - WordPress publishing that matches your site's editor

**New**

Articles published to WordPress now arrive in the format your site actually uses. On block-editor sites they open as real, editable Gutenberg blocks instead of one big HTML blob — and on page-builder sites (Elementor, Divi, Beaver Builder, and others) they land as clean HTML that drops straight into your builder without markup noise.

**Native blocks delivery** — In your WordPress connection settings, set **Article delivery** to **Native blocks**. Published articles then open in the WordPress block editor as individual headings, paragraphs, lists, and images — every piece separately editable, exactly as if it were written in WordPress.

**Your page builder is detected automatically** — The Rankability plugin reports which builder your site runs, and publishing adapts on its own. Sites using Elementor, Divi, Beaver Builder, Bricks, Oxygen, or WPBakery receive clean formatted HTML that renders correctly inside the builder's own widgets — no configuration needed.

**See what was detected** — Each WordPress connection now shows an Environment section listing the builders found on the site, when it last checked in, and a refresh button — so you always know why your content arrives in the format it does.

**Safe on older plugins** — If the plugin on a site hasn't been updated yet, publishing still works: articles are delivered as classic HTML and the settings show a clear note telling you an update unlocks native blocks.

Open a client's WordPress connection in the [Copywriter](https://app.rankability.com/copywriter) publish settings and switch Article delivery to Native blocks to try it.

## Researcher v2.0 - Perplexity answers inside keyword reports

**New**

Keyword reports now include a dedicated Perplexity tab — see the AI-synthesized answer, cited sources, and which domains Perplexity is surfacing for any keyword, right alongside your Google, YouTube, and AI Mode data.

**What Perplexity says about your keyword** — The Perplexity tab shows the full synthesized answer Perplexity returns for that search query: formatted text, bold highlights, bullet points, and comparison tables rendered cleanly — the same experience a user would see, without leaving Rankability.

**Cited sources panel** — Below the answer, every source Perplexity cited is listed with its title, domain, and a snippet. You can see at a glance which sites Perplexity trusts most for this topic and where your domain sits in that list.

**Cross-surface compare** — Switch to the Compare tab to see Google organic, AI Mode, and Perplexity side by side. The table shows which domains appear across all three surfaces so you can identify who owns the topic end to end, and where your gaps are.

**Download everything** — The existing report download now includes Perplexity citations alongside the organic and AI Mode data so you can drop the full picture into a client deck or spreadsheet in one click.

Open the [Researcher](https://app.rankability.com/researcher) and run a keyword overview, then click the Perplexity tab to see it in action.

## Copywriter v5.12 - Autopilot: hands-off content from topic to editor

**New**

The Copywriter now has a fully hands-off mode. Give Serena a topic, and it researches, writes, optimizes, fact-checks, and adds imagery in one pass — delivering a finished draft to your editor with no steps in between.

**Complete mode** — When you create a content project, choose how much Serena should complete. Draft mode writes a first draft for you to review and polish. Complete mode goes all the way: Serena writes, optimizes against the competition, adds links and citations, then sends the finished piece to the editor. Best for competitive topics and high-stakes pages.

**One flat price, charged only on success** — A Complete mode run is a flat 3,000 credits, and you're only charged when a usable draft is actually produced. If a run fails along the way, nothing is deducted.

**Optimizes against the competition** — Serena doesn't stop at a first draft. It scores the piece against the top-ranking competition and runs additional optimization passes to close the gap — the same loop you'd run by hand in Optimize mode.

**Fact-checked with sources** — Before anything reaches your editor, claims are checked and citations added, so the draft you receive is grounded in real sources rather than left for you to verify.

**Auto-publishing (beta)** — For clients on WordPress or Webflow, you can now put content creation on a schedule: pick a destination and a daily, weekly, or monthly cadence, approve a topic list, and Rankability generates and pushes content automatically. Only drafts that meet the quality bar go live — anything below it is saved as a CMS draft for your review. This one is early and experimental, so start with a weekly cadence on a site you watch closely. Find it under Auto-publish in the Copywriter.

Open the [Copywriter](https://app.rankability.com/copywriter), start a new project, and choose Complete mode to try it.

## API v1.8 - Run Copywriter Autopilot from the API and AI assistants

**New**

The new hands-off Copywriter Autopilot is also available programmatically — start a full topic-to-finished-draft run from your own systems or from an AI assistant connected over MCP.

**Start a run with one call** — `POST /api/agent/v1/copywriter/autopilot` takes a topic (plus optional client, intent, and extra context) and kicks off the entire pipeline: research, brief, draft, optimization passes, fact-checking with citations, and imagery. You get a job ID back immediately and the run continues in the background.

**Poll progress stage by stage** — `GET /api/agent/v1/copywriter/autopilot/:id` reports exactly where the run is — researching, briefing, drafting, optimizing, fact-checking, adding imagery, finalizing — plus how many optimization passes have run and whether the flat 3,000-credit charge has been applied or released.

**Safe to retry** — Send an `Idempotency-Key` header and retrying the same request returns the original job instead of starting (and charging for) a duplicate run.

**Fetch the finished draft** — When the run completes, pull the final content, brief, and images through the same artifacts endpoint used by other content jobs.

**Built in for AI assistants** — Connect over MCP and your assistant can start and monitor runs directly with the new `create_content_autopilot` and `get_autopilot_status` tools.

Generate or rotate a key in [Settings](https://app.rankability.com/settings) → API Keys, and see the full endpoint reference in the [Help Center](https://help.rankability.com).

## Serena v5.2 - Now learns from how Rankability actually does the work

**New**

Serena keeps getting deeper. On top of Rankability's coaching knowledge and step-by-step playbooks, it now learns from real demonstrations of the work being done — hundreds of recorded sessions of our team executing SEO — so its answers reflect not just what to do, but how it's actually done in practice.

**Grounded in real demonstrations, not just theory** — We distilled hundreds of videos of Rankability's team doing live SEO into thousands of practical lessons and gave them to Serena. Now when you ask how to approach something, the answer is shaped by how experienced practitioners actually handle it — the sequencing, the judgment calls, and the details that only show up when you watch the work get done.

**Spans strategy, teardowns, and tutorials** — The lessons come from live strategy walkthroughs, site and campaign teardowns, and hands-on tutorials across the whole job — technical SEO, local search, content, AI-search visibility, links, and more. So whether you're planning a campaign or fixing one specific problem, there's real-world execution behind the advice.

**Still leads with current, durable thinking** — Serena blends this with the coaching knowledge and playbooks it already had and keeps surfacing the most current, most durable guidance first — so you get advice that reflects where Rankability's approach is today, now grounded in practice as well as principle.

**Works everywhere, nothing to set up** — This is on in every Serena chat and during guided client setup, for every client, automatically. There's no toggle and no new screen — Serena is simply sharper and more practical the moment you ask.

Open [Serena](https://app.rankability.com/clients) for any client and ask how you'd tackle your next piece of work.

## Copywriter v5.11 - Ecommerce collection pages, built for product categories

**New**

Copywriter now recognizes when your keyword is a product category and writes an ecommerce collection page for it — shaped for a store's category page, not a blog article.

**Recognizes product-category keywords** — Enter a keyword like "baseball cleats," "gift baskets," or "sewing machines" and Copywriter detects that it's a browsable product category and switches to a collection-page format. It's deliberately careful: software, services, how-to, and comparison searches keep the formats they already use, so only genuine shopping categories get restructured.

**Built around your product grid** — The page is written thin above the grid and deep below it: a short, benefit-led intro that never pushes your products out of sight, then richer category copy underneath for search. The copy stays tight and scannable instead of ballooning into a long read.

**Set to Convert automatically** — Product-category keywords now default to the Convert intent, matching what the intent picker already describes, so the page is written to help shoppers choose and buy rather than just read.

**Shopping-focused guidance** — When you add guidance for the draft, Copywriter now suggests shopping-oriented prompts — "Highlight the range of products and top categories," "Guide shoppers with sizing, fit, or buying tips," and "Add a clear call to action to shop the collection."

**Links only to real pages** — The page only links to pages found in your site's sitemap and won't invent subcategory links that lead nowhere, so you don't ship a collection page full of dead links.

Open the [Copywriter](https://app.rankability.com/copywriter) for any client and enter a product category like "running shoes" to try it.

## Copywriter v5.10 - Serena edits your draft with you, right in the editor

**New**

Serena now works alongside you inside the Copywriter editor. Ask for a change in plain language and she revises the draft in place — grounded in the client's full context — and you can restore the previous version anytime.

**She rewrites the draft in place** — Ask Serena to rewrite a section, tighten the copy, restructure, fix a specific part, improve clarity or SEO, add an FAQ, or adjust the tone, and she applies the revised draft straight into the editor. Every change is reversible — restore the previous version with one click, so you can experiment without fear of losing work.

**An editorial and claims pass on demand** — Ask her to proofread or run a claims check and she flags unsupported or risky statements, then softens or qualifies them in the rewrite. She won't invent facts, figures, or citations — so if a number can't be verified she'll leave it out or add a note rather than make one up, and what stays in the draft is something you can stand behind.

**Expands what the page covers** — Ask what queries the page should answer, and Serena reasons from the client's Search Console data and your target keywords to suggest — or add — the coverage you're missing, so the page speaks to more of what people are actually searching.

**Full client context, not a generic assistant** — She works from the client's website, Search Console, saved knowledge, and the same research and audit skills she uses everywhere else, so her edits fit the business rather than just the sentence in front of her. Your chat also stays with the draft — switch tabs or reload and you pick up right where you left off.

**For articles and YouTube scripts** — The same in-editor Serena helps with both your Copywriter drafts and your YouTube scripts, tightening a hook or expanding a section the same way.

Open the [Copywriter](https://app.rankability.com/copywriter) for any client, open a draft, and ask Serena to make your first edit.

## Guided client setup - Build a client's foundation, focus, and 90-day plan in one flow

**New**

Adding a new client is now a guided experience. Instead of just creating a record and figuring out the rest yourself, Rankability can walk you from a brand name to a ready knowledge base, a chosen focus, and a 90-day topic plan — all grounded in the client's real search demand.

**Pick guided or quick** — When you add a client you now choose how to start. Quick setup just needs a name and website to begin tracking right away, while guided setup walks you through the whole foundation. Every guided step is optional and you can leave and pick up right where you left off anytime.

**Connect the client's data in the flow** — Connect Google Search Console — and Google Business Profile for local businesses — without leaving setup. Rankability finds and matches the right property and location to the site for you, or you can skip it and use keyword research instead.

**Its knowledge base, built for you** — Rankability reads the client's website and builds their knowledge base automatically, so everything that follows is grounded in what the business actually does rather than a blank slate.

**One demand pool from research and Search Console** — Rankability brings keyword research and your Search Console data together into a single demand pool and scores the biggest opportunities. It runs in the background, so a big research pass never times out and you can safely leave the page.

**Choose a focus, get a 90-day plan** — Rankability proposes focus areas from that real demand — and if it isn't sure it read the business right, you can correct it in one sentence and it re-analyzes. Pick a focus and you get a 90-day topic plan where each topic is either a new page to create or a refresh of a page you already have, and you can start a Copywriter report from any topic in one click.

Open [Add a client](https://app.rankability.com/clients/new) and choose Guided setup to try it.

## Copywriter API - Cheaper default and clear cost on every job

**Improved**

The Copywriter API now defaults to a cheaper, recommended set of research platforms and tells you what each job will cost — so automated content pipelines stop burning credits they didn't mean to.

**A cheaper default when you don't choose** — If you create a Copywriter job without specifying `research_platforms`, the API now runs the recommended subset — Google Organic, ChatGPT, and Claude — the same default the in-app picker uses, instead of running every platform. For a full auto run that's roughly 1,036 credits instead of \~2,100, with no change to how you call the API.

**You're always in control** — Want more sources? Pass a `research_platforms` array and the API runs exactly what you list (Google Organic is always included). Passing the full list runs every platform, just like before.

**See the cost before the run finishes** — Every job-creation response now echoes back the `research_platforms` actually used and a `credits_estimated` figure, so your automation can log and budget the exact cost of each run.

**Heads up if you relied on the old behavior** — If your integration expected every platform to run when `research_platforms` was omitted, add the full array explicitly to keep that behavior. Otherwise, you'll simply spend fewer credits per run.

See the updated field reference and cost guidance at [docs/agent-api.md](https://help.rankability.com/api/api-site-auditor).


# June 2026

Rankability product updates originally published in June 2026.

{% hint style="info" %}
Historical entries describe Rankability at the time of release. Features, names, prices, and credit rules in older entries may have changed or been retired. Use the [Help Center](/) for current product instructions and availability.
{% endhint %}

[Back to the latest product updates](/changelog)

## Releases

## Serena v5.1 - Now teaches you Rankability's step-by-step playbooks

**New**

Serena just got a major upgrade. On top of reasoning from Rankability's coaching knowledge, it can now teach you the exact step-by-step procedures our team follows — so when you ask how to do something, you get the real playbook, in order, not a vague summary.

**Hundreds of real SOPs, taught on demand** — We've given Serena nearly 300 of Rankability's standard operating procedures — the same documented playbooks our strategists work from. Ask how to do something and Serena walks you through that procedure step by step, in the right order, adapted to what you're working on.

**Covers the whole job, end to end** — The playbooks span eight areas of the work: technical SEO, local SEO, content, AI answer optimization, reviews and reputation, keyword research, traffic recovery, and conversion rate optimization. So whether you're adding article schema, setting up a Google Business Profile, earning citations in AI answers, or recovering from a traffic drop, there's a proven procedure behind the answer.

**It teaches the one right procedure** — Serena finds the single best-matching playbook for what you're trying to do and teaches that one, rather than dumping generic steps on you. If nothing fits well enough, it won't force the wrong procedure — teaching the right thing matters more than always having a checklist.

**Personalized and plain-English** — Each procedure is taught in plain language, tailored to the client you're working on and grounded in how Rankability actually approaches the work. Serena explains what to do and why — it's guidance you act on, not changes made to your site behind your back.

**Nothing to set up** — This works in every Serena chat, for every client, automatically. Just ask Serena how to tackle your next task.

Open [Serena](https://app.rankability.com/clients) for any client and ask it how to do your next piece of work.

## Prospector v2.0 - Out of beta, with far more link opportunities and bulk discovery

**New**

Prospector is out of beta and bigger than ever. It now finds dozens of distinct link-building and offsite opportunities — organized into clear categories — and you can line up several discovery searches and run them at once instead of one at a time.

**Out of beta** — Prospector is now a first-class part of Promote for every client, no flag and no rough-edges warning. The link-building and offsite-opportunity discovery you've been testing is here to stay.

**Far more ways to earn links** — Beyond podcasts, local sponsorships, guest posts, and directories, Prospector now hunts local events, scholarships, conferences, schools and clubs, chambers of commerce, trade associations, city and county resource pages, nonprofit resource lists, libraries and community centers, B2B partners, speaking and workshop slots, local news features and "best of" awards, and client, vendor, and case-study testimonials. They're grouped into categories so you can pick exactly the kind of opportunity you want to chase for each client.

**Run a whole batch at once** — Open the Batch view and add a row for each search — choose an opportunity type, enter the brand or industry, and optionally a location — then click Run all. Searches run in the background in parallel, with each row showing "Searching…" and then how many targets it found, so you can queue up a dozen searches and walk away instead of starting them one at a time.

Open the [Prospector](https://app.rankability.com/prospector) under Promote on any client and pick the opportunities you want to pursue.

## Serena v5.0 - Grounded in Rankability's expert coaching knowledge

**New**

Serena just got a major intelligence upgrade. It now reasons from Rankability's expert coaching knowledge — the playbook distilled from our coaching calls — so the guidance you get reflects how Rankability's best strategists actually work, not generic SEO advice.

**Grounded in the Rankability playbook** — Ask Serena how to handle a keyword, a piece of content, a local listing, or an AI-search problem, and it draws on the expert teaching distilled from our coaching calls before it answers. The result reads like advice from a Rankability coach who already knows how we approach the work — not a generic chatbot.

**Leads with what we recommend today** — Serena tells the difference between the approach we stand behind now and older takes we've since refined. It surfaces the most relevant, most durable, most current guidance first, so when our thinking on a tactic has moved on, Serena leads you to where we've landed — not where we started.

**Points you to the lesson behind the advice** — When a point comes from a lesson that lives in your Academy, Serena links you straight to it, so you can read the full reasoning, learn the why, and see exactly where the recommendation came from.

**Ask how the thinking has changed** — Curious how an approach evolved over time? Ask, and Serena walks you through how the recommendation shifted. The rest of the time it keeps that history out of the way and just gives you the current answer.

**Nothing to set up** — This works in every Serena chat, for every client, automatically. There's nothing to switch on — Serena is simply sharper and more on-brand the moment you ask.

Open [Serena](https://app.rankability.com/clients) for any client and ask it how to approach your next piece of work.

## Copywriter v5.9 - Generate a whole batch of articles at once

**New**

Copywriter has a new Generation board for producing many articles in one go — set your shared details once, paste a list of keywords, and they run through the full Copywriter workflow in parallel, several at a time, instead of one after another.

**Generate many articles at once** — From the Copywriter, click "Bulk create" to open the Generation board. Paste one keyword per line, add them all at once, and each keyword becomes its own article — so a list of 20 keywords no longer means starting 20 projects by hand.

**Set your defaults once** — Enter a client domain, location, and language under Default details and they apply to every keyword in the batch. Need an exception? Override the location or language on any single row. The content type is detected automatically.

**Ground every draft in your knowledge base** — A "Use knowledge base" toggle, on by default, grounds every brief and draft in that client's knowledge base, so the whole batch reflects what you've taught Rankability about the client.

**Skip the approval step when you want to** — Turn on "Automatically approve brief" and each article continues straight from its brief to the AI draft without waiting for you to click through. Keep the board open until each draft has started, and research and drafting then carry on in the background.

**See cost and failures upfront** — Before you run, a headroom banner shows the estimated credit cost against your available balance and warns you when you'd run short. If one article fails, that row is flagged so you can retry it while the rest keep going.

Open the [Copywriter](https://app.rankability.com/copywriter) and click Bulk create to generate your first batch.

## Tracker v5.24 - Track your visibility in DeepSeek's AI answers

**New**

DeepSeek is now an AI answer engine you can track in the Tracker — so you can see whether your brand shows up, and which sources get cited, when people ask DeepSeek.

**A new engine alongside the rest** — DeepSeek joins ChatGPT, Perplexity, Gemini, Claude, Grok, Copilot, and Brave AI as a trackable platform. Its answers are web-grounded, so you're measuring what people actually see today rather than a frozen model.

**Turn it on per project** — DeepSeek is opt-in. Add it to a project's tracked platforms whenever you want to start measuring it, and leave it off for the clients that don't need it.

**Rolls into your SPI and citations** — DeepSeek results feed your Search Performance Index and citation tracking just like every other AI platform, so you can see where you stand and which pages and domains DeepSeek is citing.

**Weekly tracking is the sweet spot** — DeepSeek's answers shift gradually, so a weekly cadence keeps you current without paying to re-check answers that haven't changed.

Open the [Tracker](https://app.rankability.com/tracker), edit a project's platforms, and add DeepSeek to start tracking.

## Auditor v1.17 - Identify target keyword now runs in the background and shows its cost upfront

**Improved**

Site Auditor's "Identify target keyword" tool — which figures out the primary keyword each page should rank for — got a big reliability and transparency upgrade. It now runs on the server, so you can kick it off across hundreds of pages and walk away.

**Start it and leave — it won't lose your progress** — The run now happens in the background instead of in your browser tab, so you can close the report or move to another page and come back later to find it still going (or finished). The button shows live progress like "Identifying 24/120…" so you always know where it's up to.

**Stop any time, keep what's done** — A Stop button lets you end a run early, and every keyword already identified is saved — nothing is thrown away.

**More accurate keywords, free where we can** — Each page's keyword is now pulled from your Google Search Console data first — which is both more accurate and free — and only falls back to AI for pages with no Search Console signal. When a run finishes, the summary breaks down how many keywords came from Search Console versus AI.

**See the cost before you spend** — Before a run starts, a confirmation step shows the credit cost so there are no surprises. Only the pages resolved by AI are charged — anything answered from Search Console is free.

**Graceful when credits run low** — If you run out of credits partway through, the run stops cleanly, keeps every keyword it already found, and tells you exactly how many credits were used and that you can add credits to finish the rest.

Open [Site Auditor](https://app.rankability.com/audit), run an audit, select the pages you want, and choose "Identify target keyword".

## Auditor v1.16 - See AI crawler access, schema, page weight, and internal links per page

**New**

Site Auditor's page table has four new columns that surface technical signals you used to need separate tools for — whether AI answer engines can even reach each page, what structured data it carries, how heavy its HTML is, and how well it's linked from the rest of your site.

**See which AI crawlers can reach each page** — A new AI bot access column shows how many of the major AI and search crawlers — CCBot, GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended, and Googlebot — are allowed to fetch each URL per its robots.txt, as a simple "5/7 allowed". Click any cell for the per-bot breakdown. When a robots.txt can't be fetched, the page reads "Unknown" rather than assuming access — so a blocked AI engine never hides as "allowed".

**Spot your structured data at a glance** — A Schema markup column shows the schema.org structured-data types found on each page (for example LocalBusiness, FAQPage, Product), and reads "None" where a page has no structured data — so you can find the pages that should be marked up but aren't.

**Catch pages that are too heavy** — A Page size column shows the size of each page's raw HTML in megabytes. It measures the HTML document only — not images, CSS, or scripts — so you can spot bloated templates and runaway pages. Sort by it to pull the heaviest pages to the top.

**Find pages with weak internal linking** — A Linking pages column shows how many unique pages on your own site link to each URL (multiple links from the same page count once). Sort ascending to surface the pages almost nothing links to — the ones that need more internal links to rank.

**Sort and export everything** — All four columns are sortable, with pages missing data sinking to the bottom, and they're included in the CSV export so you can work the list in a spreadsheet.

Open [Site Auditor](https://app.rankability.com/audit), run an audit, and scroll the page table to the new columns.

## Auditor v1.15 - Find duplicate content across your site

**New**

Site Auditor now checks how much of your content is duplicated across your own pages — so you can find the thin, repeated, and near-identical text that holds a site back, and see exactly which pages share it.

**A duplicate content score for the whole site** — A summary card shows what share of your analyzable body text is duplicated across the site, and every page gets its own duplicate percentage in the new Duplicate content tab. Each row also shows how many words matched out of how many were analyzed and how many other pages it shares content with, and the columns sort so you can pull the worst offenders to the top.

**See exactly what's duplicated** — Click any page to open it with the duplicated passages highlighted in place and the surrounding text faded back, so the repeated wording stands out instead of being buried in a wall of text.

**Find which pages share the same text** — Each page lists the other pages it overlaps with and how many words they share, and you can click any one to compare the two pages side by side and decide which to keep, merge, or rewrite.

**Export the report** — Download the full duplicate content report to share with your team or work through page by page.

Open [Site Auditor](https://app.rankability.com/audit), run an audit, and select the Duplicate content tab.

## Tracker v5.23 - Bigger Local Grids and wider point spacing

**New**

The Local Grid can now cover a much larger area. You can scan on a grid of up to 9×9 points and choose how far apart those points sit — so you can map proximity rankings across a whole service area, not just a few blocks around the storefront.

**Scan a bigger grid** — Choose a 3×3, 5×5, 7×7, or 9×9 grid when you set up or edit a Local Grid. A larger grid drops more scan points across the map for a finer, wider read on where you rank, and the setup screen shows the point count and credit cost so you know what each size costs before you run it.

**Set the distance between points** — Pick how far apart the grid points sit — 1, 2, or 3 km. Widening the spacing stretches the same grid across more ground at the same credit cost, so a 9×9 grid at 3 km spacing covers roughly 15 miles across instead of a few. The setup screen shows the total coverage as you adjust it.

**Two independent ways to cover more area** — Grid size and point spacing are separate levers: add more points for more detail (which costs more credits), or widen the spacing to cover more ground at the same cost. Mix them to match each client's service area.

**Larger grids finish reliably** — Bigger grids take more work to scan, so they now run in the background in batches and complete without timing out — even the largest 9×9 grids.

Open any [Tracker](https://app.rankability.com/tracker) project, set up a Local Grid, and pick your grid size and point spacing.

## Serena v4.21 - Choose the approach before Serena acts

**New**

When Serena drafts something for you to approve — a review reply, a Business Profile description, or a new content project — it now offers a choice of labeled approaches instead of a single take. Pick the one that fits, tweak the wording, then confirm.

**A choice of approaches, not one draft** — For supported actions, Serena drafts up to three strategic variants, each with a short label and a note on what it prioritizes — for example a warm, apologetic reply versus a concise, factual one. You pick the approach that matches the situation.

**Edit before you confirm** — The variant you choose drops into an editable box, so you can fine-tune the exact wording before anything happens. Only the version you approve is ever used — nothing is sent or saved automatically.

**Across review replies, descriptions, and content topics** — The picker now covers Google Business Profile review replies, Business Profile descriptions, and the topic angle for a new content project — so the same quick choose-and-edit step works whether Serena is responding to a customer or setting up your next article.

Open [Serena](https://app.rankability.com/brain) for any client and ask it to draft a review reply or set up a content project to see the new picker.

## Tracker v5.22 - Export your rankings and AI citations to a spreadsheet

**New**

Tracker can now export several reports into a single spreadsheet at once — your traditional search rankings and your AI-answer citations side by side — so you can share results, build your own views, or hand data to a client without copying anything by hand.

**Pick the reports, get one workbook** — On your project list, tick the reports you want and click Export to spreadsheet. Tracker pulls them all into a single Excel file, so a whole client's worth of keywords comes down in one download.

**Rankings and citations in every tab** — Each tab is split into two sections: Traditional search shows where you and your competitors rank for that keyword, and AI citations shows which sources each AI engine cited. The same picture you see in the app, now in a sheet you can sort and filter.

**One tab per keyword** — Projects that track several keywords expand automatically, so each keyword gets its own clearly labeled tab instead of being crammed together.

**Ready to share** — The file downloads dated (for example tracker-export-2026-06-18.xlsx), so it's easy to drop into a client folder or a reporting deck.

Open the [Tracker](https://app.rankability.com/tracker), tick the reports you want, and click Export to spreadsheet.

## Serena v4.20 - Ground a chat on your own files

**New**

You can now attach a file directly inside a Serena chat, and Serena will read it and ground its answers on what's in it — just for that conversation, without adding anything to the client's knowledge base.

**Attach a file to the conversation** — Click Attach in the chat box and pick a file. Serena reads the text and uses it as context for that conversation, so you can ask questions about a document, a data export, or notes without setting anything up first.

**Works with the formats you already have** — Plain text, Markdown, CSV and TSV, JSON, HTML, XML, and Excel spreadsheets (.xlsx and .xls) are read and turned into text Serena can reason over.

**Scoped to one conversation** — Attached files ground only the chat you're in and are never added to the client's knowledge base, so a one-off document doesn't permanently change how Serena answers everywhere else.

**Attach more than one** — Add several files to a conversation, and remove any of them with a click if you change your mind.

Open [Serena](https://app.rankability.com/brain) for any client, click Attach in the chat box, and add a file.

## Copywriter v5.8 - Drafts backed by researched facts and cited sources

**New**

Copywriter now fact-checks every draft after it's written, swapping vague claims for specific, verifiable facts and citing where each one came from — so your articles read as more credible and are easier to stand behind.

**Researched facts, not vague claims** — Once a draft exists, Copywriter scans it for generic or hedged statements ("studies show", "a large percentage", "significantly improves"), researches each one across the web, and rewrites it with concrete facts and numbers.

**Visible inline citations** — Every researched fact links out to the page it came from, and a "Sources" section is added at the end so you and your readers can verify each claim.

**Never fabricated** — It only cites pages it actually found while researching. If it can't verify a claim it leaves your original wording untouched, and your draft is always delivered even when research turns up nothing.

**Works in every mode automatically** — Standard, manual, optimize, and quick drafts all get the same treatment with nothing new to switch on.

**Pay only when it adds value** — Enrichment uses 300 credits per article and is charged only when it actually adds sourced facts; if your balance is low it's skipped and you still get your draft.

Open the [Copywriter](https://app.rankability.com/copywriter) and generate a draft to see sourced facts and citations in action.

## Tracker v5.21 - Track your rankings in Bing search

**New**

Tracker can now follow how you rank in Bing's organic search results, right alongside Google, the AI engines, and your other platforms — so Microsoft's search audience lives in the same project as everything else you track.

**Add Bing to any project** — When you set up or edit a Tracker project, turn on Bing to start tracking where you rank for each keyword in Bing's organic results. It's opt-in, so your existing projects keep working exactly as before until you add it.

**Grouped with your other traditional results** — Bing appears under Traditional search next to Google, so for every keyword you can see your standing across both engines at a glance — and spot pages that win on one engine but not the other.

**Side by side in Compare** — In the Compare tab you can now measure your AI-answer citations against Bing as the baseline engine, not just Google, so you can see how closely each AI platform's sources line up with Bing's rankings.

**Conservative by default** — Bing tracking runs weekly out of the box, which keeps credit use predictable, and the credit estimate in setup updates as you add it.

Open any [Tracker](https://app.rankability.com/tracker) project, edit its platforms, and turn on Bing.

## API v1.7 - Run full-site audits via the API and MCP

**New**

The Site Auditor is now available through the API and to AI assistants over MCP, so you can crawl an entire site and pull back per-page technical health programmatically — not just from the app.

**Start a full-site crawl** — `POST /api/agent/v1/site-auditor/projects` creates a project and kicks off a crawl of the whole site, then `POST /api/agent/v1/site-auditor/projects/:id/crawl` re-runs it whenever you want fresh data. Crawls run in the background, so you create the project and poll for results.

**Stop a crawl mid-run** — Changed your mind or pointed at the wrong site? `POST /api/agent/v1/site-auditor/projects/:id/cancel` aborts an in-progress crawl, and a cancelled run is never charged — you only pay for crawls that finish.

**Read the findings** — List your projects, or fetch one to get its pages plus site-wide issues — broken internal and external links, duplicate content, indexability, and canonical clusters — the same findings you see in the in-app Site Auditor.

**Know the cost before you crawl** — A credit estimate endpoint previews the cost for a given page count, and crawls are charged on success at 1 credit per 5 pages crawled, so you only pay for what actually completes.

**Clean up when you're done** — Finished with a project? `DELETE /api/agent/v1/site-auditor/projects/:id` permanently removes it along with all of its crawled pages and issues, so your project list stays tidy. An in-progress crawl is protected — cancel it first, then delete.

**Built in for AI assistants** — Connect over MCP and your assistant can run, cancel, read, and clean up crawls directly with the new `site_audit_run`, `site_audit_cancel`, `site_audit_get`, `site_audit_list`, and `site_audit_delete` tools.

Generate or rotate a key in [Settings](https://app.rankability.com/settings) → API Keys, and see the Site Auditor endpoints documented at [docs/agent-api.md](https://help.rankability.com/api/api-site-auditor).

## Tracker v5.20 - Track your rankings in TikTok search

**New**

Tracker can now follow how your videos rank in TikTok search, right next to Google, the AI engines, and your other platforms — so social video visibility lives in the same project as everything else you track.

**Add TikTok to any project** — When you set up or edit a tracker project, turn on TikTok Search to start tracking where your videos appear for each keyword in TikTok's search results. It's opt-in, so your existing projects keep working exactly as before until you add it.

**Point it at your handle** — Add your TikTok handle (for example @yourbrand) and Tracker matches your own videos in the results, so you can see exactly where you land for each keyword. The handle is recommended for most projects and required when you're tracking TikTok on its own.

**Grouped with your other video rankings** — On the project list, TikTok appears under Video alongside YouTube and Google's video pack — separate from your AI-answer citations — so it's clear at a glance which keywords you rank on versus where you're cited.

**Conservative by default** — TikTok tracking runs weekly out of the box, since social search rankings shift gradually, which keeps credit use predictable. The credit estimate in setup updates as you add it.

Open any [Tracker](https://app.rankability.com/tracker) project, edit its platforms, and turn on TikTok Search.

## Tracker v5.19 - Compare your AI answers and Google rankings side by side

**New**

Tracker has a new Compare tab that puts your Google rankings and your AI-answer citations next to each other for any tracked keyword — so you can finally see, in one view, who shows up in Google, who gets cited by the AI engines, and who manages both.

**One keyword, both worlds** — For any tracked keyword, the Compare tab joins your traditional Google results with the sources the AI engines cite, matched up by domain. Every domain is sorted into one of three groups: ranks on Google and gets cited by AI, cited by AI only, or ranks on Google only.

**Rank vs. citation, at a glance** — Each row shows the Google position next to the citation rank on each AI engine — so a source that's "#5 on Google but the #1 source ChatGPT cites" jumps right out.

**Focus on the rows that matter** — Filter to Both, Gaps, or Owned: see where you win in both places, surface the mismatches where a domain ranks but isn't cited (or is cited but doesn't rank), or zero in on your own properties. Your own domain is flagged on every row.

**See how closely each AI mirrors Google** — A per-engine agreement score shows how much of what each AI cites also ranks on Google, so you can tell which engines lean on classic search and which go their own way.

**No extra scans** — It's built entirely from data Tracker already has, so there's nothing new to run and no extra credits to spend.

Open any [Tracker](https://app.rankability.com/tracker) project and select the Compare tab.

## Serena v4.19 - A standing strategy for every client

**New**

Every client now has a standing Account strategy you can read and edit in one place — the plan, the goals, and the priorities that guide the work, saved per client so the whole team is working from the same page.

**A plan that lives with the client** — Open any client and select Account strategy to write a free-form narrative of the standing plan: the overall direction, context, and priorities. It's saved with the client, so it's there every time you come back, not buried in a doc somewhere.

**Quarterly targets** — Capture concrete goals for the quarter, each with an optional metric, target, and timeframe — so "grow organic traffic" becomes a number you can hold the work to.

**Engine priorities** — Rank which search and answer engines matter most for this client (for example Google or ChatGPT), so effort goes where the visibility actually counts.

**Answer-engine (AEO) targets** — Set explicit goals for how the client should show up inside AI answers, right alongside your traditional search goals.

**Prioritized topic & prompt roadmap** — Keep an ordered list of the topics and prompts to pursue next, so the content plan is always one click away.

Open any client and select [Account strategy](https://app.rankability.com/strategy) to set the plan.

## Tracker v5.18 - Track AI answers by location

**New**

AI answers change depending on where the searcher is — so Tracker now lets you track them in more than one place. Add extra locations to a project and Tracker checks how the AI platforms answer in each one.

**Add AI answer locations** — When you're tracking a location-sensitive AI platform like ChatGPT, a new AI answer locations section appears in project setup. Add the cities or areas that matter for the client, and each one is checked on its own.

**Compare answers across places** — A Location selector on the AI answer and citations views lets you switch between your primary location and each extra location, so you can see how the answer — and who gets cited — changes from one place to the next.

**Costs you can see up front** — Each extra location re-runs the location-sensitive AI platforms for that place, and the credit estimate in setup updates as you add locations, so there are no surprises.

Open any [Tracker](https://app.rankability.com/tracker) project and add an AI answer location to get started.

## Serena v4.18 - A library of AI Search visibility analyses, on demand and on autopilot

**New**

Each client's Serena can now run a full library of AI Search analyses in one click — how visible your brand is in AI answers from ChatGPT, Perplexity, Gemini and more, who's being cited instead of you, and how it's all trending — with the most important ones running on their own and alerting you when something shifts.

**See your AI visibility at a glance** — AI visibility snapshot reports how often you show up, your average position, your visibility score, and how many checks ran across each AI engine — so you can tell at a glance where you appear in AI answers and where you don't.

**Know your share of the answer** — AI share-of-voice shows how much of the AI conversation you own versus the competitors showing up in the same answers, so you can see whether you're the brand AI reaches for or an also-ran.

**See who AI is citing** — Citation sources lists the sources AI answers actually pull from, and Citation gaps & opportunities surfaces unlinked brand mentions and open openings to chase — the pages and placements that would get you cited.

**Track the trend** — AI visibility trend shows whether your citation visibility is climbing or sliding over the tracked period, so a slow decline doesn't go unnoticed.

**Read the room** — Brand sentiment in AI answers flags whether AI answers skew positive, negative, or mixed about your brand, so you can catch a reputation problem forming in the answers people now read first.

**Proactive alerts that clear themselves** — The key analyses also run automatically on a schedule and surface alongside your other monitoring alerts, labelled Critical, Warning, or Info. When the underlying issue resolves, the alert clears itself — so the list always reflects what's true right now.

Open any client's [Serena](https://app.rankability.com/clients) and open the Skills library to run one. (AI Search analyses use your Tracker AI-platform data.)

## Serena v4.17 - A library of Google Business Profile analyses, on demand and on autopilot

**New**

Each client's Serena can now run a full library of Google Business Profile analyses in one click — covering reviews, local search visibility, customer actions, and profile health — with the most important ones running on their own and alerting you when something needs attention.

**Reply to reviews without leaving Rankability** — AI review responder drafts warm, professional replies to the reviews that don't have an owner response yet. Review and edit each draft, then confirm to post it straight to Google Business Profile — nothing is ever sent automatically.

**Stay on top of every review** — Negative review triage ranks unanswered negative reviews by urgency so you know exactly what to respond to next; Review reply coverage tracks your owner-reply rate, the unanswered backlog, and your median time to reply; and Review velocity & rating trend shows whether new reviews are speeding up or slowing down and whether your average rating is climbing or sliding.

**Hear what customers actually say** — Review keyword miner pulls out the themes customers mention most, tagged positive, negative, or mixed by the rating of the reviews each one shows up in — so you can spot, for example, that "wait time" keeps coming up in your low-star reviews.

**See how people find the profile** — Search keyword trend shows the real terms customers used to find the profile and how each one's impressions moved versus the prior period; Branded vs discovery search splits those terms into branded (your business name) versus discovery (category and service searches that win net-new customers), with each side's share.

**Track impressions and customer actions** — Action conversion tracker follows website clicks, calls, and direction requests with period-over-period deltas and an impression-to-action conversion rate; Pack vs Maps split breaks impressions down by where they happen — Google Search (the local pack) versus Maps — and by device.

**Score the profile and catch problems early** — GBP completeness audit scores how complete and competitive the profile is — categories, hours, photos, description, attributes and more — and lists the highest-impact fixes. Performance anomaly alerter scans for sharp drops in impressions or actions, a low average rating, or a spike in negative reviews, and runs automatically on a schedule alongside your other monitoring alerts — clearing itself once the issue resolves.

Open any client's [Serena](https://app.rankability.com/clients) and open the Skills library to run one. (Business Profile analyses need a connected Google Business Profile.)

## Serena v4.16 - See how much traffic AI assistants are sending you

**New**

Each client's Serena can now show you exactly how much traffic AI assistants like ChatGPT, Perplexity, and Gemini are sending — and which of your pages they're citing — with a new library of Google Analytics analyses you can run in one click.

**See how much AI traffic you're getting** — AI referral detection breaks down the sessions ChatGPT, Perplexity, Gemini, Claude, and Copilot are sending you, with each platform's share of your total traffic.

**Find the pages AI assistants are citing** — AI-cited landing pages shows which of your pages are getting AI-assistant traffic, with a per-platform breakdown so you know what content the assistants are pointing people to.

**Compare AI visitors to organic search** — AI vs organic behavior puts engagement rate, time on site, conversion rate, and revenue per session side by side, so you can see whether AI traffic actually converts as well as your organic search traffic.

**Track the trend over time** — AI traffic trendline charts your AI share of total sessions across the last 12 weeks or 12 months, with period-over-period growth, a moving average, and the top platforms driving the change.

**Make sure your analytics is measuring it right** — Channel group auditor checks whether your Google Analytics setup attributes AI traffic correctly, and hands you the exact configuration to paste in if it doesn't.

The Skills library now groups analyses by source — Search Console and GA4 / AI traffic — and unlocks as soon as either one is connected. Open any client's [Serena](https://app.rankability.com/clients) and open the Skills library to run one. (AI-traffic analyses need a connected Google Analytics.)

## How-to - Turn SERP results and AI citation sources into earned visibility opportunities

**Announcement**

A tip from Nathan: you can use Rankability to extract traditional SERP results and AI citation sources for a topic, then turn them into earned visibility opportunities for your brand.

**Start with one campaign topic** — Pick a single topic you're actively campaigning around rather than trying to boil the ocean.

**Find where it's already showing up** — Pull the websites, directories, communities, and influencers that are already appearing across both traditional search results and AI citation sources for that topic.

**Turn visibility into outreach** — Once you have that list, the goal is straightforward: work to get your brand mentioned on the same sites, directories, communities, and influencers that are already earning visibility for the topic.

This pairs well with the Prospector's link and citation opportunity tools — open [Prospector](https://app.rankability.com/promoter) for a client and start from a topic you're already targeting.

## Serena v4.15 - A library of Search Console analyses, on demand and on autopilot

**New**

Each client's Serena can now run a whole library of Google Search Console analyses on demand — and the most important ones run on their own in the background and alert you when something needs your attention.

**A library of Search Console analyses** — Open a client's Serena, find the Skills library, and run any analysis in one click: period-over-period comparison, top movers, striking-distance keywords, branded vs non-branded performance, click-through-rate opportunities, keyword cannibalization, newly discovered queries, sitemap health, and mobile-vs-desktop gaps.

**Answers you can act on** — Each analysis comes back as a short summary plus a clear table, and where it makes sense it suggests a next step you can take right there — add keywords to tracking, start a content project, or audit a competing page.

**Proactive alerts that clear themselves** — The key analyses also run automatically on a schedule and surface alongside your other monitoring alerts, labelled Critical, Warning, or Info. When the underlying issue resolves, the alert clears itself — so the list always reflects what's true right now.

**Suggested brand terms when setting up a client** — Setting a client's brand terms is now one click: Rankability suggests likely terms from the brand name, domain, and the client's own branded Search Console searches, so you can Add all at once instead of typing each by hand — find it in a client's [settings](https://app.rankability.com/client-settings).

Open any client's [Serena](https://app.rankability.com/clients) and open the Skills library to run one. (Search Console analyses need a connected Google Search Console.)

## Auditor v1.14 - Bing search performance in Site Auditor

**New**

Site Auditor now brings your Bing Webmaster Tools search data into the crawl, so you can see how each page performs on Bing right next to its Google numbers, technical health, and traffic.

**Bing next to Google, page by page** — Each page row can show its Bing impressions, clicks, CTR, and average position alongside your existing Search Console columns — so it's easy to spot pages that earn visibility on one engine but not the other.

**A Bing search performance summary** — A summary card shows your site's total Bing clicks and impressions, average CTR and position, and your top Bing queries — pulled from the Bing Webmaster Tools site you've connected for that client.

**Sortable, exportable, and honest about gaps** — The new Bing columns sort like every other column and are included in the CSV export. Pages with no Bing data show a dash instead of a zero, so you're never misled.

Connect Bing Webmaster Tools in a client's settings, then open [Site Auditor](https://app.rankability.com/audit) and check the Pages tab.

## Tracker v5.17 - More accurate AI answers across every platform

**Improved**

The AI answers Tracker shows for ChatGPT and the other AI platforms are now significantly more accurate — much closer to what a real person actually sees when they ask. So the visibility you track, and the citations and mentions tied to it, reflect reality.

**True-to-life answers** — ChatGPT answers now read like a genuine, considered response a real user would get, instead of a shallow, citation-stuffed roundup. What you see in the AI answers tab mirrors the experience your clients' customers are actually having.

**Understands what you're tracking** — Answers now correctly interpret your keyword instead of guessing at it. For example, "AEO" is understood as "Answer Engine Optimization" rather than some invented expansion — so the answer is genuinely about the topic you care about.

**The same upgrade across Gemini, Grok, and Claude** — The same accuracy improvements apply to the other AI platforms too, so your brand's mentions and citations are judged against realistic, true-to-life answers no matter which platform you're tracking.

**Steadier, more reliable tracking** — Your brand's citations and mentions are now captured more consistently from one scan to the next — fewer empty runs and steadier trends you can trust.

Open any project in the [Tracker](https://app.rankability.com/track/rank) and check the AI answers tab on your next scan.

## Prospector v1.1 - Find directories worth getting your clients listed in

**New**

Prospector can now hunt down the directories and listing sites worth getting each client listed in — matched to their vertical and location — so building citations and offsite authority no longer means digging through Google yourself.

**A new Directories opportunity type** — Alongside podcast interviews, sponsorships, and guest posts, Prospector now discovers business directories and listing sites for a client. Pick Directories, enter the niche, and add an optional location to pull in local and regional listings.

**Curated catalog first, then the web** — It matches a curated catalog of high-authority directories first, then prospects the web to fill any gaps — so you get both the obvious heavyweights and the niche listings that are easy to miss.

**Prioritized for impact** — Results are organized so you can focus on the listings most likely to move the needle, and you can save the ones worth pursuing straight into a prospect list to track alongside your other outreach.

Open any client's [Prospector](https://app.rankability.com/prospector) under Promote and choose Directories to start. (Prospector is in beta — expect a few rough edges.)

## Auditor v1.13 - Core Web Vitals in Site Auditor

**New**

Site Auditor now pulls Core Web Vitals into your crawl, so you can see how fast each page actually loads and feels — right next to its technical health, traffic, and conversions.

**Four new performance columns** — Each page row can show its Performance score, LCP (Largest Contentful Paint), CLS (Cumulative Layout Shift), and FCP (First Contentful Paint), color-coded good, needs improvement, or poor against Google's thresholds — sortable like every other column and included in the CSV export.

**Fetch on demand** — Pull vitals for the pages you care about without slowing down the whole crawl, so you get speed numbers exactly where you need them.

**Spot the slow pages fast** — With load metrics sitting beside crawl health and real traffic data, it's obvious which high-traffic pages are dragging and worth a performance pass.

Open any client's [Site Auditor](https://app.rankability.com/audit) and check the Pages tab.

## API v1.6 - Choose research platforms for Copywriter jobs

**New**

The Copywriter API now lets you choose exactly which research platforms power a draft — so you can control both research depth and credit cost on every request.

**A new `research_platforms` parameter** — `POST /api/agent/v1/copywriter/jobs` now accepts an array of the SERP and AI sources you want the run to use. Google Organic stays on as the baseline, and the Copywriter only researches the platforms you list — skip the ones you don't need for leaner, faster jobs.

**Pay only for what you use** — Credit cost now scales with the platforms you select, and the up-front credit check reflects your choice before the job starts, so trimming the list trims the cost of each run.

**Matches the in-app picker** — These are the same research platforms you can toggle when creating a Copywriter project in the app, so jobs created through the API and the UI behave consistently.

Generate or rotate a key in [Settings](https://app.rankability.com/settings) → API Keys, and see `research_platforms` documented at [docs/agent-api.md](https://help.rankability.com/api/api-site-auditor).

## Copywriter v5.7 - A clearer content score

**Improved**

The Copywriter's Optimize view now makes your content score easier to read at a glance — and tells you what it actually means.

**A clearer score ring** — The optimization score now uses the same bold ring as your Tracker dashboard, labelled "Content score," with an at-a-glance status beneath it — Well optimized, Getting there, or Needs major work — so you don't have to interpret a number or rely on color alone.

**Word count that guides you** — Your word count now flags when you're over or under the target range, so you know whether to trim or expand without guessing.

**Smoother recovery in manual mode** — If a manual project's setup doesn't finish, you now get a clear "Retry entity extraction" path that picks up where it left off instead of a generic error.

Open any [Copywriter](https://app.rankability.com/copywriter) project and switch to Optimize to see it.

## Serena v4.14 - Dismiss or snooze competitor alerts

**Improved**

You can now keep your competitor alerts tidy. On a client's Competitor alerts page, dismiss an alert once you've handled it, or snooze it for 7, 30, or 90 days — so the list only shows what still needs your attention.

Open any client, find Watch in the sidebar, and use the controls on any alert.

## Serena v4.13 - See how each client's reviews stack up locally

**New**

Rankability now tracks each client's review reputation and shows how it stacks up against local competitors — so you can spot a rising rival or a wave of negative reviews before it costs your client business.

**A new Reviews page per client** — See your client's review gap versus local competitors (how many more reviews it would take to match the local median or the top competitor), a side-by-side table of those competitors, and the themes customers actually talk about — services, outcomes, and locations — pulled from real review text.

**Reputation alerts** — When a client picks up urgent negative reviews or starts falling behind competitors on review velocity, it surfaces as an alert with a suggested next step, right alongside your other monitoring signals.

**Updates on its own** — Reputation data refreshes automatically on a daily cycle for clients with a connected Google Business Profile.

Open any client and find Reviews in the sidebar.

## Serena v4.12 - Choose exactly which competitor pages to watch

**New**

You can now control exactly which competitor pages Rankability watches — and see what it costs before you commit.

**Add, pause, or remove pages** — In a client's settings, add any competitor page URL, choose how often it's checked (weekly or daily), pause the ones you don't need right now, and remove them entirely. Pages Rankability found for you are listed alongside any you add yourself.

**See the credit cost as you go** — A live estimate shows roughly how many credits per month your tracked pages will use, updating instantly as you add pages or change how often they're checked — so there are no surprises.

Open a client's [settings](https://app.rankability.com/client-settings) and find the Alerts tab to manage competitor monitoring.

## Auditor v1.12 - Referring domains for every page

**Improved**

Site Auditor now shows how many referring domains point to each page, right in the pages table.

**A new sortable column** — The Pages tab now includes a Referring Domains count next to your Search Console and Analytics metrics, so you can sort to find which pages have earned the most link authority — and which pages are missing it. The count is included in the CSV export too.

Open [Site Auditor](https://app.rankability.com/audit) and check the Pages tab.

## Serena v4.11 - Choose what Rankability watches for each client

**New**

You can now tell Rankability exactly which signals to watch for each client — so a local business, an AI-visibility play, and a full-service account each get monitoring tuned to their campaign instead of a one-size-fits-all setup.

**Campaign presets to start fast** — Pick a preset like AI search, SEO campaign, Local SEO, Growth, or Full campaign intelligence and Rankability switches on the capabilities that matter for that kind of work. New clients even get a recommended preset based on the integrations they already have connected.

**Fine-tune any signal** — Toggle individual capabilities on or off — AI search visibility, Google search visibility, keyword rank tracking, brand consistency, technical site health, local presence, and backlink authority — and the client moves to a custom setup the moment you do.

**Knows what's connected** — Capabilities that need an integration like Google Search Console or Google Business Profile are clearly flagged until you connect it, so you always know why a signal isn't being collected yet.

Open any client's [settings](https://app.rankability.com/client-settings) and find the Monitoring tab to set it up.

## Serena v4.10 - Know when a competitor's page changes

**New**

Rankability now watches your competitors' pages in the background and tells you when one meaningfully changes — so you find out a rival rewrote their service page or shipped new content while it still matters, not months later.

**A new Watch view per client** — Every client now has a Competitor alerts page that lists detected changes, prioritized by how much they overlap with the keywords you care about, each with a plain-language summary of what changed and a suggested next step. Until something changes, it shows "No competitor changes yet."

**Focused on changes worth acting on** — It surfaces substantive content changes rather than every trivial tweak, so the list stays worth checking.

Open any client and find Watch in the sidebar to see their competitor alerts.

## Page Auditor v1.3 - AI crawler & corpus readiness

**New**

Page Auditor now checks whether AI crawlers can actually reach and read your page — the groundwork for being quoted in AI answers, not just ranked in search.

**A new AI Crawler & Corpus Readiness category** — Every audit now grades how accessible your content is to AI crawlers: whether your robots.txt lets them in, whether the page can be fetched, and whether your real content is present in the raw HTML rather than hidden behind JavaScript a crawler may never run.

**Common Crawl presence** — The audit checks whether your URL appears in the Common Crawl corpus — the open web archive many AI models are trained and grounded on — so you can see whether your page is even in the dataset.

**Plain-language fixes** — Each check comes with a clear recommendation, so when something blocks AI access you know exactly what to change.

Open any client's [Page Auditor](https://app.rankability.com/audit/page) and run a fresh audit to see the new category.

## Serena v4.9 - A weekly campaign brief for every client

**New**

Rankability now writes a weekly intelligence brief for each client that has activity to report — a single synthesis of what changed across their search, AI, local, and site health, ranked by what matters most, so your weekly client check-in is already done for you.

**One brief, every signal** — The brief opens as a side panel with an executive summary, the biggest win and biggest risk of the week, and themed sections broken down by channel. Each section shows how many signals it found, or labels itself "No signal yet" when there's nothing to report.

**Prioritized actions with evidence** — A ranked action list tells you what to do first, with the reasoning and rough effort for each, plus a "View evidence" link that drills into the exact numbers behind it (for example, organic sessions 1,200 → 940).

**A client-ready summary you can paste** — Every brief includes a plain-language summary written for your client, with one-click copy and a download, so you can drop it straight into an email or report.

**Fresh every week, or on demand** — Each week, clients with new signals get a fresh brief automatically, and you can open any client and hit Refresh to generate one on demand.

Open any client's [Serena](https://app.rankability.com/clients) and click Weekly brief to read this week's.

## Serena v4.8 - Automatic alerts when traffic, conversions, or content shift

**New**

Your client dashboard now surfaces monitoring alerts automatically — Rankability watches each client in the background and flags meaningful changes across search, AI, local, and site health, so problems find you instead of you hunting for them.

**Catches drops you'd otherwise miss** — Alerts fire for things like organic traffic and conversion drops, lost conversion tracking, pages whose traffic has collapsed, and content that's decaying — each with a plain-language explanation and a suggested next step.

**Ranked by severity** — Every alert is labeled Critical, Warning, or Info so you can triage at a glance and deal with the urgent ones first.

**Dismiss or snooze the noise** — Handled an alert? Dismiss it. Not now? Snooze it for 7, 30, or 90 days and it stays quiet until then, so the list only ever shows what still needs you.

Open any client's [dashboard](https://app.rankability.com/dashboard) to see their monitoring alerts.

## Serena v4.7 - Compare pages side by side

**New**

Building on reading a single live page, Serena can now fetch up to four pages at once and lay them out in a structured, visual side-by-side comparison — perfect for "my page vs. their pages" gap analysis without copy-pasting anything.

**Up to four pages, one teardown** — Give Serena two to four URLs — say your service page and your top competitors' — and it reads them all and compares them directly: the topics each one covers, how their headings and structure differ, the word-count gap, and the topics present on some pages but missing from others.

**A visual comparison card** — Alongside the written analysis you get a side-by-side card with a column per page showing its title, word count, and headings, plus badges that call out the headings one page covers that the others don't — so the gaps jump out at a glance.

**Grounded in the real pages** — It bases every claim on the actual fetched content, and if a page can't be loaded it tells you instead of guessing. You'll see a "Fetching" chip turn to "Analyzed" for each page, so you always know exactly what it compared.

Open the [Serena](https://app.rankability.com/clients) and ask it to compare pages.

## Auditor v1.11 - Weekly traffic sparklines on every page

**Improved**

Site Auditor's traffic trend column now shows a small weekly sparkline for each page, so you can see the shape of a page's traffic over recent weeks at a glance — not just whether it's up or down.

**Spot the trajectory, not just the number** — Alongside the period-over-period change, each page now draws a mini line chart of its recent weekly sessions, making steady decay, a sudden drop, or a recovery obvious without opening Analytics.

Pages need a little Google Analytics history before a sparkline appears; until then the traffic trend column works exactly as before.

Connect Google Analytics and open any client's [Audit](https://app.rankability.com/audit) section to see it.

## Auditor v1.10 - Google Analytics traffic, conversions, and revenue in Site Auditor

**Improved**

Site Auditor now layers Google Analytics onto your crawl, so you can see how each page actually performs — traffic, engagement, conversions, and revenue — right next to its technical health.

**Per-page Analytics metrics** — Each page row can now show sessions, entrances, engagement rate, average engagement time, conversions, conversion rate, conversion value, total and new users, and pageviews from Google Analytics — sortable like every other column, and included in the CSV export.

**Spot traffic trends at a glance** — A traffic trend column compares each page's sessions to the previous period and shows the change in green when it's up and red when it's down, so decay and momentum jump out.

**Decide prune, upgrade, or keep** — With real traffic and conversion data sitting next to crawl health, you can tell which thin or low-health pages still earn their keep and which are dead weight.

**Connect once per client** — When you start a new audit, Site Auditor tells you whether Google Analytics is connected. If it isn't, the audit still runs and the analytics columns are simply left empty until you connect it in client settings.

Connect Google Analytics and open any client's [Audit](https://app.rankability.com/audit) section to run Site Auditor.

## Serena v4.6 - Paste a URL and Serena reads the live page

**New**

Serena can now fetch and read a live web page you point it at — so you can paste a link and get an on-page review, a competitor teardown, or a content-gap analysis grounded in the page's real content instead of a guess.

**Paste a link, get real analysis** — Drop a URL into Serena on your dashboard or any client and ask it to review, analyze, or compare. It pulls the live page, reads the actual content, and bases its answer on what's really there. For example, paste a competitor's service page and ask "what are they covering that my client isn't?"

**Built for SEO and AEO work** — Use it for on-page SEO and AEO reviews, competitor page teardowns, and content-gap analysis against a specific page — all without leaving the chat.

**See what it looked at** — While Serena is fetching, a "Fetching" chip turns into "Analyzed" once the page is in, so you always know exactly which page the answer is based on.

**One page at a time, handled safely** — It reads a single page (it won't crawl an entire site), and pages that block automated visitors — login-walled or anti-bot sites — are reported clearly rather than guessed at.

Open the [Serena](https://app.rankability.com/clients) on your dashboard or any client, paste a URL, and ask it to take a look.


# May 2026

Rankability product updates originally published in May 2026.

{% hint style="info" %}
Historical entries describe Rankability at the time of release. Features, names, prices, and credit rules in older entries may have changed or been retired. Use the [Help Center](/) for current product instructions and availability.
{% endhint %}

[Back to the latest product updates](/changelog)

## Releases

## Serena - A portfolio-level briefing and chat across all your clients

**New**

Serena now works at the agency level. From your dashboard it reads across your entire client portfolio, tells you where to focus, and answers follow-up questions in plain language.

**A proactive portfolio briefing** — Open your dashboard and Serena greets you with a briefing spanning every client: a short summary plus prioritized items grouped into Needs attention, Opportunity, and Operational — each tied to the specific client it's about, so you know exactly where to look first.

**Ask questions across all your clients** — Switch to chat and ask portfolio-wide questions like "Which clients need attention this week?", "Where are my biggest growth opportunities?", or "Which clients have missing integrations?" Serena can drill into any client's rankings, search performance, and recent activity to answer.

**Your conversations are saved** — Every portfolio conversation is kept in history, so you can pick up where you left off or start a fresh thread anytime.

Open your [agency dashboard](https://app.rankability.com/) — Serena is waiting at the top.

## Client portal v1.0 - Give clients their own read-only login

**New**

Invite your clients to a read-only portal where they can see their own rankings, audits, and shared reports — and ask Serena questions — without a Rankability seat or your login.

**A read-only window into their results** — From a client's settings, open Client portal access and send an invite. They sign in with a magic link (no password) and land on a dashboard showing their rankings, audits, and shared reports. They can view everything and change nothing.

**Built-in Serena chat** — The portal includes an Serena chat tab so clients can ask questions about their own data and get answers in plain language, scoped to just their account.

Open any client's [settings](https://app.rankability.com/client-settings) and find Client portal access to send the first invite.

## Client goals - Set per-client KPIs and track pace to target

**New**

You can now set measurable goals for each client and watch how they're pacing toward them — from the client's settings and on your agency dashboard.

**Pick from real metrics** — Choose from metrics that already live in Rankability: average SPI score, keywords ranking in the top 3 or top 10, organic clicks and impressions (Search Console), sessions and conversions (GA4), and Google Business Profile calls, direction requests, website clicks, reviews, and rating.

**See pace at a glance** — Each goal shows progress from its starting point toward your target, and the agency dashboard rolls goal pacing up into a per-client badge so you can spot who's on track and who needs attention.

Open any client's [settings](https://app.rankability.com/client-settings) and find the Goals tab to set your first one.

## Alerts - Custom alert rules with Slack delivery

**New**

Set your own alert rules — for your whole organization or per client — and choose where they get delivered, including a new Slack channel.

**Rules you define** — Build rules for the signals that matter: rank drops, SPI drops, Search Console click drops, GA4 traffic drops, lost AI citations, citation count drops, lost backlinks, and Google Business Profile review and impression changes — each with its own threshold.

**Delivered to Slack** — Point a rule at a Slack webhook and alerts land in the channel your team already watches, alongside the existing email digests.

Open [Settings](https://app.rankability.com/settings) (or any client's settings) to create your first alert rule.

## Scheduled reports - AI executive summary on every send

**New**

Scheduled client reports can now include an AI-written executive summary at the top — a short, plain-language read on what changed since the last report.

**Auto-written, on by default** — When a scheduled report goes out, Rankability generates a concise summary of the client's progress so the recipient gets the story, not just the charts. Toggle the AI summary on or off per schedule.

**Edit before it sends** — Don't like the wording? Edit the summary and your version is saved and used on the next send.

Open any client's [settings](https://app.rankability.com/client-settings) and find the report schedule to turn it on.

## Chart annotations - Mark key events on your charts

**New**

You can now annotate charts to mark when something happened — a content change, an algorithm update, a link campaign — so spikes and dips actually have context.

**Categorized markers** — Add an annotation with a date, a note, and a category: Content change, Algorithm update, Link building, Technical fix, Client event, or Other. Each shows up on the chart with its own icon and color.

**Visible to clients on shared reports** — Annotations render read-only on shared report and audit pages, so clients see the same context you do without being able to edit it.

Open the [Promoter](https://app.rankability.com/promoter) and add an annotation to a chart.

## CSV export - One-click export across your data tables

**Improved**

More of your data tables now have a one-click Export CSV button, so you can pull results into a spreadsheet without copy-pasting.

**Export what you see** — The export matches the table as you've filtered and sorted it, so you get exactly the rows on screen — now available on the Page Auditor list, the Promoter, and more.

Look for the Export CSV button on the [Page Auditor](https://app.rankability.com/page-auditor) and other data tables.

## Auditor v1.9 - Redirect destinations, filters, and loop warnings

**Improved**

Site Auditor now makes redirects easy to understand at a glance — where each one points, how many hops it takes, and whether it's a problem.

**See the destination and hop count** — Redirected pages now show their final target and how many hops it took to get there, in the table and in the CSV export.

**Filter to just redirects** — One toggle narrows the report to redirected pages only, so you can review them as a batch.

**Loop and excessive-hop warnings** — Redirect chains that loop back on themselves or take too many hops are flagged as issues, so you can fix the ones actually costing you crawl budget.

Open any client's [Audit](https://app.rankability.com/audit) section and pick Site Auditor.

## Auditor v1.8 - Search Console clicks and impressions in Site Auditor

**Improved**

Site Auditor now layers Google Search Console performance onto your crawl, so you can see which pages are actually earning traffic right next to their technical health.

**Per-page Search Console metrics** — Each page row can now show clicks, impressions, CTR, and average position from Search Console — sortable like every other column, and included in the CSV export.

**Find the pages worth fixing first** — Sort by clicks or impressions to prioritize technical fixes on the pages that already matter, instead of guessing.

Connect Search Console and open any client's [Audit](https://app.rankability.com/audit) section to run Site Auditor.

## Tracker v5.16 - Per-keyword columns inside topic groups

**Improved**

Topic groups in Tracker now show the same per-keyword detail columns you get in the main list — no need to ungroup to see the numbers.

**Detail without leaving the group** — Inside each topic group you can now see per-keyword columns like score change, keyword data, and ranking URL, using the same Visible columns toggles as the rest of the table.

Open the [Tracker](https://app.rankability.com/tracker) and expand any topic group.

## Tracker v5.15 - Faster keyword suggestions from Search Console

**Improved**

When you set up tracking, Tracker now suggests keywords your client is already getting impressions for in Search Console — add them in one click.

**Suggestions from your own data** — Tracker surfaces queries the client is already gaining impressions for, pulled from multiple sources, so you start from what's already working instead of a blank box.

**One-click to add** — Tap a suggestion to drop it straight into the keyword list. Anything you've already added is filtered out automatically.

Open the [Tracker](https://app.rankability.com/tracker), start a new project, and check the suggested keywords.

## Serena - Bing Webmaster Tools is now a first-class data source

**New**

Serena can now read your Bing Webmaster Tools data alongside Google Search Console, Google Analytics, Business Profile, and YouTube. Connect once per client and Serena pulls in your Bing queries, pages, clicks, impressions, and average position automatically — so when you ask "what's working on Bing?" or "which pages should I optimize for Bing?", Serena actually has the data to answer.

**Connect with an API key — no OAuth, no Azure app registration** — Open any client's settings → **Connected services** → **Bing Webmaster Tools** → **Connect**. Paste the API key from your client's bing.com/webmasters → **Settings → API access**, pick the verified site from the dropdown, and you're done. Total setup time is about 30 seconds — no Microsoft sign-in, no consent screen, no IT ticket.

**Pulled into Serena automatically** — Once connected, Serena's context includes a Bing Webmaster Tools section every time you chat about that client: total clicks, impressions, average CTR, average position, your top 15 queries by clicks, and your top 10 pages by clicks. No toggle, no extra prompt — it's just there, sitting next to the GSC block in Serena's brain.

**Now visible in the Connections popover** — Open the **Connections** dropdown in any Serena chat and Bing Webmaster Tools now appears as the fifth row, with the same live status dot the other integrations use: green when connected, amber when the API key is in but you haven't picked a site yet, red on an auth error, gray when not connected. The connected-count badge on the Connections button now counts Bing too.

**Refreshes itself every 6 hours** — Bing data syncs automatically in the background so Serena is always working from a recent snapshot. Need it sooner? The **Resync** button in client settings forces an immediate refresh.

**Per-client, encrypted at rest, disconnect anytime** — Each client gets its own Bing connection. The API key is stored encrypted on our side and only used to call Bing's API on that client's behalf. Click **Disconnect** in settings to remove the key and clear cached Bing data for that client at any time.

**Serena-only for now** — Bing data powers Serena today. Surfacing it inside Researcher, Tracker, and Copywriter is on the roadmap based on demand.

Open any client's [settings](https://app.rankability.com/settings) → Connected services → **Bing Webmaster Tools** → **Connect** to get started.

## Site Auditor (Beta) - Crawl your whole site and see every page in one report

**New**

Site Auditor is now in beta. Point it at any domain and we'll crawl the site for you and hand back a single sortable, filterable, exportable table of every page — no setup, no GSC connection, no waiting for analytics to sync.

**One report, every page, the fields that actually matter** — Each page row shows status code, indexability (indexable / noindex / canonicalized away / blocked by robots), title, meta description, H1, the first two H2s, meta robots, canonical URL, word count, and crawl depth. That's it. No vanity scores, no buried tabs — just the raw inventory you need to make a fix list.

**Filter to the problems in one click** — Above the table you can filter to just 4xx pages, just 5xx pages, just noindex pages, just pages buried more than three clicks deep, or just thin pages under 100 words. Combine filters (e.g. "noindex AND > 3 clicks deep") to find the exact subset worth fixing first.

**Sort, search, and export the whole thing as CSV** — Every column is sortable, you can search URL or title from the top of the table, and the **Export CSV** button hands you the full filtered set as a 12-column spreadsheet so you can hand it to a dev, a VA, or a client without copy-pasting.

**Leave it running — we'll email you and toast you when it's done** — Crawls of larger sites take a few minutes. You don't have to sit on the page. We send you an email the moment the report is ready, and the next time you open Rankability the audit page shows a toast confirming it finished. The crawl keeps running in the background either way.

**Beta caveats, so you know what to expect** — V1 is intentionally raw-crawl-only. No GSC clicks/impressions, no GA4 sessions, no Core Web Vitals, no backlink data, no AI fix suggestions. Those will come back in V2 as opt-in enrichment layers — for now we wanted to ship a fast, reliable inventory you can trust. If you hit a domain we can't crawl cleanly, let us know.

Open any client's **Audit** section and pick **Site Auditor** to try it.

## Tracker - Plain-language SPI narrative + redesigned project overview

**New**

The Tracker project overview just got a major upgrade. Every run now comes with an AI-written diagnostic of your Search Performance Index (SPI) score — so you don't have to stare at a number and guess what it means — and the overview itself has been reorganized to put the most actionable signals at the top.

**Situation-aware SPI narrative** — Every Tracker run now produces a one-paragraph diagnostic that explains *why* your SPI is where it is for that keyword. It calls out which surfaces you're winning (e.g. Google #3, cited in ChatGPT and Perplexity), which surfaces you're missing from (e.g. absent on Gemini and AI Overview), how the score moved versus your previous run, and how you stack up against the top competitors on the same query.

**Reads the whole picture, not just the headline number** — The narrative is generated from the full SPI breakdown — traditional search, AI brand mentions, AI citations, video, and local pack — plus the per-platform presence/absence and position data, your prior run, and the top three competitors on the keyword. So instead of "SPI is 62," you get something like "Moderate visibility — strong on Google organic but missing from AI Overviews and Gemini, where two competitors are being cited."

**Total SPI chart + top competitors on every overview** — The project overview now shows your total SPI trend chart and a top-competitors panel at a glance, alongside the new narrative. The layout has been reordered so the diagnostic and the trend live above the fold — no more scrolling past tables to figure out how the project is doing.

**Zero setup, no extra credits** — The narrative is generated automatically on every Tracker run and stored with the run, so it loads instantly when you open the project. No toggle, no extra cost on top of the run itself.

Open any project in [Tracker](https://app.rankability.com/tracker) to see the new overview.

## How-to - Automate your keyword research with Serena

**Announcement**

A tip from Nathan: Serena can now automate your keyword research process for you — this was the first of many skills we're adding to help you automate more of your SEO work with agents.

**Start narrow, then expand** — To get the most out of this skill, start with one primary seed keyword and one cluster you want to attack, rather than trying to cover everything at once.

**More skills are coming** — This is just the first skill added to Serena. Over the following weeks and months, more skills were added to help automate more of your SEO work.

Open [Serena](https://app.rankability.com/clients) for any client and ask it to research keywords for your seed term and cluster to try it.

## Serena v4.5 - Serena remembers your client across conversations

**New**

Serena used to forget. Long chats lost the thread, and starting a new conversation meant re-explaining everything Serena already knew about the client. That changes today — Serena now keeps the context of long conversations and remembers facts about each client across separate chats.

**Long conversations stay coherent** — In a long chat, Serena used to lose track of the earliest turns after about ten messages. Now it quietly summarizes the older parts of the conversation in the background and keeps the recent turns word-for-word, so you can refer back to "the keyword list we built earlier" or "the brand voice we agreed on" and Serena still knows what you mean.

**Per-client memory across chats** — Serena automatically remembers durable facts about each client — their voice, their priorities, the topics they care about, the decisions you've made together — and brings them into every new conversation. Open a fresh chat for the same client and Serena already knows what you've established with it before.

**Memory stays scoped to the client** — What Serena learns about one client never leaks into chats about another. Each client gets its own memory.

**Self-correcting** — When you tell Serena something that contradicts what it remembered, the older fact gets replaced — not stacked on top. Things you mention repeatedly stick around longer.

**Nothing to configure** — Memory builds itself from your conversations. The chat interface is unchanged; Serena just gets sharper the more you use it on a given client.

Open the [Serena](https://app.rankability.com/clients) and pick up where you left off.

## Serena v4.4 - Run keyword research without leaving the chat

**New**

Serena can now run full keyword research for you, right inside the chat. No more bouncing over to the Researcher tool, filling out a form, and coming back to paste results.

**Ask in plain language** — Tell Serena something like "run keyword research for emergency plumbing in Austin" and it kicks off the job for you. Or open the **Prompt library** in Serena and click the **Keyword research** skill if you'd rather not type the request from scratch.

**Free when someone else on the client already asked** — If a teammate has pulled the same topic recently, you get the results back instantly at no credit cost.

**Same data as Researcher, no parallel reports to manage** — Top keywords and search volumes show up right in the chat, with a one-click link to the full report. Every run is a real Researcher job, so it lives in your Researcher history and exports the same way.

Open the [Serena](https://app.rankability.com/clients) and try "run keyword research for \[your topic]" to give it a spin.

## Copywriter v5.4 - Publish straight to Webflow in one click

**New**

Webflow joins WordPress as a first-class publish destination. Connect a client's Webflow site once, then send any finished Copywriter draft to a CMS collection — as a staged draft or live — without leaving the app.

**One-time connection per client** — Open client settings → Integrations, paste a Webflow Site API Token, pick the site, pick the collection (typically Blog Posts), and click **Connect**. The token is stored encrypted and scoped to that client only — Test connection and Disconnect are both one click. The connect step talks to Webflow only through secure POST requests, so your token never ends up in a server access log or a browser URL.

**Draft or publish from the Copywriter project** — Open any finished project, click **Publish to Webflow** in the Export menu, choose **Save as draft (staged)** or **Publish immediately**, and the article lands as a new Webflow collection item with title, slug, post body, summary, and main image already filled in. Staged drafts let you review inside Webflow first; immediate publish pushes the item live in the same step.

**Live deep-link on success** — When you publish immediately, the success toast carries a direct link to the published item on your Webflow site. One click takes you to the live URL — no hunting in the Webflow Designer.

**Per-publish history** — Every attempt to Webflow — success, failure, or the rare "staged but the publish step failed" partial — is recorded against the project alongside your WordPress history, so you can see exactly when each draft went out and where it lives. Failures show the reason in plain language so you can fix and re-publish without guesswork.

**Standard Webflow blog fields, with a clear error if yours differ** — Rankability maps to Webflow's standard blog collection fields (name, slug, post-body, post-summary, main-image). If your collection uses different field slugs, the publish surfaces a specific error pointing you at the docs — no silent failures.

Open any [Copywriter](https://app.rankability.com/copywriter) project with a finished draft and pick **Webflow CMS** from the Export menu to try it. New here? Open client [settings](https://app.rankability.com/settings) → Integrations to connect Webflow first.

## Copywriter v5.6 - See every publish attempt and retry failures in one click

**Improved**

Every send to WordPress or Webflow now has an audit trail you can actually see, and any failure is one click away from being retried — no more re-opening the publish dialog, re-picking the destination, and re-publishing from scratch.

**Publishing history in the More actions menu** — Open any Copywriter project, click the **More actions** menu (next to Version history) and pick **Publishing history**. A dialog lists the last 25 publish attempts for the project, each row showing destination (WordPress or Webflow), timestamp in your local time, status (Published / Staged / Staged-publish-failed / Failed), and an **Autopilot** badge when the attempt was triggered automatically.

**Retry without leaving the dialog** — Failed rows get a **Retry publish** button right inline. Click it and the original attempt is replayed with the same destination and the same draft/publish choice you originally picked. If a draft attempt failed it retries as a draft; if a publish attempt failed it retries as publish.

**Smart handling of the half-failed case** — When a Webflow item was staged successfully but the publish step failed (the page exists in your collection but isn't live), Retry calls only the publish endpoint on the existing item — so you finish the publish without creating a duplicate item in your collection.

**Failures explain themselves** — Failed rows show the reason inline in plain language ("Invalid token," "Collection field mismatch," "Rate limited") so you can fix the underlying issue before retrying, instead of guessing.

**Direct link to the live or staged post** — Successful rows link straight to the post in WordPress or the live URL in Webflow. Rows without a URL fall back to the remote post ID, so you can still find the item in your CMS.

Open any [Copywriter](https://app.rankability.com/copywriter) project, click **More actions** → **Publishing history** to try it.

## Copywriter v5.5 - See exactly what will land in WordPress or Webflow before you publish

**Improved**

Both publish dialogs now show a live preview of what will actually appear in your CMS — title, slug, meta description, and hero image — so there are no surprises after you click Publish. Slug and meta description are inline-editable right there, and your edits save back to the project so the next publish (and the actual API call you're about to make) uses them.

**Preview card in the publish dialog** — Click Publish to WordPress or Publish to Webflow on any finished project and a **Preview what will land** card appears above the draft/publish options. You see the hero image thumbnail (or an empty-state if there isn't one), the title pulled from your H1, the URL slug, and the meta description — all resolved exactly the way the publish step would resolve them.

**Inline-edit slug and meta description** — Click the slug or meta description in the preview card to edit them right there. Edits are sanitized (slug stays URL-safe) and persisted back to the project's SEO assets — so the next publish uses your new values, and so does any future publish from the SEO popover in the action bar.

**Single source of truth for what gets published** — Under the hood, both Webflow and WordPress now resolve the title, slug, meta, and hero image through the same code path. As a side effect we fixed a quiet bug where slug and meta description edits made in the SEO popover weren't always making it through to the CMS payload — they do now, every time, for both destinations.

Open any [Copywriter](https://app.rankability.com/copywriter) project with a finished draft, click **Publish to WordPress** or pick **Webflow CMS** from the Export menu, and you'll see the new preview card.

## Copywriter v5.3 - Publish straight to WordPress in one click

**New**

Finished drafts can now go from Copywriter to your client's WordPress site without copy-paste, without a CMS export, and without leaving the app. Connect once per client, then publish — as a draft or live — from any project in seconds.

**Official Rankability plugin** — Download the Rankability WordPress plugin from the integrations card in client settings, install it on your client's site like any other plugin, and you're connected. The plugin is the only piece that touches the WordPress side — no application passwords, no SMTP credentials, no admin-username storage on our end.

**One-time connection per client** — Generate an integration token in client settings, paste it into **Settings → Rankability** on the WordPress site, and click **Test connection** to confirm. The token is stored encrypted and scoped to that client only — disconnect at any time to stop the app from using it.

**Draft or publish from the Copywriter project** — Open any finished project, click **Publish to WordPress**, choose **Save as draft** or **Publish immediately**, and the post lands on the WordPress site with title, body, slug, meta description, and featured image already filled in. Drafts let you keep a human in the loop; immediate publish is there for projects you've already reviewed.

**Meta description lands in your SEO plugin** — If the WordPress site uses Yoast SEO, Rank Math, or All in One SEO, the meta description from your Copywriter project is written into the corresponding plugin field automatically — so your on-page SEO is set the moment the post is created, with no extra step in WordPress.

**Per-publish history** — Every publish attempt — success or failure — is recorded against the project, so you can see exactly when a draft went out, whether it landed, and where it lives in WordPress. Failures show the reason so you can fix and re-publish without guesswork.

Open any [Copywriter](https://app.rankability.com/copywriter) project with a finished draft and click **Publish to WordPress** to get started. To connect your first site, open the WordPress card in client settings → Integrations.

## Copywriter v5.2 - Pick which platforms to research (and only pay for those)

**New**

Every Copywriter project now opens with a research platform picker — choose exactly which sources you want to query, and the platforms you skip aren't fetched and aren't charged. Credit cost has been the #1 piece of feedback on Copywriter, and this puts the dial directly in your hands.

**Pick your sources, see the cost change live** — A new Research platforms card sits above the Continue button on both new projects and the Optimize flow. Toggle any of nine sources — Google Organic, AI Overview, AI Mode, Perplexity, ChatGPT, Grok, Gemini, Brave, Claude — and the credit estimate updates as you click. A green helper line on the right tells you exactly how many credits you saved versus all-on, so the trade-off is never hidden.

**Three one-click presets** — **Select all** runs the full research pass like before. **Select none** drops you to the cheapest possible run (Google Organic stays on — it's the SERP backbone) for fast iteration. **Recommended** picks the high-signal subset most projects benefit from: Google Organic, AI Overview, AI Mode, Perplexity, ChatGPT, and Gemini — skipping the heavier or less-frequently-cited sources so a typical project still gets strong coverage at a meaningfully lower cost.

**Deselected = no fetch, no credit** — When you uncheck a platform, that source isn't queried at all. No partial billing, no "we ran it anyway just in case" — the credits genuinely stay in your account. The same picker works for both new briefs and the Optimize flow.

**Progress UI matches your selection** — The research progress screen now hides the "Scanning AI platforms" step when you've turned all AI sources off, so the live status reflects what's actually running. No more watching a step that was never going to fire.

**Available everywhere new research starts** — The picker appears on every entry point that kicks off a fresh research run: new project, Optimize an existing URL, and the bulk-keyword path. Existing projects keep working as before — the picker only applies to runs you start from now on.

Open the [Copywriter](https://app.rankability.com/copywriter) and start a new project (or run Optimize) to choose your platforms.

## Serena v4.3 - Turn messy uploads into clean knowledge Serena can actually use

**New**

When you upload a long transcript, a sprawling sales page, or a dense PDF to your client knowledge base, Serena now offers to clean it up first — so the answers you get back are sharper, more on-brand, and grounded in the parts that actually matter.

**Automatic detection of long or messy sources** — As soon as you add a new source, Serena checks whether it's the kind of file that tends to confuse the AI — long transcripts with timestamps and filler words, marketing pages mixed with navigation copy, or huge documents where the useful bits are buried. When it spots one, a small prompt appears asking if you'd like to optimize it before using it.

**One click to a structured version** — Choose **Optimize and use structured version** and Serena pulls out the parts that matter — your brand voice, your offers, your customer language, your proof points — and saves a clean version that's much easier for the AI to read. Prefer to keep the original visible? Pick **Keep both versions** instead. Either way, the raw upload is preserved in the background so nothing is ever lost.

**You stay in control of every field** — The optimization opens an editable preview with every section laid out as a simple text field. Tweak the brand voice, add a missing customer quote, fix a stat — then save. Nothing goes into Serena's brain until you approve it.

**Tag each source with its role** — A new role label on every source (brand knowledge, customer language, proof & case studies, competitor context, and more) tells Serena *how* to use that source — as voice reference, as evidence, as competitive context, etc. The result is recommendations that sound like you and cite the right kind of material for the question being asked.

**You only pay if it works** — The optimization runs on our drafting-tier model and costs 250 credits — but credits are only deducted when you commit a successful result. Previews, retries, and dismissals are free.

**Better answers, lower noise** — When both a structured source and its raw original are eligible for an answer, Serena uses the structured version and quietly sets the raw one aside — so prompts stay focused and your responses don't get diluted by transcript filler or boilerplate.

Open the [Serena](https://app.rankability.com/clients) and add or revisit a source in your client knowledge base to try it.

## Copywriter v5.1 - SEO pill in the action bar with one-click AI meta

**New**

Title tag and meta description have moved out of the bottom collapsible and into a discoverable **SEO** pill in the Draft action bar — with a status dot, a one-click popover, and AI generation for any field you leave blank.

**SEO pill with at-a-glance status** — A new **SEO** button sits in the Draft action bar next to your other top-level actions. A small dot turns green the moment both your title tag and meta description are filled, and stays amber while either is empty — so you can see whether your page is publish-ready without opening anything.

**Anchored popover, no scrolling required** — Clicking the pill opens a focused popover with title tag, meta description, and slug right where you're working. Edits save automatically through the same flow as before, so nothing about persistence changes — just where you do it.

**Generate with AI for empty fields** — When a field is empty, a small **Generate** button (with a Sparkles icon) appears next to its label. One click drafts a title tag or meta description tailored to the topic, intent, and brand on the project, then drops it straight into the field and saves. The other field is used as soft context, so a generated meta description complements the title you already wrote.

**Friendlier character counter** — Counters now read `52 / ~60 chars` for title tag and `133 / ~155 chars` for meta description — the recommended length is visible at a glance without feeling prescriptive. Length badges read **A bit long** / **A bit short** in a calm muted tone — guidance, not a verdict.

**Import from URL now refreshes your SEO meta** — When you import content from a URL, the page's `<title>` and `<meta name="description"\>` now overwrite your current values instead of being skipped when fields are non-empty. Imports are user-initiated, so the source page's metadata is treated as authoritative.

Open the [Copywriter](https://app.rankability.com/copywriter) and click **SEO** in the Draft action bar to try it.

## Tracker v5.13 - Choose what to track on each AI platform

**New**

Rank Tracker now lets you decide, per AI platform, whether you care about brand mentions, citations, or both — so the visibility score you're optimizing against actually matches the kind of keyword you're tracking.

**Per-platform Track selector** — Every AI platform tile in the Rank Tracker setup screen now has a **Track** dropdown with three choices: **Both** (the default), **Citations only**, and **Brand mentions only**. Pick what matters for each platform individually — you might track citations on Perplexity (where links carry the answer) but brand mentions on ChatGPT (where the model often names the brand without linking to it).

**Smart defaults for informational keywords** — When you type a clearly informational keyword (e.g. "what is local SEO" or "how do I rank on Google"), Rank Tracker now pre-fills every AI tile to **Citations only**. Brand mentions are rare in purely educational AI responses, so citations are the more reliable signal — and a small explainer right above the tiles tells you which keyword triggered it and why, so the change is never a surprise.

**Per-tile help, exactly where you need it** — Each Track dropdown has an info icon next to it that explains the three options in plain language. No more flipping back and forth to figure out what "citations" means in this context.

**Your overrides stick** — If you change a platform's Track value yourself, the explainer dismisses and Rank Tracker stops nudging you for the rest of that setup session. Manual choices always win over the smart default.

Open the [Tracker](https://app.rankability.com/track/rank) and start a new project to see the new Track controls.

## Tracker v5.12 - Brave AI Answers now tracked in Rank Tracker

**New**

Rank Tracker now monitors your brand's visibility in Brave AI Answers — automatically, on every weekly scan, across all your existing projects.

**A new AI surface, already in your projects** — Brave AI Answers generates AI-written summaries at the top of Brave Search results, with inline citations similar to Perplexity or ChatGPT. The new **Brave AI** platform has been added to Rank Tracker and is automatically included in your existing projects — no setup required. Your next weekly scan will capture it.

**Full citation and mention tracking** — Rank Tracker checks whether your brand is cited (linked as a source) or mentioned (named in the answer text) and records the position of any citation. The data flows into your existing AI visibility charts and brand comparison view alongside ChatGPT, Perplexity, Gemini, and the rest.

**Included in your SPI score** — Brave AI is weighted in the Search Performance Index alongside the other AI platforms, so your overall score reflects your presence there without any extra configuration.

**Shared reports include it by default** — If you share a Tracker dashboard with a client, Brave AI results are included in the shared view automatically.

Open the [Tracker](https://app.rankability.com/track/rank) to see Brave AI in your next scan results.

## Copywriter v5.0 - Research & Cite, your AI research partner inside the editor

**New**

Copywriter now has a built-in research partner that can pull fresh facts from the web, decide where they belong in your draft, and drop them in with citations — without ever leaving the editor.

**Chat-driven research, side-by-side with your draft** — A new **Research** tab sits next to **Serena** in the right-hand AI sidebar. Ask a question ("latest 2026 EV tax credit thresholds", "current Google AI Overview citation patterns") and Research goes off, finds answers from the live web, and brings back a summary with the sources it used. Each research call uses about 150 credits, shown right on the input.

**Highlight-to-research** — Select 30+ characters anywhere in your draft and the AI sidebar opens to the **Research** tab automatically, with the Research input pre-filled. Use it to challenge a claim, refresh an outdated stat, or find a citation for a sentence you already wrote.

**Smart, embedding-backed placement** — Click **Add to article** and Copywriter uses AI embeddings to find the best heading-aligned spot for each new fact, with a clear **Where to insert** preview and a one-line *why this spot* rationale next to every suggestion. If the topic doesn't fit anywhere obvious, you'll see a plain-English explanation and an **Insert anyway** option that drops it just above your References section.

**Before/after diff with word-count delta** — When research updates an existing paragraph, you get a side-by-side **Changes** card with inline insertions and deletions, a **+12 / -4 words** delta pill in the header, and a toggle between **Show diff** and **Show new text** so you can read either view.

**Conversational revisions before you accept** — Don't love a suggestion? Click **Revise this suggestion**, tell Copywriter what to change ("shorter, more skeptical"), and it rewrites in place — so you ship the version you actually want.

**Persistent post-apply highlights with one-click clear** — Once you apply a research suggestion, the inserted text stays softly highlighted in the editor so you can see exactly what changed at a glance. A floating **Clear research highlights** pill removes them when you're done reviewing.

Open any draft in the [Copywriter](https://app.rankability.com/copywriter), open the AI sidebar, and switch to the **Research** tab to try it.

## Auditor v1.7 - Site Auditor redesign with KPI cards, sortable Pages tab, and CSV export

**Improved**

Site Auditor has been rebuilt around the questions you actually ask first — "what's working, what's broken, and which pages do I need to look at?" — with a new top-of-report KPI strip, a much more usable Pages tab, and one-click CSV export.

**Most-important-metrics KPI strip** — Every audit now opens with four KPI cards: **Search Console** (impressions, clicks, CTR, average position), **Google Analytics** (sessions, engagement rate), **PageSpeed Insights** (average performance score), and **Backlinks** (referring domains). One glance tells you whether the site is healthy or hurting.

**Redesigned Pages tab with column visibility toggles** — The Pages table is now sortable on every column, and a **Columns** toggle lets you hide the metrics you don't care about so the table fits on your screen. Configure it once for the way you audit and the layout sticks.

**Sticky URL column** — The first column (the page URL) is now sticky during horizontal scrolls, so you never lose track of which row you're reading when you scan across all the metrics.

**One-click CSV export** — A **CSV** button on the Pages tab exports the current view to `audit-pages.csv` — perfect for handing a prioritized fix list to a developer or pasting into a client report.

Open the [Auditor](https://app.rankability.com/audit) and run a fresh site audit to see the new layout.

## Tracker v5.11 - Tracker auto-recovery and vendor failover transparency

**Improved**

Rank Tracker now tells you when a scan that originally came back partial was quietly fixed in the background, and keeps a per-scan record of which data vendors served you so you can trust the numbers.

**"Auto-recovered" badge on the dashboard** — When the background recovery system retries a partial scan and gets fresh results, the project dashboard surfaces a subtle pill like **Auto-recovered 3 platform(s)** at the top of the screen. Hover for a per-platform breakdown — *Gemini · recovered May 6 · attempt 2* — so you can see exactly what was patched and when. No action needed; the data is already in your report.

**Recovery shown on the project overview** — The **Last scan** card on the project overview also picks up an **Auto-recovered** badge when the latest scan was healed in the background, with the same per-platform tooltip. You'll know at a glance whether what you're looking at was a clean primary run or a recovered one.

**Per-tier failover history persisted with every scan** — Behind the scenes, every scan now records which vendor served each platform — primary (L1), automatic L2 backup, or L3 fallback — along with the reason for any tier shift. That history is saved with the run, so when something looks off you can trace it back to the exact provider that returned the data.

Open the [Tracker](https://app.rankability.com/track/rank) and you'll see the new badges on any project with a recently recovered scan.

## API v1.5 - OAuth 2.0 on remote MCP, Connected apps in Settings, and n8n on the Integrations page

**Improved**

Connecting Rankability to AI assistants and automation tools just got a lot more grown-up. The remote MCP endpoint now speaks standards-compliant OAuth 2.0, you can review and revoke every authorized app from your settings, and the n8n community node is listed front-and-center on the in-app Integrations page.

**OAuth 2.0 on the remote MCP endpoint** — Connecting Claude (or any other MCP client) to Rankability now goes through a standard OAuth flow with an explicit consent screen. You'll see exactly which permissions the client is asking for — for example *Create and run content generation jobs* or *Query search intelligence (Google + AI platforms)* — and you choose **Allow Access** or **Deny** before any token is issued. Discovery endpoints (`/.well-known/oauth-authorization-server`, `/.well-known/oauth-protected-resource`) are live so compliant clients can connect with zero manual setup.

**Connected apps tab in Settings** — A new **Connected apps** tab in [Settings](https://app.rankability.com/settings) lists every app you've authorized through OAuth (Claude, custom MCP clients, third-party assistants), the date you authorized it, when it was last used, and the exact scopes it has. Each one has a **Revoke** button with a confirmation dialog — kill access in one click without rotating any keys.

**n8n node on the in-app Integrations page** — The Settings → Organization → Integrations tab now features the official **n8n** community node card with one-line install instructions (search `n8n-nodes-rankability` in n8n, paste your API key) and three copy-pasteable starter workflows: **Copywriter from Google Sheets**, **Weekly Tracker Digest to Slack**, and **Bulk Page Auditor from URL List**. Connect Rankability to 400+ apps without writing code.

Open [Settings](https://app.rankability.com/settings) → Connected apps to manage authorized assistants, or jump to Integrations to grab the n8n node.


# April 2026

Rankability product updates originally published in April 2026.

{% hint style="info" %}
Historical entries describe Rankability at the time of release. Features, names, prices, and credit rules in older entries may have changed or been retired. Use the [Help Center](/) for current product instructions and availability.
{% endhint %}

[Back to the latest product updates](/changelog)

## Releases

## API v1.4 - Researcher jobs refund credits on failure (and tell you about it)

**Improved**

When a Researcher job submitted through the Agent API fails, the credits charged at the start of the run are now refunded to your account automatically — and the API tells your integration exactly how much came back.

**Automatic refund when a Researcher job fails** — `POST /api/agent/v1/researcher/jobs` charges credits up-front when it queues a research run. If the worker (or the inline fallback) ultimately fails, the full charge is reversed back into your balance. Mixed charges that straddle included-plan credits and purchased credits are returned to the right buckets so your balance stays accurate.

**`credits_refunded` on the job-detail endpoint** — `GET /api/agent/v1/researcher/jobs/:job_id` now returns a `credits_refunded` field. For failed jobs it shows the exact number of credits that were returned (or 0 if the failure happened before the charge). Pending, processing, and completed jobs always return 0. No need to inspect transactions to confirm a refund landed.

**Idempotent and safe to poll** — The refund is keyed off the job id, so even if your integration retries or reconciles repeatedly, credits only come back once. Cache hits and pre-charge failures correctly report 0 refunded.

Generate or rotate a key in [Settings](https://app.rankability.com/settings) → API Keys, and see the new field documented at [docs/agent-api.md](https://help.rankability.com/api/api-site-auditor).

## Page Auditor v1.2 - Intent-aware Page Quality Score

**Improved**

The Page Quality Score now grades every page against a rubric tailored to that page's job — so a service-area landing page is judged on local trust signals, a how-to article is judged on instructional clarity, and a checkout page is judged on conversion fit. No more one-size-fits-all checks giving informational pages credit for missing pricing, or scoring local pages without considering NAP and hours.

**Four intent-aware rubrics** — Page Quality now picks one of four rubrics depending on the page: informational, commercial, transactional, or local-service. Each rubric defines its own dimensions, weights, and scoring guides — so the dimension list and the weighting reflect what actually matters for that kind of page.

**Auto-detection for local-service pages** — When a commercial or transactional page shows clear local-business signals (phone numbers, addresses, hours, service-area phrases, pricing), the local-service rubric is selected automatically. Local landing pages stop being graded as if they were generic product pages.

**Per-rubric weighted scoring** — The section score weights each dimension by the rubric's per-dimension weight, and renormalises gracefully if a dimension is missing — so the final Page Quality Score reflects the rubric's priorities, not a flat average.

**Backwards compatible with older audits** — Audits run before this change continue to render with the legacy 8-dimension view, so historical reports keep working.

Open the [Page Auditor](https://app.rankability.com/audit/page) and run a fresh audit to see the new intent-aware grading in action.

## Page Auditor v1.1 - new Agentic Search Readiness category

**New**

Page Auditor now grades every page against the standards AI agents are starting to enforce — ChatGPT search, Perplexity, Claude, and the next wave of agentic crawlers. A dedicated **Agentic Search Readiness** section appears in every audit, worth **15% of the Page Quality Score**, with eight emerging-standard checks weighted equally.

**AI bot rules in robots.txt** — Explicit allow or disallow rules for GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended, and friends — so the agents that read your site know exactly what's on the table.

**Content-Signal directives** — Declares how AI agents may use your content (search, train, cite) instead of letting them fall back to defaults.

**Sitemap referenced from robots.txt** — The line agentic crawlers look for to find your full URL set.

**Link headers (RFC 8288)** — Machine-readable canonical, alternate, and licence relations served at the HTTP layer, before the HTML even parses.

**Markdown content negotiation** — Does your page return clean Markdown when an agent asks for `text/markdown`? The cleanest input format for LLMs, and the one most likely to be cited verbatim.

**llms.txt published** — The AI-era equivalent of an XML sitemap, telling agents which content matters most and how to consume it.

**Web Bot Auth directory** — The JWKS endpoint that lets agents prove who they are before you decide whether to serve them.

**Agent Skills index** — A discovery file that exposes the actions an agent can take on your site.

**Every check is auditable** — Expand any check to see the exact URL we fetched, the HTTP status, the request headers we sent, the response headers worth surfacing, the parsed evidence (which bots matched, which sitemaps probed, JWKS key counts), and a copy-pasteable fix snippet you can drop straight into your robots.txt, sitemap config, or `<head>`. Each check links out to the relevant spec or RFC so you can verify the recommendation yourself.

**Backwards compatible** — Audits run before this change show a single "Not yet checked — re-run the audit" placeholder for the new category. Re-running an old audit picks up all eight checks.

Open the [Page Auditor](https://app.rankability.com/audit/page) and run a fresh audit to see your agentic search readiness score.

## Prospector v1.0 - Find net-new SEO clients without leaving the app

**New**

Prospector is now generally available to every account — no flag, no waitlist. Search any city, vertical, or competitor footprint to surface businesses that need your help, score them by the work you can actually win, and push the best ones into your pipeline.

**Lead discovery, scored for the work you can win** — Search by location and vertical (or paste a competitor's domain) and Prospector returns ranked businesses with a fit score that reflects current SEO weaknesses, GBP gaps, AI search visibility, and review health. Sort by score, location, or review count to find the prospects most likely to convert.

**Built-in mini audit on every result** — Click any prospect to see a summary audit on the spot — top opportunities, the highest-impact fixes, and a snapshot of where they're losing to competitors. Use it to write a personalized first-touch outreach in minutes instead of hours.

**One-click promote to a client** — When a prospect is worth pursuing, promote them to a full client record with one click. Their domain, location, and discovered keywords carry over so you can drop them straight into the Tracker, Researcher, or Copywriter without re-entering anything.

**Saved searches and lists** — Save any search to re-run later and group prospects into named lists (e.g. "Q2 outreach", "Plumbers - Dallas") so you can keep your pipeline organized as it grows.

Open the [Prospector](https://app.rankability.com/prospector) on any client to start finding net-new business today.

## Tracker v5.10 - Run up to 10 benchmark reports in one click

**New**

Setting up a new project's baseline is now a single batch operation instead of ten separate runs. Pick up to ten keywords during project setup and Tracker benchmarks them all in one pass — same costs, same data, a fraction of the clicks.

**Batch benchmark up to 10 keywords** — On the project setup screen, select up to ten keywords and click "Run N benchmarks" to kick off the whole batch at once. The button rolls into a single "Running benchmark…" state with a per-keyword progress list — "Benchmark: " — so you can see exactly which one is in flight.

**Same per-keyword fidelity** — Each benchmark in the batch produces the same full report you'd get from a one-off run — SERP, AI platforms, citations, share of voice. Nothing is sampled or trimmed to keep batch costs down.

**Pick up where the batch left off** — If you close the tab or the connection drops, finished benchmarks are saved as you go. When you come back, only the unfinished keywords need to re-run.

Open the [Tracker](https://app.rankability.com/track/rank) and start a new project to run a batch benchmark.

## API v1.3 - Researcher endpoints for keyword jobs and saved projects

**New**

The Agent API now covers Researcher. Start keyword research jobs from your own tooling, poll for results, list past jobs, and read any saved Researcher project with its full keyword set — all with the same auth, rate limits, and audit logging as the rest of the API.

**Start keyword research jobs** — `POST /api/agent/v1/researcher/jobs` kicks off a research run in any of the supported modes (discover, trending, reddit, youtube, ecommerce). Jobs run asynchronously and return a job id you can poll. Cache hits return synchronously and cost zero credits.

**Poll status and list past jobs** — `GET /api/agent/v1/researcher/jobs/:job_id` returns live status and the result payload when the job finishes. `GET /api/agent/v1/researcher/jobs` lists every research job your account has run, with filters for status and mode.

**Read saved Researcher projects** — `GET /api/agent/v1/researcher/projects` lists every saved keyword project on your account. `GET /api/agent/v1/researcher/projects/:id` returns a single project with its full keyword set, volumes, intent, and clusters — ready to drop into a brief, an outreach list, or your own scoring pipeline.

**Two new scopes** — Issue keys with `researcher:run` to start jobs and `researcher:read` to read jobs and projects. Both scopes show up in the Settings → API Keys picker.

**Up-front credit costs** — Discover mode costs 500 credits, trending/reddit/youtube/ecommerce cost 750. Charges happen at job start, mirroring the Optimize pattern.

Generate a key in [Settings](https://app.rankability.com/settings) → API Keys and read the full reference at [docs/agent-api.md](https://help.rankability.com/api/api-site-auditor).

## Project lists - Status filters, bulk actions, and one-click status changes

**Improved**

Managing a long list of client projects is now far less clicking. Filter by status, change a project's status from the row's menu, or select many projects and update them all at once — across both the global /projects page and any client's project list.

**Status filter on every project list** — Filter chips at the top of the list let you scope to All, Active, Completed, or Archived in one click. Each chip shows a live count so you can see at a glance how your pipeline is distributed.

**One-click status changes from the row menu** — The kebab menu on any project row now includes Mark as active, Mark as completed, and Archive. Change a project's status without opening it, and the list updates in place.

**Bulk status actions** — Select multiple projects with the row checkboxes and a contextual action bar appears. Mark the entire selection as active, completed, or archived in one move — works on both the global [Projects](https://app.rankability.com/projects) page and inside any client's project list.

Open [Projects](https://app.rankability.com/projects) or any client's projects tab to use the new filters and bulk actions.

## Tracker - Topic Groups and individual keywords in one unified card

**Improved**

The Rank Tracker project list is now a single, coherent view. Topic Groups and individual keyword projects live inside one card with clear subsections, and the empty-state messaging finally tells you the truth about what's there.

**One unified card** — Topic Groups and individual keyword projects share a single bordered card with internal dividers and clear subsection headers (Topic Groups and Individual Keywords). When both subsections coexist, the labels appear; with only one kind in play, the labels stay out of the way.

**Honest empty states** — The big "No tracking projects yet" empty state with the Create CTA now only shows when you genuinely have no projects at all. If your keywords are all organized into topic groups, the individual keywords subsection just says "All keywords are organized into topic groups above" — instead of contradicting the groups you can clearly see.

**Filter- and archive-aware messaging** — When a filter or the Archive view hides everything in the individual keywords subsection, you see an inline message and a Clear filters button rather than the global empty state.

Open any client in the [Tracker](https://app.rankability.com/track/rank) to see the cleaner project list.

## Help center - Attach screenshots and a reference URL when you submit a request

**Improved**

The Help center support form now lets you give the team the context they need to help you faster — without follow-up emails asking "what page were you on?" or "can you send a screenshot?".

**Attach a reference URL** — A new optional Reference URL field on the support form lets you paste the page (or external link) the request is about. The form validates the URL inline so you'll know right away if there's a typo.

**Attach screenshots** — Upload up to five screenshots (PNG, JPG, GIF, or WebP, 10MB each) directly from the form. Thumbnails preview each one and a per-file remove button lets you swap any of them out before submitting.

**Cleaner support tab** — The CEO direct-line card is gone, so the Submit a request card is now the primary content on the support tab and the new fields fit cleanly inside it.

Open the [Help center](https://help.rankability.com) and switch to the Support tab to use the new fields.

## Auditor v1.6 - GBP suite expansion: shareable reports, review replies, and cross-location compare

**New**

The Google Business Profile auditor just got a major upgrade. You can now share live audit reports with clients without giving them a login, reply to Google reviews directly from the app, compare metrics across every location in a group at a glance, and pick the right listing when a public address has multiple GBP candidates.

**Shareable live report links** — Open any GBP group, click Share, and toggle on a public live link. Set an optional password and expiration date, copy the URL, send it to your client. They see the same live report you do — keyword summaries, location performance, cannibalization alerts — branded with your agency name and logo. Rotate the token any time to revoke access.

**Reply to Google reviews in-app** — On the Reviews tab of any GBP group, click Reply on any review and your response posts directly to Google through the connected account. The review is marked as responded in your tracking table so you can see at a glance which ones still need attention.

**Review ratings on Rankings cards** — Each location card on the Rankings tab now shows the star rating, total review count, and a count of unanswered reviews. Spot the locations that need attention without leaving the dashboard.

**Cross-location comparison table** — A new comparison table on the GBP Auditor lets you see every location in the group side-by-side: keyword visibility, average rank, review counts, and trend indicators. Sort by any column to find the standouts and the laggards in seconds.

**Right-listing picker for public audits** — When the public GBP audit tool finds multiple candidate listings for an address, you now get a disambiguation step that lets you confirm the correct one before the audit runs. No more accidentally auditing the wrong location.

Open any client's GBP group from the [Auditor](https://app.rankability.com/audit/gbp) to use the new tools.

## Tracker v5.9 - AI brand tracking, GA4 traffic donuts, and street-level Local Grid centering

**New**

Tracker now tells you where you stand in AI search at a brand level, breaks down your GA4 traffic mix in interactive donut charts, and lets you center the Local Grid on a precise street address.

**AI search performance with brand tracking** — AI search reports now distinguish between branded and non-branded visibility across ChatGPT, Perplexity, Gemini, Claude, Grok, and Copilot. See how often your brand is mentioned by name versus surfaced for category queries, and where competitors are picking up the citations you should be getting.

**GA4 traffic source donut charts** — The GA4 performance card now renders Sessions, Engaged Sessions, and Conversions as donut charts broken down by source category (Organic Search, AI Referral, Paid, Direct, Social, Referral, Email, Other). Hover any slice for the exact session count and percentage. Download any chart as a PNG to drop into client reports.

**Center Local Grid on a street address** — When setting up a Local Grid, the address autocomplete now resolves to a precise street-level point instead of a city centroid. Your grid renders centered exactly where the storefront is, so the heat map reflects real proximity rankings rather than a rough city-center approximation.

**GBP address finder + scan button refinements** — The Tracker setup screen has a faster GBP address finder and a more compact scan button row, so you can launch a fresh scan without the controls eating into the dashboard.

Open any project in the [Tracker](https://app.rankability.com/track/rank) to see the new AI brand metrics, GA4 donuts, and Local Grid options.

## Copywriter v4.8 - Optimize sidebar polish and brand-source distinction

**Improved**

The Optimize keyword sidebar is faster to scan, easier to act on, and now tells you at a glance which keywords came from your brand profile versus your research.

**Brand-sourced keywords are visually distinct** — Keywords pulled from your brand profile now render with a subtle brand badge in the Optimize KW checklist and contribute to scoring alongside research-sourced keywords. You can tell at a glance whether a missing keyword is something your brand explicitly cares about or a research suggestion.

**Source filtering moved into the sort dropdown** — The chip row above the keyword list is gone. Filter by source (research, brand, or both) directly from the sort dropdown for a cleaner, denser sidebar that fits more keywords on screen.

**Hover-to-copy on keyword rows** — Hover any keyword row and a compact copy icon appears. One click copies the term to your clipboard so you can paste it into your brief, your editor, or anywhere else without retyping.

**Persistent selection highlight + compact processing pill** — Highlights you make in the editor stay visible while AI custom-instruction requests process in the background. The processing indicator is now a small pill instead of a full overlay, so you can keep editing while AI work runs.

Open any project in the [Copywriter](https://app.rankability.com/copywriter) and switch to Optimize mode to see the changes.

## Certified Agency Kit v1.0 - Badges, embed snippet, and in-app profile editing

**New**

Certified Rankability Agencies now have a self-serve kit inside the app. Download official badges, grab an embed snippet for your site, and edit your public directory profile without filing a request.

**Official badge artwork** — The new /account/certification page hosts the three official Certified Agency badges: Primary (Blue), Reverse (White), and Icon. Download SVG or PNG for any variant. Each badge links back to the canonical badge guidelines so you stay within usage rules.

**Copy-paste embed snippet** — One click copies a ready-to-use anchor + image snippet that drops the blue badge on your site and links to your public profile on the Rankability directory. No manual HTML editing.

**Edit your public profile in-app** — Org admins and owners can now update the editable parts of their certified agency profile (name, logo, website, description, location, industries, services, service area, public contact email, positioning) from inside the kit page. Saves sync to the public directory within a few minutes.

**Status-aware experience** — The page adapts to your certification state. Pending applicants see a clear notice explaining what's available now versus after approval. Active members get the full kit with the public profile button and embed snippet. Inactive or revoked members see reinstatement guidance.

Open the [Certified Agency Kit](https://app.rankability.com/account/certification) from your account settings.

## Researcher v1.9 - Conversational Keyword Agent

**New**

Researcher now includes a conversational keyword agent — a chat sidebar that selects keywords for you, refines selections turn by turn, and lets you undo any change with one click. It's the AI Select tool reimagined as a working partner, not a one-shot prompt.

**Chat with your keyword list** — Open any keyword research project, click the AI Select button, and a sidebar opens. Describe what you want in plain English ("find the top 20 commercial-intent keywords I could realistically rank for in 6 months"), and the agent reads your keyword list — volumes, difficulty, CPC, intent, clusters — and checks the matching rows directly in the table. No copy-paste, no leaving the page.

**Multi-turn refinement with checkpoints** — The agent remembers the conversation. Ask it to narrow the selection ("now drop anything with KD over 40"), broaden it ("add a few informational keywords for blog topics"), or pivot entirely ("forget those, find me location-based service keywords instead"). Every change creates a checkpoint, so if a turn moves you in the wrong direction you can restore the previous selection from the chat with one click — or just say "undo last change".

**Quick-prompt chips** — Common follow-ups appear as one-tap chips beneath the input: Top high-volume only, Exclude branded terms, Keep transactional intent, Undo last change. Use them to iterate without retyping the same instructions.

**Jump straight to a keyword** — When the agent references specific keywords in its reply, click them to scroll the table to that row. Easy way to verify why something was picked without losing your place in the conversation.

**Responsive layout** — On wide screens (1280px and up) the sidebar pushes the table aside so both stay fully usable. On smaller laptops and tablets it opens as an overlay you can resize by dragging its left edge. On mobile it appears as a bottom sheet you can swipe down to dismiss. Press Escape to close on any device.

**Streaming responses** — Replies stream as the agent thinks, so you see its reasoning unfold in real time instead of waiting for a finished answer.

Open any project in the [Researcher](https://app.rankability.com/researcher), click AI Select in the Keyword Opportunities header, and start chatting.

## Tracker v5.8 - Keyword Topic Groups & AI Query Fan-Out

**New**

Rank Tracker now lets you organize keywords into topic groups and automatically generate AI query variants for each group — so you can track how you rank across an entire topic, not just one keyword at a time.

**Group keywords by topic** — Click "Create group" on any project dashboard, give it a name (e.g. "Local SEO services" or "Pricing comparisons"), and the dashboard reorganizes into collapsible sections. Each group shows an aggregated Topic SPI badge that reflects how dominant you are across the entire topic, not just a single query. Ungrouped keywords keep working exactly as before — grouping is opt-in and per-project.

**AI Query Fan-Out** — When you create a group, give it a seed keyword and Rankability generates 8–12 commercial-intent query variants automatically (comparisons, pricing questions, vetting and hiring queries, recommendation searches). The variants are the queries real buyers type when they're ready to act — not informational "what is" or "how does" queries. Pick which variants to track, and they're added to the group in one step.

**Per-platform platform selection** — For each group, choose which platforms you want to track across: Traditional search, AI platforms (ChatGPT, Perplexity, Gemini, etc.), and Video. The dialog shows real platform logos so you can see exactly what you're enabling. Topic SPI is computed as a true weighted average — weighted by the number of platforms each keyword is actually tracked on — so the score reflects real coverage rather than averaging incomparable numbers.

**Domain and location pre-filled** — The Create Group dialog now pre-fills the target domain from the client record and includes location autocomplete powered by Google Places. If you set a location, every generated variant is required to include it (e.g. "best CRM software Austin" instead of just "best CRM software") — so local intent is honored across the whole group.

**Topic Visibility in Tracker** — Shared client reports now include a Topic Visibility section that surfaces each group's aggregated SPI alongside the keyword-level data your clients already see. Clients understand topic dominance better than individual keyword rankings — "we own 73% of the pricing-comparison topic" lands harder than a list of 12 keyword positions.

**Move keywords between groups** — Every keyword in the dashboard now has a "Move to group" dropdown so you can re-organize without recreating projects. Grouped keywords are filtered out of the main flat list to avoid double-counting.

Open any project in [Rank Tracker](https://app.rankability.com/track/rank), click Create group, give it a seed keyword, and let the AI fan-out propose your topic.

## Tracker v5.7 - Multi-location GBP management

**New**

Agencies managing brands with multiple Google Business Profile locations can now connect, audit, and monitor reviews across all locations from one place.

**Connect multiple GBP locations per client** — In Client Settings, once your Google Business Profile is connected, a new "Connected GBP locations" card shows all locations linked to that Google account. Use the location picker to select as many locations as you need — each one is stored individually. You can add more at any time without disconnecting.

**Primary location switcher** — One location is designated as Primary, which is what powers the GBP performance data you already see. Click "Set as primary" on any other connected location to switch it. If you remove the primary location and others remain, the next one is promoted automatically.

**Existing clients migrated automatically** — If a client already had a GBP location connected, it has been carried over to the new system as the primary location with no action required.

**Cross-location review feed** — In GBP Groups (inside Track), groups with two or more locations now show a Reviews tab alongside the existing Rankings tab. The feed aggregates recent reviews from all locations — reviewer name, star rating, location, date, and review text are all shown together in one list.

Filter the feed by location, star rating, or response status to focus on what needs attention. Each review shows whether it has been responded to on Google (locked, cannot be overridden), manually marked as responded by your team (toggleable), or still awaiting a response. A "View on Google" link opens the review directly. Marking a review responded records it in Rankability without requiring you to leave the platform.

**Multi-location audit** — The GBP auditor now supports running audits across all locations in a group and viewing results per location, so you can compare GBP health across a brand's full footprint.

To use the review feed, go to [Track](https://app.rankability.com/reporter), open a client with a GBP group, click the group name on any project row, and select the Reviews tab. The tab only appears for groups with two or more locations.

## Copywriter v4.7 - Share briefs and drafts for review

**New**

You can now share any Copywriter project with clients, editors, or collaborators via a link — no login required.

**Share with one click** — A new Share button appears on every Copywriter project. Click it to generate a shareable link and choose how much access the recipient gets. Share it directly with clients for feedback, pass it to an editor for changes, or hand it off to a copywriter working outside your account.

**View-only or edit mode** — Choose whether the shared link opens in view-only mode (the recipient can read and comment but not change anything) or edit mode (they can make changes directly in the editor). Edit mode is useful when you want a collaborator to work on the draft. View mode is better for client approval — they can review the content without accidentally editing it.

**Optional AI chat for shared viewers** — In edit mode, you can enable AI chat for the shared link so recipients can use the built-in AI assistant to refine sections, ask questions about the content, or suggest improvements — without needing a Rankability account. AI usage on shared links draws from the organization's available AI usage and credit budget.

**Portal-password protected** — If the client associated with the project has a portal password set, the shared link requires that password before the content is visible. Your client's content stays private even with the link enabled.

**Revoke anytime** — Disable sharing from the same Share dialog to immediately invalidate the link. Anyone who previously had access will see a "sharing disabled" message if they try to open it.

Open any project in the [Copywriter](https://app.rankability.com/copywriter), click the Share button in the top toolbar, and generate your link.

## Copywriter v4.6 - Regenerate outline with intent control

**New**

The brief review page now lets you regenerate your outline with one click — and change the content intent before doing so.

**Regenerate outline button** — A Regenerate outline button now sits alongside your brief. Click it, confirm in the dialog, and the Copywriter re-runs the brief generation using your current settings, knowledge base, and research data. Use it when the first brief doesn't quite match what you had in mind, when you've updated your knowledge base and want to reflect the changes, or when you want a fresh take on the structure.

**Intent as a control, not a label** — The content intent (Educate, Discover, Compete, or Convert) is now shown as a segmented button group rather than a static badge. Switch between intents directly on the brief page without going back into the project setup. The change takes effect the next time you regenerate, so you can dial in the right intent before re-running.

**Your intent choice is locked in** — Once you select an intent manually, the system respects it. Previously, the auto-detection that runs during brief generation could silently override your choice if it disagreed with the keyword signal. Now, a manually set intent is treated as authoritative — the auto-correction only applies if you haven't chosen one yourself.

**No full draft regeneration required** — Regenerating the outline does not discard your draft. If you've already written or edited content, the new outline is applied to the brief only. You decide when and whether to regenerate the full draft from the updated brief.

Open any project in the [Copywriter](https://app.rankability.com/copywriter) and go to the Brief tab to find the Regenerate outline button.

## Researcher v1.8 - Analyze any URL, subfolder, or subdomain

**New**

The Explore tab in Researcher now lets you analyze any URL, subfolder, or subdomain — not just root domains. Where you used to be limited to seeing what example.com ranks for, you can now drill into example.com/blog, a specific page like example.com/blog/seo-guide, or a subdomain like docs.example.com.

**Choose what you're analyzing** — A new target type selector sits inline with the domain input. Pick from Root domain, Exact URL, Subfolder, or Subdomain before running your analysis. The input updates its label and placeholder to match — so if you select Exact URL, it prompts you for a full URL like example.com/blog/post rather than just a domain.

**Why this matters for competitor research** — A competitor's root domain might rank for thousands of keywords, but their blog subfolder is what you actually compete with for content traffic. Analyzing example.com/blog directly shows you exactly which keywords drive their content section — without the noise of their homepage, product pages, or other sections.

**Useful for your own site too** — Audit a specific section of your own site before publishing content. See what your /blog subfolder already ranks for before writing a new post. Identify gaps in a specific subdomain without wading through your full domain keyword list.

**Works with search history** — Target type is saved with your search history, so reloading a past Explore search restores the correct type automatically.

**Root domain behavior unchanged** — Selecting Root domain works exactly as before — no changes to existing workflows.

Open the [Researcher](https://app.rankability.com/researcher), go to the Explore tab, and use the target type selector next to the input field.

## Tracker v5.6 - Historical timeline & manual annotations

**New**

Rank Tracker now lets you annotate your ranking charts with events that matter — so when rankings shift, you can see exactly what changed and why.

**Mark events directly on your chart** — Click the Add Annotation button on any Rank Tracker project dashboard and log what happened: a content update, an algorithm change, a new backlink campaign, a technical fix, or a client event. Each annotation appears as a color-coded vertical marker on your historical ranking chart, pinned to the exact date. Hover over any marker to see the details, or click to edit.

**Six built-in categories** — Every annotation is tagged with a category so your chart stays organized: Content change, Algorithm update, Link building, Technical fix, Client event, or Other. Each category has its own color and icon, making it easy to scan the timeline and spot patterns — like whether rankings improved after a batch of content updates, or dropped following an algorithm rollout.

**Correlate rankings with actions** — The real value is context. When a client asks "why did our rankings jump in March?", you can point to the annotation showing you published 5 new pages that week. When rankings drop, you can check whether it lines up with an algorithm update you logged. Annotations turn a ranking chart from "what happened" into "why it happened."

**Edit and delete anytime** — Made a typo or need to update the details? Click any annotation marker to edit its title, description, date, or category. Delete annotations you no longer need. Changes are reflected on the chart immediately.

**Date-range aware** — Annotations automatically filter to match your selected time range. Looking at the last 30 days? You'll only see annotations from that period. Switch to 6 months or all time and the full history appears.

**Saved per project** — Annotations are stored at the project level, so each Rank Tracker project has its own timeline. Your SEO team can maintain a running log of every meaningful change for each client.

Open any [Rank Tracker](https://app.rankability.com/rank-tracker) project and click Add Annotation to start building your timeline.

## Tracker v5.5 - Owned assets in Search Domination

**New**

Search Domination now lets you flag owned assets — like your LinkedIn profile, YouTube channel, Crunchbase page, or any other property you control — so your true SERP dominance is reflected in the score.

**Flag owned assets with one click** — In the traditional search results table, click the shield icon next to any domain you own beyond your primary website. That domain is instantly marked as an owned asset, and its ranking positions count toward your Search Domination score. Your LinkedIn company page ranking #4 for your brand name? That's your real estate — now it counts.

**See your real SERP footprint** — Search Domination previously only counted your primary domain. But if you control 3 of the top 10 results through your website, YouTube channel, and LinkedIn profile, your actual dominance is much stronger than the primary domain alone suggests. Owned assets give you the complete picture.

**Visual distinction** — Owned asset rows are highlighted in the results table with a blue accent and an "Owned" badge, so you can instantly see which spots are yours versus competitors'. Your primary domain and owned assets are visually grouped together.

**Smarter competitor analysis** — Owned assets are automatically excluded from the Top Competitors sidebar, so your own properties don't show up as competition. The competitive landscape only shows domains you don't control.

**Saved per client** — Owned domains are saved at the client level, so you only need to flag them once. They apply across all keyword projects for that client.

**Included in exports** — CSV exports now include a Type column (Primary, Owned, or Competitor) so owned asset data carries through to your reports.

Open any keyword project in [Tracker](https://app.rankability.com/reporter), switch to the traditional search tab, and click the shield icon next to any domain you own to start tracking your true Search Domination.

## Tracker v5.4 - Search Domination in traditional search

**New**

The traditional search tab in Tracker now features a Search Domination metric — a clear, at-a-glance measure of how much of the search results your domain controls.

**See your SERP footprint instantly** — Search Domination shows how many of the top 30 ranking positions your domain occupies across your tracked keywords and search engines. Instead of scanning through individual keyword rankings, you get one number that tells you how dominant your presence is in the results.

**Color-coded performance** — The score is color-coded so you can immediately tell whether your coverage is strong, moderate, or needs attention — without digging into the data.

**Track dominance over time** — As you build content and improve rankings, watch your Search Domination percentage climb. It's a straightforward way to measure whether your overall traditional search presence is growing or shrinking across your entire keyword portfolio.

**Included in exports** — The Search Domination score is included when you export your traditional search data, making it easy to add to client reports.

Open any keyword project in [Tracker](https://app.rankability.com/reporter) and switch to the traditional search tab to see your Search Domination score.

## Researcher v1.7 - AI keyword selection

**New**

Researcher now includes an AI-powered keyword selection tool that lets you describe what you're looking for in plain English — and instantly selects the most relevant keywords from your list.

**Describe it, don't scroll it** — Instead of manually reviewing hundreds or thousands of keywords, click the AI Select button in the Keyword Opportunities header and type what you need. For example: "Find location-based SEO consultant keywords with unique commercial intent" or "Select informational keywords about technical SEO that would work as blog topics." The AI reads your entire keyword list — including volume, difficulty, CPC, intent, and cluster data — and checks the keywords that match your criteria.

**Intent-aware reasoning** — The AI doesn't just pattern-match on keyword text. It analyses each keyword's search intent, considers your business context, and prioritises keywords where the intent aligns with your goals. If you're a service provider, it deprioritises DIY and free-tool keywords. If you're looking for content ideas, it focuses on informational intent with topic diversity.

**Works with your filters** — AI selection operates on your currently filtered list. Apply your volume, difficulty, or CPC filters first to narrow the scope, then let the AI make the final selection within those constraints. The AI respects whatever filters you've already set.

**Batch processing for large lists** — Lists of up to 2,000 keywords are processed in intelligent batches, so even your largest research runs get full AI coverage. Each keyword is evaluated against your criteria with its complete metric profile.

**One-click workflow** — Selected keywords are automatically checked in the table, ready for you to save to a list, export, or send to Copywriter. A summary badge shows how many keywords the AI selected and why, so you can review the reasoning before acting on it.

**200 credits per run** — Each AI selection costs 200 credits regardless of list size. No credits are charged if the AI processing fails.

Open any [Researcher](https://app.rankability.com/researcher) keyword research, look for the AI Select button in the Keyword Opportunities section, and try it with your own criteria.

## Page Auditor v1.0 - Score any page for a keyword

**New**

Introducing Page Auditor, a comprehensive page-level SEO analysis tool that scores any URL against a target keyword and tells you exactly what to fix.

**100-point SEO Content Score** — Enter a URL, a keyword, and optionally a target location. Page Auditor crawls the page, scrapes competitors from the SERP, extracts entities, runs PageSpeed Insights, and produces a single 0–100 score broken down into five components: keyword placement (title, H1, meta description, first 100 words), entity coverage (how many competitor-mentioned topics your page covers), Core Web Vitals performance (LCP, CLS, FCP, TBT), page size efficiency, and schema markup presence.

**Three-gate checkpoint** — Before scoring begins, the auditor verifies your page passes three gates: crawlable (not blocked by robots.txt), indexable (no noindex directive), and retrievable (meaningful content can be extracted — catches empty pages, thin content under 50 words, and soft 404s). If any gate fails, you see the exact reason and can fix it before worrying about content quality.

**Entity gap analysis** — See which entities (brands, concepts, features, terms) top-ranking competitors cover that your page is missing. Each entity shows whether your page mentions it or not, so you know exactly which topics to add for better topical coverage.

**Technical health checklist** — Beyond the score, Page Auditor runs 15+ pass/fail checks: SSL present, mobile-friendly, keyword in URL, heading structure, broken links, self-referencing canonical, content freshness, readability, interstitials, and ad placement. Trust and authority signals — about page, contact page, terms, privacy policy, author attribution, sources cited, and disclaimers — are filtered by search intent so you only see checks relevant to your page type.

**AI quality analysis** — Intent-aware quality dimensions evaluated against Google's quality rater guidelines: intent satisfaction, helpfulness, originality, accuracy, safety, and effort — plus subject matter expertise for informational content or first-hand experience for commercial and transactional pages. Each dimension gets a pass/fail result with a specific reason.

**Score history and trends** — Re-audit the same URL and keyword over time to track improvements. A trend chart shows how your score evolves across audits, so you can measure the impact of each optimization round.

**Shareable reports** — Generate a share link for any completed audit. Shared reports display your agency branding (name, logo, accent color) from your subscription settings — perfect for client deliverables. The shared view includes the full score breakdown, all checks, and the trend chart.

**Location-aware analysis** — Specify a target location (city, state, or country) and the auditor pulls SERP results for that geo, ensuring the entity extraction and competitor analysis reflects local search intent.

Page Auditor is available in every client workspace under Audit. Review the current [credit costs reference](https://help.rankability.com/account-and-settings/credit-costs-reference) before starting an audit.

## Tracker v5.3 - Microsoft Copilot integration

**New**

Tracker now tracks your brand's visibility across Microsoft Copilot — Bing's AI-powered search assistant — alongside ChatGPT, Perplexity, Gemini, Claude, and Grok.

**Track Copilot citations and mentions** — When you add Copilot to a Rank Tracker project, Tracker checks whether Copilot's AI answers mention your brand, cite your website, and how you're positioned relative to competitors. Results appear on the same AI Answers dashboard alongside all other platforms.

**CVS score integration** — Copilot results feed directly into your Citation Visibility Score (CVS) with a weight of 0.2, reflecting Microsoft's growing share of AI-powered search. Your overall CVS score now reflects visibility across 7 AI platforms.

**SPI scoring** — Copilot is fully integrated into the Search Performance Index, contributing to your holistic search visibility score across both traditional and AI search.

**Smart billing** — Each Copilot check costs 10 credits. If the platform doesn't respond or returns an empty result, you're not charged — the system automatically marks these as non-billable.

**Agency plan feature** — Copilot tracking is available on Agency plans. Add it to any Rank Tracker project from the platform settings.

Open any [Rank Tracker](https://app.rankability.com/rank-tracker) project and enable Copilot in the platform list to start tracking.

## Promoter v2.1 - Analyze any domain's backlink profile

**New**

Promoter now lets you study any domain's backlink profile — not just your own. Enter a competitor's domain directly from the Promoter page and see their full backlink data: referring domains, domain score, link velocity, top anchors, and referring domain breakdown.

**Competitor backlink analysis** — Click the search icon next to the domain selector and type any domain (e.g. competitor.com). Promoter runs the same full backlink analysis it does for your own domain: total backlinks, referring domains, dofollow vs nofollow split, 30-day new and lost links, domain score with historical trend, and top referring domains with their authority scores.

**Quick domain switching** — Switch between your workspace domain and any external domain instantly. When analyzing an external domain, a clear indicator shows you're viewing a competitor's data, and you can return to your own domain with one click.

**Smart input handling** — Paste a full URL with protocol and path (<https://www.competitor.com/page>) and Promoter automatically extracts just the domain. Invalid inputs are caught with clear error messages before any API call is made.

**Same data depth** — External domains get the exact same analysis depth as your own domain: backlink summary, domain score history, top anchors, and top referring domains. The only difference is the label telling you it's an external domain.

Open the [Promoter](https://app.rankability.com/promoter) for any client and click the search icon to analyze a competitor's backlink profile.

## Researcher v1.6 - Organic keyword footprint

**New**

Explore Domain now shows a complete historical view of any domain's organic keyword footprint — how many keywords it ranks for, estimated traffic value, and position distribution over time.

**Historical rank overview** — See how a domain's organic presence has changed month over month. The chart shows total ranked keywords, estimated organic traffic (ETV), and traffic cost value going back as far as data is available. Use the time range selector (1M, 6M, 1Y, 2Y, or All time) to zoom into the period you care about.

**Position distribution breakdown** — Understand where a domain's keywords actually rank. The stacked area chart breaks down keywords by position range: Top 3, positions 4–10, 11–20, 21–50, and 51–100. Watch how a competitor's rankings shift across tiers over time — are they gaining top 3 positions, or are most of their keywords stuck on page 2?

**GSC overlay** — If you have Google Search Console connected for the domain you're exploring, the chart overlays your actual GSC clicks, impressions, and CTR data alongside the third-party estimates. Toggle the GSC layer on or off to compare estimated vs actual performance. This lets you validate DataForSEO estimates against your real data.

**Summary metrics** — At-a-glance stats show total ranked keywords, estimated monthly traffic, traffic cost value, and a position tier breakdown for the most recent data point.

**Cached for efficiency** — Results are cached for 7 days so repeated lookups for the same domain don't consume additional credits. Each fresh lookup costs 400 credits.

Open the [Researcher](https://app.rankability.com/researcher), search for any domain, and scroll to the Organic Keyword Footprint section to explore its historical performance.

## MCP v1.1 - Optimize tool

**New**

MCP now includes an `optimize_page` tool, letting your AI assistant score any public URL against its SERP competitors for a keyword — returning a full Rankability score, entity coverage analysis, and competitor benchmarks.

**Score pages from your AI assistant** — Ask your AI assistant to analyze a page and it calls the Optimize tool directly. Send a URL and keyword, and get back a 0–100 Rankability score based on entity coverage and keyword placement, a complete list of extracted entities with importance rankings, and a summary of the competitor pages that were analyzed.

**New scope required** — The tool requires the `optimize:run` scope on your API key. If you created your API key before this update, go to Settings → API Keys and add the `optimize:run` scope to enable the tool.

**Same pipeline as the app** — The MCP tool runs the exact same analysis pipeline as the in-app Optimize mode: SERP and Brave competitor scraping, GPT entity extraction, source URL scoring. Results are identical whether you use the app, the API, or MCP.

**1,200 credits per call** — Each optimize call costs 1,200 credits, consistent with Copywriter Quick mode pricing. Retry-safe with idempotency key support.

Update your MCP configuration and add `optimize:run` to your API key scopes to get started. See the [MCP guide](https://help.rankability.com/api/mcp-getting-started) for setup instructions.

## API v1.2 - Public Optimize endpoint

**New**

The Rankability API now includes a public Optimize endpoint that scores any URL against its SERP competitors for a given keyword — returning a full Rankability score, entity coverage analysis, and competitor benchmarks in a single API call.

**One call, full analysis** — Send a POST request with a URL and keyword to `POST /api/v1/optimize` and get back everything: a 0–100 Rankability score based on entity coverage (how many important entities from competitors your content includes) and keyword placement (whether your primary keyword appears in key spots like the title, H1, first paragraph, subheadings, and meta description), a complete list of extracted entities with importance rankings, and a summary of the competitor pages that were analyzed.

**No project required** — Unlike the Copywriter API, the Optimize endpoint is completely stateless. It doesn't create a database project, doesn't require a client ID, and doesn't need polling. You send a request and get the full result in the response. This makes it ideal for batch scoring, content audits, and integration into external pipelines.

**Entity extraction from competitors** — The endpoint scrapes up to 20 SERP competitors and extracts the entities (brands, concepts, features, terms) that top-ranking pages cover. Each entity includes an importance level based on how many competitors mention it: required (5+), recommended (2–4), or optional (1). Use this to identify exactly which topics and entities your content is missing.

**Built-in security** — The endpoint blocks requests to private networks, localhost, cloud metadata endpoints, and internal hosts. URL validation ensures only public HTTP/HTTPS pages are analyzed.

**Credit-efficient** — Each call costs 1,200 credits (same as Copywriter Quick mode). Repeated requests for the same URL and keyword combination within a billing cycle are not double-charged thanks to automatic idempotency.

**Authentication** — The Optimize endpoint uses admin key authentication via the `X-Admin-Key` header. This is separate from the `rk_live_` Bearer token system used by other API endpoints.

Full endpoint documentation is available in the [Help Center](https://help.rankability.com) under "Optimize API endpoint."

## Optimize mode - Higher quality entity extraction

**Improved**

Optimize mode now uses the same battle-tested entity extraction system as Brief mode — delivering significantly more relevant entities with less noise.

**Shared entity system** — Previously, Optimize mode had its own separate entity extraction pipeline with simpler filtering. It now uses Brief mode's `findKeywordSourceExcerpts` for verification (checking entities against SERP results, AI Overview, Perplexity, Grok, and ChatGPT citations) and the shared `filterNoisyEntities` function for comprehensive noise removal. This means the same entity quality you get in a full Copywriter brief is now available in Optimize mode.

**Better noise filtering** — The shared filtering system includes topic-aware filtering, business name pattern detection, city name filtering, UI noise removal, and platform name filtering. Junk entities like page headings, navigation labels, and review boilerplate that previously appeared in Optimize results are now caught and removed.

**Stronger extraction prompt** — The entity extraction prompt now includes Brief mode's explicit rules: preserve original casing (only capitalize proper nouns), extract single concepts only (with positive and negative examples), and never extract headings, taglines, or multi-word verb phrases.

**Result** — Internal testing showed 4.6x more entities extracted (19 → 87) with much higher relevance. Heading-style junk entities like "Compare user reviews on trusted platforms" are eliminated.

## Serena v4.2 - Smarter action guardrails

**Improved**

Serena now limits itself to one tracking recommendation and one content recommendation per response — picking the single highest-impact action instead of overwhelming you with a list of proposals.

**One action per type** — Previously, Serena could propose multiple keyword tracking additions and multiple content projects in a single response. Now it proposes at most one of each: the single highest-impact keyword to track and the single highest-priority content gap to fill. This makes each response more focused and actionable.

**Enforced at every level** — The guardrail is enforced in the tool definition (single-keyword limit), the system prompt (explicit "at most ONCE per response" instructions), and the response parser (only the first tool call of each type is accepted). Even if the underlying model tries to propose multiple actions, only the highest-priority one gets through.

**Brand Audit integration** — When Brand Audit findings exist, Serena now references relevant inconsistencies, severity levels, and AI confusion risk in its recommendations — connecting brand consistency issues to their potential impact on AI search visibility.

Open the [Serena](https://app.rankability.com/clients) to see the more focused recommendations in action.

## Serena v4.1 - Actionable proposals with site awareness

**New**

Serena now proposes concrete actions you can execute with one click — and checks your existing site pages before recommending new content, so you never get a suggestion to create a page you already have.

**Action cards in every response** — When Serena identifies an opportunity, it doesn't just describe it — it proposes a specific action. Keyword tracking opportunities appear as "Track these keywords" cards. Content gaps appear as "Create content project" cards. Click to execute the action directly from the chat, no copy-pasting or switching tabs required.

**Two action types** — Serena can propose adding keywords to your Tracker tracking (with specific keywords, platforms, and reasoning) and creating new Copywriter projects (with topic, content type, and strategic rationale). Each action card shows exactly what will happen before you approve it.

**Existing page awareness** — Before suggesting new content, Serena now cross-references your full site inventory: up to 50 GSC pages (not just the top 10), all GA4 landing pages, every active Copywriter project, and all Builder pages with their URLs. If a page already covers the topic, Serena recommends optimizing the existing page instead of creating a duplicate. Every content proposal includes an explicit "existing page check" showing which pages were reviewed.

**Smarter keyword proposals** — Serena checks your currently tracked keywords before proposing new ones. If you mention "ai seo tools" and you're already tracking it, Serena won't waste your time re-suggesting it. It focuses on gaps — keywords showing traction in GSC that you aren't monitoring yet.

**Always strategic, now also tactical** — Previous Serena versions gave great strategic analysis but left execution to you. Now the analysis comes with built-in next steps. Ask "What's the highest ROI opportunity?" and you'll get the strategic reasoning plus actionable cards you can execute immediately.

Open the [Serena](https://app.rankability.com/clients) on any client to try the new action proposals.

## Tracker v5.2 - Citation sentiment analysis, Search Domination upgrade

**New**

Tracker now analyzes the sentiment of every source cited in AI answers — so you know not just where your brand appears, but how it's being portrayed. Combined with a Search Domination upgrade on the traditional search tab, this release gives you deeper visibility across both AI and organic search.

**Sentiment analysis in AI citations** — When AI platforms like ChatGPT, Perplexity, Gemini, or Claude cite sources in their answers about your tracked keywords, Tracker now reads the cited page content and classifies how each source portrays your brand: positive, negative, neutral, or mixed. Each classification includes a specific reason explaining the assessment — not just a label, but the why behind it. This surfaces brand perception risks you'd never catch manually: a competitor comparison article cited by ChatGPT that frames your product unfavorably, a review site with outdated information, or a forum thread with mixed sentiment that AI platforms treat as authoritative.

**Why citation sentiment matters** — AI search engines don't just link to sources — they synthesize them into answers. A single negative citation can shape how an AI platform describes your brand to thousands of users. Knowing the sentiment of cited sources lets you prioritize outreach: engage with negative mentions, amplify positive ones, and monitor mixed signals before they become problems.

**YouTube transcript analysis** — Citation analysis previously couldn't analyze YouTube URLs because video pages block standard web scraping. Now, when a citation links to a YouTube video, Tracker automatically fetches the video's transcript and runs the same brand mention detection and sentiment analysis. YouTube videos are among the most commonly cited sources in AI answers — they're no longer black boxes.

**Search Domination score on traditional search** — The traditional search tab now features a prominent Search Domination display showing how many of the top 30 ranking positions your domain holds across selected search engines. A circular gauge shows your percentage with color-coded ratings (Dominant, Strong, Moderate, Low, Minimal), alongside a competitor breakdown showing which domains hold the remaining spots. Previously this score was only visible in the AI search view — now it's front and center for Google organic rankings too.

**Cleaner AI search view** — The top-level AI sentiment overview block has been removed from the AI search tab. Sentiment data is now surfaced directly in the citation analysis detail view where it's more actionable — each citation shows its sentiment inline rather than as a disconnected summary card.

These improvements are live for all Tracker projects. Open any project in the [Tracker](https://app.rankability.com/rank-tracker) and run a scan to see citation sentiment in action.

## Serena v4.0 - Full workspace awareness

**New**

Serena can now see and answer questions about every tool in your workspace — Copywriter projects, Site Audits, Promoter backlink profiles, Keyword Research, Builder sites, and Rank Tracker keywords. No more "I don't have access to that" responses when you ask about your own data.

**Ask about your Copywriter projects** — "How many projects are in progress?" "Which ones are complete?" "What's my average Rankability score?" Serena sees every project by name, with the exact same status labels you see on the Copywriter page (In progress, Brief ready, Incomplete, Complete) — not confusing internal database values. It knows which projects have drafts, which are waiting on briefs, and which you've marked done.

**Backlink profile at your fingertips** — Serena now pulls directly from your Promoter data. Ask about your backlink profile and get real numbers: total backlinks, referring domains, dofollow vs nofollow breakdown, 30-day link velocity, and your Domain Score (DS). It cross-references this with your brand positioning to identify where your link equity is helping — and where it's not.

**Site Audit visibility** — Serena knows how many audit issues you have, broken down by severity (critical, warning, resolved vs unresolved). Ask "What's the state of our site audit?" and get a clear picture without opening the Auditor.

**Keyword Research and Rank Tracking** — Serena sees your researched keywords from the Researcher and your actively tracked keywords from the Rank Tracker. It can connect the dots: "Am I tracking the keywords I've researched?" "Do I have content for the keywords I'm ranking for?"

**Builder awareness** — If you've created sites in the Builder, Serena knows how many sites and pages exist.

**Cross-tool strategic insight** — The real power is in the connections. Serena can now reason across your entire workspace: "I have 7 in-progress Copywriter projects but I'm only tracking 4 keywords — am I missing coverage?" or "My backlink profile shows 18,000 links but my domain score is 30 — what should I focus on?" Every answer is grounded in your actual data, not generic advice.

Just open your [Serena](https://app.rankability.com/clients) and ask about any part of your workspace.

## Researcher v1.5 - Now available in 32 countries

**New**

The Researcher now supports keyword research in 32 countries, up from 8. You can run localized keyword research for any of these markets directly from the country selector when starting a new research project.

**English-speaking markets** — United States, United Kingdom, Australia, New Zealand, Canada, Ireland, South Africa, Singapore.

**Europe** — Germany, France, Spain, Italy, Netherlands, Belgium, Austria, Switzerland, Sweden, Norway, Denmark, Finland, Portugal, Poland.

**Asia-Pacific** — India, Japan, South Korea, Hong Kong, Malaysia, Thailand, Philippines.

**Latin America** — Brazil, Mexico.

**Middle East** — United Arab Emirates.

Each country targets the local Google domain (e.g. Google.de for Germany, Google.co.jp for Japan) so search volume, keyword difficulty, and SERP data reflect what users in that market actually see. If your clients operate internationally or you're building content strategies for non-US audiences, you can now get accurate local data without workarounds.

Select a country from the dropdown when creating a new project in the [Researcher](https://app.rankability.com/researcher) to get started.

## Copywriter v4.5 - AI editing assistant

**New**

The Copywriter editor now has a built-in AI chat assistant that helps you refine, expand, and improve your content through natural conversation - right alongside your draft.

**Edit by asking** - Instead of manually rewriting paragraphs or wrestling with prompts, just tell the AI what you want. "Make the intro more compelling," "Add a section about pricing," "Tighten up the conclusion" - describe the change in plain language and the AI applies it directly to your draft. You stay in the editor the whole time.

**See exactly what changed** - Every edit the AI makes is highlighted in blue directly in your draft, so you can instantly see what was added or modified. Highlights fade after a few seconds, leaving you with a clean document. No guessing, no diffing - you always know what the AI touched.

**Context-aware suggestions** - The assistant knows your topic, target keywords, entities, competitors, and search queries. When it makes edits or gives advice, it draws on the same research and SEO data that powers your brief - so suggestions are specific to your article, not generic writing tips.

**Ask questions without editing** - Not ready to change anything yet? Use the chat to brainstorm angles, ask for feedback on a section, get ideas for a stronger hook, or check whether you've covered a topic thoroughly enough. The AI gives detailed, actionable guidance you can apply on your own terms.

**Conversation that builds** - The chat remembers your conversation within the session. Ask a follow-up, refine a previous suggestion, or change direction - the AI keeps up without you having to repeat context.

**Works in every mode** - The AI tab appears in both the standard article editor and YouTube Script mode, so you can use it regardless of what content type you're working on.

Open any draft in the [Copywriter](https://app.rankability.com/copywriter) and click the AI tab in the sidebar to start a conversation with your content.

## Copywriter v4.4 - Smarter knowledge base grounding

**New**

We've significantly improved how the Copywriter uses your knowledge base when generating briefs, outlines, and drafts — giving you more control over which sources are used and making the grounding more accurate across different content types.

**Priority sources** — You can now star any knowledge base source to guarantee it's included in every content generation run, regardless of topic relevance scoring. Use this for your most important brand materials — service pages, brand guidelines, case studies, product specs — so they always shape the output. Priority sources are guaranteed a slot, with remaining slots filled by the most relevant non-priority sources.

**Smarter automatic source selection** — When you don't manually pick sources, the system now scores each source's keyword overlap with the current topic and selects the most relevant ones (up to 6). Previously, source selection was less targeted. Now the most relevant content rises to the top automatically, so your briefs reflect the right source material without you having to curate every time.

**Intent-aware brand integration** — The grounding system now adapts based on the content's intent. Informational and discovery content (blog posts, guides) uses your brand voice for thought leadership without turning educational content into a sales pitch. Conversion content (landing pages, service pages) weaves in services, USPs, and calls to action where they belong — so the AI matches tone to purpose.

**Better outline protection** — Outline regeneration now detects when the AI produces a generic fallback instead of a structured outline, and keeps your existing outline rather than replacing it with lower-quality content. Your work is preserved automatically.

These improvements are active automatically. Open any [Copywriter](https://app.rankability.com/copywriter) project and regenerate a brief to see the difference.

## Serena v3.2 - Priority sources and smarter source selection

**Improved**

You now have direct control over which knowledge base sources the AI prioritizes when generating content — star your most important sources and they'll always be included.

**Star to prioritize** — Click the star icon on any completed knowledge base source to mark it as a priority. Priority sources are always included when the Copywriter generates briefs, outlines, or drafts — regardless of how the automatic topic-relevance scoring ranks them. Use this for core brand materials you want reflected in every piece of content: your main service page, brand guidelines, key case studies, or product documentation.

**Available everywhere you manage sources** — The star toggle appears on completed sources in both Serena page and the Knowledge Base sources panel in the Copywriter sidebar. Star a source from whichever view you're already working in.

**Smart slot allocation** — The Copywriter uses up to 6 knowledge base sources per content generation run. Priority sources are guaranteed their slots first. Any remaining slots are filled by the most topic-relevant non-priority sources, scored by keyword overlap with the current topic. This means you get the best of both worlds: your essential brand materials are always present, and the system still finds the most relevant supplementary content automatically.

**Why it matters** — Not all knowledge base sources are equally important. A detailed service page or brand voice document should inform every piece of content, while a blog post about a niche topic is only relevant sometimes. Priority sources let you make that distinction explicit instead of relying entirely on automatic selection.

To mark priority sources, open your client's [Knowledge Base](https://app.rankability.com/clients) and click the star icon on any completed source.

## API v1.2 - Knowledge Base endpoint

**New**

The Rankability API now includes a Knowledge Base endpoint that gives you programmatic access to every help article and FAQ in the platform — so your AI agents, internal tools, and support systems can stay in sync with the latest Rankability documentation.

**Full article access** — The new `GET /api/agent/v1/kb/articles` endpoint returns every published Knowledge Base article with its title, content, category, and metadata. Use it to feed Rankability documentation into your AI assistants, internal wikis, or client-facing help portals.

**JSON and Markdown formats** — Request articles as structured JSON (default) for programmatic consumption, or set `Accept: text/markdown` to get a single Markdown document organized by category — ideal for feeding directly into LLMs or documentation generators.

**Efficient caching** — The endpoint supports conditional requests with ETag and Last-Modified headers. Your integration can skip re-downloading content that hasn't changed, reducing bandwidth and API calls. Send `If-None-Match` or `If-Modified-Since` headers and receive a `304 Not Modified` when nothing has been updated.

**FAQ included** — The response includes the full Rankability FAQ alongside the Knowledge Base articles, giving your tools a complete picture of platform capabilities, pricing, and common questions.

**New scope** — Add the `kb:read` scope to your API key to access this endpoint. You can add it to an existing key or create a dedicated one from [Settings > API keys](https://app.rankability.com/settings).

**Use cases** — Train an internal AI support agent on Rankability's full documentation. Sync help content into your agency's knowledge management system. Build a custom help widget that pulls live content from Rankability. Power an onboarding chatbot that answers new team members' questions about the platform.

Full endpoint documentation is available in the [Help Center](https://help.rankability.com) under "Knowledge Base API endpoint."


# March 2026

Rankability product updates originally published in March 2026.

{% hint style="info" %}
Historical entries describe Rankability at the time of release. Features, names, prices, and credit rules in older entries may have changed or been retired. Use the [Help Center](/) for current product instructions and availability.
{% endhint %}

[Back to the latest product updates](/changelog)

## Releases

## Tracker v5.1 - Grid comparison and project settings

**New**

Tracker now lets you compare two grid scans side by side and edit project settings without leaving the dashboard — making it faster to measure local rank changes and keep your tracking configuration up to date.

**Grid comparison** — Select any two grid scans from your history and open them in a side-by-side view. Both maps render with ranked markers so you can visually spot where positions improved, declined, or appeared for the first time. Below the maps, a summary table shows the change in average rank, top 3 count, not-found count, and coverage percentage between the two dates — so you can quantify progress at a glance.

**Measure what changed** — Comparing grids across different time periods makes it easy to show clients the impact of your local SEO work. Did a GBP optimization push the business from position 12 to position 3 in certain grid cells? The comparison view makes that improvement immediately visible on the map, not buried in a spreadsheet.

**Project settings from the dashboard** — Click the settings icon on any keyword project to open its configuration without navigating away. Update the brand name, add or change brand aliases, adjust the target domain, or modify the tracking location — all from a quick dialog right on the dashboard.

**Brand aliases for better detection** — The project settings dialog now includes a brand aliases field where you can add comma-separated alternate names for your brand. Aliases are used across all AI answer analysis, so variations like abbreviations, partner names, or commonly misspelled versions of your brand are all recognized as mentions. This directly improves the accuracy of brand detection across every tracked platform.

**Faster workflow** — Previously, adjusting project settings required navigating into each project individually. Now you can review scan history, compare grids, and fine-tune settings from the same screen — cutting out unnecessary navigation and keeping your focus on the data.

Grid comparison and inline project settings are available now on all keyword projects in [Tracker](https://app.rankability.com/reporter).

## Auditor v1.2 - Batch URL run history and performance filters

**New**

The Batch URL Analyzer now saves every analysis run and lets you filter for underperforming pages — so you can track improvements over time and zero in on the pages that need attention most.

**Run history** — Every batch analysis you run is automatically saved. Come back days or weeks later and pull up any previous run to see exactly what the data looked like at that point. Compare results across runs to measure whether your optimizations are moving the needle — no need to re-analyze the same URLs to check progress.

**Poor performance filter** — A single click filters your results down to pages that are underperforming: low click-through rates, minimal organic traffic, few backlinks, or declining impressions. Instead of scanning through dozens of URLs trying to spot problems, the filter surfaces the pages that need your attention right now.

**Faster prioritization** — Combine the performance filter with column sorting to instantly build a prioritized action list. Find pages with high impressions but low clicks (title/meta fixes), pages with zero backlinks (link-building targets), or pages losing traffic (content refresh candidates) — all in seconds.

**Client-ready reporting** — With saved runs and filtered views, you can show clients exactly which pages improved since your last review and which ones still need work. Export any filtered view to CSV for inclusion in client reports.

Batch URL run history and performance filters are available now in [Audit tools](https://app.rankability.com/audit) for any client.

## Copywriter v4.3 - Claude citation extraction

**New**

Copywriter now pulls citations from Claude when researching your topic — adding a powerful new AI source alongside ChatGPT, Perplexity, Gemini, and Grok.

**More sources, better content** — Claude brings a distinct research perspective. It often surfaces authoritative sources and expert references that other AI platforms miss, giving your content briefs a more complete picture of what's being cited across the AI landscape.

**See exactly what Claude recommends** — Every Claude citation shows up in the Sources & Competitors section with its own logo and provenance label, just like the other platforms. You can see which URLs Claude considers most relevant to your topic and decide which ones to reference or outperform.

**Stronger competitor analysis** — With five AI platforms now contributing citations, you get a wider net of competitor URLs to analyze. Pages that show up across multiple AI sources are clearly authoritative — and the ones that don't are gaps you can fill.

**Automatic and seamless** — Claude citations are collected automatically during every Copywriter research run. No extra setup, no additional credits. The platform handles the API call, extracts the cited sources, and merges them into your existing research results.

Open any [Copywriter](https://app.rankability.com/copywriter) project and run a new research pass to see Claude citations alongside your other AI sources.

## Tracker v5.0 - Expanded Google tracking (top 30 results)

**Improved**

Tracker now tracks up to 30 Google organic results for every keyword — up from the previous limit of 10. This means significantly deeper visibility into where your clients rank, even when they're not on page one yet.

**3x more ranking coverage** — Every scan now captures positions 1 through 30 across Google search results. If your client ranks on page two or three, you'll see it — along with exactly who's outranking them and by how much.

**Spot opportunities you were missing** — A client sitting at position 12 or 18 is much closer to page one than you might think. With expanded tracking, you can identify these near-miss keywords and prioritize them for quick wins that move the needle.

**Track the full competitive landscape** — See up to 30 competing domains per keyword instead of just the top 10. Understand who's dominating deeper positions and find gaps in their coverage that your clients can exploit.

**Better trend data over time** — Positions that previously fell outside the tracking window now show up in historical trend charts. Watch a client climb from position 25 to position 8 over several months — the full journey is now visible.

No action needed — expanded tracking is already active on all keyword projects. Your next scan will automatically capture the broader result set.

## Auditor v1.1 - Batch URL Analyzer

**New**

The Auditor now includes a Batch URL Analyzer that lets you paste up to 100 URLs and get a unified performance snapshot across backlinks, search visibility, organic keywords, and traffic — all in a single table you can sort, filter, and export.

**Paste URLs and analyze** — Enter up to 100 URLs (one per line or comma-separated) and the analyzer fetches data from multiple sources in parallel: backlink counts and referring domains from DataForSEO, clicks and impressions from Google Search Console, sessions from Google Analytics, and organic keyword counts with estimated traffic. Results appear in a sortable table within seconds.

**Sort and filter results** — Click any column header to sort by backlinks, referring domains, GSC clicks, GSC impressions, GA4 sessions, or organic keywords. Filter by URL text to find specific pages, or use the data status filter to isolate URLs with complete data, partial data, or errors. Every column shows formatted numbers so you can quickly scan for outliers.

**Integration-aware** — The analyzer automatically detects whether your client has Google Search Console and Google Analytics connected. If connected, those columns populate with real data from the last 28 days. If not, the columns show as unavailable rather than misleading zeros — so you always know what data is real and what's missing.

**Export to CSV** — Once your analysis is complete, export the full results table to CSV with a single click. The export includes all columns and every URL, ready for spreadsheets, client reports, or further analysis.

**Use cases** — Prioritize which pages to update by sorting by organic keywords or backlinks. Find pages with high impressions but low clicks to optimize titles and meta descriptions. Identify pages with zero traffic that may need to be consolidated or removed. Compare backlink profiles across landing pages to guide link-building strategy.

The Batch URL Analyzer is available in the [Audit tools](https://app.rankability.com/audit) section for any client.

## Researcher v1.4 - Query fan-out discovery

**New**

Researcher now includes a new keyword source called Query Fan-Out that reverse-engineers how AI search engines decompose your topic into sub-queries — and turns those sub-queries into keyword opportunities you can target.

**How AI search actually works** — When someone searches a topic on an AI platform like Google AI Mode, the system doesn't just match keywords. It internally breaks the query into dozens of specific sub-questions, researches each one independently, and synthesizes a comprehensive answer. Query Fan-Out simulates this decomposition to reveal the implicit questions AI is exploring behind the scenes.

**Sub-queries become keywords** — For every research run, the system generates 15-20 sub-queries that an AI search agent would independently research to build a complete answer about your topic. These include foundational definitions, how-to techniques, comparative queries, common mistakes, data and statistics, beginner vs advanced angles, recent trends, and expert case studies — all tightly focused on your specific topic.

**Filter by source** — Query Fan-Out keywords appear with a purple branch icon in your results. Use the Sources filter to isolate them or view them alongside keywords from Google, People Also Ask, YouTube, Reddit, e-commerce, trending data, and AI expansion. Each keyword is tagged so you always know where it came from.

**Why this matters for rankings** — If your content answers the exact sub-queries that AI search engines are researching, you're more likely to be cited as a source in AI-generated answers. Query Fan-Out shows you what those sub-queries are so you can build content that directly addresses them.

Query Fan-Out runs automatically as part of every Discover research session — no extra setup needed. [Open Researcher](https://app.rankability.com/researcher) to see it in action.

## Auditor v1.0 - Google Business Profile audits

**New**

Introducing the Auditor — a new tool suite for automated SEO audits. The first tool in the Auditor is the GBP Auditor, which performs a comprehensive audit of any Google Business Profile connected to a client.

**Full profile audit** — The GBP Auditor evaluates your client's Google Business Profile across every dimension that matters for local SEO: profile completeness, business description quality, opening date, categories, photos and videos, Google Posts activity, Q\&A coverage, and website NAP consistency. Each checkpoint gets a clear status — pass, warning, or fail — so you can see exactly what needs attention.

**Review health analysis** — Go beyond star ratings. The auditor analyzes review velocity (how many reviews per month), keyword relevance (do reviews mention services you want to rank for), suspicious pattern detection (clusters of reviews from the same time or location), and flaggable reviews that may violate Google's policies. You'll know not just how many reviews you have, but whether they're actually helping your rankings.

**Competitor benchmarking** — The auditor pulls in local competitors from Google's local pack results, extracts their actual business categories, and benchmarks your client's profile against them. Visual bar charts compare review counts, ratings, photo counts, and post frequency so you can show clients exactly where they stand relative to the competition.

**AI-powered content assist** — For any checkpoint that needs improvement, the auditor can generate AI-powered fixes on the spot. Need a better business description? A reply to a negative review? A Google Post idea? A Q\&A answer? Click the fix button and get a suggestion grounded in your client's knowledge base, brand voice, and website content. Apply fixes directly to the profile via the GBP API.

**Shareable audit reports** — Generate a shareable link to send audit results to clients. The shared report shows all checkpoints, scores, and competitor benchmarks in a clean, branded format — no login required.

Access the GBP Auditor from any client's workspace under the Audit tab.

## Tracker v4.9 - Edit tracked platforms from the overview

**Improved**

You can now add or remove tracked platforms for any keyword project without leaving the Tracker overview page.

**Inline platform editing** — Click the platform count in the project overview card to open an editor showing all available platforms. Toggle platforms on or off with a single click — Google, Bing, Brave, DuckDuckGo, AI Overview, AI Mode, ChatGPT, Perplexity, Gemini, Claude, Grok, YouTube, and Local Pack are all available.

**Credit cost preview** — As you toggle platforms, the editor shows an updated credit cost estimate per scan so you know exactly what each configuration will cost before saving.

**No more settings detour** — Previously, changing tracked platforms required navigating into the project's settings page. Now it's a two-click operation right from the overview where you're already looking at your data.

## Refer & earn - Get rewarded for sharing Rankability

**New**

We're launching a referral program built for agencies and SEO professionals who already love using Rankability. If you're on an active paid plan, you can now earn Rankability credits for every new customer you bring in.

**How it works** — Head to the [Refer & earn](https://app.rankability.com/refer) page to grab your unique referral link. Share it with colleagues, partners, or anyone in your network who could benefit from better SEO content. When they sign up using your link and pay their first invoice, you earn a reward.

**Earn 40% per referral** — You earn 40% of each referral's monthly plan price as Rankability credits, up to $300 per referral. You earn the same amount whether they pick monthly or yearly billing, and there's no limit to how many businesses you can refer.

**Invite by email** — Don't want to share a link? Use the built-in email invite form to send personalized referral invitations directly from your dashboard. Add multiple email addresses at once, include a personal message, and we'll send a branded invitation on your behalf.

**Track everything** — Your Refer & earn dashboard shows your lifetime earnings, pending payouts, and the status of every referral. You'll see when someone signs up, when they convert to a paying customer, and when your reward is processed.

**Who can participate** — The referral program is available to all customers with an active paid subscription. No signup required — your referral link is generated automatically.

Visit [Refer & earn](https://app.rankability.com/refer) to get started.

## Tracker v4.8 - Password-protected reports and major redesign

**New**

Shared client reports just got a big upgrade — they're now password-protected for security and completely redesigned for clarity and impact.

**Password-protected reports** — You can now set a password on any shared client report. When a client visits the report link, they'll be asked to enter the password before they can see any data. Set or change the password from the share settings in your Tracker dashboard or client settings. Passwords are securely hashed and sessions last 7 days, so clients don't need to re-enter them on every visit.

**Global date range picker** — Shared reports now include a date range selector at the top of the page. Clients can view their performance data across last 7 days, 30 days, 90 days, 6 months, 1 year, or all time. All sections — SPI trends, Search Console, Google Analytics, and keyword performance — update dynamically based on the selected range.

**Key wins strip** — A new highlights section at the top of the report surfaces notable achievements at a glance — top SPI score, highest-performing keywords, and content scores — so clients immediately see what's working.

**Streamlined keyword table** — The keyword performance table is now collapsed by default, keeping the report scannable while still giving clients full access to the detailed breakdown when they want it. Platform icons have been resized for a cleaner single-row layout.

**Cleaner layout** — The entire report has been reorganized with a story-driven flow: executive summary, key wins, SPI trends, keyword performance, Search Console data, Google Analytics traffic, content overview, and next steps. Every section is designed to answer "what happened and why it matters" without overwhelming the reader.

To set a password on a shared report, open any client's Tracker page, click the share button, and enter a password in the security section.

## Copywriter v4.2 - YouTube Script mode

**New**

The Copywriter now generates fully structured YouTube video scripts designed to rank — not just on YouTube, but across Google Video Packs, AI Overviews, and AI platforms like Perplexity, ChatGPT, and Gemini.

**Rank where video matters most** — YouTube is the world's second-largest search engine, and video results now appear everywhere: YouTube Search, Google's Video Pack carousels in regular search results, AI Overviews, and AI platform citations. A single well-optimized video can capture visibility across all of these surfaces simultaneously. YouTube Script mode builds your script to perform in every one of them.

**Research-driven scripts, not guesswork** — Like every Copywriter mode, YouTube Script starts by analyzing what's already ranking. The system pulls top-ranking YouTube videos for your topic, extracts their transcripts and chapter structures, and checks which videos AI platforms are citing. Your script is built on real competitive intelligence — not a blank page and a prompt.

**Scripts written for the camera, not the page** — The generated script is written in spoken format with natural conversational language, contractions, rhetorical questions, and short paragraphs optimized for teleprompter readability. Each script includes hook markers, B-roll and graphic cues, call-to-action placements, and chapter headings with timestamps — everything you need to go straight from script to production.

**Chapters, descriptions, and tags included** — Every script comes with a complete chapter structure, an optimized video description, and a tag set — all generated from the brief's keyword and entity analysis. These metadata elements are what YouTube's algorithm and AI platforms use to understand and surface your content.

**YouTube-specific optimization scoring** — The Optimize sidebar adapts for video. Instead of checking title tags and meta descriptions, it scores your video title, description, and tags for keyword placement. Entity coverage scoring works the same way it does for articles — tracking which important topics your script mentions and highlighting gaps. The result is a script that covers the entities AI platforms look for when deciding which content to cite.

**Four content formats** — Choose the format that matches your topic: Tutorial for step-by-step walkthroughs, Listicle for curated roundups, Explainer for breaking down complex topics, or Opinion for reviews and first-person takes. Each format shapes the script's structure and pacing to match what viewers expect.

**Full Copywriter workflow** — YouTube Script mode uses the same research, brief review, and editing workflow you already know. Review the brief, adjust chapters and entities, generate the script, then edit it in the full content editor with real-time scoring. Brand voice, tone settings, knowledge base context, and multi-language support all carry over.

## MCP v1.0 - Connect Rankability to your AI assistant

**New**

Rankability now supports the Model Context Protocol (MCP), letting you connect your SEO data directly to AI assistants like Claude Desktop, Cursor, and Windsurf. Ask your AI assistant about your clients, rankings, and content — and it can read and act on your Rankability data in real time.

**Works with your favorite AI tools** — Connect Rankability to Claude Desktop, Cursor, Windsurf, or any MCP-compatible AI assistant. Your assistant gets access to your clients, content projects, rank tracking data, and credit balance through a secure, authenticated connection.

**Read your SEO data conversationally** — Ask your AI assistant questions like "How is Acme Corp performing?" or "Which keywords dropped this week?" and it pulls live data from Rankability. List clients, check SPI scores, review content project status, and browse ranking results — all through natural conversation.

**Create content and trigger scans** — Your AI assistant can create new content jobs, approve research briefs, and trigger rank tracking scans on your behalf. Use auto mode for fully hands-off content generation, or stepped mode to review the brief before generating the full draft.

**Two connection methods** — Use the hosted HTTP endpoint for Cursor and Windsurf (just add the URL and your API key to your MCP config), or connect Claude Desktop through the OAuth connector (Settings → Connectors → Add custom connector — no API key or local install needed). Setup takes under a minute either way.

**Secured by your API key** — MCP connections use the same API keys you already manage in Settings. All the same scopes, rate limits, and credit controls apply. Your data stays within your organization's access boundaries.

Get started by visiting the [MCP integration guide](https://help.rankability.com/api/mcp-getting-started) in the help center.

## Tracker v4.7 - Search Console and Analytics in shared reports

**New**

Client reports you share with stakeholders just got a lot more useful. The shared report page now surfaces real performance data from Google Search Console and Google Analytics — so your clients can see how their SEO is performing without needing platform access.

**Search Console performance section** — Shared reports now include a dedicated section showing clicks, impressions, average CTR, and average position for the last 28 days. Period-over-period comparisons highlight whether each metric is trending up or down. A daily trend chart visualizes click and impression patterns, and a top queries table shows which search terms are driving the most traffic.

**Google Analytics traffic section** — If GA4 is connected, shared reports now show website traffic metrics including sessions, page views, average session duration, and bounce rate — with period-over-period deltas. A traffic sources breakdown shows where visitors are coming from.

**Local pack breakdown** — The SPI score breakdown card now includes a Local pack bar for clients with local keywords, matching what you see inside the platform.

**Consistent scoring labels** — SPI score labels and colors on shared reports now match the platform exactly — Strong (70+), Moderate (40-69), and Weak (below 40) with the same color coding.

**Reliable email branding** — Report notification emails now load the Rankability logo and agency logos reliably across all email clients.

## Tracker v4.6 - Automated report delivery

**New**

Tracker can now send branded performance reports to your clients automatically on a schedule you set — no more manually sharing links or remembering to follow up.

**Set it and forget it** — Open any client's settings and configure a report schedule. Choose weekly (pick the day) or monthly (pick the date), add recipient email addresses, and optionally CC yourself or an account manager for QA. Reports go out on schedule without any manual work.

**Branded emails** — Every report email uses your agency's white-label branding. Your logo, agency name, and accent color appear prominently. The email includes a snapshot of key metrics — SPI score, keyword count, and top movers — so clients get a quick performance summary right in their inbox. A "View full report" button links to the live shared report page with complete details.

**Send now** — Need to send a report outside the regular schedule? Hit the "Send report now" button from the client's Tracker page or dashboard. The same branded email goes out immediately to the configured recipients.

**Delivery history** — Every report delivery is logged. Check the report history in client settings to see when each report was sent, who received it, and the delivery status. Full transparency for your team.

**Smart defaults** — When a scheduled report runs, the system automatically creates a shared report link if one doesn't already exist. Clients with no tracking data yet are handled gracefully. Duplicate sends within the same window are prevented automatically.

## Serena v3.1 - Conversation history

**Improved**

Serena now saves your conversations automatically and lets you pick up exactly where you left off — no more losing context when you close a tab or switch clients.

**Automatic save** — Every conversation is saved as you go. Close your browser, switch to another client, come back tomorrow — your full chat thread is waiting for you. No manual save button, no lost work.

**History panel** — Click the History button in Serena toolbar to see all your past conversations for the current client. Each entry shows the conversation title and when it was last active. Click any conversation to load it instantly and continue where you left off.

**Resume in context** — When you reload a conversation, Serena has the full thread available. It remembers the recommendations it gave, the data it referenced, and the direction the conversation was heading. Follow-up questions build on what was already discussed instead of starting fresh.

**Start fresh anytime** — Hit the new conversation button to begin a clean thread whenever you want a fresh start. Your previous conversations stay in history and are always accessible.

**Per-client organization** — Conversations are organized by client, so each client's strategic discussions stay separate and easy to find. Switch between clients and each one has its own conversation history.

## Researcher v1.3 - Client keyword approval

**New**

Researcher now lets you share keyword strategies with clients for approval through a single link — eliminating the spreadsheet back-and-forth that slows down every SEO engagement.

**One link, full context** — From any Researcher project, select the keywords you want approved (or share all of them) and generate a shareable link. Your client receives a clean, branded page showing every keyword with its search volume, keyword difficulty, CPC, intent classification, opportunity score, and trend sparkline. They see exactly what you see — no stripped-down spreadsheet export, no lost context.

**Approve, reject, or comment** — Clients review each keyword individually, approving or rejecting with a single click. They can leave notes on specific keywords explaining why they want changes, and add overall feedback before submitting. You get a clear, structured response instead of a messy email thread.

**Results at a glance** — Once a client submits their decisions, you see a summary breakdown right inside your Researcher project: how many keywords were approved, rejected, and any notes they left. Click into the details to see the full per-keyword breakdown with client feedback, or expand the results inline without leaving your workflow.

**White-label ready** — Share links automatically pick up your agency branding. Your logo, agency name, and brand color appear on the approval page. The client sees your brand, not ours. If you have a client display name configured, the page is personalized with "Prepared for \[client name]" so it feels like a polished deliverable.

**Email notification** — Optionally enter your client's email address when creating the share link and they'll receive a branded email with a direct link to the approval page. No need to copy-paste URLs into a separate message.

**Expiration control** — Set links to expire after 7, 14, 30, or 90 days — or never. Expired links show a clear message instead of broken data. You can delete share links at any time from the project detail page.

**Why this matters** — Keyword approval is one of the biggest friction points in agency SEO workflows. The typical process involves exporting to a spreadsheet, emailing it to the client, waiting for a response, deciphering their feedback, and manually reconciling changes. This feature collapses that entire loop into a single step: send a link, get structured approvals back. Clients spend less time confused by raw data, and you spend less time chasing responses.

## Tracker v4.5 - YouTube Search and Video Pack tracking

**New**

Tracker can now track your video rankings across YouTube Search and Google's Video Pack carousel — giving you full visibility into how your video content performs in both dedicated video search and blended web results.

**YouTube Search tracking** — Add YouTube Search as a platform when setting up a tracking project and Tracker will monitor where your videos rank for each keyword on YouTube. Results include the video title, channel, and position. Weekly scan frequency keeps credit usage efficient since YouTube rankings tend to be stable.

**Google Video Pack tracking** — Track whether your videos appear in Google's video carousel — the video results that show up directly in regular search results. Video Pack scanning runs daily alongside your organic scans at no extra credit cost, so you always know when your videos gain or lose carousel visibility.

**Video search performance card** — A dedicated performance section shows your video rankings with color-coded rank badges that make it easy to spot top positions at a glance. Each result displays the ranking position, video title, and source platform clearly. Keywords where no video was found show a clean "not found" state instead of cluttering the view.

**Video SPI score** — Your Search Performance Index now includes a video component that calculates a position-weighted visibility score across both YouTube Search and Video Pack results. Track how your overall video visibility trends over time alongside your organic and AI citation scores.

**Setup guidance** — When adding video platforms, you can optionally provide your YouTube channel URL and name to help Tracker identify which results belong to you versus competitors.

## API v1.1 - Full platform access and abuse protection

**New**

The Rankability API now covers the entire platform — not just content creation. You can manage clients, tracking projects, and content programmatically, with built-in protection against runaway integrations.

**Client management** — Create, update, and delete clients via the API. Set brand voice, website URL, industry, and custom instructions when creating a client, or update them later. Use `clients:read` and `clients:write` scopes to control access.

**Tracker tracking** — Create tracking projects with keywords, platforms, and locations. Update project settings, trigger on-demand scans, and pull ranking results and trends — all through the API. New scopes: `reporter:write` for creating and modifying projects, `reporter:run` for triggering scans, and `reporter:read` for pulling data.

**Copywriter list, export, and delete** — List all your content projects with filtering, export finished articles as HTML, Markdown, or Word, and delete projects you no longer need. These join the existing job creation and status endpoints.

**Abuse protection** — The API now uses a sliding-window rate limiter that distributes requests evenly instead of allowing bursts at window boundaries. Keys that generate excessive errors or rate limit violations are automatically suspended with a clear error message explaining the suspension and how to resolve it. All rate-limited requests are now logged for full visibility. Your admin can reactivate suspended keys from the API settings page.

**API version header** — Every API response now includes an `X-API-Version` header so your integrations can detect which version they're running against. The current version is 1.1.0.

## Performance improvements

**Improved**

Faster page loads and smoother navigation across the platform.

**Optimized font loading** — Render-blocking font requests have been eliminated. Brand fonts now preload immediately and Google Fonts load asynchronously, so the page renders without waiting for external font files.

**Immutable asset caching** — Static assets built by the bundler are now served with year-long immutable cache headers. Returning visitors load cached JavaScript and CSS instantly instead of re-downloading them.

**Faster dashboard rendering** — The agency dashboard now loads as part of the main bundle instead of lazy-loading separately, eliminating the extra network round-trip on your first visit.

**Web vitals monitoring** — Real-world performance metrics (LCP, FCP, CLS, INP, TTFB) are now tracked automatically so we can identify and fix performance issues proactively.

## Copywriter v4.1 - Versus comparison template

**New**

Enter a keyword like "FreshBooks vs QuickBooks" or "Notion versus Coda" and the Copywriter now produces a structured, head-to-head comparison article built from real product data — not a generic pros-and-cons list.

**Automatic detection** — Any keyword containing "vs", "versus", or "compared to" between two brand or product names triggers the versus template. The system validates both names and confirms they're real, comparable products before proceeding. Keywords that don't match continue using your existing templates.

**Product research from source** — After detection, the system scrapes both products' homepages and pricing pages to build structured product cards. Pricing tiers, key features, positioning, and target audience are extracted from the actual websites and injected into the draft prompt. The AI writes from verified information instead of relying on training data — and clearly states when specific details couldn't be confirmed.

**Structure that converts** — The template follows the format used by top-ranking versus articles. Every draft includes a quick verdict so readers get the answer immediately, a head-to-head comparison table for side-by-side scanning, category-by-category breakdowns with a winner callout in each section, brief product profiles, and a decision framework that matches use cases to the right product. The structure is designed to satisfy both "which is better" searches and the deeper "help me decide" intent behind them.

**Built for search visibility** — The comparison table, category winners, and structured verdict give search engines clear, extractable data for featured snippets and AI-generated answers. The consistent per-section format with explicit winner callouts maps directly to how AI platforms like ChatGPT, Gemini, and Perplexity structure comparison responses.

**Works with all Copywriter features** — Versus projects support entity coverage scoring, editorial review, multi-language targeting, and all export formats. The scoring system adapts to the comparison structure, and the head-to-head table counts toward your entity coverage.

## Tracker v4.4 - Google Business Profile integration

**New**

Tracker now prompts you to connect your Google Business Profile when setting up tracking — and uses that data to deliver more accurate local visibility scoring.

**Smarter local tracking** — When GBP is connected, Tracker can cross-reference your Local Pack rankings with your actual business listing data. This means your local SPI score reflects real visibility, not just whether a result appeared in the map pack.

**Guided setup** — Both the keyword tracking and benchmark report setup flows now check whether your client has a GBP connected. If not, a prompt links you directly to the data integrations page to connect it before you start tracking. Getting the data source in place up front means better results from the first scan.

**Works alongside existing integrations** — GBP data joins GSC, GA4, and YouTube as another connected source that enriches Tracker insights and Serena recommendations. The more data connected, the more complete the picture.

## Agency dashboard v1.0 - Portfolio performance

**New**

A new Portfolio performance page gives you a single view of every client's search and traffic metrics side by side — no more clicking into each client individually to understand how they're doing.

**All clients, one table** — See GSC clicks, impressions, CTR, and average position alongside GA4 sessions and engagement rate for every client. Each metric includes a period-over-period change indicator so you can spot who's growing and who needs attention at a glance.

**SPI scores included** — Each client's Search Performance Index score is displayed with a visual ring and trend indicator showing whether visibility is improving or declining compared to the previous period.

**Sortable and searchable** — Sort by any column to find your top performers or surface struggling clients. Search by name or domain to quickly locate a specific account. Adjustable date ranges (7, 14, 28, or 90 days) let you zoom in or out.

**Portfolio totals** — A summary row at the top aggregates clicks, impressions, sessions, and tracked keywords across your entire portfolio, with counts showing how many clients have GSC and GA4 connected.

**Quick actions** — Clients without GSC or GA4 show a "Connect" link that takes you straight to their data integrations page. Click any client row to jump directly into their workspace.

## Serena v3.0 - Unified mode

**Improved**

Serena now runs as a single, unified chat that has access to everything you've connected for a client — knowledge base documents, crawled websites, Google Search Console, Google Analytics, Google Business Profile, YouTube data, and Tracker insights. No more switching between separate Serena views.

**One conversation, full context** — Ask any question and Serena draws from all connected data sources at once. It can cross-reference your GSC keyword performance with your knowledge base content, compare GA4 engagement trends against Tracker visibility scores, or use your GBP reviews to inform content strategy — all in the same conversation.

**Your knowledge base is always active** — Every document, crawled page, and uploaded file in your client's knowledge base is available to Serena by default. Brand voice, product details, competitor notes, and custom research all inform every response without you needing to specify which sources to use.

**Saved conversations carry over** — Your chat history is preserved across sessions. Pick up where you left off, revisit past recommendations, or build on earlier analysis without re-explaining context.

## Promoter v1.1 - Cleaner anchor text analysis

**Improved**

The anchors tab in Promoter has been refined to make your backlink profile easier to read and act on.

**Faster scanning** — Category labels are now single-word badges (Brand, URL, Generic, Commercial, Spam) that sit cleanly in one line. No more truncated or wrapping text in the category column — you can scan your entire anchor profile at a glance.

**Instant context on hover** — Every category badge shows a tooltip explaining what it means and why it matters. Hover "Commercial" to learn about over-optimization risks, or "Brand" to understand why branded anchors signal a healthy link profile. The detail is there when you need it, hidden when you don't.

**Consistent visual identity** — The distribution bar, legend, and table badges now use a cohesive color palette that's easier on the eyes. Each category is distinct enough to spot patterns immediately — whether you're checking the distribution chart or scrolling through individual anchors.

**Streamlined column headers** — The backlinks table headers (Domain Score → DS, Page Keywords → Keywords) are tighter, giving more room to the data that matters. Each header still has a tooltip with the full explanation.

## Promoter v1.0 - Backlink profile overview

**New**

The Promoter tab now includes a complete backlink profile for every client with a domain configured. See exactly who links to you, how your link profile is growing, and where your strongest pages are — all without leaving Rankability.

**Your link profile at a glance** — The overview shows your total backlinks, referring domains, domain authority score, and the balance of follow vs nofollow links. A 30-day snapshot highlights how many new links you've gained and lost recently, so you can spot momentum shifts before they show up in rankings.

**Referring domain trends** — A historical chart tracks your referring domain count over time, with adjustable windows from 1 to 12 months. Growth patterns become obvious — you can quickly tell whether a link building campaign is working or whether you're quietly losing ground.

**Top pages** — See which pages on your site attract the most backlinks and referring domains. Each page shows its HTTP status, so you'll immediately spot if high-authority links are pointing to broken or redirected URLs — a common source of wasted link equity.

**Anchor text distribution** — Review the most common anchor text used in links pointing to your site. Healthy profiles show a mix of branded, keyword, and natural anchors. Over-optimized anchor profiles stand out clearly.

**Full backlink list** — Browse individual backlinks with filters for follow type, link type, and status. Each entry shows the linking domain's authority score, anchor text, context, and when the link was first and last seen. Export up to 10,000 backlinks as CSV for deeper analysis or client reporting.

**Page-level drill-down** — Click any page in the Top Pages view to see every backlink pointing specifically to that URL. Useful for auditing link equity distribution or investigating why a particular page ranks well.

## Copywriter v4.0 - Listicle content route

**New**

When you enter a keyword like "best project management tools" or "top CRM software for small business", the Copywriter now automatically detects it as a listicle and applies a specialized roundup template — producing tightly structured, scannable content modeled on what actually ranks for these queries.

**Automatic detection** — No setup needed. Enter any keyword containing patterns like "best", "top", "most popular", or similar roundup phrasing, and the system recognizes it during intent classification. The entire pipeline adjusts: outline structure, draft rules, section format, and word budgets all switch to the listicle template. Keywords that don't match (like "how to use Ahrefs" or "SEO strategy guide") continue using standard templates.

**Structure that ranks** — The template is built from analyzing what actually performs for roundup queries. Every draft includes a Quick Picks comparison table so scanners get immediate value, individually structured listings with consistent formatting across every item, and a methodology section that builds trust. The structure prioritizes scannability — readers can compare options at a glance, find pricing fast, and get a clear recommendation without reading the entire article.

**Product research from source** — After the outline is generated, the system identifies each listed product and scrapes its homepage and pricing page using Firecrawl. Pricing tiers, starting prices, key features, and positioning are extracted and injected into the draft prompt as first-party data. The AI writes from real product information instead of guessing — it cites real prices where they exist, notes custom or quote-based pricing for contact-sales products, and simply leaves pricing out (focusing on capabilities and fit) when none is publicly available, rather than padding every entry with a placeholder.

**Built for Google and AI search** — The listicle structure is designed to rank in both traditional search results and AI-generated answers. The Quick Picks table and consistent per-item format give search engines clear, structured data to pull from, while the factual product details and comparison format make the content more likely to be cited by AI platforms like ChatGPT, Gemini, and Perplexity.

**Works with all Copywriter features** — Listicle projects support the same workflow you already know: entity coverage scoring, editorial review, multi-language targeting, Google Docs and WordPress export, and real-time optimization in the editor. The scoring system adapts to the listicle structure, and the Quick Picks table counts toward your entity coverage.

## Copywriter v3.9 - GSC Search Coverage in the editor

**New**

Your editor sidebar now has a "Search queries" tab that connects your Google Search Console data directly to the content you're writing. If your client has GSC connected, you can enable it during the Optimize step — the system pulls the real search queries people use to find your page and shows you which ones your content actually covers.

**See what your audience is searching** — Instead of guessing which queries matter, you get the actual terms driving impressions and clicks to the page you're optimizing. Queries are grouped into topic clusters so you can quickly scan related searches together rather than sifting through a flat list.

**Know exactly what's covered** — Each query is checked against your draft using the same phrase-matching logic as entity coverage. A query like "clearscope vs surfer seo" only shows as covered if that phrase actually appears in your content — not just because the individual words are scattered across the page. This gives you an honest picture of what your content addresses and what it's missing.

**Impression-weighted scoring** — The coverage score isn't just a count of covered queries. It's weighted by impressions, so covering a query that drives 5,000 impressions matters more than covering one with 50. The score reflects real search demand, not just keyword volume.

**Spot content gaps at a glance** — Uncovered query clusters are highlighted so you can see exactly which topics your content is missing. Each cluster shows how many of its queries are covered, partially covered, or completely absent — along with the impressions at stake. This makes it easy to prioritize which gaps to fill first based on actual traffic potential.

**Works alongside entity coverage** — The Search queries tab sits next to your existing Optimize scoring. Entity coverage tells you which competitor-derived terms to include; search coverage tells you which real-world queries your audience is using. Together, they give you a complete picture of what your content needs to rank and to satisfy search intent.

## Copywriter v3.8 - HTML developer handoff export

**New**

The HTML export in Copywriter now produces a structured, annotated file designed for developers and AI coding agents to implement directly — not just a raw content dump.

**Semantic section classes** — Each section in your draft is wrapped in a `<section>` element with a class name that describes its purpose. A local service page, for example, exports with section classes like `ls-hero`, `ls-trust-bar`, `ls-services`, `ls-differentiators`, `ls-social-proof`, `ls-process`, `ls-service-area`, `ls-pricing`, `ls-faq`, and `ls-cta-final`. A developer or AI agent receiving this file knows immediately what each block is and can use the class names directly as component selectors.

**Component-ready transforms** — For local service pages, the export restructures content into implementation-ready patterns. Service listings become card grids. Trust signals become badge strips. FAQ questions use native `<details>/<summary>` accordion elements. Process steps are formatted as ordered sequences. Call-to-action phrases are converted to styled button links. A developer can drop these components into any framework with minimal rework.

**Developer manifest** — The top of every exported file includes a comment block listing every section found, its class name, and a short implementation hint. For a local service page, the manifest might read: `ls-trust-bar — Horizontal row of credential badges — implement as a flex/grid strip with icons` or `ls-faq — Accordion component — use <details>/<summary> for native HTML or a JS accordion widget`. This acts as a build checklist.

**Hand it to an AI coding agent** — If you use an AI coding tool like Cursor, Windsurf, Replit Agent, or similar, you can give it the exported HTML file as a starting point. The section structure, component patterns, class names, and implementation hints give the agent strong context for what to build and how the sections relate to each other.

**Works for all content types** — Local service pages get the full semantic treatment with industry-specific section classes and element transforms. All other content types export with `content-section` wrappers and `data-heading` attributes, keeping the structure clear for implementation regardless of the content template used.

**How to use it** — Open any content project, click Export, and choose "HTML (developer handoff)". The downloaded file is ready to hand off to your developer, paste into a CMS, or feed to an AI coding agent as a build spec.

## Copywriter v3.7 - Local service landing pages

**New**

When you enter a keyword that combines a service with a location — like "hvac service los angeles" or "personal injury lawyer dallas" — the Copywriter now automatically generates a conversion-focused landing page instead of a generic article. The result is a structured service page that mirrors what actually ranks for local intent queries.

**Automatic detection** — No setup needed. Enter a service keyword with a city, state, or region, and the system recognizes it as a local service page during intent classification. The entire content pipeline shifts: outline, draft rules, section structure, and copy constraints all switch to the local service template. Keywords without a location (like "best hvac tips" or "how to fix a furnace") continue using standard article templates.

**Purpose-built landing page structure** — Instead of generating a long-form article with an introduction, body, and conclusion, the local service template produces a wireframe built from sections that high-performing service pages actually use:

1. **Hero** — H1 with service and city, a short value proposition, trust bullets, and a primary call to action. Under 100 words.
2. **Trust bar** — Short credibility labels only: certifications, ratings, awards, guarantees. No paragraphs.
3. **Services overview** — 4-6 sub-services with bold names and one-sentence descriptions, structured as a card grid.
4. **Why choose us** — 4-6 differentiators, each as a bold label with a one-sentence benefit.
5. **Social proof** — Scannable data points, not paragraphs. Stats, coverage figures, and trust indicators.
6. **How it works** — 3-5 numbered steps, each 1-2 sentences. Designed to reduce buyer anxiety by showing the process is simple.
7. **Service area** — 1-2 short paragraphs with genuine local context: climate, regulations, neighborhood names, and local factors that affect the service. Not keyword stuffing.
8. **FAQ** — 4-6 locally-flavored questions with concise 2-3 sentence answers.
9. **Final CTA** — Reiteration of value prop with phone, form, and scheduling prompts.

**Industry-adaptive rules** — The template detects your service industry and adjusts tone and emphasis. Home services content highlights guarantees, emergency availability, and NATE/EPA certifications. Legal content emphasizes case results, contingency fees, and bar credentials. Medical content focuses on board certifications, accepted insurance, and patient experience. Professional services content leads with ROI, client portfolio, and industry expertise. The rules change automatically based on the keyword.

**Tight copy constraints** — Every local service draft targets 800-1,200 words. Paragraphs are capped at 2-3 sentences. City name mentions are limited to 3-5 across the entire page, always in natural context. At least 3 CTAs are placed throughout (hero, mid-page, final). The system explicitly avoids the common AI failure of producing 2,000+ word articles for what should be a concise, action-oriented service page.

**Knowledge base integration** — When your client has brand settings and a knowledge base configured, the draft pulls in actual business information: real service names, certifications, service areas, and differentiators. Instead of generic placeholder copy, you get a draft that already sounds like the business.

**Why this matters** — Local service pages that rank well in both traditional search and AI platforms share a common structure: they lead with trust, show specific services, prove credibility, explain the process, and make it easy to take action. The old approach of generating a 2,000-word article for "plumber chicago" produced content that looked and read like a blog post, not a service page. This template produces content that matches the format searchers and search engines expect for local service intent.

## Copywriter v3.6 - Alternatives content type

**New**

When you enter a keyword like "semrush alternatives" or "ahrefs competitors", the Copywriter now automatically detects this as an alternatives article and applies a specialized content template — producing tighter, more structured drafts that match the format readers expect from comparison content.

**Automatic detection** — No setup needed. Enter any keyword containing "alternatives" or "competitors" and the system recognizes it during intent classification. The entire pipeline adjusts automatically: outline structure, draft rules, and external links all shift to the alternatives template. Keywords that don't match (like "best SEO tools" or "semrush review") continue using the standard templates.

**Proven article structure** — The alternatives template enforces a structure modeled on high-performing comparison content: a Quick Picks section right after the intro so scanners get immediate value, evaluation criteria explaining what was assessed, a comparison table for side-by-side reference, individually structured listings for each tool, and a Decision Framework after all listings to help readers choose. This replaces the generic "compete" template that previously handled all competitive keywords.

**Consistent per-tool listings** — Each alternative gets the same structured treatment: a positioning statement explaining why it's a strong alternative, a "Best for" line, 3-4 standout features as bullet points, and a closing insight that rotates across labels like "Practical note", "Why teams choose it", "Budget note", and "When it's the right fit". This keeps every listing scannable and prevents the AI from falling into repetitive paragraph-heavy descriptions.

**Product research from source** — After the outline is generated, the system scrapes each listed tool's homepage using Firecrawl and summarizes the key details: positioning, features, pricing, and target audience. These summaries are injected into the draft prompt as first-party product knowledge, so the AI writes grounded descriptions based on what each tool actually says about itself — not generic filler or outdated information.

**Auto-generated external links** — Each alternative in the outline automatically gets an external link pointing to that tool's homepage. These flow through to the brief for your review and appear as citations in the final draft. No need to manually add links for each tool.

**Comparison table built in** — The template instructs the AI to include a comparison table with columns for tool name, best use case, starting price, and key notes. This gives readers a quick reference point before diving into the individual listings.

The alternatives template is the first in a series of content-type-specific templates. Detection for "versus" and "review" content types is already in place and will receive their own specialized templates in upcoming releases.

## GSC Intelligence v2 - faster, leaner, sharper

**Improved**

Everything powered by Google Search Console data just got significantly faster. The Explorer, content decay detection, low-hanging fruit analysis, keyword trend charts, and performance dashboards all load quicker across the board.

**Faster load times** — Every GSC-powered feature now responds faster, especially on accounts with large volumes of search data. Pages that previously took several seconds to load should feel noticeably snappier. The improvement is most visible in the Explorer and content decay views where complex queries run against months of historical data.

**18-month historical window** — Your GSC data now goes back 18 months, giving you a full year-over-year comparison plus a 6-month buffer. Content decay detection benefits the most from the deeper history — the system can spot longer-term traffic trends and flag pages that are gradually losing performance over time, not just recent dips.

**Smarter daily syncs** — Each daily sync now captures up to 55,000 rows per property, prioritized by the queries and pages that actually drive clicks. This means the data you see in the Explorer and keyword charts focuses on the keywords that matter most for your traffic, while keeping storage lean and queries fast.

**What changed in the UI** — The device and country filter dropdowns have been removed from the GSC Explorer. Your metrics now reflect total performance across all devices and regions by default, which is more aligned with how most SEO decisions are made. All other features — anomaly detection, annotations, content decay heatmaps, and the performance dashboard — work exactly as before.

## Tracker v4.3 - Citation history

**Improved**

The AI citations section in Tracker now includes a redesigned "Citation history" tab that shows how consistently your domain and competitors are cited across AI search platforms over time.

**Citation presence grid** — Each row is a domain that has been cited by at least one AI platform (ChatGPT, Gemini, Perplexity, Grok, Claude, AI Mode, AI Overview). Each column is a scan date. The cell shows a percentage representing how many AI platforms cited that source on that date — 100% means every platform cited it, 43% means roughly half did. Color intensity reflects citation breadth at a glance: darker blue means broader coverage across platforms.

**Consistency tracking** — The sticky column on the right shows how many scans a domain has appeared in out of total scans run. A domain showing 10/10 (100%) is a fixture in AI results for that keyword. One showing 3/10 (30%) is intermittent. This helps you distinguish between sources that AI models have locked in as authoritative versus ones that come and go.

**Competitor intelligence** — Your domain is pinned to the top row with a "You" badge so you can immediately compare your citation coverage against competitors. "New" and "Lost" badges flag domains that have recently entered or dropped out of AI citations, surfacing shifts in the competitive landscape.

**Tooltip detail** — Hover any cell to see the full per-platform breakdown showing exactly which AI platforms cited that source and at what position. The summary line tells you how many platforms out of the total cited the domain on that date.

This view gets more valuable with each scan. After a few weeks of data, clear patterns emerge showing which domains consistently own the AI citation landscape for your tracked keywords.

## Copywriter v3.5 - Editorial review in the editor

**New**

Your editor sidebar now has an "Edit" tab alongside "Optimize", giving you AI-powered editorial feedback without leaving the page.

**AI editorial review** — Click the Edit tab in the sidebar and the system analyzes your entire draft for clarity, tone, readability, and structural issues. Each suggestion shows the original text next to a proposed replacement, so you can evaluate the change at a glance. Click any suggestion card to jump directly to the relevant passage in your draft — the text highlights briefly so you can see exactly what the AI is referring to.

**One-click accept or dismiss** — Every suggestion has Accept and Dismiss buttons. Accepting a suggestion applies the replacement instantly in your draft. Dismissing removes it from the list. Your decisions persist across sessions, so if you close the editor and come back later, accepted and dismissed suggestions stay where you left them.

**Unmatched suggestions stay out of the way** — If you've already edited a passage that a suggestion targets, it can no longer be applied automatically. Instead of cluttering the list, unmatched suggestions collapse into a compact "N unmatched" summary you can expand if you want to review them.

**Progress tracking** — The sidebar header shows how many suggestions remain (e.g., "Edit mode · 4 remaining"), so you always know how much editorial work is left. Work through them at your own pace — the count updates as you accept or dismiss.

## Copywriter v3.4 - Manual draft mode

**New**

Sometimes you want to write the content yourself but still need competitor data and real-time scoring. Manual draft mode gives you exactly that — skip the AI-generated brief and draft, and go straight to the editor with full research context.

**Write your own content with scoring** — Choose "Manual draft" when creating a new project. Enter your target keyword, run competitor research as usual, and then land directly in the editor with an empty canvas. Write or paste your own draft, and the Optimize sidebar scores it in real time against the same competitor benchmarks used for AI-generated content. You get entity coverage, keyword placement analysis, and a Rankability score — all updating live as you type.

**Streamlined flow** — Manual projects skip the brief review step entirely. After competitor research completes, you're taken straight to the editor. The Brief tab is hidden since there's no AI brief to review. Your project shows "In progress" status and a violet "Manual" badge in the Copywriter dashboard so you can easily distinguish it from standard and optimize projects.

**Same research, your words** — The competitor analysis, entity extraction, and intent classification all run normally. The only difference is that instead of generating a brief and draft, the system hands you an empty editor with all the scoring infrastructure ready. You bring the writing; we bring the intelligence.

Manual mode is ideal for writers who prefer full creative control, for repurposing existing content from other sources, or for topics where you have deep expertise and just need the SEO scoring framework to validate your work.

## Tracker v4.2 - Benchmark reports

**New**

You can now run a one-time visibility snapshot for any keyword across every search engine and AI platform — without committing to an ongoing tracking project.

**One-click benchmark reports** — Open Tracker, click "New project", and choose "Benchmark report". Enter a keyword, pick your platforms, and hit "Run benchmark". The system scans every platform you selected and delivers a full SPI breakdown in minutes. You get traditional rankings, AI mentions, AI citations, and an overall visibility score — the same data as a tracking project, just without the recurring schedule.

**Same dashboard, no commitment** — Benchmark results land in the same project dashboard you already know. You see the scanning timeline with live platform-by-platform progress, then the full results view with platform cards, position data, and citation details. Everything looks and works exactly like a standard tracking project.

**Convert to tracking anytime** — Every benchmark report includes an auto-tracking toggle. If a client sees their snapshot and wants ongoing monitoring, flip the switch and the project starts scanning on a recurring schedule. No need to re-enter the keyword, domain, or platform selection — it's all already there.

**Compact platform picker** — Both benchmark and tracking setup now use a streamlined grid layout for platform selection. Platforms are displayed in a 2–3 column grid with inline frequency controls, replacing the old full-width row layout. The entire setup form is shorter and faster to fill out.

**Cleaner credit display** — The detailed credit usage card has been replaced with a single summary line next to the create button. You see the total cost and platform count at a glance without a separate card interrupting your flow.

Benchmark reports are ideal for sales calls, prospect audits, and quick competitive checks. Run one before a pitch to show a potential client exactly where they stand — then convert it to tracked monitoring once they sign on.

## Tracker v4.1 - Multi-location tracking

**Improved**

If you manage a brand with multiple locations, you no longer need to check each project one at a time. GBP Group Tracking lets you create a location group, assign Tracker projects to each location, and see how the entire brand is performing from a single view.

**Group-level performance rollups** — Each group shows an aggregated SPI score across all locations so you can gauge overall brand visibility at a glance. Drill into any location to see its individual keyword rankings, platform breakdowns, and trend history without leaving the group view.

**Spot cannibalization across locations** — When two or more of your locations rank for the same keyword, the system flags it automatically. You can see exactly which locations are competing against each other and on which platforms, so you can adjust targeting before it costs you traffic.

**Location-specific search volume** — Keywords are now grouped by the location tied to each project, and search volume data is pulled for that specific market. A keyword's volume in Dallas may look very different from its volume nationally — now you see the number that actually matters for each location.

**Filter and organize by group** — The Tracker project list includes a group filter so you can isolate all projects belonging to a single brand. Projects linked to a group display a badge you can click to jump straight into the group dashboard.

To get started, open Tracker for any client, click the "GBP Groups" option in the sidebar, and create your first location group. Add your locations, link existing Tracker projects to each one, and the rollup dashboard populates instantly.

## Tracker API v1.0 - Tracking data for your dashboards and tools

**New**

Your Tracker data is no longer locked inside the app. The new Tracker API gives you programmatic access to every SPI score, platform result, and trend in your account — so you can pipe it into the tools your clients and team already use.

**Build client-facing dashboards** — Pull SPI scores, trend history, and platform breakdowns into Looker Studio, Google Sheets, or any BI tool. Create live dashboards that update automatically, branded with your agency's look, and share them with clients who want to see progress without logging into another platform. No more screenshotting charts or copy-pasting numbers into slide decks.

**Monitor all your clients from one place** — The summary endpoint returns your organization-wide average SPI, top movers (biggest gains and drops), and platform coverage across every project. Use it to build an internal command center that flags which clients need attention and which are trending up — without clicking through dozens of individual projects.

**Trigger scans on your schedule** — Need fresh data before a client call or a Monday morning report? The scan endpoint lets you kick off Tracker scans programmatically. Pair it with a cron job or automation platform to keep your dashboards current on exactly the schedule you want.

**Same authentication, same keys** — The Tracker API uses the same API keys and Bearer token format as the Copywriter API. Add the `reporter:read` scope to fetch data, and `reporter:run` if you also want to trigger scans. You can add both reporter scopes to an existing key or create a dedicated one — your call.

**Six endpoints, everything you need** — List projects with filtering by client and status. Get a single project's detail with its full SPI breakdown (traditional ranking, AI mentions, AI citations). Fetch per-platform results from any historical run. Pull up to 90 days of SPI trend data for time-series charts. Trigger new scans. And get an aggregate summary across your entire portfolio.

**Looker Studio guide included** — We've published a step-by-step guide in the Help Center showing how to build a Google Apps Script community connector, map API responses to Looker Studio data sources, and design a dashboard layout with SPI scorecards, trend charts, and project tables. It covers caching, rate limit management, and multi-client setups for agencies managing many accounts.

To get started, go to [Settings > API keys](https://app.rankability.com/settings) to create or update a key with reporter scopes. The quick start guide on that page now includes Tracker API examples alongside the Copywriter API. Full endpoint documentation is available in the [Help Center](https://help.rankability.com).

## Tracker v4.0 - Google Analytics integration

**New**

Tracker now connects to Google Analytics 4, bringing on-site behavior and traffic source data into the same dashboard where you track rankings, citations, and search performance.

**GA4 performance dashboard** — See sessions, conversions, and engagement rate over time in an interactive trend chart. Toggle each metric on or off by clicking its tile, just like the GSC card. Switch between daily, weekly, and monthly granularity, compare against the previous period with dashed overlay lines, and add annotations to mark events that may have influenced traffic.

**Organic search vs AI referral traffic** — Your traffic sources are automatically split into two categories: traditional organic search engines (Google, Bing, Yahoo, DuckDuckGo, and others) and AI referral platforms (ChatGPT, Gemini, Perplexity, Claude, Copilot, and more). Toggle the Organic search and AI referral metrics on the chart to see how each channel is trending independently. The traffic sources breakdown shows session counts and share percentages for every detected source.

**Source filtering** — Filter all GA4 data by specific traffic sources. Want to see only ChatGPT and Perplexity traffic? Use the source filter to isolate exactly the channels you care about. Quick-select buttons let you toggle all organic, all AI referral, or individual sources.

**GA4 annotations** — Mark important dates on the GA4 chart with custom annotations, just like you can on the GSC chart. Add a title, description, and category to track content changes, algorithm updates, technical fixes, or client events.

**Per-keyword GA4 data** — Each keyword in your Tracker now shows GA4 landing page metrics alongside GSC data. See sessions, engagement rate, conversions, and bounce rate for the pages ranking for each keyword, with daily trend charts and the ability to filter by specific landing pages and traffic source type.

**GA4 Explorer** — A dedicated deep-dive page for page-level GA4 analytics. Sort by any metric, search for specific pages, filter by traffic source, and export to CSV. Access it from the link at the bottom of the GA4 performance card.

**Serena enrichment** — Both the portfolio-level and keyword-level Serena now receive GA4 context alongside GSC data. Serena can identify patterns across sessions, engagement, conversions, bounce rates, and traffic source trends to give you more complete strategic recommendations.

**Executive summary** — The Tracker dashboard's top-level summary strip now includes a GA4 sessions tile that expands to show the full GA4 performance card inline, matching the existing SPI and GSC tiles.

To get started, open any client workspace, go to Tracker, and connect Google Analytics 4 from the data integrations card.


# February 2026

Rankability product updates originally published in February 2026.

{% hint style="info" %}
Historical entries describe Rankability at the time of release. Features, names, prices, and credit rules in older entries may have changed or been retired. Use the [Help Center](/) for current product instructions and availability.
{% endhint %}

[Back to the latest product updates](/changelog)

## Releases

## Tracker v3.0 - Google Search Console integration

**New**

Tracker now connects directly to Google Search Console, giving you real search performance data right alongside your visibility tracking and AI citation analysis.

**GSC performance dashboard** — See clicks, impressions, CTR, and average position over time in a single interactive chart. Toggle between daily, weekly, and monthly views to spot trends at any granularity. Add annotations to mark algorithm updates, content changes, or campaign launches so you never lose context on what caused a traffic shift.

**Low-hanging fruit opportunities** — Automatically surfaces queries where you rank in positions 2–15 with estimated click gains if you move up. These are keywords where a small content improvement could deliver meaningful traffic increases. Found a keyword worth targeting? Click the track button to add it to Tracker instantly.

**Content decay detection** — Compares your current 30-day click performance against historical peaks to flag pages that are losing traffic. Each page is classified as healthy, decaying, or critical, with a heatmap showing monthly performance color-coded against its best period. Click into any decaying page for an AI-powered diagnosis explaining why it may be declining and what actions to take.

**Annotations** — Mark important dates on your GSC chart with custom annotations. Add a title, description, and category for events like content publishes, technical changes, or algorithm updates. Google algorithm updates are pre-populated automatically so you can correlate traffic changes with known updates at a glance.

To get started, open any client workspace, go to Tracker, and connect Google Search Console from the GSC performance card. Your data syncs automatically and stays up to date.

## Brand & voice v1.0 - AI-powered setup

**New**

Setting up a client's brand voice used to mean filling out a blank form from memory. Now the platform does the heavy lifting for you.

**Auto-fill from website** — Click one button on the Brand & Voice tab and we'll scan your client's website, analyze the copy across up to seven key pages, and fill in every field automatically: brand name, tagline, target audience, unique selling propositions, competitors, tone, voice notes, and words to avoid. The whole process takes about 15 seconds and you just review and tweak the results. If some fields already have values, you can choose to overwrite everything or only fill in the blanks.

**Voice extraction from content** — Have a blog post or article that perfectly captures your client's voice? Paste up to five URLs or drop in raw text, and we'll reverse-engineer the writing style. The system detects sentence patterns, vocabulary level, tone, and distinctive stylistic habits, then sets the Writing Style fields to match. You also get a plain-English summary of what we found so you can validate the analysis at a glance.

**Better form experience** — Voice preset chips now toggle on and off instead of only adding, so you can change your mind without editing the textarea manually. The words-to-avoid field accepts comma-separated or multi-line paste, so you can drop in a whole list at once. Brand name auto-syncs from the client name on the General tab when you first open Brand & Voice, saving one more manual step. And a new completeness bar at the top of the tab shows exactly how filled-in the profile is and why it matters — complete profiles produce content that needs fewer revisions.

Every field populated by the AI is marked with a small "AI-suggested" badge that disappears the moment you edit it, so you always know which values are yours and which are recommendations. Auto-fill costs 500 credits and voice extraction costs 300 credits — displayed on each button before you click.

## Copywriter now supports 32 languages

**New**

We've added 9 new languages to the Copywriter, bringing the total to 32. You can now create fully optimized SEO content in Hebrew, Czech, Romanian, Greek, Hungarian, Ukrainian, Malay, Filipino, and Bengali — on top of the 23 languages already supported. Each new language includes automatic detection: pick a target location in Israel, Greece, Hungary, or any of the other supported countries, and the correct language is selected instantly. Typing a keyword in Hebrew, Greek, Bengali, or any language with a distinct script triggers detection automatically too. Every stage of the pipeline — entity extraction, outline generation, headings, title tags, meta descriptions, and the full draft — is written entirely in your selected language.

## Agent API v1.0 - Copywriter automation

**New**

You can now create SEO content programmatically through our new REST API. Connect tools like OpenClaw, custom scripts, or automation platforms to Rankability and let them run the full Copywriter pipeline — research competitors, generate briefs, and produce optimized drafts — all without opening the app. The API supports everything you need: custom AI instructions to guide the writing, location and language targeting for geo-specific content, tone presets, auto mode for hands-off generation, and stepped mode when you want to review the brief before drafting. Every job returns the finished article along with SEO metadata, FAQ schema, entity coverage, and a quality score. The Agent API is available on every plan — Core, Team, and Agency. Higher plans unlock faster rate limits and priority queue processing so your jobs complete sooner. To get started, go to [Settings > API keys](https://app.rankability.com/settings) to generate your first key and copy the ready-made instructions for your AI agent.

## Copywriter v3.3 - Improved multilingual content

**Improved**

Creating content in languages other than English just got significantly better. Location-based auto-detection now covers 23 Spanish-speaking regions alongside French, German, Italian, Portuguese, Dutch, Japanese, and more — so the right language is selected the moment you choose a target location. If no location is set, keyword-based detection acts as a smart fallback: a topic like "dentista" automatically selects Spanish without any manual input. Most importantly, your selected language now flows through every stage of the project — entity extraction, outline generation, heading text, title tags, and meta descriptions — so the entire piece stays in the right language from start to finish rather than mixing languages mid-project.

## Copywriter v3.2 - More accurate word count targeting

**Improved**

AI drafts now land much closer to the competitor median word count for your topic. We've improved the continuation engine so it no longer adds extra content to articles that have already met their target — if your draft reaches the right length and ends naturally, it stops there. Short-form local and service pages in particular benefit from this change, since they tend to wrap up cleanly without a formal conclusion section. The result is content that feels naturally sized and on-target rather than padded to hit an arbitrary ceiling.

## Copywriter v3.1 - Optimize existing content

**New**

Already have a published page that's not performing as well as it could? Now you can bring it into the Copywriter and improve it. Choose "Optimize existing page" when starting a new project, enter your target keyword and the page URL, and we'll pull in your current content automatically. The streamlined 3-step flow — set your target, run competitor research, then edit — skips the brief phase so you're making improvements in minutes, not starting from scratch. Your content is scored against live competitors using the same formula as new projects, so you can see exactly where you stand and what to improve. Perfect for refreshing aging blog posts, boosting underperforming landing pages, or bringing older content up to today's search standards.

## White-label v1.0 - Branding for client reports

**New**

Your client reports now look like they come from you, not us. Head to Settings > White label to upload your agency logo, set your agency name, and pick a custom brand color. Your branding is applied automatically to every shared client report — the header, footer, and accent colors all reflect your agency identity. Clients see "Prepared by \[Your Agency]" front and center, with Rankability stepping into the background. Every account gets full white-label access on every plan, because we believe agencies should be the heroes for their clients. No upgrades required, no feature gates — just your brand, your reports. [Open Settings](https://app.rankability.com/settings) to set up your branding.

## Serena v2.6 - Contradiction detection

**New**

Your knowledge base can now scan all sources for conflicting claims. Hit "Check for contradictions" in the Sources dialog and Rankability compares every source against the others, flagging where two sources say different things about the same topic — pricing that doesn't match, service details that conflict, or outdated facts that contradict newer content. Each finding shows the exact quotes from both sources, a severity level (critical, moderate, or low), and a plain-English explanation of the conflict. After you fix the content, click "Re-scan for contradictions" to verify everything is consistent. Scans run up to 3 sources in parallel so even large knowledge bases finish quickly. Results stay collapsed by default to keep your workspace clean, and you can expand individual findings to see the full details.

## Serena v2.5 - Automatic source health monitoring

**New**

Your knowledge base sources now monitor themselves. When you enable health monitoring on a URL or crawled source, Rankability automatically checks for content changes on a schedule you control — weekly, every two weeks, or monthly. If a source page is updated, goes down, or comes back online, the source history records the finding with a plain-English summary of what changed. No more manually clicking "Check now" to stay current. Set your preferred check schedule from the source card dropdown, and the system handles it in the background. Manual checks are still available whenever you want an immediate update. Activity surfacing for these findings was added in a later release.

## Researcher v1.2 - E-commerce keyword research

**New**

Researcher now supports e-commerce keyword discovery across Amazon, Walmart, and eBay. Select the E-commerce focus in the Discover form to scan product listings, bestseller categories, and search suggestions from all three marketplaces in a single run. The system fetches up to 425 products and extracts around 95 high-intent commercial keywords — product names, category terms, and buying phrases that traditional keyword tools miss entirely. Every keyword is tagged with its marketplace source (Amazon, Walmart, or eBay) so you can see exactly where the demand signal came from. Filter your results by source to focus on a single marketplace, or view them all together to spot cross-platform opportunities. E-commerce keywords come with the same clustering, volume enrichment, and export capabilities as every other research mode. Perfect for product page optimization, category strategy, and understanding how real shoppers search when they're ready to buy. [Open Researcher](https://app.rankability.com/researcher) to try e-commerce research.

## Researcher v1.1 - Research modes

**New**

Discover now supports four research focus options so you can go deeper where it matters most. All sources gives you balanced keyword research across Google, Reddit, YouTube, trending data, and AI-powered expansion — the same great experience you already know. Trending focuses on rising search trends, processing twice as many seed keywords and extracting up to 120 trending keywords with velocity signals like Breakout, Rising, and Emerging. Reddit & forums scans community sites and Q\&A platforms to surface pain points, questions, and discussion-driven keyword ideas that traditional tools miss. YouTube focuses on video keyword gaps, trending video topics, and content ideas from YouTube search data. Each focus produces more targeted results tagged with source badges so you can see exactly where every keyword came from. Select your research focus in the Discover form before running your research. [Open Researcher](https://app.rankability.com/researcher) to try the new options.

## Rankability Academy is here

**New**

We've added a brand-new Academy section to the Help center — your go-to place for learning how to use every tool in Rankability. The Academy features hands-on tutorial videos covering the full platform, organized in a recommended viewing order so you can follow along step by step or jump straight to the tool you need. Available now: Introduction to Rankability, Agency Dashboard 101, Client Workspace 101, How to use Serena, How to use Researcher, How to use Copywriter, How to use Tracker, and Next steps and getting help. [Open Academy](https://help.rankability.com) to start watching.

## Masterminds coaching calls are live

**New**

Academy now includes a dedicated Masterminds page where you can access our bi-weekly coaching calls with Nathan Gotch. Watch past recordings with Vimeo playback, browse timestamped topics to jump to what matters, and generate AI-powered video summaries. The next call date and countdown timer update automatically so you always know when to join. The first recording from February 4, 2026 is available now. [Open Masterminds](https://app.rankability.com/academy/masterminds) to check it out.

## Auto-refill - Never run out of credits

**New**

You can now set your credits to refill automatically. Head to Settings, find the new Auto-refill section under Credit packs, and toggle it on. Choose which credit pack to refill with and set a threshold — when your balance drops below that number, we'll charge the card on file and add credits instantly. A built-in cooldown prevents more than one refill per hour, so there are no surprises. Turn it off anytime from the same settings page.

## Credit packs - Top up your credits anytime

**New**

Need more credits before your next billing cycle? You can now purchase credit packs directly from your account settings. Choose from five options: $50 for 5,000 credits, $100 for 10,000 credits, $250 for 27,500 credits (+10% bonus), $500 for 60,000 credits (+20% bonus), or $1,000 for 130,000 credits (+30% bonus). Larger packs unlock bigger bonuses, giving you the best value when you need to scale up. Purchased credits are added to your balance instantly and never expire.

## Client connect v1.1 - Bug fixes & Google Business Profile

**Fixed**

We've resolved several issues with Client Connect that were preventing some users from completing the authorization flow. The connect link now works reliably across all browsers and sessions. We've also added Google Business Profile as a fourth service option — your clients can now authorize access to their business locations alongside Search Console, Analytics, and YouTube, all in a single connect link. Property selection has been upgraded with searchable dropdowns, making it much easier to find the right site, property, channel, or location when a Google account has many connected services.

## Tracker v2.0 - Smart citation opportunity labeling

**New**

The AI Citations tab now classifies every citation with intelligent labels so you can instantly understand what each gap means and where to focus your efforts. Each citation is categorized by URL type — article, listicle, how-to guide, comparison, product page, homepage, and more — and assigned an opportunity status: actionable opportunities you can target, homepages you can't outrank with content alone, platform citations from AI tools and reference sites like Wikipedia, user-generated content from forums and social media, and your own site's existing mentions. A new Opportunities filter lets you instantly surface only the citations worth pursuing, while the full list still shows everything for complete visibility. CSV exports now include both URL type and opportunity status columns for deeper offline analysis.

## Client connect v1.0 - Secure service authorization

**New**

Streamline how you connect client Google services. Generate a secure, one-time connect link from any client's settings page and share it directly with your client. They sign in with their own Google account, select which properties to connect — Search Console sites, Analytics properties, and YouTube channels — and authorize access without ever sharing passwords or login credentials. Links expire after 7 days for security, and you can revoke access at any time. Perfect for agencies onboarding new clients who manage their own Google accounts.

## Researcher v1.0 - AI-powered keyword research

**New**

Introducing Researcher, a complete keyword research suite built to help you find untapped opportunities and build smarter content strategies. Discover keywords by entering a topic and letting our AI generate hundreds of relevant keyword ideas from Google search data, autocomplete suggestions, and AI-powered seed expansion. Keywords are automatically grouped into topic clusters so you can plan content around themes, not individual terms. Explore any domain to see what keywords it ranks for across the top 100 positions, with full metrics including search volume, keyword difficulty, CPC, position, and traffic estimates. Run a keyword gap analysis to find where up to 3 competitors rank but you don't — the fastest way to uncover content opportunities your competitors are already capitalizing on. Analyze keywords in batch to get volume, difficulty, CPC, and intent data for up to 500 keywords at once, perfect for validating keyword lists from other tools or client requests. Every result comes with built-in filtering by search volume, keyword difficulty, CPC, intent type, source, and cluster, plus full CSV export and the ability to save keywords to organized lists for ongoing projects. [Open Researcher](https://app.rankability.com/researcher) to start your first keyword research project.

## Copywriter v3.0 - Quality and reliability improvements

**Improved**

We've made a series of improvements to the Copywriter to make content creation more reliable and polished. Internal link suggestions now only appear when you explicitly provide your domain in the wizard inputs, preventing irrelevant recommendations. Research progress tracking is more resilient with better stuck detection, recovery actions, and background processing that survives page navigation. The content editor, brief panel, and wizard flow have all received fixes for smoother step transitions, proper state persistence, and more consistent UI behavior across the board.

## Serena v2.4 - Tracker data insights

**New**

Serena can now pull insights from your Tracker data alongside Search Console, Analytics, Business Profile, and YouTube. When a client has active tracked keywords, the AI automatically analyzes SERP positions, AI citation status, position changes, and competitor brands across platforms like Google, Bing, Perplexity, ChatGPT, and Gemini. You'll also find Tracker in the connections panel showing your tracked keyword count and last scan date, new suggestion chips for AI visibility, position changes, and competitor landscape, plus four new prompts in the prompt library: AI citation gap analysis, SERP position trend analysis, competitor brand mapping, and AI visibility scorecard.

## Copywriter v2.9 - Performance boost

**Improved**

We've upgraded our infrastructure for faster brief generation. Improved batch processing and optimized API calls mean your research completes quicker, so you can get to writing sooner.

## Serena v2.3 - Save AI conversations

**New**

Keep valuable AI insights forever. Save any chat message from Serena directly to your client's knowledge base. Build a library of strategic recommendations and analysis that you can reference anytime.

## Serena v2.2 - Bulk website import

**New**

Import an entire website into your knowledge base in seconds. Enter any domain and we'll discover all pages via sitemap—or crawl if needed. Filter by page type (blog, product, service, etc.), select only what you need, and import in bulk. Perfect for rapidly onboarding new clients.

## Copywriter v2.8 - Inline text editing

**New**

Highlight any text in your draft and transform it with AI. Select text to rewrite, expand, shorten, or improve specific sections. Add custom instructions for precise control. Your content, your way—without regenerating the entire draft.

## Copywriter v2.7 - One-click draft regeneration

**New**

Not happy with your AI-generated draft? Regenerate it instantly with a single click. Your new draft automatically refreshes in the editor while preserving your brief and research—no need to start over from scratch.

## Tracker v1.5 - AI Citations gap analysis

**New**

Discover where your brand is missing from AI-powered search results. Our new Citation Visibility Score (CVS) analyzes how prominently your brand appears across ChatGPT, Perplexity, Google AI Overview, Gemini, and more. See exactly which AI platforms are citing your competitors but not you—and get actionable insights to close those gaps. Stop losing visibility in the AI search revolution.

## Copywriter v2.6 - Enhanced auto-save system

**Improved**

Your work is now protected with our robust auto-save system. Content saves automatically 2 seconds after you stop typing, with a visual status indicator showing when your work is saved. Use Ctrl/Cmd+S for manual saves, and if you try to leave with unsaved changes, you'll get a warning. Built-in retry logic with exponential backoff ensures your content is never lost, even during temporary connection issues.

## Serena v2.1 - All integrations fully verified

**New**

All four data integrations are now fully verified by Google and ready to use without warnings. Connect Google Search Console for keyword rankings and CTR data, Google Analytics (GA4) for traffic insights and user behavior, Google Business Profile for reviews and local visibility, and YouTube for video performance metrics. Serena now has complete access to your client's digital footprint.


# January 2026

Rankability product updates originally published in January 2026.

{% hint style="info" %}
Historical entries describe Rankability at the time of release. Features, names, prices, and credit rules in older entries may have changed or been retired. Use the [Help Center](/) for current product instructions and availability.
{% endhint %}

[Back to the latest product updates](/changelog)

## Releases

## Serena v2.0 - Data integrations now live

**New**

Connect your client's data sources directly to Serena for AI-powered insights. Google Search Console and Google Business Profile are fully verified and ready to use. Google Analytics and YouTube integrations are functional but pending Google verification (you may see a warning during connection). Use the AI chat to analyze performance across all connected sources and get strategic recommendations.

## Tracker v1.0 - Brand visibility tracking across search & AI

**New**

Track how your brand appears across 11+ platforms in one unified dashboard. Monitor your rankings on Google, Bing, Brave, and DuckDuckGo alongside AI visibility on ChatGPT, Perplexity, Gemini, Grok, and Claude. Our Search Performance Index (SPI) gives you a single score to measure overall brand discoverability. Features include Local Pack tracking with 3x3 grid scanning to see exactly where you rank in map results, AI mention detection to know when AI assistants recommend your brand, citation tracking to see when AI sources link to your content, automated daily tracking with historical trend charts, and shareable reports to keep clients informed with professional, agency-ready dashboards.

## Quick Mode v1.0 - Instant keyword research

**New**

Introducing Quick Mode, a streamlined way to extract 50-100+ NLP entities from competitor content in seconds. Perfect for SEO audits and competitive research when you need keyword insights without generating full content briefs or drafts. Analyze what's working for top-ranking pages, discover entity gaps, and export your findings with one click.

## Copywriter v2.5 - Smart keyword integration

**New**

Filter by unused keywords in your content and use our AI to naturally integrate those topics with one click. Maximize your keyword coverage without sacrificing readability.

## Copywriter v2.4 - References & brand knowledge

**New**

Add reference URLs to give the AI more context. Plus, connect your client's knowledge base from Serena so your content stays on brand and incorporates unique company information.

## Copywriter v2.3 - Unique details & voice input

**New**

Add unique details to optimize for information gain and stand out from competitors. Use our voice input feature to capture ideas naturally as you speak.

## Serena v1.9 - Strategic SEO assistant

**New**

Chat with Serena to get strategic SEO advice based on real client data. Our AI synthesizes insights from all connected data sources to recommend actionable next steps for your campaigns.

## Copywriter v2.2 - Custom AI instructions

**New**

Add specific content strategy instructions to guide the AI. Define your brand voice, target audience preferences, and writing style to take your content to the next level.

## Copywriter v2.1 - 23 languages supported

**New**

Create optimized content in 23 languages including Spanish, French, German, Portuguese, Italian, Dutch, and more. Expand your reach to global markets.

## Serena v1.8 - YouTube Channel data

**New**

Connect YouTube channels to your client's knowledge base. Access video performance metrics, view counts, engagement data, and content insights to inform your strategy.

## Copywriter v2.0 - Intent classification & local SEO

**New**

Automatic search intent classification helps you create content that matches user expectations. Add your domain to get relevant internal link suggestions, and specify a location to make your content more locally relevant.

## Serena v1.7 - Google Business Profile

**New**

Connect Google Business Profile to access reviews, Q\&A, and local business insights. Perfect for local SEO strategies and understanding customer sentiment.

## Copywriter v1.9 - Project dashboard upgrade

**Improved**

Redesigned project dashboard for easier management. Organize your work with tags and folders, and quickly find projects with powerful filtering capabilities.

## Serena v1.6 - Google Analytics

**New**

Connect Google Analytics (GA4) to enrich your client's knowledge base with website traffic data, user behavior patterns, and top-performing pages.

## Copywriter v1.8 - Human-like AI drafts

**Improved**

Upgraded our AI drafting engine to exclude 100+ common AI writing patterns. Your content now sounds more natural and human, helping you avoid AI detection tools.

## Serena v1.5 - Google Search Console

**New**

Connect Google Search Console to your client's knowledge base. Access search performance data, keyword rankings, and CTR analysis to inform your content strategy with real data.

## Copywriter v1.7 - Export & sharing

**New**

Export your content to Google Docs, HTML, Markdown, Microsoft Word, WordPress, and Webflow CMS. Plus, share read-only Copywriter reports with clients and mark projects as done when complete.

## Serena v1.4 - Chat with your knowledge base

**New**

Ask questions about your client and get instant answers powered by their knowledge base. Discover unique insights, find content angles, and understand your client better than ever.

## Copywriter v1.6 - Enhanced Competitors tab

**Improved**

Major upgrade to the Competitors tab: filter results by source, export competitor data, AI detection for top 10 results, and advanced filtering by word count, headings, and images.

## Serena v1.3 - Deep research

**New**

Perform AI-powered deep research to enhance your client's knowledge base. Our system automatically gathers and synthesizes information from across the web about your client's industry and competitors.

## Copywriter v1.5 - Grok & Gemini + Content scoring

**New**

Now extracting from Grok and Google Gemini, bringing our total AI sources to 9 platforms. Plus, introducing our proprietary content scoring system based on search platform market dominance, keyword coverage, entity inclusion, and strategic keyword placement.

## Copywriter v1.4 - Perplexity integration

**New**

Added Perplexity AI to our research sources. See how AI-powered search engines are citing and summarizing content for your target topics.

## Serena v1.2 - Google Reviews import

**New**

Import Google Reviews directly into your client's knowledge base. Understand customer sentiment, common questions, and unique selling points straight from real feedback.

## Copywriter v1.3 - ChatGPT insights

**New**

Now analyzing ChatGPT responses for your target keywords. Understand how conversational AI is answering questions in your niche and optimize your content accordingly.

## Serena v1.1 - Website crawler

**New**

Enter any website URL and we'll automatically crawl and add the content to your client's knowledge base. Perfect for onboarding new clients quickly.

## Copywriter v1.2 - Multi-engine research

**New**

Expanded research sources to include Bing and Brave Search alongside Google. Get diverse perspectives on what's ranking across different search engines.

## Serena v1.0 - Knowledge base launch

**New**

Build a comprehensive knowledge base for each client. Upload PDFs, Word documents, and text files, or paste content directly. Your AI assistant now has context about your clients.

## Copywriter v1.1 - AI Overview integration

**New**

Now extracting insights from Google AI Overview and Google AI Mode in addition to traditional search results. Get a complete picture of how AI is reshaping search for your target keywords.

## Copywriter v1.0 - Launch

**New**

Introducing Copywriter, your AI-powered content optimization platform. Analyze top-ranking Google search results to understand what's working for your competitors and create content that ranks.


# What is Rankability?

Learn how Rankability researches, creates, optimizes, reviews, and delivers SEO content designed to rank and earn AI citations.

Rankability is an SEO and AI-search platform for agencies, consultants, and in-house teams. It brings client management, brand grounding, research, content creation, auditing, promotion, traditional and AI-search tracking, automation, and reporting into one application.

The primary workflow is **Ground the brand → Research → Create or optimize → Review → Publish**. Asana is an optional handoff for teams that use it, not a required step.

## How Rankability organizes your work

Your **organization** contains your subscription, team, clients, connected apps, and pooled usage. Each client has its own website, settings, sources, integrations, projects, measurements, Activity, and Serena context. Select the correct client before starting work so results and recommendations use the intended data.

### Agency workspace

* **Home** — Start work and see account-level activity.
* **Performance** — Compare search and traffic performance across clients.
* **Clients** — Create and manage client workspaces.
* **Projects** — Review work across clients in one place.

### Client workspace

* **Ask Serena** — Work with Serena using the selected client’s context.
* **Activity** — Review Serena’s suggestions, in-progress work, alerts, human handoffs, and history from Home or another contextual Activity link.
* **Research** — Discover, analyze, and organize keyword opportunities.
* **Create** — Build briefs, drafts, scripts, and optimized content.
* **Audit** — Inspect sites, pages, Google Business Profiles, and URL batches.
* **Promote** — Analyze backlinks and find promotion prospects.
* **Track** — Monitor traditional, AI, local, and video visibility.
* **Automate** — Queue scheduled content and monitor approved knowledge sources through supported recurring workflows.

## The content workflow

1. Create or select the correct client.
2. Review the learned brand knowledge, language, location, and reliable sources.
3. Use **Research**, **Create**, **Audit**, **Promote**, or **Track** for the outcome you need. Connect Claude or Codex from **Settings → API keys** when you want to work through an external AI assistant.
4. Review the brief, draft, research, factual claims, and changed passages.
5. Publish through a supported destination or your normal handoff. [Asana](/account-and-settings/connecting-asana) is available for teams that choose it.
6. Use **Track**, connected analytics, and fresh audits to measure the result after publishing.

## What to expect

* Available results depend on the selected client, completed scans, connected accounts, permissions, and source-data freshness.
* Full-platform tools are included. Large on-demand workloads use pooled rolling limits, while scheduled tracking and monitoring stay protected.
* Scores and recommendations are decision support. Review the underlying page, source, or report before making a consequential change.
* Rankability does not automatically change a website or external account merely because an audit, recommendation, or draft exists.

## Where settings and help live

Open **Help** in the sidebar footer for this public Help Center. Use **Support** for an account-specific problem. Open **Billing** from the Settings group for subscription and usage, use organization Settings for members, API keys, and connected apps, or open Settings from a selected client for its profile, sources, integrations, reports, alerts, and monitoring settings.

## Related articles

* [Quickstart checklist](/getting-started/quickstart-checklist)
* [Serena sources and data connections](/serena/advisor-knowledge-base-and-data-connections)
* [Using Activity](/activity/tasks-board)
* [Using Automate](/automate/using-automate)
* [Connecting Rankability to Asana](/account-and-settings/connecting-asana)
* [Understanding billing and usage](/account-and-settings/understanding-billing-and-credits)
* [Terminology and key concepts](/getting-started/terminology-and-key-concepts)


# Terminology and key concepts

Understand the Rankability workspace, tools, scores, tracking states, sources, connections, usage, and sharing terms used throughout the platform.

Use this reference when a Rankability label is unfamiliar or when two related terms have different meanings.

## Account and workspace terms

* **Organization** — Your Rankability account, subscription, pooled usage, members, and organization-level connected apps.
* **Client** — One business or website with its own profile, sources, integrations, projects, tracking, Activity, and Serena context. Always confirm the selected client before adding private material or starting work.
* **Project** — A durable unit of work inside a tool, such as a Copywriter content project or Track keyword project. Project settings and history remain scoped to their client.
* **Serena** — Rankability's AI assistant. Serena can analyze available client evidence and propose or run supported actions according to the approval shown in the product.
* **Activity** — The client work record for recommendations, alerts, approvals, human handoffs, active work, completed outputs, and follow-up measurement. It is not the same as a raw audit issue list.

Create the workspace first with [Creating a new client](/getting-started/creating-a-new-client), then use the [Quickstart checklist](/getting-started/quickstart-checklist) to add the context and measurements your workflow needs.

## Product areas

* **Researcher** — Keyword discovery, domain exploration, keyword gaps, saved lists, and opportunity analysis. Open it from **Research**.
* **Copywriter** — Research-to-brief, drafting, optimization, review, and publishing workflows. Open it from **Create**.
* **Audit** — Site, page content, Google Business Profile, and batch URL analysis tools.
* **Promote** — Backlink analysis, prospect discovery, enrichment, and outreach-list workflows.
* **Track** — Traditional and AI search visibility, results, trends, integrations, and client reporting. Some API routes retain the `reporter` namespace even though the visible product name is Track.
* **Automate** — Supported recurring content and knowledge-monitoring workflows, including scheduled content queues and reviewable knowledge-source changes.

See [What is Rankability?](/getting-started/what-is-rankability) for how these areas work together.

## Sources, connections, and evidence

* **Source** — Client reference material such as a website page, uploaded file, pasted text, YouTube transcript, or supported imported file. A source must finish processing before it can reliably ground execution.
* **Integration or connection** — Authorized access to a service, property, profile, repository, publishing destination, or task system. A connected account does not mean every property is selected or current.
* **Chat attachment** — Material attached to a conversation. It can ground that interaction but does not automatically become a durable client source.
* **Owned asset** — A domain, profile, or result identified as belonging to the client for supported tracking and analysis.
* **Citation** — A source URL referenced by an AI answer. A citation does not by itself prove that the source mentions the tracked brand.

Read [Serena sources and data connections](/serena/advisor-knowledge-base-and-data-connections) before adding client evidence.

## Scores and measurement

* **SPI** — Search Performance Index, a 0–100 visibility score built from the tracked surfaces applicable to a query. Coverage and available components matter when comparing scores.
* **Content score** — Copywriter's optimization score for a draft against its research and recommended topics.
* **Opportunity score** — Researcher's prioritization signal in its main results.
* **KO Score** — A separate Keyword Overview score. Do not substitute it for Researcher's Opportunity score.
* **Benchmark** — A completed measurement without automatic recurring tracking.
* **Scan or run** — One attempt to collect configured Track results. A run can be pending, running, complete, partial, or failed.
* **Not tracked** — The platform was not selected for that keyword.
* **Not ranked** — A completed scan found no target ranking in the tracked range.
* **No scan** — No current completed measurement exists.
* **No history** — A current result exists, but no earlier comparable completed scan exists.

## Usage and access

* **Pooled usage** — The rolling account-level capacity for on-demand full-platform work. Billing shows remaining percentages for 24-hour and 7-day windows rather than per-action prices. Copywriter Core retains separate completed-outcome allowances.
* **Usage reservation** — Internal capacity set aside while supported work runs. It is finalized only when the operation reaches its documented completion point and is released when work fails before that point. It is not a customer credit wallet or an additional purchase.
* **Share link** — A revocable link for viewing a supported report or content item without organization membership.
* **Client portal** — A client-scoped, read-only reporting experience with configurable access and visibility.

Use [Understanding billing and usage](/account-and-settings/understanding-billing-and-credits) for billing rules and [Usage limits reference](/account-and-settings/credit-costs-reference) for current usage.


# Quickstart checklist

Go from a new Rankability account to a grounded client and your first research, content, audit, or tracking result.

Go from a new account to a grounded client and your first usable result in the full Rankability application.

Before you begin, have the brand's canonical website, public name, primary language, and service area when location matters.

## 1. Set up your first brand and tracking questions

The first brand-new full-platform workspace uses a focused five-step setup:

1. Enter the brand's website and select **Find my brand**.
2. Review the brand name and optional primary market Rankability found from the website.
3. Choose one product, service, or category the brand should be recommended for.
4. Review the ten suggested customer questions. Five are recommended and selected by default; edit the wording and select at least one question to continue.
5. Review the included AI platforms, then select **Start tracking**.

Each selected customer question becomes an independent Track report with its own history. Rankability starts the first measurements after your confirmation and opens the results when enough selected-platform data is usable. If the remaining platforms take longer, you can leave the progress screen after the available exit appears; results continue saving in the background.

Creating the client and building its initial brand knowledge are included. Nothing is tracked, changed, or published until you confirm **Start tracking**.

If your organization has already completed its first setup, create an additional workspace from **Workspaces → Add workspace**. Additional clients use the standard client-creation flow and open Serena after creation; start a Track report separately when you are ready.

## 2. Review the first results

Open each created Track report and confirm that the customer question, brand, primary market, selected platforms, and captured answers match the intended scope. One customer question is one report, so compare reports instead of treating the onboarding topic as a combined score.

Use **Ask Serena** from a report when you want help interpreting that report's evidence. Use **Home** or another contextual Activity link when you need to review recommended work, in-progress actions, alerts, human handoffs, or completed outputs; Activity is not a top-level client-sidebar item.

## 3. Connect data

Open the client’s **Settings** and choose **Integrations**. Connect the services that apply to the client, then confirm the correct account and property.

Use the Google account that already has access to the intended property. Initial imports and source platforms can have reporting delays, so a successful connection may not produce complete charts immediately. See [Connecting client Google services](/account-and-settings/connecting-client-google-services) for property selection and recovery steps.

## 4. Add or review sources

Open **Settings → Sources** to review the generated knowledge and add supported client material. Serena uses eligible processed sources as client context.

## 5. Complete a first workflow

* Use **Research** to save a keyword opportunity.
* Use **Create** to start a brief, draft, or Autopilot run.
* Use **Track** to create a tracking project and run its first scan.

Review the displayed usage impact before a consequential or unusually large on-demand action. Full-platform tools are included; pooled capacity recovers continuously.

## 6. Invite or share

Invite teammates from organization settings. For outside stakeholders, use the client portal or a supported revocable share link instead of sharing your own login.

## Verify the workspace is ready

A useful first setup should leave you with:

* the correct client name, domain, and location;
* reviewed client sources and brand context;
* the intended integrations connected to the correct properties;
* at least one usable tracking result or a clearly labeled first scan still in progress;
* any required next action visible from Home, the report, or another contextual Activity link; and
* team or client access that follows least privilege.

Do not treat an empty chart as zero performance until the first import or scan has completed and its freshness is visible.

## Common setup problems

* **The website or brand is wrong** — Correct the client settings before creating more work. Project results inherit client context.
* **A Google property is missing** — Confirm the signed-in Google account has access, reconnect, and select the exact property.
* **A task is still running** — Open its current status and wait. Do not create a duplicate run solely because you left the page.
* **An action uses more than expected** — Review keywords, platforms, locations, pages, competitors, or other multipliers before approval. Use [Control your usage](/account-and-settings/control-your-usage) to set safeguards.
* **An outside stakeholder needs access** — Use [Setting up the client portal](/account-and-settings/client-portal-sharing) instead of inviting them as an Admin.

## Related articles

* [Creating a new client](/getting-started/creating-a-new-client)
* [Setting up keyword tracking](/track/setting-up-keyword-tracking)
* [Using Activity](/activity/tasks-board)
* [Connecting client Google services](/account-and-settings/connecting-client-google-services)
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues)


# Understanding Today and Performance

Use Rankability Today to work the day's client changes, Performance to compare results, and client workspaces to execute the next action.

Rankability has two agency-level starting points with different jobs. **Today** tells you which client changed and needs a decision. **Performance** compares measured results across clients. Use a client workspace to investigate or execute after either page identifies where to focus.

## Use Today for the day's client changes

Today is one queue of client changes that need a decision. Rather than grouping clients by workflow state, it leads with the single change most worth your attention. The heading tells you how many clients need attention or that you are caught up, and the line above it records when the page last refreshed.

* The lead card names the client, when the change happened, and the channel it came from, such as AI search, AI reputation, Website, or Automation. For a tracking change it gives one short **Why this matters** explanation, then offers **Investigate with Serena**. A knowledge-monitoring change instead offers **Review changes**, which takes you into Automate.
* **Next up** lists the following few changes, and anything beyond them collapses into a group of remaining changes you can expand.
* **Dismiss** removes a change from Today when it does not need action. It changes what Today shows you; it does not change the client's data.
* **Serena investigating** lists changes where an investigation is already running, so you can reopen one instead of starting it again.
* When you are caught up, **Positive movements** surfaces a verified recent Tracker gain — a page entering the top ten, a new citation, or a new brand mention — with **Draft with Serena** for client communication and **View report** for the evidence behind it.
* **Opportunities** links to recent Tracker reports where a traditional ranking is close to the top ten or a captured AI answer does not yet mention the client. It appears only when the saved report data supports an opportunity.
* **Recent projects** provides a short path back into the latest Tracker and Copywriter work, plus a link to all projects. These rows are navigation, not new alerts.

Today shows changes, not every suggested or planned task. Those remain on each client's Activity record. It also does not diagnose an SPI movement on its own; use Performance and the client's Track reports for that evidence.

If the organization has no client yet, Today prompts you to create one. If the day's changes cannot be loaded, Today says so and leaves your existing data unchanged rather than presenting an empty queue as being caught up.

## Use Performance for portfolio comparison

Open **Performance** when the question is about outcomes rather than workflow—for example, which clients are declining, which are improving, or which are missing connected data.

Portfolio performance combines SPI, Google Search Console, Google Analytics, and tracking coverage in one comparison table. You can select a 7-, 14-, 28-, or 90-day range, compare it with the previous period or the same period last year, filter and sort the client list, and export the visible rows to CSV.

Treat Performance as a triage surface. A negative change shows where to investigate; it does not prove a cause. Open the client and confirm the selected properties, data freshness, tracking history, projects, and underlying reports before recommending action. See [Using Portfolio performance](/agency/portfolio-performance) for the metric and filter rules.

## Move into the correct workspace

The agency navigation also includes:

* **Clients** for adding clients and managing client-level setup, connections, and access.
* **Projects** for finding work across clients. See [Using the Projects page](/account-and-settings/using-the-all-projects-page).

After selecting a client, the navigation changes to that client's workspaces: **Ask Serena**, **Research**, **Create**, **Audit**, **Promote**, **Track**, and **Automate**. Activity remains the client's durable work record, but it is reached from the client's own Home page and contextual links rather than from a top-level client-sidebar item. The selected client controls the website, brand context, sources, integrations, projects, and collected data used in those areas. Confirm the client name before starting a scan, generating content, publishing, or changing settings.

## Troubleshooting

* **A client change you expected is not in Today:** Today queues changes it detected from tracking and monitoring, not every planned or suggested task. Check whether the change was dismissed, and open the client's own reports for the underlying evidence.
* **Today says you are caught up but a client still needs work:** Being caught up means no detected change is waiting for a decision. It is not a statement that every client is healthy; use Performance and the client's Track reports for that.
* **Today cannot load the day's changes:** Use the retry control. Today reports the failure rather than showing an empty queue, and your existing client data is unchanged. Open Clients or Performance directly in the meantime.
* **Performance shows a dash or Missing data:** A missing value is not zero. Check the client's Google connections, tracking status, and whether enough history exists for the selected comparison.

## Related articles

* [Using Portfolio performance](/agency/portfolio-performance)
* [Using Activity](/activity/tasks-board)
* [Using Automate](/automate/using-automate)
* [Using the Projects page](/account-and-settings/using-the-all-projects-page)
* [Setting up the client portal](/account-and-settings/client-portal-sharing)
* [Understanding the Track overview](/track/reporter-executive-summary)


# Creating a new client

Create a Rankability client from the correct website and review the included brand knowledge setup.

A client keeps one brand's knowledge, integrations, projects, Activity, audits, tracking, and Serena context together. Create a separate client only when the work needs an independent brand and evidence boundary—not simply because you want another project for the same website.

## What you need

Prepare:

* The client's primary website domain.
* The public brand name you expect Rankability to learn from that site.
* The primary language and service area when location matters; you can review these after the client exists.

You can connect Google services, add private sources, and refine the brand voice after the client exists.

1. Open **Workspaces**.
2. Select **Add workspace**.
3. Enter the website, such as `example.com`. Rankability accepts the bare domain and validates that it looks like a complete website address.
4. Select **Create workspace**. Rankability creates the workspace and starts its initial brand setup.

Creating the client and its initial knowledge setup is included. Each client counts toward your plan's brand workspace allowance, which **Billing** shows alongside your other allowances. Subscriptions bought before the current packaging keep the client terms they were sold at their protected price.

The first eligible client in a brand-new full-platform account uses a different entry flow. Enter the website, select **Find my brand**, then review the brand, topic, customer questions, and included AI platforms before selecting **Start tracking**. See the [Quickstart checklist](/getting-started/quickstart-checklist) for that five-step setup. Additional clients created later use the standard steps above and open Serena after creation.

## If the domain already exists

When Rankability detects an existing accessible client for the same domain, use that client instead of creating a duplicate. This protects the brand knowledge, sources, Activity history, measurements, and existing work that Serena already uses.

If you intentionally need a second, isolated client for the same domain, create it only through a flow that explicitly warns you about the duplicate and offers **Create anyway**. The second client starts from scratch and does not inherit the original client's context.

## What to do next

1. Review the client name and domain in [Client settings](/account-and-settings/client-settings-reference).
2. Check the initial website context and add missing client material under **Settings → Sources**. See [Serena sources and data connections](/serena/advisor-knowledge-base-and-data-connections).
3. Connect the correct GSC, GA4, GBP, or other supported property only when the workflow needs it. A connected Google account is not complete until the intended property or profile is selected.
4. Ask Serena about the client, choose **Research**, **Create**, **Audit**, **Promote**, **Track**, or **Automate**, or use Home and contextual links to open the client's Activity record.
5. Review the usage impact before starting an unusually large content, research, tracking, audit, promotion, or enrichment action.

Full-platform tools are included. Later high-impact actions can display a usage estimate before on-demand work begins. Your organization chooses whether to start or publish that work.

## Troubleshooting

* **The create button is unavailable** — Enter a complete dotted domain.
* **The suggested brand is wrong** — Correct the name and Brand & voice fields after creation in Workspace settings.
* **The wrong location was learned** — Correct the default location or service-area evidence in Workspace settings before location-sensitive work.
* **An existing client opens** — The domain already belongs to an accessible client. Continue there to preserve its history.
* **Client creation is blocked by the account state** — Follow the billing or upgrade action shown in the product. Existing clients remain available.
* **The site cannot be fully read** — Finish creating the client, then add the important material under **Settings → Sources**.

Continue with the [Quickstart checklist](/getting-started/quickstart-checklist) after the client opens.


# Using Serena chat

Open Ask Serena for a client to ask questions, use its context, attach supported material, and move useful work into Rankability.

Open Ask Serena for a client to ask questions, use its context, attach supported material, and move useful work into Rankability.

Serena is most useful when the correct client is selected and its sources and integrations are current. Use **Ask Serena** for work scoped to that brand; do not use a generic support surface when the answer requires live rankings, GSC, GA4, projects, or client memory.

## Open Serena

1. Select the client, then choose **Ask Serena** in the sidebar.
2. Ask a question or describe the result you want.

Serena uses the selected client’s sources, settings, connected data, memory, and available Rankability tools. Starting a new chat does not change the selected client.

Earlier conversations live on the Serena page itself rather than in the sidebar. Open **History** to search past conversations and reopen one. Use the rename control on a conversation to give it a name you will recognize later; the new name saves when you press Enter or move focus away.

Begin with the outcome, scope, and constraints: for example, name the page, keyword, country, date range, or report you want Serena to inspect. Serena can read available client context and propose or perform supported Rankability actions, but it should not invent facts that are absent from the client.

## Attach screenshots

You can attach up to four screenshots to one message. Use screenshots when the visible page, chart, layout, or error message is important to your question.

## Actions and usage

Serena chat and supported full-platform tools are included. Before a consequential or high-impact action, Serena shows the scope and usage impact. Actions that change external systems require approval where the product presents an approval step.

Read the structured action details before approval. They are the source for scope, inputs, and usage impact. A chat response promising a later result is not evidence that background work exists; use the visible progress and terminal result in the conversation or the relevant project/task status.

## Complete a Serena workflow

1. Select the client and open **Ask Serena**.
2. State one concrete objective and include the relevant page, keyword, market, or evidence.
3. Answer a necessary clarifying question or attach up to four relevant screenshots.
4. Review any proposed action, usage impact, and destination before approving it.
5. Keep the chat open or return later and use the persisted progress/result rather than starting a duplicate.

A message you have sent keeps running on the server, so navigating away or returning later does not abandon it or start it again. Use the stop control beside the message box to end a running message; if it has only just started, Rankability asks you to try stopping again in a moment. A message that fails offers a retry that re-sends your original request rather than a paraphrase of it. 6. Open the created project, report, list, or task to verify the output and continue the work.

## Limits and recovery

* Serena can be wrong. Verify high-impact recommendations against captured data and authoritative client sources.
* A screenshot shows only the visible state; include the URL, date, filters, and error text when they matter.
* Connected services can be stale or unauthorized. Check [Serena sources and connections](/serena/advisor-knowledge-base-and-data-connections) before treating missing data as zero.
* A tool can fail after approval. Preserve the error and action details, then retry only when the original run is no longer active.
* External publication, messaging, or destructive changes may require explicit approval and cannot be inferred from a general request.

## Get a better answer

* Name the page, keyword, market, or date range you mean.
* Connect the relevant data service in client settings.
* Add authoritative client sources instead of asking Serena to infer private facts.
* Open a separate chat when you switch to a different goal.

## Related articles

* [Serena sources and connections](/serena/advisor-knowledge-base-and-data-connections)
* [Using Activity](/activity/tasks-board)
* [Using Serena with connected apps](/serena/serena-integrations)
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues)


# Serena sources and data connections

Ground Serena with durable client sources and correctly scoped integrations while preserving processing, freshness, and privacy boundaries.

Serena produces better analysis and execution when the selected client contains reliable evidence. Sources and integrations both add context, but they have different permissions, freshness rules, and failure modes.

## Know the difference

* **Sources** are durable client reference material. Supported options include uploaded files, pasted text, website or YouTube URLs, multiple pasted URLs, website imports, and Google Drive files when that option is configured.
* **Integrations** authorize Rankability to read data or deliver supported work through a service, property, profile, repository, publishing destination, or task system.
* **Chat attachments** ground a conversation but do not automatically become durable client sources.

Adding a source does not connect the underlying service account. Connecting an account does not import every file, property, or page into Serena's client context.

## Add useful sources

1. Confirm the selected client.
2. Open **Settings → Sources** and choose **Add source**.
3. Choose the narrowest useful option shown:
   * **Upload file** for supported documents or structured files.
   * **Paste text** for approved notes, policies, interviews, testimonials, or brand facts.
   * **Website or YouTube URL** for one page or a video transcript.
   * **Paste URLs** for a reviewed page list.
   * **Import from website** to discover and select a broader set of pages.
   * **Google Drive** to select supported files when the workspace offers that integration.
4. Give pasted or uploaded material a recognizable name.
5. Review the displayed usage impact when an import requires crawling or extraction, then confirm the action.
6. Wait until processing finishes before relying on the source.

Start with decision-grade material: current products and services, audience, differentiators, approved claims, policies, case studies, customer language, and writing guidance. Avoid adding many near-duplicate pages merely to increase volume; conflicting or outdated material makes execution less reliable.

Website sources can show monitoring, crawl, change, or failure states. Reprocess a source when the page materially changes. Disable or remove content that should no longer influence future work. An imported Google Drive file is a copy of supported content; do not assume it updates whenever the original file changes unless Rankability shows a refresh.

## Keep monitored pages current

Rankability can watch important client pages and tell you when their content changes, rather than leaving you to notice. Open **Automate**, choose the pages to monitor, and turn the automation on; you need at least one selected page before it will start. You can also add a page to the knowledge base and begin monitoring it in the same step.

Choose weekly or monthly monitoring, and use **Check now** when you need an immediate comparison. The automation checks the selected pages without starting unrelated client work.

When a check finds a difference, the source is flagged for review. Open **Review changes** to compare the saved content with the live page side by side, then either update the knowledge base with the new content or dismiss the change to keep what you have. Nothing is rewritten until you choose to update, so a detected change is a prompt to review rather than an edit Rankability has already made.

If a page has permanently moved within the same site, Rankability presents the original and destination URLs as a separate **Page moved** review. Approve the new destination only when it is the correct replacement, or keep the original source. Temporary and cross-site redirects do not silently replace a saved source.

## Review the generated entity record

When Rankability builds a client's knowledge base, it generates an **Entity Record** source for the client's identity facts — official name, entity type, canonical website, brand aliases, former names, common misspellings, founding details, key people, headquarters, locations and service areas, contact details, products and services, related brands, official profiles, a short description, and disambiguation notes.

The entity record starts as **Needs human review**. While it carries that state you cannot select or star it, and Rankability keeps it out of content production and research. Open the source, correct anything inaccurate, then choose **Mark reviewed** from its menu. The badge changes to **Reviewed** and the record becomes available like any other selected source.

## Upload PDF and Word sources

Rankability extracts text from text-based PDF and `.docx` files. A document needs at least about 50 extracted characters to become usable grounding. Scanned or image-only PDFs, protected files, corrupt documents, and nearly empty files can fail extraction; legacy binary `.doc` files should be resaved as `.docx` or a text-based PDF.

Do not assume an upload is ready merely because the file was accepted. Wait for processing to finish and confirm the source is available before asking Serena to rely on it. A failed source displays a failure state or re-upload banner. Previously failed PDFs and Word documents that do not have a retained original must be uploaded again; there is no automatic backfill for those old failures.

## Connect performance data and destinations

1. Open **Settings → Integrations** for the client.
2. Choose the required service.
3. Authorize an account with access to the intended property or destination.
4. Select the correct GSC site, GA4 property, GBP location, repository, CMS, or other resource when prompted.
5. Wait for the initial sync and check the connection status before interpreting missing data.

GSC provides search-query and page performance, GA4 provides site behavior and conversions, and GBP provides Business Profile evidence and authorized actions. They are not interchangeable. For the agency authorization flow, read [Connecting client Google services](/account-and-settings/connecting-client-google-services).

## How Serena uses the evidence

Serena can combine client identity and brand guidance, processed sources, workspace activity, tool outputs, and eligible connected data. The exact evidence available depends on the current client, source status, selected properties, date ranges, monitoring settings, and the Serena surface you are using.

Treat a recommendation as grounded only when the supporting source or dataset is available and current. A missing metric is not automatically zero. A successful connection badge confirms saved authorization, but it does not prove that the expected property was selected or that its newest data has finished syncing.

## Privacy and client boundaries

* Confirm the client before uploading private material or authorizing an account.
* Use the least-privileged account and API scope that supports the workflow.
* Keep credentials, secrets, and unnecessary legal, medical, financial, or personnel data out of sources.
* Remove former vendor access and obsolete sources promptly.
* Do not use one client's material as evidence for another client.

## Troubleshooting

* **A source remains processing** — Wait, refresh the source list, and check for a failure state before importing it again.
* **A PDF or Word document failed** — For a PDF, confirm it contains selectable text rather than only page images. Remove password protection, repair a corrupt file, or resave it as `.docx`, `.txt`, `.md`, or a text-based PDF, then upload it again.
* **A page cannot be read** — Paste approved text or upload a supported file instead of repeatedly crawling the blocked page.
* **A property is missing** — Reauthorize with an account that has access and finish property selection.
* **Data is empty after connection** — Verify the property, date range, sync status, and required monitoring capability.
* **Serena used old information** — Update, reprocess, disable, or remove the stale source, then start a new analysis with the corrected evidence.

For organization apps, Slack, Drive behavior, and external OAuth clients, continue with [Using Serena with connected apps](/serena/serena-integrations). For the chat workflow itself, see [Using Serena chat](/serena/using-advisor).


# What Serena can do

Use Serena to interpret client evidence, plan work, and run supported Rankability workflows while preserving permissions, usage safeguards, and human approval.

Use Serena to interpret client evidence, plan work, and run supported Rankability workflows while preserving permissions, usage safeguards, and human approval.

Serena is Rankability’s AI assistant. Serena works within the selected client and can use the client context, approved sources, connected data, and supported Rankability tools available to your account.

## Before you start

Select the correct client. Add reliable source material and connect any service required for the task. Then state a concrete objective, relevant page or keyword, audience, location, and date range.

## What Serena can help with

* **Explain and analyze** — Answer questions about a client, interpret available performance data, review screenshots, and work from approved sources.
* **Plan and prioritize** — Turn supported signals into suggested work and explain why it matters.
* **Prepare work** — Help draft or organize supported research, content, audit, promotion, and tracking work.
* **Start supported actions** — Use Rankability tools when the required access, confirmation, and pooled capacity are available.
* **Prepare reviewable website changes** — Inspect a connected repository, propose a bounded change, and create a pull request when the client connection and selected execution mode permit it.
* **Track the workflow** — Use Activity to separate suggested, in-progress, waiting, and completed work.

## Costs and confirmation

Full-platform tools are included. A consequential or high-impact action shows its scope and usage impact before it begins. The exact controls depend on the action, your role, and the selected client.

## Work with connected apps

Depending on your organization’s configuration, Serena can use connected Google data, Google Drive sources, YouTube sources, and Slack. Each connection has its own permissions and data boundary.

## Repository execution

When a client has a connected GitHub repository, Serena can inspect relevant text files and prepare a bounded pull request for supported website changes. Choose the execution mode beside the chat composer before requesting the work:

* **Ask first** requires your approval before Serena creates the proposed pull request.
* **Auto-create PRs** allows a supported, bounded proposal to become a reviewable pull request without another card click.
* **Full access** permits the broader repository workflow shown by Rankability and should be reserved for repositories where the organization accepts that level of automation.

Serena does not write directly to the default branch. Repository changes are bounded, protected paths and secret-like content are rejected, and the resulting pull request remains the reviewable record. Connecting GitHub does not deploy the customer's website. After the customer deploys an approved change, ask Serena to verify supported live Site Auditor findings when that verification is available.

## Execution boundaries

* Serena cannot use a client, source, connection, or external account that your access does not permit.
* Serena cannot supply authoritative client facts that are absent or incorrect in the available sources.
* A recommendation, audit finding, or draft is not proof that an external website or account changed.
* A created or merged pull request is not proof that the customer website deployed; confirm the deployment before treating a live issue as fixed.
* Review publishing decisions and other consequential actions before they occur.
* Verify legal, medical, financial, reputational, and brand-sensitive claims with an accountable human and authoritative evidence.

## Get a better result

1. Choose the correct client and describe the outcome you need.
2. Name the relevant keyword, page, project, audience, market, and time period.
3. Tell Serena which client sources or connected evidence should control the answer.
4. Review the cited or displayed evidence, assumptions, usage impact, and proposed next action.
5. Correct inaccurate information at its source so later work uses better context.

## If Serena lacks context

Check the selected client, source status, connected account, property, permissions, and date range. If a supported action repeatedly fails, contact support with the client, task or conversation context, time, and visible error.

## Related articles

* [Using Serena chat](/serena/using-advisor)
* [Serena sources and data connections](/serena/advisor-knowledge-base-and-data-connections)
* [Using Activity](/activity/tasks-board)
* [Using Serena with connected apps](/serena/serena-integrations)
* [Usage limits reference](/account-and-settings/credit-costs-reference)


# Using Serena for repeatable workflows

Build repeatable Serena workflows from client sources, clear requests, confirmation steps, Activity, and measured outcomes.

Serena can make recurring client work more consistent by keeping the operating context, proposed work, human decisions, outputs, and outcomes in Rankability. It does not turn an undocumented process into a reliable workflow automatically. Build the workflow from authoritative sources and explicit checkpoints.

## What makes a workflow repeatable

A dependable Serena workflow has five parts:

1. **Grounding** — the selected client, current brand information, approved sources, and required data connections.
2. **A defined result** — the page, keyword, market, audience, time period, and output you need.
3. **A supported action** — a Rankability tool or task Serena can actually prepare or run.
4. **A human checkpoint** — confirmation for usage impact, strategy, publishing, assignment, or another consequential action.
5. **A recorded outcome** — the output in Activity and, when available, the later measurement.

This structure reduces dependence on instructions scattered across chat, private notes, and staff memory. It does not eliminate accountable review or the need to maintain the source material.

## 1. Build the operating context

Select the correct client before adding context. Then:

* keep the client’s business, brand, audience, services, and writing preferences current;
* add reliable website pages, files, pasted text, or supported YouTube sources;
* connect GSC, GA4, GBP, or another service when the workflow needs its data;
* remove obsolete or contradictory sources instead of adding a second “correct” version beside them.

Sources tell Serena what is true about the client. Connections provide authorized data or an execution destination. They are not interchangeable.

## 2. Describe the result, not a vague role

Ask for a concrete outcome. For example:

> For this client, identify the strongest service-page opportunity for the St. Louis market using the last 90 days of Search Console data. Explain the evidence, recommend one next action, and do not start a metered run until I approve it.

That request supplies a client, market, time period, evidence source, deliverable, and approval boundary. “Be our SEO manager” does not.

When the request is broad or the client lacks context, Serena may ask qualifying questions before recommending work. Answer the questions that materially change the strategy rather than asking Serena to guess.

## 3. Review the proposed action

Chat can explain evidence and recommend a next step. A supported action can then appear as a confirmation or Activity card. Before approving it, check:

* the client, domain, page, keyword, and location;
* the source and freshness of the evidence;
* what Rankability will create or run;
* the displayed usage impact for an on-demand action;
* whether the result will remain inside Rankability or affect an external system.

Not every recommendation is executable from every Serena surface. If Serena routes you to a Rankability tool, complete the setup there. A navigation card is not evidence that the work has already run.

## 4. Follow the work in Activity

Open **Activity** for the client to see the operational record:

* **Suggested** contains distinct opportunities you can start or dismiss.
* **Priority** shows **Your turn** items beside work **In progress**.
* **Alerts** keeps critical and warning monitoring conditions separate from the personal task queue.
* **History** records finished and measuring work.

Some work runs autonomously after confirmation. Other cards create a handoff. For example, a content card can create and research a Copywriter project, then move to **Your turn** so you can configure the brief, target, and tone before generating the draft.

## 5. Review and improve the workflow

Open the output artifact from the Activity card. Review brand-sensitive claims, strategy choices, and anything that will be published or sent outside Rankability. Where the card includes a before-and-after snapshot or outcome, use it to decide whether to repeat, adjust, or retire the approach.

When Serena uses an incorrect fact, correct the authoritative client source instead of fixing only one answer. When an integration has expired, reconnect it before repeating the workflow. When a suggestion is not useful, dismiss it so the queue stays focused.

## Good workflow candidates

Repeatable workflows work best when the input, decision, and output can be named clearly, such as:

* review current search evidence and prioritize a page;
* run a supported audit and triage the findings;
* research a topic and hand it to Copywriter;
* prepare a draft, then require a human publishing decision;
* monitor a completed change and compare the measured outcome.

High-risk legal, medical, financial, or reputational judgments still require authoritative evidence and an accountable human. Serena can organize the evidence; it should not be the final authority.

## Related articles

* [What Serena can do](/serena/what-serena-can-do)
* [Using Serena chat](/serena/using-advisor)
* [Serena sources and data connections](/serena/advisor-knowledge-base-and-data-connections)
* [Using Serena with connected apps](/serena/serena-integrations)
* [Using Activity](/activity/tasks-board)
* [Usage limits reference](/account-and-settings/credit-costs-reference)


# Using Serena with connected apps

Connect client data, knowledge sources, Slack, and authorized external apps without mixing their permissions or data boundaries.

Connections extend the evidence Serena can read or the places where supported work can happen. Each connection has its own scope. Connecting one service does not give Serena access to every property, client, channel, file, or external action in that account.

## Three types of connection

Rankability presents related integrations in different places because they serve different purposes:

* **Client integrations** connect data or destinations to one client, such as GSC, GA4, GBP, publishing, or project-management services shown in that client’s settings.
* **Client sources** add reference material to the selected client’s knowledge base, including supported website pages, files, pasted text, YouTube transcripts, and Google Drive files when that option is enabled.
* **Organization connected apps** authorize Slack or an external OAuth client, such as an assistant using Rankability’s API scopes, at the organization level.

Always confirm which level you are changing before authorizing access.

## Connect client performance data

1. Select the client.
2. Open **Settings → Integrations**.
3. Choose the required service.
4. Sign in with an account that can access the intended property or profile.
5. Select the correct site, property, location, or destination when prompted.
6. Wait for the connection to finish syncing before treating missing data as zero.

GSC, GA4, and GBP answer different questions. GSC provides search-query and page performance, GA4 provides site behavior and conversions, and GBP provides authorized Business Profile data and actions. A connected Google account is not complete until the correct property or location is selected.

Serena’s available analyses and actions depend on the live connection state. If the required service is not connected, Serena can explain the dependency or route you to setup, but it cannot manufacture the private data.

## Add content sources

Use **Settings → Sources → Add source** for durable client reference material. Add only material that belongs in that client's operating context.

Supported source options can include website content, uploaded files, pasted text, and YouTube URLs. Google Drive import appears only when it is enabled for the workspace. When available:

1. Choose the Google Drive source option.
2. Connect the intended Drive account if prompted.
3. Select supported files in the picker.
4. Wait for each source to finish processing.

Importing a Drive file copies supported content into the client’s sources. It does not give Serena blanket access to the rest of the Drive. A file that is changed later in Drive should not be assumed to have updated the imported source unless the product explicitly shows a refresh.

Chat attachments are different again: they ground one conversation turn and do not become durable client sources automatically.

## Connect Serena for Slack

If **Serena for Slack** appears under the organization’s connected-app settings:

1. Open organization **Settings → Connected apps**.
2. Choose **Connect Slack**.
3. Approve the Slack workspace installation.
4. Pair the workspace with the correct Rankability organization.
5. Mention Serena in a Slack channel or thread and name the client you mean.

The pairing belongs to the organization, not one client. Serena resolves named clients within that organization and retains the Slack thread as conversation context. Supported capabilities in Slack can differ from in-app Chat. Read operations are broader; actions that change client strategy or an external system require the approval shown in Slack, and some workflows still hand off to the app.

The **Slack incoming webhook** fields in client or notification settings are separate. Those webhooks send configured alerts to a channel; they do not install Serena as an interactive Slack assistant.

Disconnecting Serena for Slack removes the organization pairing. It does not remove a separately configured alert webhook.

## Hand off supported work to Asana

Project-management connections are authorized once for the Rankability organization, then mapped per client. When Asana is connected and the selected client has a destination, supported Activity cards and monitoring alerts can create linked Asana tasks. A Copywriter project can also be sent from its editor.

Serena does not send every recommendation automatically, and Asana completion sync is limited to the supported linked item type. See [Connecting Rankability to Asana](/account-and-settings/connecting-asana) for setup, exact actions, and synchronization boundaries.

## External OAuth apps and API clients

Organization **Connected apps** can also list assistants or integrations authorized through Rankability OAuth. Each entry shows the granted scopes, such as reading clients, running Researcher, or creating content.

Review the scopes before authorization and revoke access when the app is no longer required. Revoking an app prevents future API access but does not delete work the app already created inside Rankability.

## Security and client boundaries

* Select the client before connecting private data or adding sources.
* Use the least-privileged service account and OAuth scopes that support the job.
* Verify the property, site, profile, Drive file, Slack workspace, and Rankability organization during setup.
* Disconnect former vendors and team tools promptly.
* Treat an answer as grounded only when the required connection is healthy and the relevant date range or source is available.
* Keep legal, medical, financial, personnel, and credential data out of sources unless your organization has explicitly approved that use.

## Troubleshooting

* **A property is missing** — Sign in with an account that has access, then reconnect or finish property selection.
* **The connection says it needs attention** — Complete setup or reauthorize it; an expired token cannot provide current data.
* **Google Drive is not shown** — The source option is configuration-dependent. Use another supported source type rather than assuming all accounts have it.
* **Serena does not appear in Slack** — Confirm the Serena for Slack card is enabled and connected, the app is present in the workspace, and you mentioned it in the channel or thread.
* **A Slack action is unavailable** — Ask for the evidence or recommendation, then follow the handoff to the app. Slack and in-app Chat do not expose identical execution surfaces.
* **Data is empty immediately after setup** — Wait for the initial sync and verify the selected property and date range.

## Related articles

* [Serena sources and data connections](/serena/advisor-knowledge-base-and-data-connections)
* [Using Serena chat](/serena/using-advisor)
* [What Serena can do](/serena/what-serena-can-do)
* [Connect client Google services](/account-and-settings/connecting-client-google-services)
* [Track data integrations overview](/track/data-integrations-overview)
* [Managing team and client access](/account-and-settings/managing-team-and-client-access)
* [Connecting Rankability to Asana](/account-and-settings/connecting-asana)


# Using Activity

Use client Activity to review Serena’s suggestions, current work, alerts, human handoffs, outputs, and measured outcomes.

**Activity** is the client-level record of work Serena recommends, work in progress, monitoring alerts, items waiting for you, and completed outputs. It is not a manually managed Kanban board: Serena advances supported work through its lifecycle, while you choose what to start, dismiss, review, publish, or assign.

## Open Activity

Activity currently has no entry in the navigation. The page is still available and keeps its full record, but you reach it directly rather than through a menu:

* Open the client's Activity URL, or a link you already saved or bookmarked.
* During first-run onboarding, Rankability links to it as **Go to your board** and as **your board** while it hands over results.

Day-to-day, the changes that used to bring you here now surface on the agency **Today** page, which leads with the client change most worth your attention. See [Understanding Today and Performance](/getting-started/understanding-the-dashboard). Open Activity itself when you want the complete per-client record rather than the day's queue.

## Activity views

### Priority

Priority is the working view. It shows:

* **Your turn** — items waiting for a connection, setup choice, review, publishing decision, assignment, or another human action;
* **In progress** — supported work Serena or a Rankability tool is currently processing;
* **Alerts** — a summary of critical or warning monitoring conditions;
* **Recommended next** — up to three of the strongest current suggestions.

An empty lane is a valid state. “Nothing needs you right now” means no current card is blocked on a human decision; it does not mean the client has no data or opportunities.

### Alerts

Alerts contains grouped critical and warning monitoring findings. Alerts remain separate from your personal task queue so an advisory condition does not appear as work already assigned to you. Review the evidence and suggested next step before turning an alert into execution.

### Suggested

Suggested contains distinct opportunities Serena has queued. Open a card to understand its origin, rationale, proposed result, ownership, and any displayed usage impact.

Choose **Start** to review the concrete action before it runs. Metered or consequential work uses the confirmation shown by the product. Choose **Dismiss** when a suggestion is irrelevant or intentionally out of scope; dismissal removes it from the queue rather than completing it.

### History

History contains completed and measuring work, newest first. A finished card can include a direct link to its report, draft, or other output. Measuring cards can show a before-and-after window and a later outcome such as improving, flat, regressing, or too early to judge when the required evidence is available.

## Read a card

A card can include:

* a short client-specific task number;
* the action-oriented title and origin;
* a supporting summary;
* whether Serena or you own the next step;
* the latest update time;
* the current usage-impact information;
* output links, connection status, publishing status, assignment status, measurement, and outcome.

Open the card for the full explanation and available controls. Controls depend on the task type and stage; there is no general drag-and-drop stage control.

## Start suggested work safely

1. Open the suggestion and confirm that it belongs to the correct client.
2. Review the page, keyword, location, scope, reason, and output Serena proposes.
3. Check the usage explanation. A Page Auditor card shows its relative impact. A content card explains when usage is recorded and when pending work is released.
4. Select **Start** and review the confirmation.
5. Confirm only when the scope and usage impact are correct.

Starting does not always mean Serena finishes the entire workflow without you. Page audits can run in progress. A content suggestion can create and research a Copywriter project, then hand it to **Your turn** so you can configure the target, brief, and tone and generate the draft.

## Handle Your turn

The card explains the required human action. Depending on the work, you may need to:

* connect or finish setting up GSC, GA4, or GBP;
* open a prepared Copywriter project and generate the draft;
* review an output artifact;
* publish through a connected WordPress or Webflow destination;
* assign the work through a connected project-management destination.

Publishing and assignment use explicit confirmation. A successful publish can move the card into measurement with a before-and-after snapshot. A successful assignment records the external provider and, when available, a link to the external task.

## Assign supported work to Asana

Asana must be connected for the organization and the selected client must be mapped to an Asana project. On an eligible Activity card:

1. Open the card and review the work and destination.
2. Choose **Assign**.
3. Review the **Assign to project tool** confirmation.
4. Choose **Confirm & assign**.

The Asana task includes the Activity summary, a direct link back to Rankability, and related Copywriter links when they exist. Assigning the same linked item again reuses the existing handoff instead of silently creating another task.

Supported Activity assignments can sync completion with their linked Asana task. This does not apply to every external task or every Rankability project, and completing the task does not publish content. See [Connecting Rankability to Asana](/account-and-settings/connecting-asana) for setup, mapping, and the exact synchronization boundaries.

## Interpret completion and measurement

**Done** means the supported workflow finished or the card reached its completion state. It is not proof that a website, ranking, conversion, or external system changed unless the card records that action and evidence.

Measurement needs enough time and connected data. “Too early” or an empty snapshot is not a failure. Wait for the comparison window and confirm the relevant GSC, GA4, Tracker, or other evidence is available before judging the outcome.

## Troubleshooting

* **Activity does not load** — Refresh once. If it continues, contact support with the client, approximate time, visible error, and task number if known.
* **A started card remains In progress** — Open the linked tool or report and check its actual status. Do not start a duplicate run while an existing run is pending or active.
* **A card is in Your turn but has no expected action** — Open the card details and verify the required integration and output link. Report the task number if the control is still absent.
* **Publishing or assignment is unavailable** — Connect or finish the relevant destination in client settings.
* **Measurement is empty** — Confirm the output was published, the comparison window has elapsed, and the required performance connection has usable data.
* **The same idea appears more than once** — Activity removes exact normalized suggestion duplicates in the interface, but materially different cards can share a theme. Compare their origin and proposed output before dismissing one.

## Related articles

* [Using Serena for repeatable workflows](/serena/how-serena-replaces-sops-and-training)
* [What Serena can do](/serena/what-serena-can-do)
* [Using Serena chat](/serena/using-advisor)
* [Using Serena with connected apps](/serena/serena-integrations)
* [Create a content project](/copywriter/creating-a-content-project)
* [Usage limits reference](/account-and-settings/credit-costs-reference)
* [Connecting Rankability to Asana](/account-and-settings/connecting-asana)


# Using Automate

Create recurring content schedules, queue qualified Research topics, control delivery, and review monitored knowledge-source changes in Automate.

Use **Automate** to run supported recurring workflows for one client. The current workspace includes two distinct automations:

* **Create content on a schedule** works through an ordered topic queue and saves each generated project to the selected destination.
* **Keep knowledge base current** checks approved website sources for changes and waits for human review before replacing saved knowledge.

Automations remain scoped to the selected client. Confirm the client, topics, sources, destination, and cadence before turning one on.

## Create a content schedule

1. Select the client and open **Automate**.
2. Turn on **Create content on a schedule** or choose **Settings**.
3. Choose **Daily**, **Weekly**, or **Monthly**. The cadence creates one new Copywriter draft each day, week, or month from the next pending topic. It does not refresh keyword data or work through the whole queue at once, so a long queue takes as many runs as it has topics.
4. Add one manual topic per line. These topics are the fallback after the Research queue is empty.
5. Choose where finished drafts should be saved: **Projects**, **Projects + WordPress**, **Projects + Webflow**, or **Projects + GitHub pull request**.
6. Complete any required destination connection, review the settings, and select **Turn on automation**.

The Automate header shows how many content schedules are active against the subscription allowance. Turning a schedule off stops future scheduled runs without deleting its settings, queue, or created projects.

For WordPress or Webflow, verify the correct client connection before enabling delivery. GitHub delivery requires a connected repository and an approved existing Markdown or MDX article folder. It creates a reviewable pull request and does not merge it automatically.

## Queue saved Research topics

Create the content schedule before sending topics to it. Then:

1. Open **Research → Saved research** for the same client.
2. Open the saved list and select up to 100 qualified keywords.
3. Choose **Add to Automate**.
4. Select the intended content schedule.
5. Add optional article direction for each selected topic.
6. Confirm the queue action.

Adding a topic only creates a queue item. It does not generate content or record a completed usage event. Normal scheduled-work rules apply when Rankability later starts the draft.

The same saved Research keyword cannot be added to the same schedule twice. A similar phrase or a keyword from another list can still be a separate item, so remove semantic duplicates before queueing them.

## Manage the Research queue

Open the content schedule's **Settings** to review its queue. Pending Research topics run before manual fallback topics.

For a pending item, you can:

* move it up or down in the queue;
* edit and save its optional content guidance; or
* remove it before generation starts.

To clear several at once, select the pending items you want — **Select all pending** selects them all — then choose **Remove selected**. **Remove all pending** clears the whole pending list in one action. Removal applies to pending items only; a topic that is already running or completed keeps its record.

A queue item can be **Pending**, **Running**, **Completed**, or **Failed**. Open the created draft or content project when a project link is available. If an item failed before creating a project, use **Retry topic** after correcting the underlying problem. Do not add the same topic again merely because a scheduled run is still active.

When the Research queue becomes empty, the schedule uses the manual fallback topics in its settings. Add more qualified Research topics when you want deliberate queue order and topic-specific guidance.

## Keep the knowledge base current

The knowledge-monitoring automation is separate from scheduled content:

1. Open **Automate** and choose **Settings** for **Keep knowledge base current**.
2. Select the saved website pages that should be monitored.
3. Choose the available monitoring cadence and save the automation.
4. Use **Check now** when you need an immediate comparison.

When a monitored page changes, **Review changes** compares the saved knowledge with the live page. Apply the update only when the new content is correct, or dismiss it to keep the approved saved version. Detection alone never replaces the source Serena uses.

Permanent URL moves require a separate redirect decision. Review the original and destination URLs before updating the source. A content difference at the destination can still require its own review after the URL is changed.

See [Serena sources and data connections](/serena/advisor-knowledge-base-and-data-connections) for source eligibility, processing states, and knowledge-review boundaries.

## Usage and safeguards

Adding or reordering queue items does not generate content. Scheduled tracking and monitoring are recorded separately from ordinary on-demand work and are not blocked by the pooled on-demand windows. Provider quotas, connection failures, request-rate controls, schedule allowances, quality checks, and other operational safeguards can still delay or stop a scheduled run.

Review every generated draft before publishing it. A completed automation proves that the configured Rankability workflow reached its saved result; it does not prove that an external website changed unless the project records a successful delivery or publishing result.

## Troubleshooting

* **Add to Automate is unavailable** — Confirm that you are in a saved Research list, selected at least one row, and already created a content schedule for the same client.
* **A schedule is missing from the picker** — Return to the intended client and create or verify the schedule in Automate. Schedules cannot receive topics from another client.
* **A topic says it is already queued** — Open that schedule's Research queue. Existing membership is reused instead of creating a duplicate item.
* **A schedule is on but no run is planned** — Confirm that it contains a pending Research topic or a valid manual fallback topic and that the schedule is within the active allowance.
* **A destination is unavailable** — Reconnect the selected WordPress, Webflow, or GitHub destination and verify that it belongs to the current client.
* **A topic failed** — Read the saved error, correct the source, destination, or setup problem, then use **Retry topic** when the item offers it.
* **A monitored page changed but Serena still uses the old text** — Open the pending review. Rankability preserves the approved version until you apply the change.

## Related articles

* [Managing keyword lists](/researcher/managing-keyword-lists)
* [Creating a content project](/copywriter/creating-a-content-project)
* [Exporting and publishing content](/copywriter/exporting-your-content)
* [Serena sources and data connections](/serena/advisor-knowledge-base-and-data-connections)
* [Understanding billing and usage](/account-and-settings/understanding-billing-and-credits)


# Getting started with Researcher

Choose the right Researcher workflow, evaluate keyword evidence, and save useful opportunities for content creation or tracking.

Choose the right Researcher workflow, evaluate keyword evidence, and save useful opportunities for content creation or tracking.

Researcher helps you discover, measure, compare, and organize keyword opportunities for the selected client. It opens on a focused **Keyword report** and keeps the broader research tools available in the same area.

## Before you start

Select the correct client and define the market you are researching. Depending on the workflow, prepare a seed topic, keyword list, client domain or URL, and competitor domains. Confirm the location and language before running research because they can change the returned data.

## Research workflows

* [**Keyword report**](/researcher/analyze-keywords) — Analyze one exact keyword, or expand the batch option when you already have a bounded list.
* [**Discover**](/researcher/discover-keywords) — Expand a seed topic into related keyword ideas and saved research.
* [**Explore**](/researcher/explore-domain-keywords) — Review keywords associated with a domain or URL.
* [**Content gaps**](/researcher/find-keyword-gaps) — Compare the client’s keyword coverage with competitors.
* [**Lists**](/researcher/managing-keyword-lists) — Organize and revisit saved keywords.

Rankability fills the country from the client's location and then its domain, and says so beneath the control when it does. Change it when you want a different market; that choice overrides the client default for the run. When useful, expand **Search location** to add a city or region.

## Turn results into a decision

1. Check that the returned keywords match the client, audience, location, and intended search problem.
2. Compare volume, difficulty, cost-per-click, intent, and the score displayed in the current view.
3. Inspect the actual search landscape before treating a metric as proof that a keyword is a good fit.
4. Save useful keywords to a list, then use them in a content or tracking workflow.

## Understand usage

Research actions show usage impact before they start. Discovery, batch analysis, domain exploration, history, and content-gap analysis are included in full-platform pooled usage. Review the scope before confirming a large run.

## Understand the scores

The main Researcher tables use **Opportunity score** to help prioritize keywords. **KO Score** appears in Keyword Overview and is a separate score. Do not transfer a threshold from one score to the other. Keyword metrics are estimates and can be missing or delayed; a blank value does not automatically mean zero.

## If the results are not useful

* Make the seed topic more specific or correct the location and language.
* Remove irrelevant domains or keywords and rerun a narrower comparison.
* Check whether the operation failed or whether only a source metric is unavailable.
* Contact support with the client, workflow, input, time, and visible error if a run repeatedly fails.

## Next steps

* [Keyword opportunities and scoring](/researcher/keyword-opportunities-and-scoring)
* [Create content from a target keyword](/copywriter/creating-a-content-project)
* [Set up keyword tracking](/track/setting-up-keyword-tracking)
* [Usage limits reference](/account-and-settings/credit-costs-reference)


# Keyword opportunities and scoring

Interpret Researcher Opportunity, domain Performance, keyword difficulty, and Keyword Overview KO Score without mixing their meanings.

Rankability uses several keyword metrics for different decisions. A high number in one column does not mean the same thing as a high number in another. Confirm the label and the workflow before prioritizing a keyword.

## Researcher Opportunity score

**Opportunity** is a 0–100 prioritization score in Researcher result tables. A higher score means the keyword looks more attractive under the currently available market data. It combines:

* search volume, weighted on a logarithmic scale;
* keyword difficulty, with easier terms receiving more weight;
* intent, with transactional and commercial intent weighted more heavily than informational or navigational intent;
* CPC as an additional commercial-value signal.

Opportunity is not a forecast of traffic, revenue, or the probability that your client will rank. It does not know every strategic constraint, conversion rate, content requirement, or competitive advantage.

When search volume is missing or zero, Rankability shows a dash instead of manufacturing a score. Treat that as **insufficient demand data**, not as a score of zero and not as proof that nobody searches for the topic.

## Domain Performance score

The **Perf.** column in Explore domain is also 0–100, but it answers a different question: how strongly is the analyzed domain already performing for this keyword? It combines the domain’s current position, search volume, and keyword difficulty.

Use Performance to understand the analyzed site’s existing footprint. Use Opportunity to judge whether a term may deserve further investigation for your client. A competitor can have high Performance on a keyword that is a poor fit for your client, and a high-Opportunity keyword can have low Performance because the analyzed site barely ranks for it.

## Keyword difficulty

**KD** estimates how competitive a keyword may be. Lower values generally indicate an easier market, but KD is one input rather than a go/no-go rule. It does not account fully for your client’s topical authority, assets, local relevance, link profile, content quality, or business value.

Compare KD only within the same country and data context. Data-provider updates and changing SERPs can move it over time.

## Keyword Overview KO Score

**KO Score** belongs to Keyword Overview, not the main Researcher table. It is a deeper 0–100 assessment of the keyword itself, before any particular site's authority is considered, and it keeps two questions deliberately separate:

* **Value** — how worth winning the keyword is, from search intent, CPC, and search volume.
* **Attainability** — how defended the current first page is, from keyword difficulty, the median domain strength and referring domains of the top three and top ten results, how many strong domains hold the page, and the special results competing for the same space.

Demand cannot make a defended SERP easy, so a high value score does not lift a low attainability score. Keyword Overview also names the **limiting factor** so you can see which half is holding the assessment back.

KO Score grades the opportunity from excellent through very hard. When the first page does not supply enough competitive evidence, Rankability reports insufficient data instead of a score — a missing difficulty value is not evidence that a keyword is easy. Reports produced before the current model are labelled as using the legacy scoring model; do not compare their numbers with current ones.

Unlike Researcher Opportunity, KO Score uses current SERP competition and feature context. Do not treat a Researcher Opportunity filter as a KO Score filter or compare the two values as though they were produced by the same model.

## A practical prioritization workflow

1. Run Discover, Explore domain, Keyword gap, or another Researcher mode in the correct country.
2. Remove keywords that are irrelevant to the client’s offer, audience, location, or content strategy.
3. Use Opportunity, volume, KD, CPC, and intent to create a shortlist.
4. Open important candidates in **Keyword Overview** and review KO Score, the competitive SERP, intent, and ranking-page types.
5. Check whether the client already ranks, already has a suitable page, or would create unnecessary overlap with existing content.
6. Save approved terms to a keyword list, create content, or add them to Track.

For existing pages, first-party Search Console performance and a live rank check can be more decision-relevant than a third-party opportunity estimate. For a new topic, strategic fit and the type of pages Google rewards can matter more than a small difference between two scores.

## Example

Suppose two keywords have Opportunity scores of 78 and 72. The first is informational and only loosely related to the client’s service; the second is commercial, matches a profitable service page, and has a SERP the client can realistically compete in. The score alone favors the first keyword, but the complete evidence can make the second the better priority.

## Common mistakes

* **Choosing the highest score automatically** — Recheck intent, relevance, the existing site, and the SERP.
* **Treating a dash as a bad score** — A dash means the score lacks a usable volume signal.
* **Comparing countries** — Run both candidates in the same market before comparing their metrics.
* **Using Performance as opportunity** — Performance describes the analyzed domain’s current footprint.
* **Using Opportunity as KO Score** — Open Keyword Overview when you need the deeper SERP-aware calculation.
* **Treating estimates as current client performance** — Use GSC, Track, and live rank evidence for that question.

## Related articles

* [Analyze keywords](/researcher/analyze-keywords)
* [Explore domain keywords](/researcher/explore-domain-keywords)
* [Find keyword gaps](/researcher/find-keyword-gaps)
* [Manage keyword lists](/researcher/managing-keyword-lists)
* [Create a content project](/copywriter/creating-a-content-project)
* [Set up keyword tracking](/track/setting-up-keyword-tracking)


# Discover keywords

Use AI-powered keyword discovery to generate hundreds of keyword ideas from a single seed topic, with automatic clustering and scoring.

Use AI-powered keyword discovery to generate hundreds of keyword ideas from a single seed topic, with automatic clustering and scoring.

Start with a real client, a focused topic, and the target country. Choose **Discover** from Research, enter one seed topic, and review the displayed usage impact before starting. Rankability saves longer-running work under recent or saved research.

## How Discover keywords works

The Discover keywords mode uses AI to expand a seed keyword into a comprehensive list of related queries. It generates seed variations, expands them using search data providers, filters for relevance, and clusters similar keywords together.

## Running a discovery

1. Select **Discover**.
2. Enter a seed keyword (e.g., “project management software”).
3. Confirm the country, which Rankability fills in from the client's location or domain, and add a city or region when the market requires it.
4. Start the research using the action shown in the current interface.

The system will generate seed variations using AI, query search data providers for each variation, filter out irrelevant results, and return a scored, clustered list.

Research runs in the background. You can leave the page and return through recent research when the job completes. Do not submit the same topic again merely because the browser was closed.

## Reading your results

Each keyword in the results table shows:

* **Keyword** — The search query.
* **Search volume** — Estimated monthly searches.
* **Difficulty** — How hard it is to rank (0–100).
* **CPC** — Average cost per click, indicating commercial value.
* **Intent** — Informational, navigational, commercial, or transactional.
* **KO Score** — Overall keyword value score.
* **Opportunity Score** — Balance of volume, difficulty, and intent.

The scores and metrics are decision aids, not forecasts. Provider coverage varies by topic and country, and clustering groups similar opportunities without deciding which page your site should publish. Review each saved keyword for business relevance and search intent.

## Tips for better results

* Use specific seed keywords rather than single words. “Email marketing for ecommerce” will return more targeted results than just “email.”
* Sort by Opportunity Score to quickly find keywords that are both valuable and achievable.
* Use the cluster view to group related keywords and plan content around topic clusters.

## Turn discovery into a workflow

1. Remove irrelevant terms and inspect unexpected clusters.
2. Select keywords that serve one clear client goal.
3. Save them to a named list so they remain available after you leave the result.
4. Choose a primary query for a Copywriter project or send the appropriate terms to Track.
5. Preserve separate lists when keywords target different countries, funnels, or content types.

## Common issues

* **The result is too broad** — Use a more specific seed that includes the audience, problem, product type, or use case.
* **The result is too small** — Confirm the country and try a broader seed, but do not merge unrelated intent merely to increase the count.
* **Research is still running** — Check recent research for its current status. Avoid duplicate submissions.
* **A source-specific mode is missing** — Use the modes currently available in the interface; availability can vary by supported workflow.
* **Saved keywords disappear from the view** — Check whether **Hide saved** is active, then open [keyword lists](/researcher/managing-keyword-lists).

## Related articles

* [Getting started with Researcher](/researcher/getting-started-with-researcher) — Overview of all research modes and scores.
* [Managing keyword lists](/researcher/managing-keyword-lists) — Save and organize your discovered keywords.
* [Creating a content project](/copywriter/creating-a-content-project) — Turn a qualified topic into a brief or draft.


# Analyze keywords

Evaluate a specific set of keywords with detailed search volume, difficulty, CPC, and intent data to prioritize your SEO strategy.

Evaluate a target keyword with detailed search volume, difficulty, CPC, and intent data to prioritize your SEO strategy. Expand the batch option when you already have a bounded keyword list.

Open **Research → Keyword report**, enter one exact query, and confirm the country. Expand **Search location** when a city or region matters. If you already have a bounded keyword set from a client, campaign, export, or brainstorm, open the keyword-list option. Clean obvious duplicates and confirm the displayed usage impact; each submitted keyword adds workload.

## How Analyze keywords works

The Analyze keywords mode lets you paste or enter a list of specific keywords to get detailed metrics for each one. Use this when you already have keywords in mind and want to evaluate their potential before creating content or setting up tracking.

## Running an analysis

1. Select **Keyword report**.
2. Enter one exact keyword, or open **Need to analyze a keyword list?** to paste a batch.
3. Confirm the target country and optional city or region.
4. Start the analysis using the action shown in the current interface.

The system queries search data providers and returns detailed metrics for each keyword.

For a batch, separate keywords with commas or new lines or use the available upload control. Rankability shows the recognized keyword count before the run. If that count is higher than expected, correct the input before approval. Use **Discover** when you need broader discovery from one topic rather than metrics for a list you already have.

## What you get

For each keyword, you will see search volume, keyword difficulty, CPC, search intent classification, KO Score, and Opportunity Score. You can sort the results by any column to prioritize your targets.

Use these metrics comparatively rather than as promises. Search volume, CPC, and difficulty are provider estimates for the selected market. Opportunity and KO scores help prioritize within Rankability, but they do not guarantee traffic or rankings. Review the actual query, intent, and fit for the client before saving it.

## Review and save the result

1. Filter or exclude terms that do not match the client or page goal.
2. Sort by the metric relevant to your decision, then inspect the full row instead of selecting on one score alone.
3. Select qualified keywords and choose **Save to list**.
4. Create a descriptive list or add them to an existing one.
5. Continue to content creation or tracking only after verifying location and intent.

The results view can also expose recent analyses and saved-keyword status. Hiding already saved keywords changes the view, not the underlying analysis.

## Common issues

* **Analyze is disabled** — Enter at least one valid keyword and correct any validation error.
* **The keyword count is wrong** — Remove accidental commas, blank fragments, or duplicated pasted blocks before running the batch.
* **Metrics are unavailable** — Very new, narrow, or low-volume terms may have limited provider data. Keep the keyword only when it is strategically relevant.
* **The market is wrong** — Start a new analysis with the correct country; do not reinterpret localized metrics as another market.
* **The usage impact is unexpected** — Compare the recognized keyword count with the estimate and [usage limits reference](/account-and-settings/credit-costs-reference).

## When to use Analyze vs. Discover

* Use **Discover** when you need fresh keyword ideas around a topic.
* Use **Analyze** when you have a specific list and need data to make decisions.

## Related articles

* [Getting started with Researcher](/researcher/getting-started-with-researcher) — Overview of all research modes.
* [Discover keywords](/researcher/discover-keywords) — AI-powered keyword idea generation.
* [Managing keyword lists](/researcher/managing-keyword-lists) — Organize qualified results and continue to another workflow.


# Explore domain keywords

Find the organic keywords a domain, subdomain, subfolder, or exact URL ranks for and turn the useful results into Rankability work.

Use **Explore domain** to find the organic keywords associated with a competitor, your own site, a subdomain, a subfolder, or one exact URL. The result is a filterable keyword table that you can save, export, open in Keyword Overview, turn into content, or add to Track.

## Before you start

Choose the country whose search market you want to analyze. Country changes the underlying keyword and ranking context, so compare domains only when they use the same country.

Decide how narrowly to scope the lookup:

* **Root domain** analyzes the whole site.
* **Subdomain** limits the lookup to a subdomain such as `support.example.com`.
* **Subfolder** limits it to a path such as `example.com/blog`.
* **Exact URL** analyzes one page and does not include historical domain trends.

The **Analyze** button displays usage impact before a lookup. Explore Domain is included in full-platform pooled usage. Failed or empty analyses do not record completed activity.

A domain’s historical organic overview is a separate request. Cached history loads automatically. When fresh history is required, the result view asks you to confirm **Load history** before Rankability requests it.

## Run a domain exploration

1. Select a client and open **Research**.
2. Choose **Explore domain**.
3. Enter the domain or URL without adding search operators or unrelated text.
4. Select **Root domain**, **Exact URL**, **Subdomain**, or **Subfolder**.
5. Select the country.
6. Review the amount on **Analyze**, then start the analysis.

Analysis commonly takes 30–60 seconds. Keep the page open while it runs. You can cancel the request, and Rankability warns you if you try to switch research modes during an active analysis.

Previous lookups appear under **Recent explorations**. Opening one restores its saved result when available instead of requiring you to rebuild the query.

## Read the results

The results table includes:

* **Keyword** — the query associated with the analyzed target.
* **URL** — the page ranking for that keyword.
* **Pos** — the estimated organic position.
* **Trend** — available search-volume history for that keyword.
* **Volume**, **KD**, and **CPC** — estimated demand, difficulty, and paid-search value for the selected country.
* **Intent** — informational, commercial, transactional, or navigational intent.
* **Perf.** — a 0–100 score combining the target’s position, search volume, and keyword difficulty. Use it to identify keywords already contributing to this domain’s organic footprint.
* **Opp.** — Rankability’s Researcher Opportunity score. Use it to compare potential targets, not to measure how well the analyzed domain currently performs.

For a root domain, subdomain, or subfolder, **Organic keyword overview** can show total ranking keywords, estimated traffic, estimated traffic value, position distribution, and historical movement. If the selected client has matching Search Console data, you can enable its overlay. Exact URL mode instead summarizes that page’s current keyword set because domain-level history does not apply to a single page.

All third-party volume, traffic, cost, difficulty, and position values are estimates. They are not a replacement for the client’s own Search Console data.

## Narrow the list

Use the include and exclude boxes to focus on or remove words and phrases. Additional filters cover position, volume, difficulty, and intent. Sort a column to surface strong existing performers or possible new targets.

A useful competitor workflow is to filter for positions 11–50, remove irrelevant brand terms, and then compare relevance, intent, difficulty, and Opportunity score. Do not select a keyword only because it has the largest volume or highest score.

## Save or continue the work

Select one or more rows and choose **Save to list** to create a keyword list or add to an existing one. Saved keywords can be hidden from the table so the remaining opportunities are easier to review.

Each row also lets you:

* open **Keyword Overview** for a deeper SERP and KO Score analysis;
* create a Copywriter project;
* add the keyword to Track;
* add it to a new or existing keyword list.

Use **Export** to copy the current results, download CSV, or continue through Google Sheets. Exported estimates retain the country and lookup context of the analysis; they do not become live data after export.

## Troubleshooting

* **No keyword data returned** — Check the target type. A page entered as a root domain, or a root domain entered as an exact URL, can produce the wrong scope. Very new, small, blocked, or low-visibility targets may have no available third-party data.
* **The analysis fails** — Retry once after confirming the domain and country. If it fails again, send support the target, target type, country, approximate time, and visible error.
* **The historical overview is missing** — It is unavailable for Exact URL mode. For other scopes, use **Load history** if the card is waiting for confirmation, or check its error or usage-limit state.
* **Search Console is not available** — The overlay appears only when the selected client has a matching, usable GSC connection.
* **A number differs from GSC** — Treat the exploration value as a market estimate and GSC as the client’s first-party performance record.

## Related articles

* [Getting started with Researcher](/researcher/getting-started-with-researcher)
* [Keyword opportunities and scoring](/researcher/keyword-opportunities-and-scoring)
* [Find keyword gaps](/researcher/find-keyword-gaps)
* [Manage keyword lists](/researcher/managing-keyword-lists)
* [Create a content project](/copywriter/creating-a-content-project)
* [Set up keyword tracking](/track/setting-up-keyword-tracking)


# Find keyword gaps

Compare your client’s domain against competitors to discover keywords where competitors rank but your client does not.

Compare your client’s domain against competitors to discover keywords where competitors rank but your client does not.

Use gap analysis when the client's canonical domain and true search competitors are known. Confirm the target country and enter competitor domains, not individual page URLs or brand names. Each competitor adds workload, so remove duplicates and irrelevant domains before starting.

## How Find keyword gaps works

The Find keyword gaps mode compares your client’s domain against one or more competitor domains. It identifies keywords where competitors rank but your client does not, revealing untapped opportunities.

## Running a gap analysis

1. Select **Find keyword gaps** from the research mode tabs.
2. Your client’s domain is pre-filled from the client settings.
3. Enter one or more competitor domains to compare against.
4. Confirm the market. Rankability initially resolves it from the client's saved location and can fall back to a country-code domain such as `.co.uk`; you can override the country before running the comparison.
5. Click **Find gaps**.

The system uses domain intersection data to find keywords where competitors have rankings but your client does not.

The expected result is a competitor-gap dataset for the selected market. A missing keyword means Rankability's current provider data did not find the client ranking in the compared scope; it is not proof that the domain has never ranked or cannot rank.

If the provider returns zero usable gap results—or every returned row is removed by the safety and relevance filters—the result is preserved as an empty search state. Change the market or competitor set before retrying instead of repeatedly submitting the same scope.

## Prioritizing gaps

* Sort by **search volume** to find the highest-traffic opportunities first.
* Filter by **difficulty** to focus on achievable keywords.
* Look for keywords where multiple competitors rank — these are likely important topics in your industry.
* Save promising keywords to a list, then use them to create content projects in the Copywriter.

## Review the gaps safely

1. Exclude navigational brand terms that belong only to the competitor.
2. Check intent and business relevance before using volume or difficulty.
3. Look for themes supported by more than one competitor, but confirm that the client can credibly satisfy them.
4. Save qualified terms to a dedicated list with the market and competitor set in its name.
5. Use [Explore domain keywords](/researcher/explore-domain-keywords) when you need to understand one competitor rather than the intersection.

Gap analysis does not recommend copying a competitor or creating one page per keyword. Cluster close variants, map them to existing pages, and choose whether the next action is content, optimization, or tracking.

## Common issues

* **The client domain is wrong** — Correct client settings before rerunning; the comparison depends on the canonical domain.
* **A competitor returns no useful gaps** — Confirm the domain and country. The competitor may have little overlapping organic visibility in that market.
* **The result is empty** — Review the recorded reason and scope. Empty usable results do not add completed-work usage; adjust the market or competitors before trying again.
* **Results are dominated by branded terms** — Filter or exclude them and evaluate only queries the client can legitimately target.
* **The impact is higher than expected** — Count the unique competitors and remove irrelevant domains; see [Usage limits reference](/account-and-settings/credit-costs-reference).
* **A known client ranking appears as a gap** — Check location, freshness, and URL scope. Provider datasets and live rankings can differ.

## Related articles

* [Getting started with Researcher](/researcher/getting-started-with-researcher) — Overview of all research modes.
* [Explore domain keywords](/researcher/explore-domain-keywords) — Research individual competitor domains.
* [Managing keyword lists](/researcher/managing-keyword-lists) — Save and organize gap analysis results.


# Managing keyword lists

Save, organize, and manage your keyword research results with saved lists for easy access and export.

Save, organize, and manage your keyword research results with saved lists for easy access and export.

Keyword lists belong to the selected client workspace and are shared with organization members who can access that client. Confirm the client before saving, because a list is not an organization-wide clipboard and cannot substitute for correct client access.

## Saving keywords to a list

After running any research mode, you can save keywords to a named list for later reference. Select the keywords you want to keep, then click **Save to list** and choose an existing list or create a new one.

Use a name that captures the topic, market, intent, or source, such as “US commercial HVAC gaps.” Before saving, remove irrelevant and accidental duplicates. Rankability can show which results are already saved so you can avoid adding the same keyword repeatedly.

## Working with saved lists

* **View lists** — Access your saved lists from the Researcher sidebar or the lists tab.
* **Add keywords** — Keywords can be added to existing lists from any research mode.
* **Remove keywords** — Open a list and remove individual keywords you no longer need.
* **Delete lists** — Remove entire lists when they are no longer relevant.

The **Content** badge means Rankability found a Copywriter project in the same client whose normalized topic exactly matches the keyword and whose saved draft is non-empty. Normalization ignores capitalization and repeated spaces; it does not perform fuzzy, synonym, URL, or semantic matching. The linked project is the most recent exact match. A related article with a different topic can therefore exist without producing the badge.

## Using keywords from lists

Saved keywords can be used across Rankability:

* **Create content** — Use a keyword from your list as the target topic for a new Copywriter project.
* **Create a content batch** — Select multiple keywords and choose **Send to Copywriter** to open the multiple-asset setup with the selected rows already populated.
* **Queue scheduled content** — Select qualified keywords and choose **Add to Automate** to send them to an existing content schedule for the same client. Choose the schedule and add optional guidance for each topic before confirming.
* **Set up tracking** — Add keywords from your list to Track for rank monitoring.
* **Share with your team** — Lists are visible to all team members in the same agency workspace.

## Recommended list workflow

1. Run [Discover](/researcher/discover-keywords), [Analyze](/researcher/analyze-keywords), domain exploration, or gap analysis.
2. Select only the qualified rows and choose **Save to list**.
3. Create a focused list or add the rows to an existing list with the same purpose.
4. Open the list, remove mistakes, and verify the keyword count.
5. Use **Create content** for one keyword, select several and choose **Send to Copywriter** for a multiple-asset batch, or choose **Add to Automate** for an existing content schedule.
6. Export when you need an external review or durable handoff.

Copywriter accepts up to 100 valid topics in one batch. Before starting generation, remove duplicates, confirm the shared language, and choose the intended page format for every row. A prefilled table is a handoff of the selected keywords—not approval to generate every asset unchanged.

Deleting a keyword removes it from the list, not from completed research history or an existing Copywriter/Track project. Deleting a list removes that organizational view; it does not cancel work already created from its keywords.

## Limitations and common issues

* **A list is missing** — Verify the selected client and your access, then clear list filters.
* **A keyword still shows as saved** — It may belong to another list in the same client. Open the lists view to locate it.
* **A Content badge is missing** — Confirm the Copywriter project belongs to the same client, has a non-empty saved draft, and uses the same topic wording. Similar phrases do not count as exact matches.
* **A teammate cannot see the list** — Confirm they have access to the client; use [Managing team and client access](/account-and-settings/managing-team-and-client-access).
* **The next workflow uses the wrong client** — Return to the intended client before creating a project. Never rely on the list name alone.
* **The Copywriter table is empty** — Return to the saved list, reselect the intended rows, and use **Send to Copywriter** again. Confirm that the Copywriter URL and header still show the same client before entering the batch.
* **Add to Automate is unavailable or no schedule appears** — Create a content schedule in Automate for the same client, then return to the saved list and reselect the intended rows.
* **Metrics changed since the list was created** — Saved lists preserve keywords, not a guarantee that provider metrics remain current. Re-analyze when a current decision requires fresh data.

## Related articles

* [Getting started with Researcher](/researcher/getting-started-with-researcher) — Overview of all research modes and scores.
* [Creating a content project](/copywriter/creating-a-content-project) — Turn your keyword research into optimized content.
* [Using Automate](/automate/using-automate) — Queue selected Research topics for scheduled content.
* [Setting up keyword tracking](/track/setting-up-keyword-tracking) — Start monitoring your target keywords.


# Creating a content project

Create one or multiple Copywriter assets by confirming the client, topic, research, workflow, and usage impact.

Copywriter helps you create SEO content that ranks and earns AI citations. It researches pages competing in Google and AI answers, helps create original content in the client's brand voice, and optimizes the draft for topic coverage, clarity, and citation-readiness. The client's **Create** area is the source of truth for active and completed content work.

## Start from the right client

1. Select the client whose brand, website, sources, and integrations should ground the content.
2. Open **Create**.
3. Choose the action that matches the intended outcome:
   * **Create content** starts one new content asset.
   * **Bulk create** starts a reviewed batch from the available bulk action.
   * **Optimize content** analyzes a published page against its target keyword. See [Optimizing existing content](/copywriter/optimizing-existing-content).

Use **Create content** for a single article, commercial or service page, comparison, review, or other focused deliverable. Use **Bulk create** for a reviewed topic or keyword list. Other actions, including Auto-publish, appear only when they are enabled for the account and client.

## Configure one content asset

1. Enter the topic or choose a saved keyword from Researcher.
2. Confirm the output language. Rankability requires an explicit language confirmation before research or generation starts.
3. Add location targeting only when the content should be researched for a specific city or region.
4. Confirm the page format:
   * **Article** for educational, comparison, review, list, or editorial content.
   * **Commercial / service page** for a conversion-focused service, offer, training, course, or similar page.
5. Review the suggested content intent. Rankability uses signals from the topic, but you can correct the selection before research begins. See [Content types: Educate, Discover, Compete, Convert](/copywriter/content-types-reference).
6. Choose the research depth or open the advanced platform selection. Broader research changes the evidence collected and can increase pooled usage impact.
7. Add audience, voice, required coverage, client-inclusion guidance, or other instructions. Custom instructions support up to 5,000 characters.
8. Choose fact-checking behavior when the option appears.

Read the readiness checks before starting. Missing brand voice, sources, sitemap data, or approved assets do not always block creation, but they can reduce the context available for a useful result.

Copywriter can warn when the project's language or location differs from the workspace, the topic's apparent language, or the selected market. For Autopilot, a target that conflicts with a structured service area in workspace knowledge stops before usage is reserved. Choose **Review location** to correct it, or explicitly confirm **Use \[target] anyway** when the different market is intentional. Rankability then uses the confirmed project location for the title, search research, brief, and finished draft.

## Choose how much Serena completes

* **Complete the draft** — Serena runs the Autopilot workflow through research, brief, draft, improvements, fact-checking, and preparation for review. This option appears when Autopilot is enabled. The result still requires human editorial and publishing approval.
* **Review the brief first** — Serena researches and creates a brief for your review. Edit the brief, then decide whether Serena should write the draft or you want to write it yourself.
* **Write it myself** — Serena researches the topic and provides guidance and topics in a fresh editor, but you write the content. Draft generation remains optional.

Workflow availability can depend on account feature settings. Use the choices shown for the selected client rather than assuming every workspace exposes the same automation level.

## Create multiple assets

From **Create**, open the available bulk-create action.

1. Paste one topic per line. Remove commas or semicolons that accidentally combine topics; invalid entries block the review step and duplicates are skipped.
2. Choose **Review batch**. Rankability infers a content goal and page type for each topic and flags lower-confidence suggestions for review.
3. Edit only the suggestions that need correction. Client knowledge is applied automatically and the flow uses its current research defaults.
4. Confirm the displayed batch usage, then choose **Create drafts**. Each valid row creates a complete draft in **Projects**.

Each successfully completed new asset is included in full-platform pooled usage. Remove invalid, duplicate, or unnecessary topics before confirmation. A multiple-asset batch can contain up to 100 valid topics and can have a high usage impact.

## Start a content audit

Open **Audit → Page Content Auditor** to evaluate an existing public page. Use **Optimize content** when you want to import the page directly into a Copywriter project for revision. See [Using Page Content Auditor](/audit/page-content-auditor-guide) before starting or rerunning an audit.

## Review usage and prevent duplicate work

The final confirmation shows the operation, selected coverage, and usage impact. Full-platform work is included and uses the pooled rolling windows. Copywriter Core shows its separate completed-outcome allowances. See the [Usage limits reference](/account-and-settings/credit-costs-reference).

If Autopilot appears to time out while starting, do not immediately click again. Check the recent active-project message or the project's status in **Projects** first; the server may have created the run even if the browser missed the response. Rankability also warns when a recent matching Autopilot project exists so you can open it or deliberately create another run.

Autopilot records completed-work usage after it produces a usable draft. A later optimization, fact-checking, or delivery step can still fail or require review after that point. Images remain user-selected in the editor.

## While a project is processing

A project that is still working shows its current stage on its card in **Projects** — for example **Researching**, **Preparing brief**, or **Writing draft**, or **Queued** with its position when your organization already has runs in progress. The card is not selectable until the project reaches a reviewable state, so you cannot open half-finished work by mistake.

Rankability continues the work on the server. You do not need to keep the project, the **Generation board**, or the browser open for research to finish, for an approved brief to continue into a draft, or for a batch to keep moving. Return to **Projects** when you want the current status.

Use the filters and project states in **Create** to distinguish active, completed, archived, and failed work.

If Projects shows **Projects are temporarily unavailable**, wait a moment and use **Try again**. This message means Rankability could not safely load the project list; it does not mean the projects were deleted. Avoid starting replacement work until the list loads and you can confirm the original project's status.

## Review the result

Available result tabs depend on the project type and completed artifacts. Review the draft or script, brief when present, competitors or sources, factual claims, citations, brand voice, links, and destination preview. A content score is guidance, not publishing approval.

Continue with [Optimizing existing content](/copywriter/optimizing-existing-content), [Reviewing a draft in the editor](/copywriter/running-an-editor-review), [Understanding your content score](/copywriter/understanding-your-content-score), and [Exporting, assigning, and publishing content](/copywriter/exporting-your-content). If your team coordinates delivery in Asana, connect it once and map the client before using **Send to Asana**; see [Connecting Rankability to Asana](/account-and-settings/connecting-asana).


# Optimizing existing content

Analyze a published page against its target keyword and current competitors, then improve the imported content in Copywriter.

Use **Optimize content** when a page is already published and you want to compare it with current search competitors before revising it. Optimize imports and analyzes the existing page; it does not create a second live page or publish changes automatically.

## Start an optimization

1. Select the client that owns the page.
2. Open **Create** to reach the **Projects** workspace.
3. Choose **Optimize content**.
4. Enter the **Target keyword** the existing page should be evaluated against.
5. Enter the public **Page URL**. Confirm that it is the exact page you intend to revise, not only the client homepage or domain.
6. Review the language, location, and research-source summary. Choose **Change** when you need to adjust them.
7. Select **Analyze my page** and approve the displayed estimate.

Google Organic is always included in the competitor research. Other available sources are optional. When the selected client has usable Google Search Console data, Rankability includes it automatically.

## What Rankability analyzes

Rankability retrieves the submitted page, researches current competing results for the target keyword, and prepares the project for review in the Copywriter editor. The completed project can include the imported content, content score, topics and entities, competitor evidence, and editor guidance supported by the available sources.

Optimization does not require a new content brief or a page-intent confirmation. The goal is to evaluate and improve the submitted page, not replace it with a separate new-content workflow.

## Review the result

1. Confirm that the imported page and target keyword are correct.
2. Review the content score as directional guidance, not a guarantee of rankings.
3. Compare the Topics and competitor evidence with the page's real purpose. Do not add an entity merely because a competitor mentioned it.
4. Make focused edits in the editor or ask Serena for a clearly scoped revision.
5. Review factual claims, links, brand voice, and the complete page before exporting or publishing.

The editor does not change the published page until you deliberately use an available publishing workflow or move the revised content into the destination yourself.

## Usage and duplicate work

A completed existing-content optimization is included in full-platform pooled usage. Failed work does not create completed activity. Research-source breadth changes the evidence collected and can increase usage impact.

Before starting the same page and keyword again, return to **Projects** and check whether the original analysis is still processing or already completed. A separate successful optimization is a separate completed usage event.

## Troubleshooting

* **The page cannot be retrieved** — Confirm that the URL is public, uses HTTP or HTTPS, and is not blocked by authentication, a firewall, robots rules, or an unavailable origin.
* **The wrong language or market appears** — Open **Change**, correct the language or location, and verify the summary before starting.
* **Competitor evidence is limited** — Narrow or correct the target keyword and verify that it reflects the page's actual search intent.
* **The analysis appears stuck** — Check the project in **Projects** before retrying. Contact support with the client, URL, keyword, and time if the status does not advance.
* **The usage impact looks wrong** — Stop before repeating the action and review the selected scope and [usage limits reference](/account-and-settings/credit-costs-reference).

## Related articles

* [Creating a content project](/copywriter/creating-a-content-project)
* [Content editor reference](/copywriter/content-editor-reference)
* [Understanding your content score](/copywriter/understanding-your-content-score)
* [Reviewing a draft in the editor](/copywriter/running-an-editor-review)
* [Exporting and publishing content](/copywriter/exporting-your-content)


# Content editor reference

Edit and save a Copywriter draft, use Topics and Serena, review research, manage versions, share, export, or publish.

The Copywriter output view is the working area for a completed draft or a historical YouTube Script project. New YouTube Script projects can no longer be created, but existing projects remain available for editing and export. Use the output view to edit the artifact, compare it with the research and brief, monitor optimization guidance, save recoverable versions, and hand the result to a reviewer or publishing destination.

Open a Copywriter project after its draft is ready.

## Output views

The tabs at the top depend on the project:

* **Draft** or **Script** contains the editable artifact.
* **Brief** shows the generated content brief. Manual and Optimize-existing-content projects do not show this tab when no separate brief belongs to the workflow.
* **Competitors** or **Sources** shows the search, AI, or video material returned during research. Provider-unavailable states mean that source was not collected; they are not evidence that no competitor or result exists.

Tabs and export choices are conditional. Rankability does not create or display an artifact the project did not produce.

## Compare competitors

The competitor table ranks the researched sources by coverage and shows the source, coverage share, the platforms that surfaced it, and a content score where one is available. Your own client domain is labeled so you can see where it sits.

These controls shape the comparison:

* **Sources** limits the table to the platforms you want to compare.
* **Metrics** adds optional columns, grouped into On-page, Off-site, and AI analysis. Selecting a metric never fetches anything on its own; a column reports **Not analyzed** until a measurement exists. Hover a column heading for what that metric counts.
* The **Compare** checkbox on each row includes or excludes that source. The summary strip above the table reports how many are included and, for each selected numeric metric, the median and the range across them.
* **Refresh data** re-measures the saved competitor pages. It does not change the saved search-result set, the brief, or the draft, and a page that fails to measure stays marked unavailable rather than appearing as zero.
* **Load off-site metrics** appears once you select **Domain Score** or **Referring domains**, and fetches those two for the listed pages. Recent results may be reused for up to 24 hours.

Both actions are included in your plan and use no credits, and both wait until the project is complete.

Domain Score is the backlink-based strength of the page's main domain on a 0–100 scale — not a Google metric and not a prediction of rankings. Referring domains counts domains linking to that exact page, with referring subdomains counted separately.

Expand a row for its capture details — when the page was captured, the extraction source, the final and canonical URLs, a reason when a measurement failed, and, once off-site metrics are loaded, their capture time and status. A measurement reads **Measured**, **Not analyzed**, **Unavailable**, **Failed**, or **Unknown (legacy)**; none of those mean the competitor lacks the element, only that Rankability did not record it. Use **Export CSV** when you want the comparison outside Rankability; it includes the off-site capture time when those columns are shown.

These are observed patterns across ranking pages, not causes of ranking. Use them to judge whether your draft is in a sensible range, not as targets to match exactly.

## Edit and save safely

The editor supports headings, links, lists, formatting, and the review/research controls shown in its toolbar. Content auto-saves about two seconds after an edit. The header reports **Saving**, **Saved**, or **Save failed**; select a failed status to retry. You can also select **Save** or press Ctrl+S.

Periodic version checkpoints are created every 15 minutes and retained for 30 days. Before importing content, accepting a large rewrite, or regenerating a draft, open **More actions > Version history** and select **Save current version**. Restoring a version replaces the current editor content, so save the current state first if you may need it. Let a restore finish before editing again — Rankability asks you to wait rather than mixing the two — and if a restore fails, your current draft is left as it was.

Rankability also keeps a local recovery copy for unsaved editor work, but a visible **Saved** state or manual version is the reliable handoff point before closing the page.

## Use the editor sidebar

For article projects, the right sidebar contains:

* **Topics**, including the content score, target range, keyword coverage, placement guidance, topic search, custom topics, and keyword export.
* **Serena**, which can answer questions about the current project and apply a proposed rewrite to the editor. Review the changed passage and use the available restore control when the result is not suitable.

Historical YouTube Script projects continue to use **Create**, **Optimize**, and **Serena**. Optimize includes script-specific description, tags, chapters, and duration information when generated.

On smaller screens, open Serena from the floating action button. Switching sidebar tabs does not intentionally discard the current Serena editor conversation.

The score and topic guidance are editorial signals, not a ranking guarantee. Add missing subjects naturally, verify whether a recommendation fits the audience, and do not force repeated terms merely to raise a score. See [Understanding your content score](/copywriter/understanding-your-content-score).

## Use AI editing actions

Select text, then open the AI actions in the editor toolbar. Supported actions include **Rewrite for clarity** and **Improve quality**. Historical screenshots can show an older contextual menu.

The same menu offers **Add strategic emphasis** under **Improve draft**, which works on the whole draft rather than a selection. It bolds key phrases and leaves your wording alone, then reports how many phrases it bolded and offers an undo. Rankability skips the change when nothing needs emphasis, and if you edited the draft while it was preparing, it asks you to run it again on the current version rather than overwriting your newer edits.

After Serena applies a document-level edit, review the automatic **Before** and **After** comparison. Only changed blocks are emphasized. Use restore or undo when the new version removes required context, changes the intended meaning, or introduces an unsupported claim.

## Header actions

* **Publish** sends the saved article to a connected WordPress or Webflow CMS, or opens a GitHub pull request. Use **Manage destinations** or **Connect a destination** when the required destination is not ready.
* **Download** offers Google Docs, HTML, Markdown, Microsoft Word, brief Markdown, and—on historical YouTube Script projects—the YouTube package when supported by the plan and artifact.
* **SEO** edits title-tag, meta-description, and related metadata for supported article projects.
* **Mark as done** records the project's completion state; it does not publish the content.
* **Share** creates a revocable content link. **View only** recipients can read and copy; **Can edit** recipients can save changes back to the project.
* **More actions** opens Version history, Publishing history, and Import from URL.

CMS delivery is separate from the editor's saved state. Confirm the destination, post status, title, slug, connection, and final rendered page. Use [Exporting and publishing content](/copywriter/exporting-your-content) for the destination workflow.

## Add an approved image

Use the editor's image control to open **Insert an approved image**. Choose a saved client asset, or use **Add assets** to upload and approve one first. Rankability inserts the saved alt text when available and otherwise uses the filename as a fallback, so review the alt text before publishing.

You can also drag image files from your computer onto the editor. Each dropped image is inserted where you released it and is saved to the client's asset library, and its alt text comes from the saved value or the file name, so review the alt text here too. Non-image files are skipped, as is any image larger than 10MB. Enable editing before you drop: a read-only draft does not accept dropped images.

Images remain user-selected, including for Autopilot drafts. Rankability does not silently choose a featured image on a new Autopilot run.

## Update the brief from the draft

When an article project has both a draft and a brief, use **Update from draft** in the Brief view to synchronize the brief with the document's current H1 and outline. The update is deterministic and does not add pooled usage: it does not ask AI to reinterpret or regenerate the brief.

Rankability preserves talking points for headings that have not changed. Review headings that were added, removed, renamed, or reordered. The update does not change the title tag, meta description, or slug.

## Review before handoff

1. Confirm the header save status is **Saved**.
2. Verify factual claims against cited or primary sources; a collected competitor page is research context, not automatic proof.
3. Check links, headings, calls to action, brand voice, restricted language, and SEO metadata.
4. Review warnings or inline suggested changes individually.
5. Save a named version before a major import, rewrite, or CMS handoff.
6. Preview the final destination after export or publication because CMS themes can change spacing, embeds, tables, and media.

If generation produced a partial draft, Rankability lets you keep the saved partial content or retry. If an editor section fails to load, retry the section or reopen the project; do not regenerate solely to fix a temporary display error.

## Related articles

* [Version history and import from URL](/copywriter/version-history-and-import)
* [Running an editor review](/copywriter/running-an-editor-review)
* [Sharing content and tracking reports](/copywriter/sharing-content-and-tracking-reports)
* [WordPress article delivery formats](/copywriter/wordpress-article-delivery-formats)


# Exporting and publishing content

Assign a Copywriter project in Asana, download its draft, or publish it to WordPress, Webflow, a GitHub pull request, or your own webhook.

Use **Send to Asana** to coordinate review and delivery in a mapped Asana project. Use **Download** to save the current artifact or create a Google Doc, and **Publish** to deliver an article to WordPress, Webflow, a GitHub pull request, or your own webhook. These actions are different from **Share**, which creates a review link, and **Mark as done**, which only changes the project status.

## Before you export

Open the project and select **Draft** or **Script**. Confirm that the header shows **Saved**, then complete the [draft review workflow](/copywriter/running-an-editor-review). File exports and CMS deliveries use the project's current saved content and metadata; unsaved text is not a safe handoff point.

Rankability also checks the draft for problems a good content score cannot rule out. When one applies, the editor marks the draft **Not publish-ready** and lists exactly what to resolve. The checks cover incomplete or placeholder content, internal instructions left in the article body, repeated sections, a commerce page with no verified destination, claims and comparisons that the retained research evidence does not support, a claims check that did not finish, and a draft that does not honor an explicit instruction about the client's own brand — for example one that asked to feature the brand but only mentions it in passing, or that ranks a competitor ahead of a brand you required first. Work through the listed items, then publish.

Scheduled auto-publishing applies the same checks. When one applies, a run that would have published live is delivered to the CMS as a draft for human review instead, so the work is not lost.

The choices shown depend on the project artifact, plan, and client connections. A project cannot export a brief or YouTube package it did not generate. New YouTube Script projects can no longer be created, but historical projects retain their package export. Free-plan limits can also make an option unavailable.

## Choose a file or document format

Select **Download**, then choose the format that matches the next editor:

* **Google Docs** creates a document and opens it in a new tab. The first use can open a Google authorization window. If the organization-level Google Docs integration is not configured, contact Rankability support.
* **HTML (developer handoff)** downloads an `.html` file for a developer, CMS, or downstream build workflow.
* **Markdown** downloads the article as `.md`.
* **Microsoft Word** downloads a `.docx` document.
* **Brief (Markdown)** appears only when the project contains a generated brief and downloads that brief separately from the draft.
* **YouTube Package** appears for historical YouTube Script projects and downloads a text package containing the generated video title, description, chapters, tags, and script.

HTML, Markdown, and Word exports are not available on the free plan. Rankability can ask for a missing first name the first time you use one of those three file exports; that profile prompt is not part of the content itself.

## Assign the content project in Asana

When Asana is connected and the client is mapped, open the Copywriter project and choose **Send to Asana**. Rankability creates a task in the mapped project with the content topic, available status or project context, and a direct link back to the Copywriter project. It adds a **Copywriter** tag when the connected Asana workspace permits it.

After the handoff, **In Asana** opens the existing task. Reusing the action does not create a second task for the same linked project.

This is a coordination handoff, not publishing or universal status sync. Rankability does not automatically select an assignee or due date, and completing the Asana task does not mark the Copywriter project done or publish the content. See [Connecting Rankability to Asana](/account-and-settings/connecting-asana) for connection and mapping instructions.

## Publish to WordPress

Select **Publish > WordPress**. The client needs a saved WordPress connection. If none exists, the dialog routes you to **Workspace settings > Integrations**, where the Rankability WordPress plugin and client-scoped token are configured.

Rankability saves pending editor changes before the dialog opens, so the preview reflects your latest text. If that save fails, the dialog does not open and Rankability asks you to save your latest edits first.

In the publish dialog:

1. Confirm the connected site and its freshness or verification message.
2. Review the preview, including title, slug, meta description, and hero image when present.
3. For a standard article, choose **Save as draft** or **Publish immediately**, then choose **Post** or **Page**.
4. For a local-service landing page, Rankability creates a draft block-editor Page so you can review its calls to action before it goes live.
5. Confirm the delivery, then open the returned WordPress URL when available.

The editor toolbar keeps the latest WordPress delivery state visible:

* **Queued** means Rankability accepted the delivery but the plugin has not acknowledged it yet.
* **Publishing** means delivery is still active.
* **Published** means the destination acknowledged completion and can include the returned URL.
* **Failed** means the attempt needs review. Open **Publishing history** for the saved diagnostic before retrying.

Do not treat a queued fallback as a successful publish. Rankability continues polling queued deliveries, and one-off publish attempts remain in Publishing history rather than appearing as recurring Routines.

Publishing creates a CMS item; it does not turn the Rankability editor into a two-way WordPress editor. Make later CMS changes in WordPress, and avoid repeating the publish action until you have confirmed whether the prior item was created. See [WordPress article delivery formats](/copywriter/wordpress-article-delivery-formats) for native blocks and page-builder behavior.

## Publish to Webflow

Select **Publish > Webflow CMS** when the client has a current Webflow connection. Confirm the site and collection, review the preview, and choose **Save as draft (staged)** or **Publish immediately**.

If the option says **Not connected**, open **Workspace settings > Integrations**, add a current Webflow Site API Token, and select the site and collection. A previous Webflow link can require reconnection before publishing.

Rankability maps the supported article fields to the connected collection. If the collection uses different field slugs or required fields, publishing can fail with a destination-specific error; correct the collection or connection before retrying.

## Open a GitHub pull request

Select **Publish > GitHub pull request** to hand the saved article to a repository-based website workflow. If the client does not have a usable GitHub destination, use **Manage destinations** or **Connect a destination** first.

Choose what Rankability should add under **What should Rankability add?**:

* **Site article** commits the draft into the repository's detected Markdown or MDX article folder. This is the option that publishes content to the site.
* **Developer handoff (HTML)** commits the article as an HTML file for a developer to place. Choose the **Repository folder** it should go in.

The publish-readiness checks gate the site-article option: when the draft is not publish-ready, the dialog lists what to resolve and keeps the confirm action disabled until you fix it. A developer handoff is a file for a person to review before anything reaches the site, so it is not blocked the same way — read the listed items before you hand the file over.

Before confirming a site article, review the repository, base branch, exact output file path, and full proposed file diff, including frontmatter. Rankability saves pending editor changes before preparing this preview. The confirmation is bound to that saved draft and the repository's current base-branch snapshot; if the draft, mapping, branch, or destination file changes, Rankability blocks the pull request and asks you to review a refreshed diff.

After confirmation, Rankability creates or reconciles one deterministic branch and opens one pull request for review. Retrying the same saved artifact does not intentionally create an equivalent second pull request. Rankability does not merge the pull request or publish the website automatically. Review its checks, approve, merge, and deploy through the repository's normal workflow.

A scheduled Routine can also deliver to GitHub. Choose **Projects + GitHub pull request** as the Routine's destination. Connect GitHub and confirm the client's article folder first; Rankability will not save the Routine until both are in place. Each scheduled run opens a pull request for review in the same way, so nothing reaches the site without your approval.

## Send a draft to your own workflow

When the client has a connected custom webhook, **Publish > Send to webhook** hands the saved draft to your own HTTPS workflow — an automation tool or an internal service — instead of a CMS Rankability integrates with directly. Confirm the delivery when the dialog asks.

An organization admin or owner connects the endpoint once in **Workspace settings > Integrations** under Publishing, confirms a test delivery, and copies the signing secret, which is shown only when the endpoint is saved. After that, members can send drafts without approving each delivery. Rankability signs every request so your workflow can verify it came from Rankability, and refuses endpoints on local, private, link-local, and cloud-metadata addresses.

A successful delivery means your endpoint accepted the draft. It is not confirmation that anything was published: whatever the workflow does next — enrichment, review, publishing — remains yours to run and verify.

## Check publishing history and the destination

Open **More actions > Publishing history** to inspect CMS attempts. Use the destination, status, timestamp, error, and available CMS link to determine what happened before retrying. A staged Webflow item and a live item are different states; confirm the remote collection so you do not mistake a partial publish for a missing item.

An API or MCP integration can inspect the same control-plane state with read-only scopes. `routines:read` lists recurring content and Knowledge-monitor configuration; `publishing:read` lists credential-free connections and privacy-safe delivery receipts. These reads cannot change or run a Routine, expose credentials or article bodies, reconnect a destination, publish content, validate remote content, or retry a failed delivery.

After every download or publish, inspect the destination. Headings, lists, links, and basic emphasis generally transfer well, but themes and editors can change spacing, tables, embeds, images, block structure, and metadata rendering.

## Troubleshooting

* **A download is missing:** Confirm the project produced that artifact and that your plan supports it.
* **Google Docs opens an authorization page:** Complete the Google flow, then return to the project and export again if a document did not open.
* **WordPress has no connection:** Install or update the Rankability plugin and finish the client-scoped connection in Workspace settings.
* **Webflow is disabled:** Reconnect the client with a valid Site API Token and collection.
* **GitHub is unavailable:** Confirm the client destination can access the intended repository and that its base branch, content directory, and file format are still valid.
* **A CMS publish failed:** Read the returned error and Publishing history, verify the remote CMS for a partial success, correct the connection or content, and only then retry.

## Related articles

* [Reviewing a draft in the editor](/copywriter/running-an-editor-review)
* [Content editor reference](/copywriter/content-editor-reference)
* [WordPress article delivery formats](/copywriter/wordpress-article-delivery-formats)
* [Sharing content and tracking reports](/copywriter/sharing-content-and-tracking-reports)
* [Connecting Rankability to Asana](/account-and-settings/connecting-asana)


# Content types: Educate, Discover, Compete, Convert

When creating a content project, you choose one of four content types that sets the structure, goals, and brief questions for your article.

When creating a content project, you choose one of four content types that sets the structure, goals, and brief questions for your article. Each type is designed for a different stage of the buyer journey.

Before choosing, confirm the target topic, intended audience, desired page outcome, and client. The content type is an operating input for the project, not a label Rankability infers perfectly from a keyword. Review the pages that currently satisfy the query and choose the goal that matches the page you intend to publish.

## Educate

Educational content that builds topical authority and supports rankings over time. Best for how-to guides, explainers, checklists, and informational articles.

Example formats: “How to do X,” “What is Y,” “Complete guide to Z.” Select this when the searcher wants to learn something.

## Discover

Category content for buyers exploring options before narrowing down. Best for “best of” lists, tool roundups, and comparison overviews.

Example formats: “Best \[category],” “top \[tools],” “\[product type] for \[use case].” Select this when the searcher is evaluating options.

## Compete

Content for high-intent searches where prospects compare specific options. Best for head-to-head comparisons, alternative lists, and product reviews.

Example formats: “\[Client] vs \[Competitor],” “\[Competitor] alternatives,” “\[Competitor] review.” Select this when the searcher is comparing two or more specific products or services.

## Convert

Client-ready pages designed to rank and drive booked calls, form fills, or purchases. Best for local service pages, lead generation landing pages, and e-commerce category pages.

Example formats: “Local service page,” “service page,” “lead gen landing page.” Select this when the searcher is ready to take action.

## How intent detection works

When you enter a topic, Rankability may auto-suggest a content type with a “Suggested” badge and a confidence explanation (e.g., “High confidence: how-to query”). The suggestion is based on the keyword’s search intent signals, but you can override it and select any type.

High-confidence suggestions can be selected automatically; lower-confidence suggestions remain guidance. If you override the suggestion, Rankability can warn that another goal may perform better, but you can continue with your selection.

## Choose and confirm the type

1. Start a content project and enter the topic and client context.
2. Review the suggested goal and its explanation when one appears.
3. Compare the result format you need with the four definitions above.
4. Select one card and continue to the settings and research review.
5. Before research starts, confirm the topic, content goal, location, language, and any project guidance.

The selected goal influences the questions and guidance Rankability presents. Rankability chooses more detailed page structure from the project context; the four cards are not fixed templates that guarantee an identical outline every time.

## Limitations

* Search results can mix intents. Choose the primary outcome rather than trying to make one page satisfy every stage.
* **Discover** and **Compete** can present client-inclusion guidance for multi-vendor content; other goals do not use that choice the same way.
* **Convert** can cover local services, general lead generation, or ecommerce category pages. Supply enough context for Rankability to distinguish them.
* A content goal does not guarantee rankings, conversions, or a particular score.

## Tips and best practices

* Follow the suggested content type when the confidence is high.
* If unsure, check what currently ranks for your keyword. If the top results are how-to guides, select Educate. If they are “best of” lists, select Discover.
* The content type affects the outline structure, FAQ suggestions, and competitive analysis in the brief editor.

## Troubleshooting

* **No content type is suggested** – This can happen with ambiguous or very new keywords. Choose the type that best matches your publishing goal.
* **I selected the wrong type and already started research** – You will need to start a new project. Content type cannot be changed after research begins.
* **The suggestion conflicts with the page I need** – Select the intended business outcome and provide explicit guidance. Review the warning before continuing.
* **The result uses the wrong page format** – Confirm that the goal and supplied context match. Start a correctly configured project if research has already locked the original goal.

## Related articles

* [Creating a content project (Copywriter)](/copywriter/creating-a-content-project) — The full workflow where you select a content type.
* [Understanding your content score](/copywriter/understanding-your-content-score) — How content type influences your optimization score.
* [Understanding Quick mode projects](/copywriter/using-quick-mode) — Reference for earlier research-only projects that used content types.
* [Frequently asked questions](/troubleshooting/frequently-asked-questions) — Common questions about Copywriter and content types.


# Sharing content and tracking reports

Share a Copywriter draft for review or create a controlled, read-only Tracker report for a client.

Rankability uses different sharing controls for editable Copywriter drafts and read-only client Tracker reports. Choose the smallest access scope that lets the recipient do the work, and never share your own Rankability login.

## Choose the right access method

* **Copywriter share link** — Use for one draft. The recipient does not need a Rankability account. You choose view-only or edit access and can optionally allow Serena in edit mode.
* **Tracker report share link** — Use for recurring, read-only access to one client's tracking results. You can add a password and control which report sections and AI platforms appear.
* **Invited client portal user** — Use when a named client stakeholder needs recurring access through their own sign-in rather than an anonymous link.
* **Organization member** — Use for a teammate who needs ongoing access to work inside Rankability. Organization membership is broader than a shared item.

Audit and Researcher approval links have their own controls and permissions. Do not assume a password, edit mode, expiration, or rotation option exists unless that item's share dialog shows it.

## Share a Copywriter draft

Open the project and select **Share** in the editor header.

1. Turn on **Enable shared link**.
2. Choose **View only** when the recipient should read and copy the draft without changing it.
3. Choose **Can edit** when the recipient should change the document. Their edits save back to the same Copywriter project.
4. In edit mode, optionally turn on **Enable AI for shared users**. This lets the recipient use Serena and draws from your organization's pooled usage.
5. Copy the generated link and test it in a private browser window before sending it.

When the project has a brief but no draft yet, the generated link opens on the brief so the recipient sees the artifact that exists rather than an empty draft.

The Copywriter link is specific to that project. It does not give access to the client's Tracker, settings, other projects, or your organization. If the associated client has a portal password, the shared content also requires that password.

To revoke the link, return to **Share** and turn **Enable shared link** off. This makes the content private immediately. Turning it back on reuses the project's existing link; the current Copywriter dialog does not offer token rotation. If a link has been exposed and must be replaced rather than merely disabled, contact Rankability support.

## Share a client Tracker report

Open the selected client's Tracker and choose **Share report**. The same report-sharing controls can also appear in the client's sharing or portal settings.

1. Turn on **Enable sharing** and copy the generated report URL.
2. Select **Preview report** and verify that the report belongs to the intended client.
3. Turn on **Password protection** for sensitive reports, set the password, and send the password through a separate secure channel.
4. Expand **Report visibility** to choose all-channel or AI-only scope, visible sections, supported AI platforms, and whether AI citations appear.
5. Send the link, or use the report email controls when you want Rankability to deliver it to specified recipients.

The shared Tracker is read-only and scoped to one client. It displays collected data only; it does not allow the recipient to run scans, edit projects, change settings, or enter your other client workspaces. A hidden section or platform is removed from the client-facing report, not from your agency's own Tracker data.

Turn sharing off to disable the report URL. From **Workspace settings**, you can also rotate the share link, which creates a new URL and invalidates the old one. Changing or removing the portal password affects the client-level shared report and any other supported client share that uses that password boundary.

For named access, invite the stakeholder from Client portal settings instead. Invited users sign in individually and can be revoked separately from the no-login report link. See [Setting up the client portal](/account-and-settings/client-portal-sharing).

## Security and handoff checklist

* Confirm the selected client and project before enabling sharing.
* Use **View only** unless the recipient must edit the Copywriter draft.
* Enable shared AI only when the recipient is authorized to draw from your organization's pooled usage.
* Add a password to sensitive Tracker reports and test the prompt before sending.
* Preview every link in a signed-out or private window to see what the recipient sees.
* Disable links after the review or engagement ends, and rotate the client report link if an old URL must be invalidated.
* Remember that disabling a share link does not revoke an organization member or a separately invited portal user.

## Troubleshooting

* **A Copywriter recipient cannot edit:** Change the project's permission from **View only** to **Can edit**. Confirm the client password when one is configured.
* **A shared edit is missing:** Reopen the Copywriter project and check its saved content and Version history. A recipient edits the same project rather than a separate copy.
* **A Tracker section is missing:** Check Report visibility, report scope, platform selection, and whether completed tracking data exists.
* **The old Tracker link still works:** Rotate the link in Client portal settings or turn sharing off. Copying the same enabled link does not revoke it.
* **Share controls are disabled:** Open a saved client and confirm that you have permission to manage sharing.

## Related articles

* [Setting up the client portal](/account-and-settings/client-portal-sharing)
* [Managing your team and client access](/account-and-settings/managing-team-and-client-access)
* [Content editor reference](/copywriter/content-editor-reference)
* [Understanding the Track overview](/track/reporter-executive-summary)


# Understanding Quick mode projects

Understand existing Quick mode projects, which contain keyword, entity, and competitor research without an outline or draft.

Quick mode is an earlier research-only Copywriter workflow. It skips outline and draft generation and returns extracted keywords, entities, and competitor data.

The current **Projects** page does not offer a Quick mode toggle for new projects. Existing Quick mode projects remain readable and supported, and an approved automation or integration can still produce this project type where the capability is available. Do not edit a Copywriter URL to try to expose a hidden start option.

For new in-app work, use [Create content](/copywriter/creating-a-content-project) and choose **Write it myself** when you want research and editor guidance without an AI-generated draft.

## Open an existing Quick mode project

1. Select the client and open **Create** to reach **Projects**.
2. Find the project labeled as Quick mode or research complete.
3. Open it to review the saved entities, topics, competitors, and source coverage.

## Results

* **Entities & Topics** – Keyword and entity tags. Green = high-priority. Click X to remove. Use **Copy all** button.
* **Competitors analyzed** – Ranked table with Rank, Source, Coverage, and Platforms columns, plus the optional per-competitor metric columns described in the [content editor reference](/copywriter/content-editor-reference).

No draft or content score is generated for a Quick mode project.

## Continue from the result

1. Review the prioritized entities and remove items that do not belong to the page intent.
2. Compare competitor coverage and source mix instead of copying one competitor's wording or structure.
3. Copy or export the selected terms into the human brief or downstream workflow.

Quick mode's expected output is research, not publishable content. It does not create an outline, body, metadata, live content score, version history, or CMS delivery. If you need a draft with scoring, start the standard workflow or use [Write it myself mode](/copywriter/using-write-it-myself-mode).

## Limits and charging

The result depends on the available competitor and platform evidence for the topic. A narrow, new, or highly local query can return fewer useful entities. Reviewing or completing an existing project does not publish anything. When a supported automation offers a new Quick mode operation, review its displayed usage impact before approval.

## Tips and best practices

* Use **Copy all** to export entities when that action is available on the saved result.
* The competitor table shows which platforms surfaced each page.
* Treat the entities as research inputs, not a finished outline or publishing plan.

## Troubleshooting

* **There is no Quick mode toggle** — That is expected in the current in-app Create workflow. Choose **Write it myself** for a new research-assisted manual draft.
* **An existing run is stuck at “Finalizing”** — Use **Check status** when it appears. Do not start duplicate paid work while the original status is uncertain.
* **No entities were returned** — The available source evidence may have been insufficient. Contact support with the client, project, topic, and completion time if the saved result looks incomplete.
* **There is no editor or score** — That is expected in Quick mode. Use a standard or Write it myself project when you need those tools.
* **The usage impact is unexpected** — Review the selected scope and [usage limits reference](/account-and-settings/credit-costs-reference) before repeating the operation.

## Related articles

* [Creating a content project](/copywriter/creating-a-content-project) — The current Create workflow.
* [Using Write it myself mode](/copywriter/using-write-it-myself-mode) — The current in-app choice for research-assisted manual writing.
* [Usage limits reference](/account-and-settings/credit-costs-reference) — Current pooled-usage and recovery rules.


# Using Write it myself mode

The “Write it myself” option lets you skip AI draft generation and write manually while using keyword tracking and content scoring.

The **Write it myself** option lets you skip the initial AI draft and write manually while using Copywriter's research, topic guidance, and content scoring.

Choose it during content setup when you want Rankability to research the topic and then open a fresh editor for your writing. If you chose **Review the brief first**, you can also choose **Write it myself** after reviewing that brief.

## Steps

1. Open the client's **Create** area and choose **Create content**.
2. Confirm the topic, page format, content intent, language, location, research, and guidance.
3. Under the workflow choices, select **Write it myself**.
4. Start the project and wait for research to finish.
5. Review the Topics and competitor evidence, then write in the fresh editor. The content score updates as the draft changes.

If you started with **Review the brief first**, review and save the brief, then choose **Write it myself** instead of generating the initial draft.

Rankability saves the manual draft through the same editor workflow used for generated content. The expected result is your own draft with the project's keyword coverage, placement checks, metadata tools, and eligible review/export actions. Selecting this mode does not publish the content and does not itself create an AI-written body.

## Recommended workflow

1. Draft for search intent and reader value before optimizing individual terms.
2. Add relevant missing concepts naturally and verify the placement checklist.
3. Save a named version before a major rewrite or before importing other content.
4. Run the available editor review after the draft has enough substance to evaluate.
5. Review metadata and use the appropriate export, share, or connected publishing destination.

If you later use an available draft-generation or regeneration action, treat the result as a replacement workflow: save the manual version first, review the displayed usage impact, and inspect the generated result before accepting it.

## Limits and usage

Manual writing itself does not add pooled usage. Draft generation, fact enrichment, reviews, imports, or publishing workflows can have their own availability or usage impact; confirm the displayed scope before starting. The content score remains guidance and does not measure factual accuracy, brand approval, technical SEO, or rankings.

## Tips and best practices

* Use the keyword sidebar as a checklist – target red keywords first.
* Check the KW checklist frequently to track placement.
* Save a version before using an available AI rewrite or regeneration action.
* You can run an Editor review on manually written content.

## Troubleshooting

* **Score stays at 0** – Include recommended keywords from the sidebar.
* **There is no Generate draft banner** – The redundant editor banner was removed. Use only the draft-generation or regeneration action currently shown for the project, and review its estimate first.
* **The editor is not empty** – The project may already contain a saved or generated draft. Check [version history](/copywriter/version-history-and-import) before replacing it.
* **Changes do not appear after reopening** – Wait for the saved state, refresh once, and check version history. Avoid opening the same project in multiple tabs while editing.
* **The score is high but the draft is not ready** – Continue human review for accuracy, usefulness, tone, citations, and conversion requirements.

## Related articles

* [Creating a content project (Copywriter)](/copywriter/creating-a-content-project) — The full content workflow including AI draft generation.
* [Understanding your content score](/copywriter/understanding-your-content-score) — Track your score as you write manually.
* [Content editor reference](/copywriter/content-editor-reference) — Complete reference for the editor tools available while writing.
* [Understanding Quick mode projects](/copywriter/using-quick-mode) — Reference for earlier research-only projects.


# Understanding your content score

The content score is a 0–100 rating that measures how well your draft covers recommended topics and places your primary keyword in key positions.

The content score is a 0–100 rating that measures how well your draft covers recommended topics and places your primary keyword in key positions.

Open a researched Copywriter project with a draft or manual content. The score depends on the project's recommendations and the text currently saved in that project; it is not a domain-authority score, a technical audit, or a prediction of the page's final ranking.

## How it works

A circular gauge appears in the top-right sidebar. The score has two components:

### Coverage

Measures how many recommended keywords appear in your draft. Keywords are color-coded: green (used sufficiently), yellow (used but could use more), red (missing). The total is displayed, for example “50/74 Keywords.”

### Placement

Checks whether your primary keyword appears in 5 key positions:

* Title tag
* H1
* First 100 words
* Meta description
* Early H2/H3

Each position shows a green checkmark or red X.

## Additional context

* Word count and target range are shown below the score.
* The keyword list is sortable (default: Relevance) and searchable.
* You can add custom keywords, copy to clipboard, or export as CSV.

## Improve the score without keyword stuffing

1. Confirm the primary keyword and page goal are correct for the project.
2. Review missing high-relevance topics and decide which genuinely belong in the page.
3. Add useful passages that answer the topic, then check whether coverage changes after the draft saves.
4. Fix primary-keyword placement in the title, H1, opening, meta description, and an early subheading where natural.
5. Re-read the draft for clarity, duplication, and intent before pursuing additional points.
6. Use an [editor review](/copywriter/running-an-editor-review) for broader feedback that the numeric score does not cover.

The expected output is an updated gauge, topic statuses, placement checks, word count, and target range. Scores are project-specific: two projects can recommend different terms or ranges for similar topics because their research and page goals differ.

## What the score does not measure

The score does not prove factual accuracy, originality, brand compliance, crawlability, backlinks, page speed, conversion quality, or future rankings. A lower-scoring sentence can be better than a forced keyword insertion. Treat the score as an optimization checklist alongside human editorial judgment and the evidence in the brief.

## Tips and best practices

* Focus on Coverage first – incorporate missing (red) keywords naturally.
* Check Placement second – ensure your primary keyword is in the H1, first 100 words, and meta description.
* A higher score does not guarantee rankings but indicates topical completeness.
* Prioritize red keywords for the biggest score improvements.

## Troubleshooting

* **Score seems stuck** – Make a small edit to trigger a refresh.
* **Placement X for Title tag** – The title tag is set in the Brief tab, not in the draft body.
* **A keyword stays red after use** – Save the draft and check whether the exact concept, not merely a partial word, was added in a useful context. Recommended usage can require more coverage than a single mention.
* **The score drops after an edit** – Restoring or replacing text can remove covered topics or placement. Compare the current draft with [version history](/copywriter/version-history-and-import).
* **No score appears on an existing Quick mode project** – That earlier workflow produced keyword research without a draft score. Start a current Create content project and choose **Write it myself** when you need research with a live editor score.

## Related articles

* [Creating a content project (Copywriter)](/copywriter/creating-a-content-project) — The full content creation workflow that produces your score.
* [Content editor reference](/copywriter/content-editor-reference) — Detailed reference for the editor sidebar and keyword tools.
* [Running an editor review](/copywriter/running-an-editor-review) — Get AI editorial feedback to improve your score.
* [Content types: Educate, Discover, Compete, Convert](/copywriter/content-types-reference) — How content type affects scoring and optimization.


# Reviewing a draft in the editor

Review a Rankability Copywriter draft with the current editor controls before sharing, exporting, or publishing it.

Use this workflow for the final human review of a Copywriter draft before you share, export, or publish it. The current Draft workspace does not require a separate approval screen or a “publishable” state. Review the live document, its optimization guidance, and the destination yourself.

## Before you begin

Open a Copywriter project whose draft is ready, then select **Draft**. Wait for the header to show **Saved** before beginning a handoff; the editor normally saves about two seconds after a change.

For a recoverable checkpoint, open **More actions > Version history**, add an optional name, and select **Save current version**. Do this before a large Serena rewrite, draft regeneration, import, or final publishing pass. Version history is safer than relying only on the browser's local recovery copy.

## Review optimization guidance

Open **Topics** in the right sidebar and review:

* **Content score** and its score band.
* The current word count and competitor-derived target range.
* Keyword coverage and the keyword placement checklist.
* Over-optimization warnings and individual topic usage.

Use these as diagnostic signals, not an automatic approval. A high score does not verify facts, make a claim safe, or guarantee rankings. A missing keyword does not always belong in the article, and an overused term should be edited for readers rather than mechanically removed.

See [Understanding your content score](/copywriter/understanding-your-content-score) for the scoring model and its limits.

## Review the document itself

Read the draft from beginning to end and confirm:

1. The title, introduction, headings, and conclusion satisfy the intended search intent and audience.
2. Factual claims, statistics, quotations, product details, dates, prices, legal or medical statements, and comparisons are supported by a reliable current source.
3. Links go to the intended pages and use accurate anchor text.
4. Brand voice, restricted language, calls to action, and client-specific details match the selected client.
5. Tables, lists, images, embeds, and formatting still make sense outside the Rankability editor.
6. The SEO title, meta description, slug, and hero image are correct when the project and destination use them.

Competitor pages and collected research are context, not automatic evidence. Rankability can help organize and rewrite material, but the person publishing remains responsible for the final claims and rights to use any source material.

## Use Serena carefully

Open **Serena** to ask about the current project or request an edit to the document. Describe the goal and constraints, such as preserving a quotation, keeping a legal disclaimer, or rewriting only the selected section.

When Serena applies a document change, Rankability opens a **Before** and **After** review focused on the changed blocks. Compare removed and added language before continuing. The exact pre-edit snapshot is retained so the review and restore action survive navigation. Restore the previous document when the result removes required context or introduces an unsupported claim. Serena is an editing aid; do not treat an applied change as approval.

## Finish the handoff

1. Confirm the header shows **Saved**.
2. Save a named version if this is an approval milestone.
3. Select **Mark as done** only when you want the project status recorded as complete. This does not publish the article.
4. Choose **Share** for review, **Download** for a file or Google Doc, or **Publish** for WordPress, Webflow, or a GitHub pull request.
5. Preview the delivered document or CMS page. Themes and destination editors can change spacing, media, tables, and blocks.

## Troubleshooting

* **The score or topic list is still loading:** Keep the draft open until project scoring finishes, or reopen the project. Do not regenerate the draft solely to fix a temporary panel error.
* **The Save status fails:** Select the failed status or **Save** to retry. Do not close, share, or publish until the current text is saved.
* **A large edit went wrong:** Use undo immediately, restore Serena's previous-document snapshot when offered, or restore a saved version.
* **You expected a separate editor-review or quality-gate screen:** That is not part of the current Draft workflow. Use the review steps on this page and the controls documented in [Content editor reference](/copywriter/content-editor-reference).

## Related articles

* [Content editor reference](/copywriter/content-editor-reference)
* [Version history and import from URL](/copywriter/version-history-and-import)
* [Sharing content and tracking reports](/copywriter/sharing-content-and-tracking-reports)
* [Exporting and publishing content](/copywriter/exporting-your-content)


# Version history and import from URL

Version history lets you recover previous drafts. Import from URL pulls existing web content into your editor.

Version history lets you recover previous drafts. Import from URL pulls existing web content into your editor.

Open a Copywriter project that you can edit. Before restoring or importing, wait for the current draft to save and create a named version when the existing work matters. Both actions can replace the editor's current content, so verify the project and source URL before confirming.

## Version history

1. Click **More actions** ⋯ > **Version history**.
2. A modal shows saved versions with date/time and word count.
3. Click **Restore** next to any version to revert your draft.
4. Click **Save current version** to manually save a snapshot.

## Import from URL

1. Click **More actions** ⋯ > **Import from URL**.
2. A modal titled “Import content from website” appears.
3. Enter the URL and click **Import**.
4. The system extracts the main article content and replaces the current draft.

Review the imported title, headings, links, body, and SEO metadata after extraction. Import is a content-transfer aid, not a live connection to the source page; later changes on the website do not automatically update the Rankability draft.

## Safe restore or import workflow

1. Confirm the current project and allow its latest changes to save.
2. Choose **Save current version** and give the snapshot a recognizable name.
3. Restore the intended version or enter the exact public URL to import.
4. Review the entire editor after the replacement.
5. Wait for the new state to save before closing, exporting, or opening another version.

Restoring a version changes the working draft but keeps version history available. Import replaces the current body with the content Rankability can extract from the supplied page. Neither action edits the original website or publishes the Rankability project.

## Limits

* Auto-saved versions are retained for 30 days; do not use them as a permanent archive.
* Login walls, bot protection, robots rules, client-side rendering, and unusual layouts can prevent a complete import.
* Navigation, cookie banners, sidebars, and embedded widgets may be excluded when Rankability isolates the main content.
* Imported content can have different structure from the project's original keyword research, so re-check the score and placement rather than assuming it remains optimized.

## Tips and best practices

* Save a manual version before importing or making large edits.
* Auto-saved versions expire after 30 days.
* Import works best with article-style pages.

## Troubleshooting

* **No versions listed** – This is a new project. Make an edit and wait for auto-save to create the first version.
* **Import returns incomplete content** – The page may use dynamic rendering. Try a different URL or paste the content manually.
* **The wrong draft was restored** – Open version history again and restore the correct snapshot. Use dates, word counts, and names to distinguish versions.
* **Import fails** – Confirm the URL is public and returns the article in a normal browser. If access is restricted, copy only content you are authorized to use and paste it manually.
* **Recent edits are missing** – Check that the editor showed a saved state before the restore or import. Avoid simultaneous editing in multiple tabs.

## Related articles

* [Content editor reference](/copywriter/content-editor-reference) — Where to find Version history and Import in the editor.
* [Creating a content project (Copywriter)](/copywriter/creating-a-content-project) — The full content creation workflow.
* [Exporting your content](/copywriter/exporting-your-content) — Export your draft to various formats.


# WordPress article delivery formats (Native blocks and page builders)

Rankability delivers articles to WordPress in the format your site's editor actually uses — native Gutenberg blocks on block-editor sites, clean HTML on page-builder sites like Elementor and Divi.…

Rankability delivers articles to WordPress in the format your site's editor actually uses — native Gutenberg blocks on block-editor sites, clean HTML on page-builder sites like Elementor and Divi. One setting controls it; detection is automatic.

WordPress sites don't all use the same editor. Some use the native block editor (Gutenberg); many use a page builder like Elementor, Divi, Beaver Builder, Bricks, Oxygen, or WPBakery. Rankability detects which one your client's site runs and delivers published articles in the format that editor understands — so content arrives clean and editable, never as a wall of garbled markup.

## The Article delivery setting

Each WordPress connection has one setting that controls this, found in the connection's publish settings in the client's Copywriter workspace:

1. Open the client and go to their WordPress connection settings (the same card where you set default status, category, and post type).
2. Find the **Article delivery** dropdown.
3. Choose one of two options:

* **Classic HTML (default)** — Articles are delivered as clean, formatted HTML. This works on every WordPress site regardless of editor, builder, or plugin version. It is the safe baseline.
* **Native blocks** — Articles are delivered in the richest format the site supports. Rankability picks the exact format automatically based on what it detects on the site (see below).

Click **Save defaults** after changing the setting. It applies to all future publishes on that connection — including scheduled auto-publishes.

## What Native blocks does on each kind of site

### Block editor (Gutenberg) sites — real editable blocks

If no page builder is detected, articles open in the WordPress block editor as individual native blocks: each heading, paragraph, list, image, and quote is its own separately editable block — exactly as if the article had been written inside WordPress. No more single “Classic” block containing the whole article.

Tables, embeds, and other complex elements are preserved verbatim in HTML blocks so nothing gets reformatted or broken.

### Page-builder sites — clean HTML, automatically

If the site runs a layout builder — Elementor, Elementor Pro, Divi, Beaver Builder, Bricks, Oxygen, or WPBakery — Rankability delivers clean, semantic HTML instead. Those builders manage the page layout in their own editors, and block-editor markup would show up as noise inside their widgets. Clean HTML drops into the builder's text/HTML content area and renders correctly.

You don't choose this per site — detection is automatic. If a client later removes their page builder, the next publish adapts on its own.

## How site detection works

The Rankability WordPress plugin reports the site's environment — which builders and major plugins are active — whenever it checks in. Each WordPress connection card shows an **Environment** section listing:

* The detected page builders (for example “Elementor”), if any.
* When the site last reported in.
* A refresh button to request an updated report on demand.

If the Environment section is empty, the site hasn't reported yet — usually because the plugin needs an update or hasn't checked in since installation. Publishing still works, but because the plugin version is unknown, articles are delivered as classic HTML until the site reports in (see the plugin version requirements below). Once it does, the next publish uses the richest format the site supports.

## Plugin version requirements

Native blocks delivery requires a recent version of the Rankability WordPress plugin on the client's site. If you select **Native blocks** and the site's plugin is too old (or has never reported its version), a notice appears under the setting:

*“Plugin update required for native blocks — articles will be delivered as classic HTML until the Rankability plugin on this site is updated.”*

Nothing breaks in the meantime — publishes succeed and articles arrive as classic HTML. Update the plugin from the WordPress admin (Plugins → Updates) and the next publish uses the richer format automatically. The plugin self-updates on most sites, but sites with infrequent traffic may need a manual update.

## What stays the same

* **Content is identical** — The words, images, links, and SEO assets (title, slug, meta description) are exactly the same in every format. Only the packaging changes.
* **No extra usage impact** — Delivery format does not change pooled usage.
* **Draft vs. publish, categories, author, post type** — All existing publish options work identically in every format.
* **Publishing history** — Every attempt is still recorded per project, and any format fallback is noted there in plain language.

## Troubleshooting

* **Article arrived as one big block** — The connection is set to Classic HTML, or the plugin on the site is too old for native blocks. Check the Article delivery setting and the plugin-update notice.
* **Block markup visible as text on a builder site** — The site's builder wasn't detected yet. Open the connection's Environment section and click refresh; if the builder still doesn't appear, update the Rankability plugin on the site.
* **Environment section is empty** — The plugin hasn't reported in. Update the plugin on the WordPress site, then refresh the environment from the connection card.

## Related articles

* [Exporting and publishing content](/copywriter/exporting-your-content) — Downloads and publishing destinations, including WordPress, Webflow, and GitHub pull requests.
* [Creating a content project](/copywriter/creating-a-content-project) — Start a new article in the Copywriter.
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues) — Fixes for connection and export problems.


# Audit overview

Choose the right Rankability audit, prepare the required inputs, and turn findings into evidence-based website or local search work.

Choose the right Rankability audit, prepare the required inputs, and turn findings into evidence-based website or local search work.

Use **Audit** to investigate a complete site, one content page, a Google Business Profile, or a list of URLs. Each tool has a different scope, input, result, and usage impact.

## Choose the right audit

* [**Site Auditor**](/audit/site-auditor-guide) — Crawl a site and review its page inventory, indexability, metadata, canonicals, crawl depth, duplicate content, and issue patterns. Site Auditor is currently labeled Beta.
* [**Page Content Auditor**](/audit/page-content-auditor-guide) — Evaluate one page against a target keyword and search intent.
* [**Google Business Profile Auditor**](/audit/gbp-auditor-guide) — Review an available location’s profile completeness, reviews, media, posts, Q\&A, and competitor evidence.
* [**Batch URL Analyzer**](/audit/batch-url-analyzer-guide) — Compare up to 100 URLs using available backlink, search, keyword, and traffic data.

## Before you run an audit

1. Select the correct client.
2. Confirm the exact domain, page, profile or location, or URL set.
3. Add the target keyword and intent when the audit requests them.
4. Review the estimated scope and displayed usage impact before starting.

## Turn findings into work

1. Filter to the affected pages, checkpoints, or severity you are reviewing.
2. Open the finding and inspect its reason and available evidence.
3. Verify the current page or external profile before assigning a fix.
4. Group repeated findings by likely cause so one template or system fix can address multiple pages.
5. Rerun or recheck the relevant scope after the change.

## Important limitations

* An audit finding is a recommendation or diagnostic signal; Rankability does not automatically change the website or Google Business Profile.
* Unavailable source data can produce a blank or not-applicable result. Do not treat it as a confirmed pass, failure, or zero.
* Hiding or ignoring a finding changes its review state in Rankability; it does not fix the underlying page or profile.
* Crawl results can be affected by authentication, robots rules, firewalls, rate limits, and JavaScript rendering.

### Existing Brand Audit reports

Brand Audit is not available for new audits while the feature is being reevaluated. Previously completed reports can remain accessible from their saved authenticated report links as a read-only archive. In archive mode you cannot start, rerun, edit, delete, or create a new share link for an audit. Existing public share links continue to display the completed report.

## If an audit fails

Confirm that the URL is public and correctly formatted, then check the visible error and any crawler restrictions. For a repeated failure, contact support with the client, audit type, URL or domain, time, and error text.

## Related articles

* [Whitelisting the Rankability crawler](/troubleshooting/whitelisting-rankability-crawler)
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues)
* [Usage limits reference](/account-and-settings/credit-costs-reference)


# Using Site Auditor

Run a Rankability site audit, control crawl scope, interpret technical SEO findings and duplicate content, and verify fixes after a recrawl.

Use Site Auditor to crawl a website, build a page inventory, find technical SEO issues, compare internal duplicate content, and verify whether issues changed after a later crawl.

Site Auditor is best for site-wide diagnosis. To evaluate one page against a target keyword and search intent, use [Page Content Auditor](/audit/page-content-auditor-guide).

## Before you start

Open the client and choose **Audit → Site Auditor**. Confirm that the client domain is correct, then choose the crawl source:

* **Website** — Follow internal links starting from the website.
* **Sitemap** — Start from a specific XML sitemap URL.
* **URL list** — Upload or paste URLs from a TXT or CSV file.

The available page limits are 100, 250, 500, and 1,000 pages. A crawl that reaches its limit is truncated; it does not prove that the uncrawled portion of the site has no issues.

Turn on **Check external links** when broken outbound links matter to the audit. This adds work and can make the crawl slower.

Use the advanced controls only when the default crawl is too broad or too narrow. You can include subdomains, restrict the crawl to allowed paths, exclude disallowed paths, or ignore URL parameters. Check these settings carefully: an overly restrictive rule can omit important pages from the report.

## Usage and completion

Site crawling is included in full-platform pooled usage. The estimate uses the selected page limit, while website activity reflects successfully crawled pages. Large crawls can have a high on-demand usage impact.

The crawl runs in the background, so you can leave the page while it works. Rankability shows pending, crawling, analyzing, completed, error, or cancelled status and sends an in-app notification when the report is ready.

## Review the Pages tab

The **Pages** tab is the crawl inventory. Search, filter, and sort it to isolate a template, status, indexability state, action, redirect, thin page, or deep page. Available columns can include:

* HTTP status, redirect target and redirect chain information;
* indexability, robots directives, and canonical URL;
* title, meta description, H1 and H2 headings;
* word count, crawl depth, linking pages, schema, and page weight;
* AI crawler access derived from robots.txt;
* Google Search Console, GA4, Bing, backlink, and performance data when available; and
* target keyword, its source, confidence, reason, and manual notes.

The inventory opens with a deliberately small set of columns — status code, indexability, title, linking pages, crawl depth, AI bot access, and pageviews — so it stays scannable. Use **Manage columns** to switch any other column on. They are grouped by section, including Core audit, On-page, Technical, Search Console, Analytics, and Performance, and **Reset to default** returns you to the opening set. A column you expected is more often switched off than missing data, so check here before concluding an enrichment source returned nothing. Your choice is remembered in the browser you made it in, and the header stays in place while you scroll a long inventory.

Selecting a page's URL opens its **Crawled page details** panel instead of leaving the report. Use the separate action in that panel when you want to open the live page in a new tab.

Use **Identify target keyword** for indexable pages that do not already have one. Rankability tries connected Search Console data first, then can use an AI fallback. Review the page count and usage impact before a large batch.

You can edit a target keyword manually.

## Review Statistics

The **Statistics** tab summarizes the crawl as seven measures: HTTP status codes, indexability, page crawl depth, incoming internal links, canonicalization, schema markup, and AI crawler access. Each card shows a headline percentage, the distribution behind it, and a plain assessment — **Looks healthy**, **Review**, **Needs attention**, or **Context matters** — with a short reason. Open the information control on a card to read what the measure counts, why it matters, and what to do next.

When a card has affected pages, **View affected pages** opens the Pages tab narrowed to exactly that set, such as pages returning 4xx or 5xx, pages more than three clicks deep, or pages with one or fewer incoming links. The narrowing appears as a labeled chip above the inventory; remove the chip to return to the full list.

Treat these measures as diagnostic starting points rather than scores to maximize. Not every page needs schema markup, a restricted AI crawler may be a deliberate policy, and an excluded page is often excluded on purpose. The crawl depth, internal link, and AI access percentages are calculated only over the pages where that information could be determined.

## Review Duplicate content

The **Duplicate content** tab separates actionable findings from raw measured overlap. A page becomes an actionable finding only when Rankability has enough concentrated, primary-content evidence to justify review. Tiny matches and expected repetition on listing, archive, pagination, and HTML sitemap pages are not labeled as defects.

The summary shows the actionable share of analyzed text and separately reports the raw overlap measured across the crawl. Open **Other measured overlap** when you need to inspect lower-confidence or intentional matches without treating them as recommendations to rewrite or consolidate a page.

Open a row to see duplicated passages highlighted in context. Select a shared page to compare the two pages side by side before deciding whether to rewrite, consolidate, redirect, or canonicalize.

Use **Hide** only after confirming that a result is an intentional or harmless match. Hidden duplicate-content findings can be restored later and remain associated with the URL across recrawls. Hiding a finding changes its review state in Rankability; it does not change the website.

Older audits may not contain duplicate-content analysis. Rerun the audit to generate the newer report.

## Review Findings and verify fixes

The **Findings** tab groups issues by Critical, Warning, Info, and Opportunity. Filter by severity or lifecycle state such as New, Fixed, Unchanged, Worsened, or Improved. A finding previews up to three affected pages; choose **View all affected pages** to inspect the complete paginated list. Each page link opens in a new browser tab. The card also includes the evidence, recommendation, and comparison with the prior crawl when one exists.

After changing the site, use **Verify now** on a supported deterministic page-level finding. This records whether that specific issue is fixed or still open. Heuristic and site-wide findings may not support a live check.

Rerun the same audit scope when you need a complete new crawl, lifecycle comparison, or verification of unsupported findings. A finding marked **Fixed** in the lifecycle view means the later crawl no longer detected it under the audited conditions; it is not a guarantee of rankings or indexation.

## Export the report

Once a crawl is completed, **Export** on the report header covers the whole audit rather than the tab you are viewing.

**Executive PDF report** is the summary to hand a client or a stakeholder. It covers the crawl scope, what to address first, technical readiness, what changed since the prior crawl, and tracked crawler access. It needs the report's findings, so the item is unavailable while they cannot be loaded.

For the underlying data, choose **Full audit workbook** for one Excel file with crawled pages, findings, and duplicate content on separate sheets, or export **Crawled pages**, **Findings**, or **Duplicate content** on their own as an Excel workbook or a CSV spreadsheet. Duplicate content also offers **Markdown for AI** when you want to hand the report to an AI assistant.

An export contains every reportable row for that report, not the subset left by the search, filters, and sorting you applied on screen. Findings are ordered by priority and include resolved ones. Duplicate-content exports retain actionable and lower-confidence measured overlap with an explicit evidence state and reason; zero-overlap pages are omitted. Rows you hid remain exported with their hidden state and reason recorded. The file reads the saved crawl and does not recrawl the site, so check the crawl date before putting it in a client deliverable.

## Connected-data limitations

The crawl can complete even when GSC, GA4, Bing, backlink, PageSpeed, or other enrichment data is disconnected or temporarily unavailable. In that case the related columns may be blank. A blank value caused by unavailable data is not zero and is not a confirmed pass.

If enrichment fails during a run, review the visible notice, confirm the connection, and rerun to load the missing data. See [Connecting client Google services](/account-and-settings/connecting-client-google-services) and [Connecting Bing Webmaster Tools](/track/connecting-bing-webmaster-tools).

## Troubleshooting

If expected pages are missing, check the selected page limit, crawl source, allow and disallow paths, subdomain scope, robots rules, authentication, firewall, and JavaScript rendering. For blocked requests, see [Whitelisting the Rankability crawler](/troubleshooting/whitelisting-rankability-crawler).

If a supported crawl repeatedly errors, contact support with the client, project name, domain, time of the run, selected crawl settings, and visible error text.

## Related articles

* [Audit overview](/audit/audit-overview)
* [Using Page Content Auditor](/audit/page-content-auditor-guide)
* [Usage limits reference](/account-and-settings/credit-costs-reference)
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues)


# Using Page Content Auditor

Audit one page for a target keyword and intent, track background progress, interpret the report, understand usage and gate failures, and rerun safely.

Use Page Content Auditor to evaluate one public page against a specific target keyword and search intent. The report combines crawl and indexing checks with content, structure, performance, trust, quality, and AI-crawler evidence.

Use [Site Auditor](/audit/site-auditor-guide) instead when you need to investigate an entire site or repeated template-level issues.

## Start a page audit

1. Select the client and choose **Audit → Page Content Auditor**.
2. Enter the complete public page URL.
3. Enter the target keyword you want the page to satisfy.
4. Add a location when the query depends on a specific market.
5. Let Rankability detect intent or choose **Informational**, **Commercial**, **Transactional**, or **Navigational**.
6. Review the displayed usage impact, then start the audit.

Choose intent based on what a searcher expects from the result, not merely the page type you already have. A mismatch between intent and the page can affect competitor selection and several recommendations.

After starting, Rankability returns to **All audits**. The row moves through **Queued**, **Reading page**, **Researching results**, and **Scoring audit** while the list refreshes automatically. You can leave the page; the work continues on the server.

If the analysis request fails to start or remains pending without starting, the saved row displays **Needs attention** and **Retry**. Use that control instead of creating a duplicate audit.

## Usage and the three gates

Page Content Audits are included in full-platform pooled usage. A failed audit does not record completed work.

Before the full analysis, the page must pass three gates:

* **Crawlable** — Rankability can fetch the URL.
* **Indexable** — the page does not expose a blocking indexing condition.
* **Retrievable** — Rankability can extract enough usable page content for analysis.

If the page fails a gate, Rankability produces the available gate report. A PageSpeed Insights failure is different: the rest of the audit can still complete without a performance score.

## Read the seven report sections

The completed report can contain:

1. **Crawling & Indexing** — fetchability, indexability, canonical and related technical evidence.
2. **Content** — keyword use, topic and entity coverage, search-intent alignment, competitor coverage, and content differentiation.
3. **On-Page Structure** — titles, descriptions, headings, links, freshness signals, broken links, schema, and semantic components.
4. **UX & Performance** — available PageSpeed and Core Web Vitals evidence, mobile and page-weight signals, readability, intrusive interstitials, and advertising patterns.
5. **Trust & Authority** — trust evidence relevant to the selected intent and page purpose.
6. **Page Quality Score** — a consolidated quality rubric for the analyzed page.
7. **AI Crawler & Corpus Readiness** — whether major AI and search crawlers appear able to access and interpret the page.

Expand a failed or warning check to inspect its reason, current value, recommendation, and available page or competitor evidence. Treat the evidence as the basis for a decision—not the color of the badge alone.

## Understand the score

The overall score runs from 0 to 100. Rankability weights the applicable sections and renormalizes the result when a section cannot be evaluated. Therefore, a missing or not-applicable section is not automatically scored as zero, and two audits with different available evidence are not always directly comparable.

The score is diagnostic. It does not guarantee a ranking improvement, and a lower-scoring recommendation can still be irrelevant to the page’s actual purpose. Verify major changes against the page, query, competitors, brand requirements, and conversion goal.

## Compare history and rerun

Rankability retains completed audits and can show score history for the same URL and target keyword. Keep the inputs consistent when you want a meaningful before-and-after comparison.

Use **Re-audit** after publishing material changes or when an older report lacks newly released checks. Rankability creates a new version while keeping the latest completed report available. The row shows the new version's background progress; if that version fails, the prior completed report remains readable and the row identifies the failed re-audit.

A re-audit is a new metered outcome when it completes successfully. Do not start another version merely because the list is still showing an active stage.

## Share the report

Use **Share** on a completed audit to create a public, read-only report link for a client or stakeholder. Anyone with the link can view the supported report content, so review it before sending and treat the URL as shareable information.

## Troubleshooting incomplete evidence

* Confirm that the URL is absolute, public, and returns the intended page without login or geographic blocking.
* Check robots directives, canonicals, noindex conditions, bot protection, and JavaScript-only content when a gate fails.
* A missing PageSpeed result usually means that performance data was unavailable, not that performance passed.
* Third-party competitor and performance data is best effort and can change between runs.

For repeated access failures, see [Whitelisting the Rankability crawler](/troubleshooting/whitelisting-rankability-crawler) or contact support with the URL, keyword, intent, audit time, and visible error.

## Related articles

* [Audit overview](/audit/audit-overview)
* [Using Site Auditor](/audit/site-auditor-guide)
* [Understanding your content score](/copywriter/understanding-your-content-score)
* [Usage limits reference](/account-and-settings/credit-costs-reference)


# Using the Google Business Profile Auditor

Run connected or public Google Business Profile audits, compare locations, verify checkpoints, use supported AI fixes, and share or export the report.

Use the Google Business Profile Auditor to evaluate a local listing, compare locations, review competitor evidence, and turn profile, review, media, category, and trust findings into verified work.

## Choose Full Audit or Public Audit

Open the client and choose **Audit → Google Business Profile Auditor**.

* **Full Audit** uses the client’s connected Google Business Profile. Choose it when you manage the listing and need the most complete available profile, review, media, and performance evidence.
* **Public Audit** looks up any business using publicly available data. It does not require a GBP connection and is useful for prospects or competitors.

Public audits cannot access every managed-profile field. Google Posts, Q\&A, detailed media, review-response metrics, and other private account evidence may be unavailable and are excluded where appropriate. A public audit is therefore not directly equivalent to a Full Audit.

For a Full Audit, connect the client’s Google Business Profile first. See [Connecting client Google services](/account-and-settings/connecting-client-google-services).

## Set up the audit

For a connected audit, enter the primary keyword used for local competitor benchmarking and confirm the location.

For a public audit:

1. Enter the business name.
2. Add the primary keyword and location for better matching and competitor context.
3. If the business has similar or multiple listings, add the optional website URL or address hint.
4. Confirm the correct listing if Rankability presents multiple candidates.

The audit can be pending, running, completed, or in error. If a connected profile has a permission problem, Rankability may fall back to public data and identify that limitation in the completed report. Reconnect the profile before relying on fields that require managed access.

## Read the audit summary

The report shows an overall GBP Health score and scores for the categories supported by that run. Categories can include:

* Profile;
* Reviews;
* Media;
* Posts;
* Q\&A;
* Categories; and
* Trust & Consistency.

Each checkpoint is marked **Pass**, **Warning**, or **Fail** and can show the current value, recommended value, supporting evidence, recommendation, and competitor benchmark. Open the relevant Google link when offered and verify the live profile before making a change.

Google Posts and Q\&A data can be temporarily unavailable because of Google API changes. The connected report identifies this and excludes unavailable checkpoints from scoring rather than treating them as failures.

## Compare competitors and locations

The **Competitors** tab shows businesses returned for the audit’s primary keyword in the local map results, with available category, rating, review, and related evidence. It is a search snapshot, not a permanent market definition; results can vary by keyword, location, and time.

When the client has at least two audits, use **Compare locations** to review overall and category scores side by side. Keep the keyword and audit mode consistent when you want a fair comparison.

## Handle reviews and supported fixes

For a flagged-review checkpoint, you can hide a reviewed item and restore it later from the ignored list. Ignoring a review only changes the Rankability audit view. It does not remove or flag the review on Google.

Some connected-audit checkpoints offer an AI-assisted action, such as drafting a description or review reply. Review and edit every suggestion before applying it. When you choose **Apply** on a supported action, Rankability can write the selected change to the connected Google Business Profile; this is different from merely hiding an audit item.

AI output is a draft, not proof that the wording is accurate, compliant, or appropriate. Confirm names, offers, claims, hours, contact details, review context, and Google policy before applying it.

## Rerun, share, and export

Use **Re-run Audit** after changing the listing or when source data was incomplete. Because public results and Google-managed data change, record the audit date when comparing reports.

On a completed audit you can:

* use **Share** to copy a public, read-only report link;
* export checkpoint data as **CSV**; or
* export the structured result as **JSON**.

Anyone with the share link can view the supported report, so review it before sending.

## Read saved audits through the Agent API

An integration with `gbp-audit:read` can list `/api/agent/v1/clients/:client_id/gbp-audits` and read one `/gbp-audits/:audit_id`. These routes expose saved aggregate results only. Summary view omits raw review and question bodies; full view adds bounded checkpoints and competitors. They never start or refresh an audit.

## Troubleshooting

* **Wrong public listing:** use the listing picker or rerun with a more precise location, website URL, or address hint.
* **Incomplete public report:** connect GBP and run a Full Audit when you control the listing.
* **Connected report fell back to public data:** reconnect Google Business Profile and rerun.
* **No competitors:** confirm that the primary keyword and location describe a real local search market.
* **Old information:** verify the live profile and rerun; provider and public-search data can lag.

For a repeated failure, contact support with the client, business name, location, keyword, audit mode, time, and visible error.

## Related articles

* [Audit overview](/audit/audit-overview)
* [Connecting client Google services](/account-and-settings/connecting-client-google-services)
* [GBP group tracking](/track/gbp-group-tracking)
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues)


# Using Batch URL Analyzer

Compare up to 100 URLs using backlink, Google Search Console, GA4, and organic keyword data, then filter, revisit, and export the results.

Use Batch URL Analyzer to compare a set of pages and prioritize consolidation, updating, internal promotion, outreach, or removal decisions with multiple evidence sources in one table.

It analyzes each submitted URL separately. It does not crawl the surrounding site or decide what to do with a page automatically.

## Prepare the URL list

Open the client and choose **Audit → Batch URL Analyzer**. Paste up to 100 absolute URLs, one per line or separated by commas.

Before starting:

* remove duplicate URLs, because each submitted row counts toward the limit and usage impact;
* use the final canonical URL where possible;
* confirm that the selected client owns the GSC and GA4 data you expect to compare; and
* keep unlike page types in separate runs when they have different goals.

Rankability identifies invalid URL strings before the run. The server accepts a maximum of 100 valid URLs.

## Connected data and usage

Batch URL analysis is included in full-platform pooled usage. Larger batches have a higher on-demand impact, so remove duplicate or unnecessary URLs before starting.

Connect Google Search Console and Google Analytics 4 for the richest comparison. If either is not connected, Rankability warns you and lets you continue with backlink and organic keyword data only.

See [Connecting client Google services](/account-and-settings/connecting-client-google-services).

## Understand the columns

The result can include:

* **Backlinks** — links pointing to the exact submitted URL from the backlink data provider.
* **Referring Domains** — unique domains represented in those backlinks.
* **GSC Clicks and Impressions (28d)** — page-level Search Console data for the recent reporting window.
* **GA4 Sessions (28d)** — sessions matched to the page path for the recent reporting window.
* **Organic Keywords** — the number of ranking keywords returned for the URL by the search-data provider.

URL matching normalizes common protocol, `www`, case, and trailing-slash differences for connected search data. It does not mean that genuinely different paths are merged.

## Prioritize with multiple signals

Sort by any numeric column and use the URL search or data-status filters:

* **Complete data** — all expected sources returned a value.
* **Partial data** — at least one source is unavailable for the row.
* **Poor performers** — the available backlink, search, and traffic signals are zero or missing.
* **With errors** — one or more provider requests reported an error.

Do not make a deletion or redirect decision from the Poor performers filter alone. A page can still be important for conversions, navigation, paid campaigns, links not found by the provider, seasonal demand, or a query outside the current data window.

Use the table to form a shortlist, then verify the live URL, canonical, conversions, internal links, business purpose, and replacement page before acting.

## Missing data versus zero

Rankability preserves provider failures as blank values and exposes row errors when possible.

* A **zero** in a connected GSC or GA4 column means no matching activity was found in that source and window.
* A **blank** value means the source was disconnected, unavailable, or failed for that row or run.
* A provider’s zero is limited to that provider’s coverage; it is not proof that no link, keyword, click, or visit exists anywhere.

This distinction is especially important when sorting pages for consolidation.

## Previous runs and CSV export

Completed runs are saved to the client’s recent history when persistence succeeds. Open a previous run to review its stored URL list, results, and integration state. The history view retains up to the recent runs shown by the product.

Use **Export CSV** to download the currently filtered and sorted rows. The CSV contains the data columns shown by the analyzer; provider error text is reviewed in the app rather than exported as a decision label.

If Rankability completes the analysis but says the report could not be saved to history, export the current result before leaving the page.

An integration with `batch-url:read` can list saved history at `/api/agent/v1/clients/:client_id/batch-url-runs` and paginate one run at `/batch-url-runs/:run_id`. These reads preserve missing measurements as null and never analyze URLs or call providers.

## Troubleshooting

* Confirm that every line is a complete `http://` or `https://` URL.
* If GSC or GA4 is blank, verify the client connection and that the submitted URL belongs to the connected property.
* If one provider fails, use the other returned columns and rerun later rather than interpreting the blank as zero.
* If a URL has multiple variants, submit the canonical version and check whether the connected data uses the same path.

For repeated failures, contact support with the client, run time, number of URLs, affected provider, and visible error text.

## Related articles

* [Audit overview](/audit/audit-overview)
* [Using Site Auditor](/audit/site-auditor-guide)
* [Connecting client Google services](/account-and-settings/connecting-client-google-services)
* [Usage limits reference](/account-and-settings/credit-costs-reference)


# Promote overview

Use backlink evidence and Prospector discovery to build a verified, relevant list of off-site promotion and relationship opportunities.

Use backlink evidence and Prospector discovery to build a verified, relevant list of off-site promotion and relationship opportunities.

**Promote** contains two complementary workflows: Backlink Profile explains the client’s existing link landscape, while Prospector helps find new relationship and outreach targets.

## Choose the right starting point

* [**Backlink Profile**](/promote/backlink-profile-guide) — Use when you need domain score, referring-domain trends, new and lost domains, top pages, anchor text, backlink, or brand-mention evidence.
* [**Prospector**](/promote/prospector-guide) — Use when you need relevant influencers, podcasts, blogs, partners, associations, sponsorships, or other Dream 100 targets.

## From evidence to an opportunity list

1. Select the correct client and define the audience, market, location, or relationship type.
2. Use Backlink Profile to understand what already exists, or Prospector to discover new targets.
3. Inspect the source, target page, organization, audience, and reason for relevance.
4. Save qualified targets to the appropriate Prospector list and avoid adding duplicate canonical URLs.
5. Verify contact, opportunity, and audience details before outreach; the current Prospector interface does not expose a general list-enrichment action.
6. Move saved prospects through the manual outreach pipeline and measure the resulting link, mention, referral, or relationship outcome separately from the original opportunity.

## Costs and data quality

Backlink list loads, exports, and Prospector discovery are included in pooled usage. Review the scope and usage impact before starting. A score, detected mention, discovered opportunity, or imported contact is prioritization evidence, not proof of relevance, accuracy, or a relationship.

## What Promote does not do automatically

* It does not guarantee a link, placement, response, or ranking change.
* It does not verify every contact or audience claim without your review.
* Saving a prospect does not by itself send outreach or create an external relationship.

## If results are weak or missing

Narrow or correct the market context, verify the client domain, and check whether the source data is unavailable rather than zero. Contact support with the client, tool, input, time, and visible error if a supported run repeatedly fails.

## Related articles

* [Usage limits reference](/account-and-settings/credit-costs-reference)
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues)


# Using Backlink Profile

Analyze a domain’s backlink profile, referring-domain trends, top linked pages, anchor text, individual links, and unlinked brand mentions.

Use Backlink Profile to understand the links already pointing to a client or comparison domain, investigate gains and losses, find pages that attract links, review anchor patterns, and qualify link-reclamation or outreach opportunities.

Backlink data is third-party discovery data. Treat it as evidence to investigate, not a complete record of every link on the web or a direct statement from Google.

## Choose the domain scope

Open the client and choose **Promote → Backlink Profile**. The client must have a valid domain configured.

When the client domain is a subdomain, the domain selector can let you switch between the root domain and the configured subdomain. Use **Analyze Domain** to inspect another valid domain, such as a competitor, without changing the client’s saved domain.

Keep the scope consistent when comparing dates or competitors. Root-domain and subdomain totals are not interchangeable, and an external-domain analysis is not stored as the client’s own profile.

## Read the overview

The summary and **Overview** tab can show:

* **Domain Score** — the provider’s 0–100 estimate of backlink authority;
* **Total Backlinks** — discovered external links to the selected scope;
* **Referring Domains** — unique discovered domains that link to it;
* **New and Lost Referring Domains** — recently gained and lost domains;
* **Domain Score Trend** — monthly score history when available;
* **Referring Domains Trend**; and
* **New & Lost Referring Domains** over 1, 3, 6, or 12 months with daily, weekly, or monthly display options.

Use trend direction and magnitude as an investigation trigger. Provider history can be sparse for a newly analyzed domain, and discovery dates are not always the dates a webmaster created or removed a link.

## Find linkable and broken target pages

The **Top Pages** tab ranks pages on the selected domain by their backlink and referring-domain evidence. Filter by follow status, referring-domain score range, or target-page HTTP status.

Look for:

* pages with strong referring-domain counts that deserve preservation;
* 3xx targets that may be passing links through avoidable redirects;
* 4xx targets with links that may be recoverable through restoration, correction, or a relevant redirect; and
* pages with unusual new or lost domain movement.

Choose the row action to open the Backlinks tab already filtered to that target URL.

## Review anchor text

The **Anchors** tab groups anchor text and automatically classifies patterns such as Brand / Other, URL / Naked, Generic, Commercial, Spam, and Empty. Search, filter by category, and compare referring domains, share of referring domains, and link counts.

Anchor classifications and alert thresholds are heuristics. Verify the source pages before treating a commercial, empty, or suspicious-looking anchor as manipulative. Do not submit a disavow file from an automated category or score alone.

## Inspect individual backlinks

The **Backlinks** tab shows 50 results per page and supports filters for:

* a specific target-page URL;
* follow or nofollow links;
* regular or redirect links;
* all, new, or lost status; and
* one link per referring domain or all discovered backlinks.

Rows can include the source page and title, target URL, referring-domain score, source-page ranking keywords, anchor context, HTTP condition, and first-seen information.

Open both the source and target pages before assigning outreach or remediation. A provider can report a lost link because it could not recrawl the source, and a live page can differ from the stored result.

## Usage and exports

Summary, trend, Top Pages, and Anchors views are separate from the metered live backlink list.

* Each successful **Backlinks** page request is included in pooled usage. Changing the page, filters, mode, target URL, or domain can trigger another live request. Results are cached briefly, but avoid unnecessary repeats.
* **Export All** exports up to 10,000 rows that match the active backlink filters and scope and is included in pooled usage.

Confirm the domain, target URL, follow, type, status, and one-per-domain settings before loading many pages or exporting. The CSV can include source and target URLs, domain score, ranking keywords, anchor and context, link type and attributes, broken state, HTTP code, and first- and last-seen dates.

## Brand Mentions

When enabled for the account, **Brand Mentions** finds pages that mention the entered brand but may not link to the client domain. Review linked and unlinked status, domain score, page relevance, and the live text before treating a result as an outreach opportunity.

You can export the filtered mentions or add a qualified domain to a Prospector list. Saving it does not send outreach. See [Using Prospector](/promote/prospector-guide).

## Make a decision from the evidence

Common workflows include:

* reclaiming a valuable link to a broken or removed page;
* preserving or updating a page that attracts strong links;
* investigating a sudden loss of referring domains;
* finding publications and organizations already relevant to the market; and
* converting a verified unlinked mention into a personalized outreach target.

Prioritize relevance, editorial context, and real audience fit over raw link counts. Domain Score is a provider metric—not a Google metric—and no individual link guarantees a ranking change.

## Related articles

* [Promote overview](/promote/promote-overview)
* [Using Prospector](/promote/prospector-guide)
* [Batch URL Analyzer](/audit/batch-url-analyzer-guide)
* [Usage limits reference](/account-and-settings/credit-costs-reference)


# Using Prospector

Use Rankability Prospector to discover off-site opportunities, review evidence, save qualified prospects, import lists, and manage an outreach pipeline.

Use Prospector to find and organize relevant off-site opportunities such as podcast interviews, sponsorships, guest posts, directories, resource pages, memberships, speaking opportunities, local media, awards, testimonials, and case studies.

Prospector finds and organizes potential relationships. It does not send outreach, guarantee a placement, or verify that every discovered opportunity is still open.

## Choose an opportunity type

Open the client and choose **Promote → Prospector → Discover**. Select the outcome you want rather than running a broad, undefined search.

Available groups include:

* core opportunities such as podcasts, local sponsorships, guest posts, and directories;
* events, scholarships, conferences, schools, career programs, and internships;
* city, nonprofit, library, community, and B2B resource or partner pages;
* chambers, associations, licensing, vendor, and recognition programs;
* speaking, workshop, training, and webinar opportunities;
* local news and “best of” awards; and
* client, vendor, and partner testimonials or case studies.

Each type asks for the context needed for that search. Depending on the workflow, this can include niche, target audience, location, organization type, budget, show size, Domain Score range, or preferred content format.

## Run discovery

Review the inputs and displayed usage impact, then start the search. Discovery is included in full-platform pooled usage.

Discovery runs in the background. You can leave the page while it works, and completed, cancelled, or failed searches appear under **Runs**.

Use **Batch** when you need several focused searches. Each row is a separate discovery run. Batch dispatches a limited number at a time and continues in the background.

Recent completed results can be reused instead of immediately repeating an equivalent search. If the product says fresh results are available, review them before starting another on-demand run.

## Review results before saving

A completed run lists the discovered organization or publication, its URL, the opportunity link when found, and available evidence specific to the selected type. Results may also identify duplicates seen in earlier runs.

Before saving a prospect:

1. Open the website and the specific opportunity, submission, sponsorship, directory, or contact page.
2. Confirm that the organization exists and the opportunity is current.
3. Verify audience, geographic, topical, budget, and policy fit.
4. Check whether the target already appears in an earlier run or Prospector list.
5. Record why it is worth pursuing instead of relying only on an automated label.

Use **Hide seen** to focus on net-new results, but remember that a previously seen organization can still be relevant in a different campaign.

## Save prospects to My Lists

From a result, choose an existing list or create a new one. You can combine opportunity types in the same list when they belong to the same campaign.

**My Lists** uses a five-stage board:

```
Identified → Contacted → In Discussion → Won
                                  ↘ Passed
```

Move a card only when the real-world outreach state changes. Saving a target or moving it to Contacted does not send a message; the status is a manual operating record.

Prospector also accepts qualified URLs from other Rankability surfaces, including supported Traditional Search, AI Citation, Backlink Profile, and brand-mention workflows. URL membership checks help show when a canonical URL is already saved so you can avoid silent duplicates.

## Import an existing prospect list

Choose **My Lists → Import list** to upload a CSV or paste CSV or tab-separated rows. Import into an existing list or create a new one.

The import supports up to **500 rows** at once and requires a website URL column. You can map optional columns for name, contact email, contact page, notes, and pipeline status. Review the detected column mapping and preview before importing.

Rankability normalizes URLs and reports imported, duplicate, invalid, and skipped rows. An imported email or contact page is user-supplied data; importing it does not independently verify it.

## Discovery versus enrichment scope

The current Prospector interface returns the evidence generated by discovery. It does not present a general enrichment action for every list; use only the actions and scope shown in the product.

## Responsible outreach

* Personalize the pitch to the organization and evidence you verified.
* Follow submission rules, sponsorship requirements, privacy laws, and recipient preferences.
* Do not present estimated audience, contact, score, or AI-generated reasoning as a confirmed fact.
* Do not buy or pursue a placement solely for a backlink.
* Track the actual relationship, mention, referral, or link outcome separately from the discovery result.

## Troubleshooting

* **Weak results:** narrow the opportunity type, niche, location, audience, or other workflow inputs.
* **No results:** loosen one constraint at a time and confirm that the requested opportunity exists in the market.
* **Repeated prospects:** use Hide seen and check list membership before saving.
* **Failed or stalled run:** review the run status, then contact support with the client, opportunity type, input, start time, and visible error.
* **Import rejected:** confirm that the URL column is mapped, URLs are valid, and the file has no more than 500 data rows.

## Related articles

* [Promote overview](/promote/promote-overview)
* [Using Backlink Profile](/promote/backlink-profile-guide)
* [Usage limits reference](/account-and-settings/credit-costs-reference)
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues)


# Setting up keyword tracking

Create a Track report from what customers should find the client for, then choose platforms, queries, locations, and a monitoring cadence.

Create a Track report from what customers should find the client for, then choose the platforms, queries, locations, and monitoring cadence that answer the business question.

Before starting, confirm the client domain and brand, the target market, and which search surfaces matter. Tracking is a recurring measurement commitment, so avoid enabling platforms or locations you will not use.

## Create a report

1. Select a client and open **Track**, then create a report.
2. Answer **What should customers find you for?** with one product, service, or category. Each answer becomes its own report with its own history, so create separate reports rather than combining unrelated offerings.
3. Check the summarized brand context. The client name, domain, recognized names, and default location come from the client's brand settings instead of being re-entered for every report. Use **Review recognized names** to approve or reject suggested alternate names, former names, and common misspellings; your decisions are saved back to brand settings without leaving Track.
4. Choose the platforms to track. Nothing is selected for you. The primary choices are grouped as **AI answers** and **Search results**, and the remaining platforms are behind **Add another platform**. Local coverage appears only after you deliberately select Google local results; its grid size and distance between checks are under **Customize**.
5. Review the query for each channel. The selected AI platforms share one **AI question**, and Google Search and local results share one **Search query** because both test the same customer phrase. Rankability suggests both from your answer, and a query you edit is never overwritten. The two are deliberately different in style: the AI question should read as a natural question someone would ask an assistant, while the search query should be the shorter keyword phrase someone would type into Google. To track more than one phrasing, use **Suggest questions** and pick from the suggested customer questions; each question you keep becomes its own report with its own history.
6. If you selected a video platform, supply the client's YouTube channel or TikTok profile URL. Rankability needs the channel or profile address to recognize the client's videos — a link to an individual video is rejected.
7. Choose **Daily**, **Weekly**, or **Monthly**. The cadence applies to every platform you selected, and per-platform schedules remain available afterward in report settings.
8. Select **Start tracking**. Monitoring is enabled and the first scan starts immediately; scheduled scans build history from there.

Before you start, the summary line confirms that tracking begins now and shows what the report will use. On a current plan it shows the cadence and where the new report leaves you against your active tracked prompt allowance. On a protected legacy plan it shows the estimated monthly usage and the number of platforms instead. Review it again after changing platforms, locations, or the Local Pack grid.

A completed setup without a completed scan does not yet contain visibility evidence.

## Choose platforms deliberately

Traditional, AI, local, and video platforms measure different kinds of visibility and have different workload impact. Location-aware AI platforms can multiply work across additional locations. Enable only the surfaces you intend to monitor.

Which AI platforms you can select depends on your base plan and any paid platform add-ons. Google Search, local, and video tracking are included on every paid plan. If an AI platform is locked, open **Billing** to add that platform or compare a plan that includes it. Access begins only after any required payment succeeds. See [Understanding billing and usage](/account-and-settings/understanding-billing-and-credits) for the enabled platforms and tracked prompt allowance on your subscription.

## Organize tracking

Use topic groups and bulk settings where available to keep related keywords consistent. Turning auto-tracking off stops new scheduled scans for that keyword; you can still run a manual scan.

Use one persisted keyword record for each intended query/client scope. If you import or create in bulk, verify row-level language and location settings before starting scans. Similar keyword text can legitimately exist in different projects or markets, but accidental duplicates waste capacity and fragment history.

## Track a running scan

After you start a scan, Rankability returns you to the keyword list and shows the run's state on the project's row. A scan in progress shows **Processing**, and the list refreshes on its own while any run is still working — you do not need to keep a report page open.

A new report opens only after a scan has covered every platform you selected. Faster platforms can return before the rest, so a row can look busy for a while before it becomes available; that wait is the report being completed rather than a stalled run. Once a report has a completed scan it stays open, so adding a platform later does not take the existing report away while the new one is measured for the first time.

A run that does not finish shows **Stuck** or **Failed**, with the recorded reason available on the row. When the run can be retried, select **Retry** on that row; the project returns to **Processing** and stays in the list. A scan that stalls is stopped automatically and recorded as failed rather than sitting on **Processing** indefinitely, so a row that stays busy for a long time is still working. You can also cancel a scan that is pending, running, or stuck; a scan that has already finished cannot be canceled.

## Read the first result

After a completed scan, review SPI and its category breakdown, then open the detailed traditional, AI answer, citation, local, or video results that apply to the project.

## Common issues

* **The usage impact is too high** — Reduce unnecessary platforms, locations, or grid points before approval. See [Supported tracking platforms](/track/supported-tracking-platforms).
* **No scan data appears** — Check that a run completed and that the selected platform, date, and location match it.
* **A platform says not tracked** — Enable it in the keyword settings and run a new scan; historical runs cannot contain a platform that was not selected.
* **The keyword already exists** — Open the existing tracked keyword and preserve its history instead of creating a duplicate.
* **Scheduled scans stopped** — Check auto-tracking, project state, connection health, subscription state, and any visible error before starting a manual replacement. A lapsed subscription stops automatic scans, and the skipped run records that reason on the row. Scheduled work is otherwise protected from on-demand usage limits.
* **The result differs from a manual search** — Location, device, personalization, time, and provider context can differ. Compare the persisted scan with matching settings.

## Related articles

* [Supported tracking platforms](/track/supported-tracking-platforms)
* [Understanding SPI](/track/understanding-spi)
* [Usage limits reference](/account-and-settings/credit-costs-reference)
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues)
* [Running benchmark reports](/track/running-benchmark-reports)


# Understanding SPI

Understand how Rankability calculates the 0–100 Search Performance Index across traditional, video, AI mention, AI citation, and local visibility.

SPI is Rankability's 0–100 **Search Performance Index**. It combines the tracked search surfaces that apply to a project so you can monitor overall visibility and then drill into the evidence behind a change.

SPI is not traffic, conversions, market share, sentiment, or a prediction of future performance. Use it to compare the same tracking scope over time.

## Standard category weights

| Category           | Weight |
| ------------------ | -----: |
| Traditional search |    30% |
| Video              |    10% |
| AI mentions        |    35% |
| AI citations       |    25% |

## Local-query category weights

When a project is configured as a local query and includes Local Pack evidence, SPI uses a local-first weighting:

| Category           | Weight |
| ------------------ | -----: |
| Local              |    60% |
| Traditional search |    10% |
| Video              |     5% |
| AI mentions        |    14% |
| AI citations       |    11% |

## How the calculation works

1. Rankability calculates a 0–100 score for each active category.
2. Results inside a category are weighted by platform and, where relevant, ranking or citation position.
3. Category scores are combined using the standard or local weights above.
4. Categories with no applicable selected data are removed and the remaining category weights are normalized to total 100%.

This means a missing category is not automatically a measured zero. By contrast, a completed check where the brand is absent can contribute zero inside an active category.

Traditional and video position credit declines as the result moves down the rankings. Positions below 30 receive no position score. AI mention credit is based on whether the visible answer names the brand. AI citation credit uses citation presence and position. Local scoring uses the center result and available grid positions.

Platforms inside each category have different weights. SPI is therefore not a simple average of every selected platform.

## Selected surfaces change the scale

SPI uses the surfaces that the project actually measures. Adding or removing a platform, changing locations, or changing a per-platform AI tracking mode can alter the scoring scope even when existing results do not move.

Where AI tracking-mode controls are available:

* **Both** includes the platform in AI mentions and AI citations.
* **Citations only** removes its mention contribution.
* **Mentions only** removes its citation contribution and can hide the AI citations tab when no citation-tracking AI platform remains.

When comparing projects in a client-level or portfolio view, check for mixed scoring scales. Two projects with different selected surfaces or tracking modes are not perfectly equivalent even when their SPI values match.

## Video and Local Pack details

YouTube Search, Google Video Pack, and TikTok Search can contribute to the video category when selected and available. A confirmed absence of a Google Video Pack removes that pack from the video calculation instead of treating the missing surface as an owned ranking failure.

Supported video mention evidence can receive partial visibility credit even when the brand does not own the ranking video. That is different from position credit for an owned result.

For local projects, the Local category uses the configured Local Pack center and grid evidence. Grid coverage and rank are therefore more important to the local SPI than the standard organic category.

## Score bands

| Score  | Label          |
| ------ | -------------- |
| 90–100 | Very Strong    |
| 70–89  | Strong         |
| 50–69  | Moderate       |
| 30–49  | Weak           |
| 15–29  | Very Weak      |
| 0–14   | Extremely Weak |

The label summarizes the calculated visibility score; it is not a judgment about the business, campaign quality, or reputation.

## Diagnose an SPI change

1. Confirm the project, keyword, location, and comparison dates.
2. Check whether the selected platforms or AI tracking modes changed.
3. Open the category breakdown to identify which component moved.
4. Open the corresponding traditional, video, AI answer, citation, or local evidence.
5. Distinguish a completed absence from **No scan**, **No history**, **Not tracked**, stale data, or a failed platform.
6. Compare more than one completed run before treating normal volatility as a trend.

GSC clicks, impressions, and GA4 engagement can help explain business impact, but they do not directly become SPI. Compare those connected-data metrics separately instead of assuming an SPI increase caused a traffic or conversion change.

## Common interpretation mistakes

* Comparing projects with different platform or location coverage.
* Treating an unavailable category as zero.
* Treating an AI citation as a brand mention.
* Treating positive sentiment as part of SPI; sentiment is a separate evidence dimension.
* Comparing a local-query SPI with a standard-query SPI without considering the different category weights.
* Reporting a one-run change as a durable trend.

## Next steps

* [Read the Track overview](/track/reporter-executive-summary)
* [Read traditional and video results](/track/traditional-search-tab)
* [Read AI answers](/track/ai-answers-tab)
* [Read AI citations](/track/ai-citations-tab)
* [Connect GSC and GA4 evidence](/track/data-integrations-overview)


# Reading traditional and video search results

Read Google, Bing, DuckDuckGo, Brave, YouTube, Google Video Pack, and TikTok results without confusing rank changes, scan states, and page analysis.

Use Rankability's traditional and video reports to see where a tracked brand appears, which URL ranks, what changed since a comparable scan, and which competing pages may be worth analyzing or contacting.

Traditional, local, and video results are separate surfaces. The client-level **Traditional search** view covers Google, Bing, DuckDuckGo, and Brave. Open an individual tracking project for its deeper traditional history, Local Pack data, or **Video search** results.

## Before you start

You need a tracking project with at least one keyword and a usable terminal scan. A usable scan is either **Complete**, or **Partial** with successful data for the surface you are viewing. Results are limited to the platforms, locations, and cadence selected for that project. A manual scan of one surface does not refresh the other surfaces.

If you are still configuring the project, review [supported tracking platforms](/track/supported-tracking-platforms) and [set up keyword tracking](/track/setting-up-keyword-tracking) first.

## Use the client-level Traditional search view

Open a client, select **Track**, and choose **Traditional search** to review tracked keywords across that client's projects.

1. Select Google, Bing, DuckDuckGo, Brave, or **All search engines**.
2. Choose a 7-, 30-, or 90-day comparison window.
3. Filter by keyword, project, tag, or tracking coverage.
4. Sort by keyword, best position, biggest gain, or biggest loss.
5. Select a keyword to open its individual report and supporting evidence.

The Top 3, Top 10, Top 20, Top 100, Unranked, and average-position summaries exclude keywords that are not configured for the selected engine. When **All search engines** is selected, rank buckets use each keyword's best current position across the four engines.

The average-position trend uses usable complete or partial results. A completed unranked result is represented as position 101 so a ranking loss remains visible instead of disappearing from the trend. When multiple usable runs contain comparable results on the same UTC day, the report uses the newest comparable result for that day.

## Read ranking states correctly

| State           | Meaning                                                                            |
| --------------- | ---------------------------------------------------------------------------------- |
| **No scan**     | There is no current usable complete or partial scan for that engine and keyword.   |
| **Scanning**    | A scan is currently running; wait for it to complete.                              |
| **No history**  | A current result exists, but no earlier comparable usable scan is available.       |
| **Not tracked** | That engine is not selected for this keyword.                                      |
| **Not ranked**  | The scan completed, but the tracked target did not rank within the measured range. |
| **New**         | The target ranks now and did not rank in the prior comparable scan.                |
| **Lost**        | The target ranked in the prior comparable scan and is unranked now.                |

The **Prior scan** value is the most recent earlier usable scan for the same project, keyword, and engine. A partial run is eligible only when it contains successful data for that engine. It is not an arbitrary row or a fixed “30 days ago” lookup.

A **Partial** run means at least one requested platform succeeded while another did not. It does not mean every configured platform was collected. Check the platform-specific status before reporting a partial run as a complete cross-platform snapshot.

## Use the individual traditional report

Open a keyword report and choose **Traditional search** when you need the full ranking-source table and history.

* Use **Sources** to include or exclude Google, Bing, DuckDuckGo, and Brave.
* Check stale or failed-platform notices before treating the table as a complete current snapshot.
* Review the ranking URL, current and previous position, and source history before deciding that a page gained or lost visibility.
* Use **Ranking history** to inspect persisted position changes rather than relying on a single snapshot.
* Export the table when you need ranking, source, and analysis fields outside Rankability.

Do not compare a local grid result with a national organic result as though they are the same SERP. Local Pack evidence belongs in the project's Local view.

## Analyze ranking pages for brand mentions

The individual traditional report can analyze the pages that rank for the keyword.

1. Select **Analyze results**.
2. Review the batch scope and current pooled-usage state.
3. After analysis, filter the table by **Has mention** or **Not mentioned**.
4. Use the result to decide whether the page is an existing relationship, an unlinked-mention opportunity, or a new outreach target.

Rankability accepts only URLs found in the project's persisted Google, Bing, DuckDuckGo, or Brave results and processes at most 30 requested URLs at a time. The analysis is included in pooled usage. Previously analyzed pages are skipped, so **Re-analyze results** can pick up new ranking URLs but does not force a fresh crawl of every existing analysis.

| Analysis state    | Meaning                                                                           |
| ----------------- | --------------------------------------------------------------------------------- |
| **Linked**        | The page mentions the brand and links to a recognized owned domain or page.       |
| **Unlinked**      | The page mentions the brand but no recognized owned link was found.               |
| **Not mentioned** | The page was analyzed and the tracked brand was not found.                        |
| **Not available** | Rankability could not reach or analyze the page, such as a paywall or login wall. |
| **Not analyzed**  | No analysis exists for that ranking URL yet.                                      |

Traditional page analysis is kept separate from AI Citation metrics and does not change Citation Visibility Score. The CSV export includes mention status, detected brand URL, and analysis date.

For a non-owned ranking URL, use the bookmark action to add it to an existing or new Prospector list. Rankability uses canonical URL membership to avoid presenting the same saved destination as a new prospect. Continue with [Using Prospector](/promote/prospector-guide).

## Read video results separately

The **Video search** view can include YouTube Search, Google Video Pack, and TikTok Search when they are enabled for the project. Google Video Pack is collected with Google Organic and does not add separate usage impact.

A video result can show an owned ranking or a brand mention detected in supported caption, hashtag, or transcript evidence. Treat those as different signals: a brand can be mentioned in a ranking video without owning that result.

## Troubleshooting

* If every row says **No scan**, confirm the first scan completed for the selected platform.
* If an engine says **Not tracked**, edit the project rather than interpreting the state as an unranked result.
* If results are marked stale, run the appropriate surface scan before reporting them as current.
* If a platform failed, use the available retry. Only successfully returned results contribute completed-work usage.
* If a row opens the wrong evidence, confirm you selected the intended keyword and project, then [contact support](https://app.rankability.com/support) with the keyword and URL.

## Next steps

* [Understand SPI and its category weights](/track/understanding-spi)
* [Read AI answers](/track/ai-answers-tab)
* [Read AI citations](/track/ai-citations-tab)


# Reading AI answers

Read captured AI answers, brand-mention and sentiment states, location segments, history, and failed or unavailable platform results in Rankability.

Use **AI answers** to review what each enabled AI platform returned for a tracked prompt, whether the visible answer names the client brand, and how that mention was portrayed when sentiment evidence is available.

This report is a captured result for one project, keyword, platform, location segment, and scan. It is not a statement about every response that platform can produce.

## Before you start

The tracking project must include at least one AI platform and have a completed AI scan. Platform cards appear only for selected platforms with current, previous, empty, or failed result state.

Review [supported tracking platforms](/track/supported-tracking-platforms) before adding platforms or extra AI locations because each successful check adds workload.

## Read an answer

1. Open the relevant tracking project and keyword report.
2. Choose **AI answers**.
3. Select the primary or additional AI location when location segments are available.
4. Expand a platform card to read the captured answer.
5. Compare the capture date and historical answers before treating a wording change as a trend.
6. Open [AI citations](/track/ai-citations-tab) when you need the pages that supported the answer.

The answer shown inside a platform card and its **Mentioned** status refer to the same visible response. Rankability checks the displayed answer prose against the tracked brand and its configured aliases.

How an answer is laid out follows the structure the provider returned. Google AI Overview and AI Mode answers keep the provider's text blocks, Perplexity answers keep their headings, lists, tables, and citation markers, and other platforms show the captured answer as formatted text. A plainer card means the provider returned less structure, not that Rankability captured less.

## Interpret the platform badges

| State                             | Meaning                                                                                                                          |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| **Mentioned**                     | The visible answer prose names the tracked brand or a configured alias.                                                          |
| **Cited as source**               | A recognized client source is cited, but the visible answer does not name the brand.                                             |
| **Not mentioned**                 | An answer was captured, but its visible prose does not name the brand.                                                           |
| **No AI Overview / No AI answer** | The platform check succeeded, but that surface did not return an AI answer for the query. This is not the same as a failed scan. |
| **Scan failed**                   | The platform did not complete successfully. Previous data may be shown and labeled as such.                                      |

Google AI Overview, Google AI Mode, and Brave AI do not generate an answer for every query. A neutral no-answer state means the surface was absent for that run; it does not mean an answer existed and omitted the brand. Rankability does not bill that unavailable surface when the product explicitly says no answer was returned.

## Read sentiment carefully

When a visible answer mentions the brand and sentiment was captured, the card can show **Positive**, **Neutral**, **Mixed**, or **Negative**, with a short evidence reason.

Sentiment describes the tracked brand in that answer—not the overall tone of the entire response and not the reputation of the brand everywhere. A dash means sentiment was not captured for the answer; it should not be converted into a neutral classification.

## Mentions and citations are separate

These states can occur independently:

* The answer names the brand but cites only third-party sources.
* A client page is cited as a source but the answer never names the brand.
* The answer both names the brand and cites a client page.
* The answer contains neither a brand mention nor a client citation.

SPI therefore calculates AI mentions and AI citations as separate categories. Where per-platform tracking-mode controls are available, a project can track both, citations only, or mentions only for an AI platform.

## Location and history

Additional AI locations create separate answer segments for location-eligible model platforms. Google AI Overview and AI Mode use the search result's own location context instead of the extra model-location fanout.

Use historical answers to compare the same platform and location over time. AI wording and citations can vary between runs, so confirm a repeated pattern before making a broad claim or changing strategy.

## Review fan-out queries

Some providers expose the searches they used while researching an answer. When Rankability captures that evidence, the platform card shows a collapsed **Fan-out queries** section with the number of distinct queries returned.

Expand the section to review the query chips. Select one or more useful queries, then choose **Add to keyword list** to save them to an existing Researcher list or create a new list. Rankability recognizes queries already saved in that list rather than adding duplicates.

Fan-out evidence is currently captured when ChatGPT, Gemini, Claude, Grok, or Meta returns explicit query text. The section stays absent when the provider did not expose a query. Rankability does not infer a fan-out query from a citation, URL visit, search result, or the wording of the answer, and Perplexity results therefore do not show this section unless explicit query evidence becomes available.

Treat a fan-out query as evidence of the research path for that exact captured answer. It can suggest follow-up research or content coverage, but it does not prove that every response for the prompt will use the same searches.

## ChatGPT maps and sponsored results

Some ChatGPT responses include structured results in addition to answer prose:

* **Map businesses** can show the business or agency name and, when the provider returned them, details such as image, rating, category, and open status. Use **Copy names** to copy the captured business names for comparison or follow-up research.
* **Sponsored results** are shown separately from map businesses. Rankability only treats a result as an ad when the captured provider data contains usable sponsored creative; a map listing is not labeled as an advertiser merely because it has a business name or logo.

Structured fields depend on what ChatGPT returned for that scan. A missing rating, image, business name, or ad detail means that field was not available in the captured result; it should not be converted into zero or inferred from another result.

## Export complete answers

From the Tracker project list, select one or more reports and choose the spreadsheet export. Each report worksheet includes a full-AI-answer section with the captured answer text and its keyword, platform, capture time, location, mention state, citation state, sentiment evidence, cited URLs, provider, and provider tier.

Very long answers can continue across numbered rows because Excel limits the text stored in one cell. Join those continuation rows in order when analyzing the answer outside Rankability. A report with no captured answer does not receive a fabricated answer row.

The workbook is a historical evidence export. It does not rerun the platforms or refresh an answer at download time. Compare the capture timestamp before using it in a current client claim.

## Failed and stale results

If a platform fails, Rankability can show previous data with a failure notice. Do not report that answer as newly captured. Use **Retry** where available and avoid parallel duplicate retries.

If no AI response data is available, run an AI scan rather than a Traditional or Video-only scan. Those narrower scans do not refresh AI answers.

## Act on the result

* If the brand is absent, compare named competitors and the evidence they receive before deciding what to change.
* If the answer is inaccurate or unfavorable, preserve the exact answer and source evidence before planning remediation.
* If a third-party page supports the answer, review its mention status in [AI citations](/track/ai-citations-tab) and move qualified outreach targets into Prospector.
* If the client page needs improvement, continue with [Page Content Auditor](/audit/page-content-auditor-guide) or [Copywriter](/copywriter/creating-a-content-project).

An absent mention is evidence for that measured prompt and scan—not proof that the brand never appears on the platform.


# Reading AI citations

Interpret AI citation sources, analyze linked and unlinked brand mentions, identify realistic gaps, and move qualified URLs into Prospector.

Use **AI citations** to see which pages supported captured AI answers, which platforms cited each source, whether the page mentions the tracked brand, and which non-owned sources may be realistic outreach targets.

A citation means an AI platform referenced a source. It does not automatically mean the source mentions the brand, links to the client, endorses the brand, or caused the answer.

## Before you start

The project needs a completed AI scan from at least one platform that tracks citations. If every enabled AI platform is configured for mentions only, the AI citations view is unavailable because no citation bucket is being measured.

Start with [Reading AI answers](/track/ai-answers-tab) when you need the answer text that produced the citation set.

## Read the source table

1. Open the relevant project and choose **AI citations**.
2. Select the platforms you want to include.
3. Review each source's URL, title, platforms, best citation position, and weighted score.
4. Check whether the URL is the primary domain, another owned asset, or an external source.
5. Open citation history, changes, or volatility when you need evidence across multiple completed runs.

The source score is weighted by platform reach and citation position; it is not traffic, authority, or a guarantee that the page influenced an answer. A source cited by several platforms can rank above a one-platform source even when both appear once.

## Analyze what the cited page says

Citation analysis fetches the cited page and checks for the brand, a recognized owned link, source type, opportunity status, and available sentiment evidence.

1. Select **Analyze citations**.
2. Review the usage impact for sources that have not been analyzed.
3. After processing, use the filters to narrow the table.

Analysis is included in full-platform pooled usage. **Analyze citations** covers only sources without a result, so canonical URLs already analyzed are skipped.

**Re-analyze** is different: it re-checks the current citation sources and updates results that have gone stale, including a false opportunity for a page that is now linked. Rankability shows the source count and relative usage impact for you to confirm first, and pauses when a pooled on-demand window reaches its limit.

Re-analysis covers exactly the sources the table is showing — the selected keyword and AI location, using each platform's latest result. It does not reach URLs that appear only in older history, and confirming a later refresh starts a new on-demand attempt rather than repeating the one you already approved.

Read the resulting states as follows:

| State             | Meaning                                                                                         |
| ----------------- | ----------------------------------------------------------------------------------------------- |
| **Linked**        | The page mentions the brand and links to a recognized owned domain or page.                     |
| **Unlinked**      | The page mentions the brand but no recognized owned link was detected.                          |
| **Opportunity**   | The analyzed page does not mention the brand and is classified as a realistic external target.  |
| **Gap**           | The analyzed page does not mention the brand, but it may not be a practical outreach target.    |
| **Not available** | The page could not be reached or analyzed, such as a paywall, login wall, or temporary failure. |
| **Not analyzed**  | No citation analysis exists for this source yet.                                                |
| **Owned**         | The URL matches the primary domain or the client's owned-asset registry.                        |

## Use the filters

* **All** shows every source in the selected platform scope.
* **Has mention** shows linked and unlinked brand mentions.
* **Gaps** shows analyzed pages that do not mention the brand.
* **Opportunities** narrows gaps to non-owned sources classified as realistic outreach or content targets.

An opportunity is a prioritization aid, not a promise that the publisher will add a mention or that an AI platform will continue citing the page.

## Keep owned assets accurate

Rankability automatically recognizes the primary domain and can recognize other assets registered for the client. Use the shield action to mark or unmark an off-domain page or domain as owned when the automatic classification is incomplete.

Owned classification affects how Rankability presents citation opportunities. Verify shared publishing platforms at the page level so one owned profile does not make an entire third-party domain look owned.

## Move a source into Prospector

For a non-owned source, use the bookmark action to add the URL to an existing or new Prospector list. Rankability checks canonical list membership so a URL already saved in Prospector is shown as saved instead of being silently duplicated.

Use [Prospector](/promote/prospector-guide) to qualify the source, assign outreach work, and keep the citation report focused on evidence rather than relationship management.

## Understand history and alerts

Citation history and volatility compare persisted completed runs. A source can be added, removed, or change position as platforms alter their retrieval results. Compare the same keyword, platform, location, and time window before labeling a change as meaningful.

Recent citation alerts are signals to investigate. Dismissing an alert changes its notification state; it does not delete the underlying citation history.

## Troubleshooting

* If the table is empty, confirm an AI scan completed and the selected platforms returned citations.
* If the tab is missing, check whether the project's enabled AI platforms are configured for mentions only.
* If a source says **Not available**, inspect the URL manually; Rankability may be blocked even when the page opens in your browser.
* If an owned source is shown as external, update the client's owned assets and rerun the free classification reconciliation.
* If a citation's own result looks stale, use **Re-analyze** to recheck the current sources. To refresh the AI answer behind the citations, run the appropriate AI scan instead; citation analysis does not refresh the answer.

## Next steps

* [Understand how citations affect SPI](/track/understanding-spi)
* [Compare traditional and AI evidence](/track/traditional-search-tab)
* [Use Page Content Auditor](/audit/page-content-auditor-guide)


# Supported tracking platforms

Compare Rankability's supported traditional, local, AI answer, and video tracking platforms and their workload multipliers.

Rankability Track can measure traditional rankings, Local Pack visibility, AI answers and citations, and video search results. Select only the surfaces that match the query and reporting goal; every additional platform, location, and grid point increases the amount of evidence collected and interpreted.

Full-platform customers use pooled usage rather than a public per-check credit price. Tracker shows the active tracked-prompt impact for current subscriptions and the applicable estimate for protected legacy subscriptions. Billing is authoritative for which AI platforms are enabled through the base plan or paid add-ons.

## Traditional and local platforms

| Platform       | What it measures                             |
| -------------- | -------------------------------------------- |
| Google Organic | Standard Google web rankings and ranking URL |
| Local Pack     | Map-pack rank at every configured grid point |
| Bing           | Bing organic rankings                        |
| DuckDuckGo     | DuckDuckGo organic rankings                  |
| Brave          | Brave organic rankings                       |

Local Pack workload is based on grid points, not one flat location check. A 3×3 grid contains nine checks per keyword and location; a 5×5 grid contains 25. Larger grids materially increase scan scope and usage impact.

## AI answer platforms

| Platform           | What it measures                                                           |
| ------------------ | -------------------------------------------------------------------------- |
| Google AI Overview | AI Overviews embedded in eligible Google results                           |
| Google AI Mode     | Google AI Mode answers and available sources                               |
| ChatGPT            | Captured ChatGPT answer, mentions, citations, and available result details |
| Perplexity         | Perplexity answer, mentions, and cited sources                             |
| Gemini             | Gemini answer, mentions, and citations                                     |
| Claude             | Claude answer, mentions, and citations                                     |
| Grok               | Grok answer, mentions, and citations                                       |
| Copilot            | Microsoft Copilot answer, mentions, and citations                          |
| Brave AI           | Brave AI answer, mentions, and citations                                   |
| DeepSeek           | DeepSeek answer, mentions, and citations                                   |
| Meta AI            | Meta AI answer, mentions, and citations                                    |

Core includes ChatGPT, Google AI Mode, and Claude. Team also includes Google AI Overview and Perplexity. Agency includes every currently supported AI platform. Current Core and Team subscriptions can add another AI platform individually from **Billing**; protected legacy subscriptions retain the access described in Billing. Use Billing rather than an older changelog or marketing page as the authority for your subscription.

AI answer checks can capture answer prose, brand mention state, citations, and available sentiment evidence. Exact output varies by platform and query. Some search-embedded surfaces do not return an AI answer for every query; a confirmed no-answer state is different from a failed scan.

Where per-platform tracking modes are available, select **Both**, **Citations only**, or **Mentions only**. The selection affects the data shown and the categories included in [SPI](/track/understanding-spi).

## Video platforms

| Platform          | What it measures                                                           |
| ----------------- | -------------------------------------------------------------------------- |
| YouTube Search    | YouTube search ranking and owned-video evidence                            |
| Google Video Pack | Appearances in Google's video carousel; collected with Google Organic      |
| TikTok Search     | TikTok search ranking and supported caption or transcript mention evidence |

Google Video Pack is collected with the Google Organic check. It cannot be selected or refreshed as a completely independent provider call.

## Location multipliers

Local Pack multiplies by grid points and tracked locations. Location-eligible AI model checks can also run once for the primary location plus once for every additional AI location.

The location-eligible AI platforms are ChatGPT, Perplexity, Gemini, Claude, Grok, Copilot, Brave AI, DeepSeek, and Meta AI. Google AI Overview and Google AI Mode instead use the location context of the search result and do not use that additional model-location fanout.

## Cadence and manual scans

Rankability can schedule supported platforms at daily, weekly, or monthly cadence where those controls are available. The product recommends a cadence per platform and defaults expensive surfaces conservatively, but you can choose a different cadence for the project.

A manual scan can target a subset such as Traditional, AI, or Video. It refreshes only the requested platforms. Running a Traditional scan does not update the AI answer date, and citation analysis does not rerun the AI platform check that produced the citations.

Recurring tracking is limited by the organization's plan and project settings. Turning automatic tracking off stops future scheduled scans but does not delete existing history; manual scans remain available when permitted.

## Review scope before scanning

Before you confirm a report, review the selected platforms and the active tracked-prompt total. For protected legacy subscriptions, use the estimate displayed in Tracker. The workload calculation considers the selected platforms for every keyword and applies:

* Local Pack grid-point and location multipliers.
* Additional location multipliers for eligible AI platforms.
* Any selected deep-scan or city-variant work shown in the setup flow.

Deep-scan variations have greater workload than the primary web-grounded check. Use the displayed scope or impact rather than inferring it only from the platform count.

See the [usage limits reference](/account-and-settings/credit-costs-reference) and [control your usage](/account-and-settings/control-your-usage).

## Choose a practical platform set

* Use Google Organic for the standard ranking baseline.
* Add Local Pack only for queries where map visibility matters, and choose the smallest useful grid.
* Add Bing, DuckDuckGo, or Brave when those audiences or AI-retrieval comparisons matter to the client.
* Add the AI platforms that customers actually use or that matter to the reporting objective.
* Add YouTube or TikTok when video discovery is part of the strategy.
* Use Google Video Pack with Google Organic when video-carousel visibility matters.

More platforms increase coverage, workload, and the number of states you must interpret. They do not automatically make the tracking decision better.

## Result availability

* **Not tracked** means the platform was not selected.
* **No scan** means there is no completed result yet.
* **Not ranked** means the check completed but the target was outside the measured ranking range.
* **No AI answer** means a supported surface completed but did not produce an answer for that query.
* **Scan failed** means the provider check did not complete. Previous data may remain visible and labeled as stale or carried forward.

Retrying a failed platform does not purchase access to that platform. A retry uses the same enabled-platform and usage contract as the original report, and a failed check remains distinct from a completed no-answer or not-ranked result.

## Next steps

* [Set up keyword tracking](/track/setting-up-keyword-tracking)
* [Read traditional and video results](/track/traditional-search-tab)
* [Read AI answers](/track/ai-answers-tab)
* [Read AI citations](/track/ai-citations-tab)
* [Understand billing and usage](/account-and-settings/understanding-billing-and-credits)


# GBP group tracking

Track the same local keywords across multiple business locations, compare Local Pack coverage, detect location overlap, and share the group report.

GBP groups combine the same keyword set across multiple business locations. Rankability creates one underlying Track project for every keyword–location pair, then rolls their Local Pack results into a keyword-by-location matrix.

Use a group when one brand has several offices, stores, service areas, or franchise locations that may rank differently—or compete with one another—for the same local searches.

## Before you start

You need:

* the client’s brand name and website domain;
* at least one keyword;
* at least one address that Rankability can resolve to map coordinates;
* a meaningful label for each location;
* enough usage for the number of keyword–location projects and their scans.

A Google Business Profile connection is **not required to create the tracking group**. Locations are selected through address search. Connect GBP when you also want authorized Business Profile data or in-app review replies for matching locations.

Plan the group size before creating it. The dialog shows the number of keywords multiplied by the number of resolved locations, which equals the number of Track projects that will be created. Each project tracks Local Pack and Google organic by default, and Local Pack usage also scales with the selected grid size.

## Create a GBP group

1. Select the client and open **Track**.
2. Open the **GBP groups** view inside Track. GBP Groups is not a separate primary sidebar tool.
3. Choose **Create GBP group**.
4. Enter a group name, brand name, and website domain.
5. Select a grid size. Larger grids use more points and cover a wider area.
6. Enter one keyword per line.
7. Search for each business address and select a resolved result.
8. Give each location a clear label, such as “Downtown” or “West County.”
9. Review the keyword × location project count and combined first-scan usage impact.
10. Confirm the estimate, then create the group.

Creating the group creates the underlying Track projects and queues their first scans only after the server confirms that the account can cover the combined estimate. Do not submit the form twice if the initial results take time to appear.

## Read the Rankings view

The **Keyword × location matrix** shows each keyword as a row and each location as a column.

* A location cell shows its average Local Pack rank across completed grid points.
* The smaller line shows how many observed grid points ranked in the top three out of the total points returned.
* **Group avg** averages the ranked locations for that keyword.
* **Pack share** is the percentage of observed group grid points where the tracked location appeared in the top three.

Select a location cell to open its underlying Track project and inspect the complete result. A dash means there is no comparable completed Local Pack result for that cell; it is not a rank of zero.

Location cards summarize average rank, top-three appearances, and the number of keywords. For groups with more than one location, they can also summarize the last 30 days of reviews and unanswered-review counts when review data can be resolved.

## Understand cannibalization alerts

The group can flag **Internal cannibalization detected** when multiple locations associated with the brand appear to compete in the same Local Pack context for a keyword.

Treat the alert as an investigation prompt, not proof that one listing harmed another. Open the affected keyword–location projects and check:

* whether both listings legitimately serve that search area;
* whether the location labels, business names, addresses, or domains caused a false match;
* whether the keyword should be assigned more narrowly by service area;
* whether proximity makes overlap expected.

## Run another group scan

Choose **Run scan** from the group. The button shows combined usage impact. Rankability asks you to confirm the scope and then queues a scan for every underlying project without a pending or running scan. Projects already in progress are reused rather than duplicated.

Because a group expands into keyword × location projects and Local Pack grids, a seemingly small increase in keywords, locations, or grid size can increase usage substantially. Review the group dimensions before rescanning and avoid clicking again while scans are active.

## Export or share the report

Use **Export report** to download CSV for the last 7, 30, or 90 days, or all available history.

Use **Share** to create a read-only live report that reflects current rankings without another export. You can:

* enable or disable the link;
* rotate the token to revoke an old link;
* add or remove a password;
* set the link to never expire or expire after 7, 30, or 90 days.

Anyone with an active unprotected link can view it. Use a password and expiry for client-sensitive reports, and disable or rotate the link when access should end.

## Reviews across locations

Groups with more than one location include a **Reviews** tab. It shows recent reviews that Rankability can associate with the group’s locations and separates responded from unanswered items.

Review discovery can work from resolved public place data. Replying directly from Rankability requires a valid GBP connection and a matching connected location. If in-app reply is unavailable, you can still review the item and mark it responded after handling it elsewhere.

## Delete a group carefully

Deleting a group permanently removes the group and all of its associated Track projects. This cannot be undone. Export anything you need and confirm that no other workflow relies on those project histories before deleting.

## Troubleshooting

* **A location cannot be added** — Select a result from address search so Rankability has resolved coordinates; typed text alone is not enough.
* **The matrix is empty** — Wait for the first scans to complete, then refresh the group. Do not create a duplicate group.
* **A cell shows a dash** — Open the underlying project and check whether a Local Pack scan completed and returned grid results.
* **Run scan shows zero new scans** — Every underlying project already has a pending or running scan, so Rankability reuses those runs instead of charging for duplicates.
* **The estimate is larger than expected** — It combines every new keyword × location project and every selected platform. Local Pack also multiplies by the grid’s point count.
* **Reviews are missing** — Confirm the brand and address identify the intended Google place. Review data covers recent resolvable results, not a guaranteed complete archive.
* **Reply is unavailable** — Connect GBP for the client and make sure the group place matches a connected Business Profile location.
* **The group is larger than expected** — The project count is keywords multiplied by resolved locations. Grid points and default platforms apply within each project.

## Related articles

* [Set up keyword tracking](/track/setting-up-keyword-tracking)
* [Supported tracking platforms](/track/supported-tracking-platforms)
* [Understand the Track workspace](/track/reporter-executive-summary)
* [Understand Search Performance Index](/track/understanding-spi)
* [Connect client Google services](/account-and-settings/connecting-client-google-services)
* [GBP Auditor guide](/audit/gbp-auditor-guide)


# Connecting and using Google Search Console

Connect your Google Search Console account to a client, understand the data sync process, and navigate the GSC Performance card with its three tabs, granularity toggle, and comparison mode.

Connect your Google Search Console account to a client, understand the data sync process, and navigate the GSC Performance card with its three tabs, granularity toggle, and comparison mode.

The Google Search Console (GSC) integration brings your real search performance data directly into Rankability. Once connected, you can view clicks, impressions, CTR, and average position trends alongside your Reporter data.

You need access to the intended Search Console property through the Google account used for authorization and permission to manage the client's integrations. Decide whether the client uses a Domain property or URL-prefix property and select the one whose scope matches the site you intend to analyze.

## Connecting GSC to a client

1. Navigate to a client and open **Track**.
2. In the GSC Performance card, click **Connect Google Search Console**.
3. Sign in with the Google account that has access to the Search Console property.
4. Select the property you want to connect (the one matching your client’s domain).
5. Rankability begins importing historical data automatically. A progress indicator shows the backfill status.

The initial import can take a few minutes depending on how much data is available. Once complete, the card updates with your performance metrics.

The import runs in the background and can take longer for a large property. The progress, stored-row count, latest-data date, and any visible sync issues are more reliable than repeatedly reconnecting. Leaving the page does not cancel an active backfill.

## Understanding the GSC Performance card

The GSC Performance card has three tabs:

* **GSC performance** – A time-series chart showing clicks, impressions, CTR, and average position. Toggle each metric on or off by clicking the metric pills above the chart.
* **Low-hanging fruits** – Keywords ranking in positions 2–15 that represent the easiest wins for improved traffic.
* **Content decay** – Pages where traffic has declined compared to their historical peak.

## Controls

* **Date range** – Choose 7, 14, 28, or 90 days from the dropdown.
* **Granularity (D / W / M)** – Switch between daily, weekly, and monthly views. Weekly and monthly aggregate data points so the chart is easier to read over longer time ranges.
* **Compare** – Toggle comparison mode to overlay the previous period’s data on the chart (shown as dashed lines). This makes it easy to spot trends at a glance.
* **Annotate** – Add notes to specific dates on the chart (see [Using GSC annotations](/track/using-gsc-annotations)).

## Data freshness

Google Search Console data is typically delayed by 2–3 days. A small badge in the card header shows the date of the most recent available data (e.g., “through Feb 24”). Rankability syncs new data automatically each day.

## Verify the connection

1. Confirm the selected property includes the client's canonical URLs.
2. Wait for the initial backfill to finish or reach a usable range.
3. Match one date range with Search Console using the same property, search type, and dates.
4. Check the **through** date before interpreting recent changes.
5. Use the query and page views, low-hanging fruit, or content decay only after their required history exists.

Search Console is an aggregated reporting source. Average position is not a live rank check, and query/page totals can differ from exported or filtered Google views because of privacy thresholds, property scope, aggregation, and data delay. Use Rankability Track scans when you need monitored platform/location results for a specific keyword.

## Common issues

* **The property is not listed** — Verify access in Search Console, then reconnect with the correct Google account.
* **Backfill appears slow** — Leave the active import running and check its status later. Do not create repeated connection attempts.
* **No recent dates appear** — GSC commonly lags by two to three days; check the freshness badge.
* **Rows or metrics differ from Google** — Match property type, dates, dimensions, and filters before comparing.
* **The connection reports an authorization issue** — Reauthorize it in client integrations. If it repeats, record the client, property, time, and visible error.

## Related articles

* [Finding low-hanging fruit opportunities](/track/low-hanging-fruit-opportunities) — Identify keywords closest to page one.
* [Detecting content decay](/track/detecting-content-decay) — Find pages losing traffic over time.
* [Using GSC annotations](/track/using-gsc-annotations) — Mark important events on the chart timeline.
* [Setting up keyword tracking](/track/setting-up-keyword-tracking) — Track keywords across search engines and AI platforms.


# Finding low-hanging fruit opportunities

Discover keywords where you already rank on page one or two but could gain significantly more clicks by moving into the top three positions.

Discover keywords where you already rank on page one or two but could gain significantly more clicks by moving into the top three positions.

The Low-hanging fruits tab identifies search queries where your site already ranks between positions 2 and 15 with meaningful impression volume. These are your best opportunities for quick traffic gains because a small improvement in ranking can produce a large increase in clicks.

Connect Google Search Console, allow the relevant dates to sync, and choose a window with enough impressions before using this view. The opportunity rules are triage heuristics. Average position can combine devices, locations, pages, and result contexts, so a row is a candidate for review rather than a guaranteed quick win.

## How it works

Rankability analyzes your Google Search Console data and finds queries that meet two criteria:

* **Average position between 2 and 15** – You’re already visible but not in the top spot.
* **At least 100 impressions** – There’s real search demand for this query.

For each query, an **estimated click gain** is calculated. This estimates how many additional clicks you could receive if the query moved into the top 3 positions (based on a benchmark CTR of 10%).

The estimate is directional. It does not account for every SERP feature, brand effect, intent, device, or actual top-three CTR. Use it to rank the current rows, not as a traffic forecast or commitment.

## Reading the results

Each row shows:

* **Query** – The search term.
* **Position** – Current average ranking position.
* **Impressions** – How many times your page appeared in search results.
* **CTR** – Your current click-through rate.
* **Estimated click gain** – The projected additional clicks shown in blue (e.g., +120).

Results are sorted by the highest potential click gain first.

## Tracking a keyword

Click the **+** button on any row to start tracking that keyword in Track. You’ll be taken to Track setup with the keyword already filled in. From there you can choose which platforms to track (Google, AI platforms, etc.) and start monitoring.

If a keyword is already being tracked, a **checkmark** appears instead of the plus button, along with a tooltip confirming it’s already tracked.

## Grouping by page

Click **By page** to group all low-hanging fruit queries by the URL that ranks for them. This is useful for identifying which pages have the most untapped potential. Expand a page group to see its individual queries.

## Changing the time range

Use the date range dropdown (7, 14, 28, or 90 days) to adjust the analysis window. A longer range includes more data, which can surface opportunities that shorter windows might miss.

## Qualify an opportunity

1. Confirm the query is relevant to the client and not a navigational or accidental impression.
2. Open the ranking page and verify that it should satisfy the query.
3. Review current position, impressions, CTR, and estimated gain together.
4. Check whether another page is a better target before editing or consolidating content.
5. Add the keyword to Track when ongoing monitoring is justified.
6. Choose the next action—content refresh, title/snippet improvement, internal linking, technical fix, or monitoring—and annotate a material change.

## Common issues

* **No opportunities appear** — Confirm GSC is connected, the window has data, and the property has queries meeting both thresholds.
* **A known keyword is missing** — Its average position or impressions may fall outside the rule in the selected range.
* **The plus button is a checkmark** — The keyword is already tracked for the client; open Track instead of creating a duplicate.
* **The ranking URL looks wrong** — Review page-level GSC data and possible cannibalization before choosing a target.
* **The estimate seems unrealistic** — Treat it as a standardized comparison based on the benchmark CTR, not a forecast.

## Related articles

* [Connecting and using Google Search Console](/track/connecting-google-search-console) — Set up the GSC integration.
* [Setting up keyword tracking](/track/setting-up-keyword-tracking) — Learn how to configure keyword tracking after clicking the + button.
* [Using GSC annotations](/track/using-gsc-annotations) — Mark the date of a change and review later performance.


# Detecting content decay

Find pages where search traffic has dropped compared to their historical peak and get AI-powered recommendations for recovery.

Find pages where search traffic has dropped compared to their historical peak and get AI-powered recommendations for recovery.

Content decay happens when a page that once performed well in search gradually loses traffic over time. The Content decay tab helps you identify these pages early so you can take action before the decline becomes severe.

Connect Google Search Console and allow enough history to sync before using this view. Rankability requires at least 90 days of GSC history and a meaningful traffic peak; the interface currently describes the minimum as 50 clicks per month for an eligible page. Seasonal, migrated, redirected, or newly consolidated URLs need human review before they are labeled as content problems.

## How decay is measured

Rankability compares each page’s **current 30-day click total** to its **historical peak** (the highest 30-day rolling click total the page has ever achieved). The ratio between current and peak clicks produces a **decay score**:

* **Healthy** (score above 0.7) – The page is performing within 70% or more of its peak. No immediate action needed.
* **Decaying** (score 0.4 to 0.7) – The page has lost a meaningful share of its peak traffic. Review the content for freshness and relevance.
* **Critical** (score below 0.4) – The page has lost more than 60% of its peak traffic. Urgent attention recommended.

Only pages with at least 90 days of history and a meaningful peak traffic level are included.

Thresholds are triage rules, not diagnoses. A page can be below its historical peak because demand changed, the URL moved, the query mix shifted, SERP features changed, or another page became the intended target.

## Table view

The default view shows a table of pages sorted by decay score (worst first). Each row displays:

* **Page URL** – The affected page (shown as a path without the domain).
* **Peak clicks (30d)** – The highest 30-day click total ever recorded.
* **Current clicks (30d)** – The most recent 30-day click total.
* **Decay score** – The ratio displayed as a colored badge (green for healthy, amber for decaying, red for critical).

## Heatmap view

Click **Heatmap** to switch to a visual grid showing monthly click performance for each page. Each cell is color-coded by how close that month’s clicks are to the page’s peak month:

* Darker blue cells indicate months closer to peak performance.
* Lighter cells indicate months with lower traffic.

The heatmap makes it easy to spot seasonal patterns and pinpoint exactly when a decline started.

## Filtering by status

Use the status filter to show only healthy, decaying, or critical pages. This is useful when you want to focus on the most urgent issues first.

## AI-powered diagnosis

Click the **Diagnose** button on any page row to get an AI analysis of why the page may be losing traffic. The diagnosis considers:

* Monthly traffic trends for the page.
* The page’s top search queries and how they’ve changed.
* Whether other pages on your site are competing for the same keywords (cannibalization).

The AI returns a summary of likely causes and specific recommended actions you can take to recover lost traffic.

Treat the diagnosis as a hypothesis grounded in the available GSC trends and query evidence. Verify the live URL, indexability, recent changes, competing pages, and current search results before editing or redirecting content.

## Recovery workflow

1. Filter to **Decaying & critical** and set a minimum peak that matches the site's scale.
2. Open the worst page and check when the decline began in the table or heatmap.
3. Review query and page evidence, then run diagnosis when it can add useful context.
4. Confirm that the URL is live and still the intended canonical page.
5. Choose the smallest justified action: refresh content, correct intent, consolidate competing pages, fix a technical issue, or monitor a seasonal decline.
6. Add a GSC annotation for a material change and measure the following weeks against the correct baseline.

## Common issues

* **Zero pages analyzed** — Confirm 90 days of synced GSC history and at least 50 monthly clicks on eligible pages.
* **Analysis is still computing** — Leave it running and return later; do not reconnect GSC to force a duplicate calculation.
* **A known page is absent** — It may not meet the history or peak threshold, or the connected property may not include it.
* **The decline is seasonal** — Use the heatmap and year-over-year context before rewriting the page.
* **Diagnosis is unavailable** — Use the stored trend and query evidence manually, then see [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues) if the state persists.

## Related articles

* [Connecting and using Google Search Console](/track/connecting-google-search-console) — Set up the GSC integration.
* [Finding low-hanging fruit opportunities](/track/low-hanging-fruit-opportunities) — Discover quick-win keywords to improve.


# Using GSC annotations

Mark important events like algorithm updates, content changes, or campaigns on the GSC Performance chart timeline to correlate actions with traffic changes.

Mark important events like algorithm updates, content changes, or campaigns on the GSC Performance chart timeline to correlate actions with traffic changes.

Annotations let you mark specific dates on the GSC Performance chart with notes about events that may have affected your search traffic. This makes it easy to correlate traffic changes with actions you’ve taken or external events like Google algorithm updates.

Connect Google Search Console and open the intended client's GSC Performance card. Before adding a note, confirm the date and source of the event. An annotation preserves context beside the chart; it does not change GSC data or prove that the event caused a ranking or traffic change.

## Adding an annotation

1. Click the **Annotate** button in the GSC Performance card header.
2. Enter a **title** (required) – a short label for the event.
3. Add a **description** (optional) – more detail about what happened.
4. Select the **date** when the event occurred.
5. Choose a **category**:
   * **Algorithm update** – Google search algorithm changes.
   * **Content change** – Major edits to your content.
   * **Technical change** – Site migrations, redesigns, or infrastructure updates.
   * **Campaign** – Marketing campaigns or promotions.
   * **Other** – Anything else worth noting.
6. Click **Save**.

## How annotations appear on the chart

Each annotation appears as a vertical reference line on the chart at the corresponding date. The line color and icon vary by category so you can quickly distinguish between different types of events. Hover over an annotation line to see its title and description in a tooltip.

## Pre-populated algorithm updates

Rankability automatically includes major Google algorithm updates as system annotations (shown with a distinct icon). These cannot be edited or deleted but give you valuable context when reviewing traffic changes. If a traffic drop aligns with an algorithm update line, it’s a strong signal that the update may have affected your rankings.

## Editing and deleting annotations

Click on an annotation in the chart tooltip to open the edit dialog. From there you can update the title, description, date, or category. To delete an annotation, use the delete option in the same dialog. System annotations (algorithm updates) cannot be modified.

User annotations are shared with teammates who can access the client. Edit incorrect details instead of creating a second note for the same event, and delete only duplicates or invalid entries so historical context remains auditable.

## Annotations and granularity

When you switch between daily, weekly, and monthly chart views, annotations are automatically mapped to the nearest time bucket. An annotation on January 15 will appear at the start of the week (in weekly view) or the start of the month (in monthly view) that contains that date.

## Best practices

* Add annotations whenever you make significant content updates, site changes, or launch campaigns.
* Review the pre-populated algorithm update lines when investigating traffic drops.
* Use the description field to include links to related documents or tickets for future reference.
* Annotations are shared across your team – they’re visible to everyone with access to the client.

## Investigate a change

1. Add the event on the date it actually occurred and include the affected page, release, or campaign in the description.
2. Use a range with enough time before and after the event.
3. Match query, page, country, device, and date context when comparing GSC data.
4. Check whether the change affects one page/query or the broader property.
5. Use the annotation as a measurement anchor, then revisit after enough delayed GSC data is available.
6. Describe overlap with an algorithm update as correlation unless the evidence supports a stronger conclusion.

## Common issues

* **Annotate is unavailable** — Confirm GSC is connected, its performance card is loaded, and you can access the client.
* **The marker appears at the start of a week or month** — This is expected bucket mapping. Switch to daily for the exact date.
* **A system annotation cannot be edited** — Only user-created annotations are editable or deletable.
* **A new note is not visible** — Check the date range, granularity, and selected client, then refresh once.
* **The event also affected onsite behavior** — Add a separate [GA4 annotation](/track/using-ga4-annotations) because the timelines are independent.

## Related articles

* [Connecting and using Google Search Console](/track/connecting-google-search-console) — Overview of the GSC Performance card and its features.
* [Detecting content decay](/track/detecting-content-decay) — Use annotations to measure a justified recovery action.
* [Finding low-hanging fruit opportunities](/track/low-hanging-fruit-opportunities) — Mark material optimizations and review later search performance.


# Connecting and using Google Analytics 4

Connect your GA4 property to a client, understand the metric tiles, toggle chart lines, and use the source filter, granularity, and comparison controls.

Connect your GA4 property to a client, understand the metric tiles, toggle chart lines, and use the source filter, granularity, and comparison controls.

The Google Analytics 4 (GA4) integration brings on-site traffic, engagement, and conversion data into Rankability so you can see what happens after users click through from search results.

You need access to the intended GA4 property through the Google account used for authorization and permission to manage integrations for the Rankability client. Before connecting, confirm the client's canonical domain, GA4 property name, and web data stream so similarly named properties are not confused.

## Connecting GA4 to a client

1. Navigate to a client and open **Track**.
2. Expand the **GA4 sessions** tile in the executive summary strip, or scroll to the GA4 Performance card.
3. Click **Connect Google Analytics**.
4. Sign in with the Google account that has access to the GA4 property.
5. Select the property that matches your client’s website.

Once connected, Rankability fetches your GA4 data and displays it immediately. Data refreshes each time you load the Track page.

The first response can be incomplete while Google data or Rankability's stored sync catches up. Use the selected date range and visible freshness/status information before treating a blank value as zero.

## Understanding the GA4 Performance card

The card displays five metric tiles across the top:

* **Sessions** – Total sessions for the selected period. Toggleable – click to show or hide the chart line.
* **Organic search** – Sessions from traditional search engines (Google, Bing, Yahoo, DuckDuckGo, and others). Toggleable.
* **AI referral** – Sessions from AI platforms (ChatGPT, Gemini, Perplexity, Claude, and others). Toggleable.
* **Conversions** – GA4 conversion events. Toggleable.
* **Engagement rate** – The percentage of sessions that were engaged (display only, not charted).

Click any toggleable tile to add or remove its line from the trend chart below. Active tiles show a colored left border; inactive tiles appear dimmed.

## Controls

* **Source filter** – Filter all data by specific traffic sources. Choose individual engines and AI platforms, or use the preset buttons for All, Organic only, or AI only.
* **Date range** – Choose 7, 14, 28, or 90 days.
* **Granularity (D / W / M)** – Switch between daily, weekly, and monthly chart views.
* **Compare** – Overlay the previous period’s data as dashed lines on the chart.
* **Annotate** – Add notes to specific dates (see [Using GA4 annotations](/track/using-ga4-annotations)).

## Traffic sources breakdown

Below the chart, the card shows a detailed traffic sources table split into two sections: **Organic search** and **AI referral**. Each row shows the source name, its share of total sessions, and the session count. This helps you understand exactly where your traffic comes from.

## Verify the connection

1. Confirm that the property shown in Rankability matches the client's website.
2. Compare one recent date range with GA4 using the same dates and traffic scope.
3. Check that sessions and conversions are present before using rate changes in a client report.
4. Open [GA4 Explorer](/track/using-ga4-explorer) when you need page-level evidence rather than the summary.

Rankability groups sources for analysis, while GA4 remains the underlying measurement system. Differences can come from date boundaries, attribution, filters, source normalization, consent, and processing delay. A session classified as AI referral means the recorded referrer matched the supported AI-source logic; it does not prove which answer, citation, or prompt caused the visit.

## Common issues

* **The property is missing** — Sign in with an account that has access, reconnect, and review the property selector.
* **The card is empty** — Confirm the connection, date range, and that GA4 itself has data for the property. Allow time for recent data to process.
* **Metrics differ from GA4** — Match dates, timezone, source filter, and metric definition before comparing.
* **Authorization expired** — Reconnect from client integrations and reselect the property.
* **The wrong property was connected** — Disconnect or change the selection before relying on the data; record the client and property if support is needed.

## Related articles

* [Understanding organic search vs AI referral traffic](/track/organic-vs-ai-referral-traffic) — What these categories mean and why they matter.
* [Using GA4 annotations](/track/using-ga4-annotations) — Mark events on the GA4 chart timeline.
* [Reading per-keyword GA4 data](/track/per-keyword-ga4-data) — See GA4 metrics for individual tracked keywords.
* [Connecting and using Google Search Console](/track/connecting-google-search-console) — Set up GSC alongside GA4 for a complete picture.


# Understanding organic search vs AI referral traffic

Learn what organic search and AI referral mean in the GA4 card, which sources map to each category, and how to use the traffic source breakdown strategically.

Learn what organic search and AI referral mean in the GA4 card, which sources map to each category, and how to use the traffic source breakdown strategically.

Rankability automatically classifies your GA4 traffic sources into two categories so you can understand how users find your site through traditional search versus AI platforms.

This view requires a connected GA4 property with sessions in the selected date range. Classification is based on the traffic-source/referrer data available from GA4. An AI-referral session shows that a supported AI domain referred the visit; it does not prove that Rankability observed the exact answer, prompt, or citation that produced it.

## Organic search sources

These are sessions from traditional search engines where your pages appear in organic results:

* Google
* Bing
* Yahoo
* DuckDuckGo
* Ecosia
* Brave
* Baidu
* Yandex
* Naver
* Sogou

## AI referral sources

These are sessions whose recorded referral source matches a supported AI platform:

* ChatGPT
* Gemini
* Perplexity
* Claude
* Copilot
* Meta AI
* Mistral
* You.com
* Poe

## Why the split matters

Separating organic from AI referral traffic lets you answer important strategic questions:

* **Is AI driving real visits?** – If AI referral sessions are growing, your content is being cited by AI platforms. This is a signal to double down on structured, authoritative content.
* **How do the two channels compare?** – Comparing session counts and conversion rates between organic and AI referral helps you allocate effort.
* **Which AI platforms cite you most?** – The traffic sources breakdown table shows individual AI platforms ranked by sessions. You can focus optimization on the platforms already driving traffic.

The source table shows referrals, not a complete citation count. A platform can mention or cite the brand without sending a measurable visit, and privacy, consent, redirects, apps, and missing referrers can prevent a visit from being classified.

## Using the source filter

The source filter popover in the GA4 Performance card lets you drill into specific sources. Use the preset buttons:

* **All** – Show all sources combined.
* **Organic** – Filter to traditional search engines only.
* **AI** – Filter to AI platforms only.

You can also check or uncheck individual sources for a custom view. The metric tiles, chart, and table all update to reflect your selection.

## Compare the channels

1. Select a date range long enough to reduce daily noise.
2. Compare sessions and conversions for organic and AI referral separately.
3. Inspect the individual sources and landing pages behind a change.
4. Match GA4 dates, timezone, and filters before comparing with another report.
5. Use Track's AI answer and citation evidence when you need visibility or source analysis rather than referral traffic.

## Common interpretation errors

* **AI referral is zero** — No supported referrer was recorded in the window; this is not proof of zero AI visibility.
* **A platform is missing** — Its traffic may be absent, below reporting thresholds, routed without a referrer, or not recognized by the current source map.
* **Organic and AI totals do not equal all sessions** — Direct, paid, social, email, and other sources remain outside these two groups.
* **Conversions differ from another GA4 view** — Match attribution, dates, property, and event configuration.
* **Traffic increased after a citation appeared** — The timing is useful evidence but does not by itself establish causation.

## Related articles

* [Connecting and using Google Analytics 4](/track/connecting-google-analytics) — Set up the GA4 integration.
* [Understanding SPI](/track/understanding-spi) — How AI visibility factors into your overall search performance score.
* [Reading AI answers](/track/ai-answers-tab) — Inspect captured answer evidence separately from GA4 referrals.


# Using GA4 annotations

Mark important events on the GA4 trend chart timeline to correlate site changes, campaigns, or algorithm updates with traffic patterns.

Mark important events on the GA4 trend chart timeline to correlate site changes, campaigns, or algorithm updates with traffic patterns.

GA4 annotations let you mark specific dates on the GA4 Performance chart with notes about events that may have influenced your traffic and engagement metrics. This creates a timeline of actions alongside your data, making it easy to spot cause-and-effect relationships.

Connect GA4 and open a client with access to the GA4 Performance card. Before adding a note, confirm the event date, owner, and evidence. An annotation records context; it does not prove that the event caused the observed change.

## Adding an annotation

1. Click the **Annotate** button in the GA4 Performance card header.
2. Enter a **title** (required) – a short label for the event.
3. Add a **description** (optional) – more detail about what happened.
4. Select the **date** when the event occurred.
5. Choose a **category**:
   * **Content change** – Major content updates or new page launches.
   * **Algorithm update** – Google or platform algorithm changes.
   * **Link building** – Backlink campaigns or notable link acquisitions.
   * **Technical fix** – Site migrations, speed improvements, or infrastructure changes.
   * **Client event** – Business events like product launches, sales, or PR.
   * **Other** – Anything else worth noting.
6. Click **Save**.

## How annotations appear

Each annotation appears as a vertical dashed reference line on the chart at the corresponding date. The line color matches the category, making it easy to distinguish between different types of events. Hover over the colored dot at the top of the line to see the annotation title and description.

## Editing and deleting

Click on an annotation label below the chart to open it. From there you can edit the title, description, date, or category. To delete, use the delete button in the edit dialog.

Use edit when the event details were wrong. Delete only duplicate or invalid notes, because removing an annotation also removes context other team members may rely on. Annotations are client-scoped and visible to teammates who can access that client.

## Tips for effective use

* Add annotations whenever you publish major content updates or make technical changes to the site.
* Use them to mark the start of link building campaigns so you can measure impact over time.
* When you see a traffic spike or drop, check if any annotations align with the date – this is often the fastest way to find the cause.
* GA4 annotations are separate from GSC annotations, so you can maintain independent timelines for each data source.

## Review impact responsibly

1. Add the note on the date the change actually occurred, not the day you noticed the metric.
2. Use a short title and put the page, campaign, release, or ticket detail in the description.
3. Select a date range that includes a meaningful period before and after the event.
4. Match source filters and conversion definitions when comparing periods.
5. Look for supporting page-level evidence in [GA4 Explorer](/track/using-ga4-explorer).
6. Describe the timing as a correlation unless additional evidence supports causation.

## Common issues

* **Annotate is unavailable** — Confirm GA4 is connected and that you have access to the client.
* **The marker appears in a different bucket** — Weekly and monthly views group dates; switch to daily for the exact date.
* **The chart did not change** — An annotation adds context but does not modify GA4 data.
* **A teammate cannot see it** — Confirm they are viewing the same client, date range, and GA4 card.
* **The note belongs to search performance** — Add it in [GSC annotations](/track/using-gsc-annotations) as well when that separate timeline needs the context.

## Related articles

* [Connecting and using Google Analytics 4](/track/connecting-google-analytics) — Overview of the GA4 Performance card.
* [Using GSC annotations](/track/using-gsc-annotations) — The equivalent feature for the GSC chart.


# Reading per-keyword GA4 data

See on-site engagement and conversion data for the specific pages that rank for each tracked keyword, with traffic source filtering and per-URL breakdowns.

See on-site engagement and conversion data for the specific pages that rank for each tracked keyword, with traffic source filtering and per-URL breakdowns.

When you drill into a tracking project in Track, the GA4 tab shows on-site behavior data for the specific landing pages that rank for that keyword. This connects the dots between where you rank and what happens when users arrive on your site.

Connect both GA4 and Google Search Console to the same client and allow their data to sync. The keyword report needs a ranking page that can be matched to GA4 page paths. Confirm the date range and source filter before comparing rows.

## How it works

Rankability cross-references two data sources:

1. **GSC ranking URLs** – The pages that Google Search Console reports as ranking for your tracked keyword.
2. **GA4 page-level data** – Sessions, engagement, and conversions for those same page paths in Google Analytics.

This means you see GA4 metrics only for the pages that are actually ranking for the keyword, not your entire site.

URL matching can exclude a page when the two services report materially different hosts or paths. Query strings, redirects, canonical changes, and URL migrations can also split or obscure the relationship. Missing GA4 data is therefore not automatically zero engagement.

## Metrics shown

For each landing page, the GA4 tab displays:

* **Sessions** – Total sessions on that page.
* **Engagement rate** – Percentage of sessions that were engaged (meaningful interaction beyond a single page view).
* **Conversions** – Conversion events triggered on that page.
* **Bounce rate** – Percentage of sessions where the user left without interaction.

## Daily trend chart

Below the summary metrics, a daily sessions chart shows how traffic to the landing page has trended over the selected period. If multiple pages rank for the keyword, you can filter the chart to a specific URL using the page filter dropdown.

## Traffic source filter

Use the source filter to switch between:

* **All sources** – All traffic to the landing page regardless of origin.
* **Organic search** – Only sessions from traditional search engines.
* **AI referral** – Only sessions from AI platforms.

This is useful for understanding whether the keyword’s traffic comes primarily from traditional search or AI citations.

## What to look for

* **High rank, low engagement** – If you rank well but the engagement rate is low or bounce rate is high, the page content may not match search intent. Consider revising the content to better answer the query.
* **High conversions** – Pages with strong conversion rates deserve protection. Prioritize maintaining their rankings and content quality.
* **Multiple ranking pages** – If several pages rank for the same keyword, check whether they’re cannibalizing each other. The one with better engagement metrics is usually the better target.

Engagement is one input to page selection, not the sole deciding rule. Relevance, canonical intent, conversions, links, current ranking evidence, and the purpose of each URL also matter.

## Review a keyword

1. Open the exact tracked keyword and choose its **GA4** view.
2. Confirm the ranking URL or page filter and selected dates.
3. Compare sessions, engagement, conversions, and bounce rate for each matched page.
4. Segment by all, organic, or AI referral only when that filter answers the question.
5. Compare the page with its GSC and Track result before recommending a content or canonical change.
6. Record the date of any material update with the relevant annotation workflow.

## Common issues

* **No GA4 tab data** — Confirm GA4 is connected, the property has page data, and a ranking URL can be matched.
* **A page is missing** — Check host/path variants, redirects, the connected properties, and the selected date range.
* **Metrics look too low** — The view is scoped to matched landing pages and the active source filter, not the entire site.
* **Several pages appear** — Investigate intent and cannibalization; do not redirect solely because one page has fewer sessions.
* **Recent changes are absent** — Allow GA4 and GSC processing delay and confirm the latest available dates.

## Related articles

* [Connecting and using Google Analytics 4](/track/connecting-google-analytics) — Set up the GA4 integration.
* [Setting up keyword tracking](/track/setting-up-keyword-tracking) — Create tracking projects to see per-keyword data.
* [Connecting and using Google Search Console](/track/connecting-google-search-console) — GSC provides the ranking URLs used for cross-referencing.
* [Understanding organic search vs AI referral traffic](/track/organic-vs-ai-referral-traffic) — Interpret the source segments without treating referrals as citation counts.


# Using the GA4 Explorer

Deep-dive into page-level GA4 metrics with sorting, filtering, traffic source segmentation, and CSV export.

Deep-dive into page-level GA4 metrics with sorting, filtering, traffic source segmentation, and CSV export.

The GA4 Explorer gives you a page-by-page view of your entire site’s GA4 data. It’s designed for deep analysis when you need to go beyond the summary metrics in the GA4 Performance card.

Connect the intended GA4 property to the client and confirm that it has data for the selected dates. The Explorer reports what the connected property returns for page paths; it does not crawl pages or verify their canonical, index, or publication status.

## Accessing the GA4 Explorer

Navigate to a client’s Track page and click **GA4 Explorer** in Track (or access it directly at `/clients/:clientId/reporter/ga4-explorer`). The Explorer is available when GA4 is connected to the client.

## What you see

The Explorer displays a table of all pages on your site with GA4 data, showing:

* **Page path** – The URL path (e.g., /blog/seo-guide).
* **Sessions** – Total sessions for that page.
* **Engaged sessions** – Sessions with meaningful interaction.
* **Engagement rate** – Engaged sessions as a percentage of total sessions.
* **Conversions** – Conversion events on that page.
* **Bounce rate** – Percentage of single-interaction sessions.

## Sorting and filtering

* **Sort by any column** – Click a column header to sort ascending or descending. For example, sort by sessions to find your highest-traffic pages, or by bounce rate to find pages that may need improvement.
* **Search by page path** – Use the search box to filter the table to pages matching a specific path (e.g., type `/blog` to see only blog pages).
* **Source filter** – Filter all data by traffic source: All, Organic search, or AI referral.
* **Date range** – Adjust the time window (7, 14, 28, or 90 days).

## CSV export

Click the **Export CSV** button to download the rows currently loaded in the table. The export respects the current filters and sort order, but it exports the current paginated result—not every matching page across all pages. Increase the row count or move through pages deliberately when you need broader coverage.

## Common use cases

* **Find high-traffic, low-engagement pages** – Sort by sessions descending, then scan for low engagement rates. These pages get visitors but don’t retain them.
* **Identify AI referral landing pages** – Filter to AI referral and sort by sessions. These are the pages AI platforms are sending users to – make sure they’re well-optimized.
* **Audit conversion performance** – Sort by conversions to find your best-converting pages and understand what makes them successful.

## Page-review workflow

1. Choose 7, 14, 28, or 90 days and the relevant source segment.
2. Search for a path prefix when you need one section of the site.
3. Sort by the metric that answers the question, then inspect other columns before deciding.
4. Open the external-page icon to verify the live page.
5. Export the current page of rows when you need a handoff or offline review.
6. Use Copywriter separately after you have identified the target keyword and justified the content action.

## Limits and common issues

* **No data found** — Adjust the date or filters and confirm GA4 is connected to the correct property.
* **A page is missing** — GA4 may report another path, have no sessions in the range, or be excluded by the active filter.
* **An external link opens incorrectly** — GA4 page paths can be relative; verify the client's domain and path before relying on the link.
* **The export has fewer rows than the total** — It contains the loaded page. Change the page size or export additional pages.
* **Metrics differ from GA4** — Match property, dates, timezone, source segment, and metric definitions.
* **The request fails** — Retry once after narrowing the range. If it persists, record the client, filters, time, and error for support.

## Related articles

* [Connecting and using Google Analytics 4](/track/connecting-google-analytics) — Set up the GA4 integration.
* [Understanding organic search vs AI referral traffic](/track/organic-vs-ai-referral-traffic) — Learn about the source categories available in the filter.
* [Reading per-keyword GA4 data](/track/per-keyword-ga4-data) — Narrow page behavior to landing pages associated with one tracked keyword.


# How Serena uses GA4 and GSC data

Learn how both the portfolio-level and keyword-level Serena cross-reference GA4 engagement data with GSC search performance for deeper, data-driven recommendations.

Learn how both the portfolio-level and keyword-level Serena cross-reference GA4 engagement data with GSC search performance for deeper, data-driven recommendations.

When you connect Google Analytics 4 and Google Search Console to a client, the Serena gains access to a much richer dataset. Instead of relying solely on rank positions, it can cross-reference search visibility with actual on-site behavior to produce more actionable recommendations.

## What data the Serena receives

Both the portfolio-level Serena (on the main Track page) and the keyword-level Serena (inside a tracking project) receive:

### From Google Search Console

* Clicks, impressions, CTR, and average position (current vs previous period).
* Top queries by clicks.
* Top pages by clicks.
* Low-hanging fruit opportunities (positions 2–15 with high impressions).
* Low CTR queries (high visibility but few clicks).

### From Google Analytics 4

* Sessions, engaged sessions, engagement rate, conversions, and bounce rate.
* Period-over-period changes for all metrics.
* Traffic source breakdown: organic search vs AI referral sessions and conversions.
* Individual AI platform sessions (ChatGPT, Gemini, Perplexity, etc.).

### Keyword-level Serena extras

The keyword-level Serena also receives:

* GA4 landing page metrics for the specific pages that rank for the tracked keyword (sessions, engagement rate, conversions, bounce rate).
* Local pack score when the keyword has local tracking enabled.

## Types of cross-referenced insights

Serena uses the combined data to identify patterns that wouldn’t be visible from either data source alone:

* **High rank, low engagement** – A keyword ranks well in GSC but the landing page has poor engagement in GA4. This usually indicates a content-intent mismatch: the page attracts clicks but doesn’t satisfy the user’s need. Serena recommends content revisions.
* **Traffic up, conversions down** – GSC shows increasing clicks but GA4 shows flat or declining conversions. This could indicate a UX issue, a change in audience quality, or a conversion tracking problem. Serena flags this discrepancy.
* **Growing AI referral traffic** – When GA4 shows meaningful sessions from AI platforms, the Serena recommends ways to capitalize: structured content, FAQ sections, direct-answer formatting, and schema markup.
* **High conversions, protect the page** – If a landing page has strong conversion rates, the Serena highlights it as high-value and recommends protecting its rankings through regular content updates and monitoring.
* **Multiple pages ranking** – When GSC shows several pages ranking for the same keyword, the Serena cross-references their GA4 engagement metrics to recommend which page to consolidate around.

## How to get the best results

* Connect both GSC and GA4 for the richest insights. Serena works with either one, but the cross-referencing only happens when both are connected.
* Let data accumulate for at least 28 days before generating insights. Shorter periods may not show meaningful patterns.
* Re-generate insights periodically (weekly or after significant changes) to track how recommendations evolve.

## Related articles

* [Using Serena](/serena/using-advisor) — General guide to the Serena feature.
* [Connecting and using Google Analytics 4](/track/connecting-google-analytics) — Set up GA4 for your client.
* [Connecting and using Google Search Console](/track/connecting-google-search-console) — Set up GSC for your client.


# Understanding the Track overview

Learn the difference between the client-level Track workspace and individual tracking projects, then trace each metric to its supporting evidence.

Learn the difference between the client-level Track workspace and individual tracking projects, then trace each metric to its supporting evidence.

**Track** has two levels: a client-level workspace that combines projects and keywords, and an individual tracking project with deeper reports. Use the client view to find where attention is needed, then open the relevant project or keyword for evidence.

## Before data appears

Select a client and create at least one tracking project with a keyword. Visibility requires a usable terminal scan: either **Complete**, or **Partial** with successful data for the metric being shown. A partial run does not imply that every requested platform succeeded. Google Search Console (GSC) and Google Analytics 4 (GA4) are optional connections and only populate their related views after the correct property is connected and data is available.

## Client-level Track workspace

* **Overview** — Aggregates Search Performance Index (SPI) and available performance signals across the client. Competitor comparisons and Serena analysis appear when the required data and permissions are available.
* **Keywords** — Reviews tracked keywords across projects and helps you filter and compare their current performance.
* **Traditional search** — Consolidates supported organic ranking results across tracked keywords for the selected client.
* **GSC** — Shows connected Google Search Console evidence for the client.
* **GA4** — Shows connected Google Analytics 4 evidence for the client.

Client portal viewers can have a reduced set of tabs and actions.

## Individual tracking project

Open a project or keyword when you need its scan history and platform-specific evidence. Available views vary with the project configuration and can include Overview, Keywords, Local, Traditional search, AI answers, AI citations, Compare, Video search, GSC, and GA4.

## Ask Serena about the exact report

When a non-portal report has usable results, choose **Ask Serena** in the report header to open a dedicated Serena conversation grounded in the selected client, project, keyword, and report. Use it to interpret a change, compare evidence across tabs, or decide what to investigate next without having to restate the report context.

Review the destination shown in the conversation before asking Serena to act. The handoff supplies report context; it does not give Serena permission to change a project or an external site. Client portal viewers do not see this internal action.

## Read empty and historical states correctly

* **No scan** means there is no current usable complete or partial scan for that metric.
* **No history** means an earlier comparable usable scan is not available.
* **Not tracked** means that search engine or surface was not selected for the keyword.
* **Not ranked** means a completed scan exists but the target did not rank within the tracked range.

Do not interpret a dash, blank field, or delayed connected-data value as zero without checking the state, date, and connection.

A load failure is reported as a failure rather than as empty data. When the overview cannot be loaded at all, it says so and offers a retry; when it cannot refresh but earlier results exist, it shows the most recent data available and tells you the refresh did not succeed. Neither state means the client's numbers dropped — check the notice before reading the figures as current.

History views collapse comparable same-day results to the newest usable result for that UTC day. A partial run contributes only the platforms that returned usable data.

## Move from summary to evidence

1. Confirm the selected client, comparison period, last completed scan, and connected-account status.
2. Open the SPI breakdown or the platform tab behind the change.
3. Compare the same dates and keyword scope before connecting visibility to GSC or GA4 performance.
4. Use annotations where available to record launches, migrations, campaigns, or outages.

## Troubleshooting

* If Overview is empty, confirm that a tracked keyword has a completed scan.
* If GSC shows an authorization error, reconnect the client’s Google Search Console account and confirm the property.
* If GA4 is missing, confirm the client connection, property, permissions, and source-data date.
* If a ranking looks wrong, open the individual keyword report and verify the engine, location, latest scan, and ranking URL.

## Related articles

* [Setting up keyword tracking](/track/setting-up-keyword-tracking)
* [Understanding SPI](/track/understanding-spi)
* [Reading traditional and video search results](/track/traditional-search-tab)
* [Reading AI answers](/track/ai-answers-tab)
* [Reading AI citations](/track/ai-citations-tab)
* [Integrations and connected apps](/track/data-integrations-overview)


# Integrations and connected apps

Use the canonical directory of Rankability data connections, publishing workflows, collaboration apps, and developer integrations.

Use the canonical directory of Rankability data connections, publishing workflows, collaboration apps, and developer integrations.

This is the canonical directory of integrations supported by Rankability. A **native connection** is configured inside Rankability. An **automation workflow** uses Rankability's API or MCP support with another service; it is not the same as a native connector.

Before connecting anything, confirm the client, account owner, required data, and least-privilege authorization. A service name appearing in an export option, API example, Serena tool, or marketing page does not by itself mean a native two-way connector exists.

## Open client integrations

1. Select a client.
2. Open **Settings → Integrations**.
3. Choose a service and authorize the requested access.
4. Select the correct site, property, profile, channel, or account.

## Native data connections

| Connection              | What it provides                                                                             | Setup                                                                                     |
| ----------------------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| Google Search Console   | Queries, pages, clicks, impressions, CTR, and average position.                              | [Connect Google Search Console](/track/connecting-google-search-console)                  |
| Google Analytics 4      | Sessions, engagement, conversions, traffic sources, and AI-referral context where available. | [Connect Google Analytics 4](/track/connecting-google-analytics)                          |
| Google Business Profile | Authorized business and location context for supported local workflows.                      | [Connect client Google services](/account-and-settings/connecting-client-google-services) |
| Bing Webmaster Tools    | Bing query and page performance used by the supported client workflow.                       | [Connect Bing Webmaster Tools](/track/connecting-bing-webmaster-tools)                    |
| YouTube                 | Authorized channel and video context for supported client and Serena workflows.              | [Use Serena with connected apps](/serena/serena-integrations)                             |

## Knowledge, publishing, and collaboration

* **Client Sources and Google Drive** provide approved client knowledge and files to the workflows that support them. See [Serena knowledge and data connections](/serena/advisor-knowledge-base-and-data-connections).
* **WordPress and other CMS destinations** use the publishing or export formats available in Copywriter. See [Exporting your content](/copywriter/exporting-your-content). An export format is not automatically a live, two-way CMS integration.
* **Slack** can be connected for supported Serena collaboration workflows. See [Using Serena with connected apps](/serena/serena-integrations).
* **Serena with GSC and GA4** uses the connected client data within supported analysis workflows. See [How Serena uses GA4 and GSC](/track/how-advisor-uses-ga4-and-gsc) for scope and limitations.
* **Call tracking** connects CallRail or CallTrackingMetrics. Open **Call tracking** under the client's Integrations, add the provider's own API credentials once for the organization, then choose the company to link to this client. Leave the tracker-number selection empty to include all of that company's numbers, and add further links when a client uses more than one company.

## Native task-management connections

Rankability has native project-management connections for the services shown under **Settings → Organization → Integrations → Project management**. Connect one provider for the organization, then map each client to its external destination.

| Connection | What it provides                                                                                                                                                       | Setup                                                                  |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| Asana      | Sends supported Copywriter projects, Activity assignments, and monitoring alerts to a mapped Asana project. Completion sync is limited to supported linked item types. | [Connect Rankability to Asana](/account-and-settings/connecting-asana) |
| ClickUp    | Sends supported work to the selected client destination using ClickUp's workspace, space, and list hierarchy.                                                          | Configure the provider and client mapping in Rankability.              |
| monday.com | Sends supported work to the mapped board when the connection is available for the organization.                                                                        | Configure the provider and client mapping in Rankability.              |

A native task-management connection does not automatically assign a person, add a due date, send every project, publish content, or provide universal two-way synchronization.

## Developer integrations

* **Agent API** — Create a scoped API key for programmatic access to supported Rankability workflows. Start with [Getting started with the API](/api/api-getting-started).
* **Model Context Protocol (MCP)** — Connect a compatible AI assistant through OAuth or a scoped API key. See [Connecting Rankability to AI assistants with MCP](/api/mcp-getting-started).

## Automation platforms

Zapier and Make are automation options, not requirements for Rankability's native Asana connection. Where an automation platform supports webhooks or authenticated HTTP requests, you can build workflows against the Rankability API. Review [API use cases and automation patterns](/api/api-use-cases) and the other service's current capabilities before designing the workflow.

## Freshness, permissions, and security

Connected data can lag its source. Confirm the selected client, property, date range, last sync, and signed-in account before treating missing data as zero. Grant only the permissions a workflow needs, keep API keys out of browser code and public repositories, and disconnect access that is no longer required.

## Validate a new connection

1. Authorize with an account that already has access to the intended property or destination.
2. Select the exact site, property, profile, channel, or account.
3. Wait for the first import or status check to complete.
4. Compare one bounded result with the source service using matching dates and filters.
5. Record the owner and purpose of the connection so it can be reviewed or revoked later.

## Common connection states

* **Connected, no data** — The property can be correct while the first import is incomplete or the selected range has no rows.
* **Authorization expired** — Reconnect with the authorized account and reselect the intended resource.
* **Resource not listed** — Confirm the external account's permission; Rankability cannot select a property the provider does not return.
* **Wrong client or property** — Correct it before using the data in reports or Serena. Integrations are client-scoped.
* **Automation cannot authenticate** — Review [Authentication and API keys](/api/api-authentication), scopes, base URL, and server-side secret storage.
* **Publishing option is unavailable** — Review [Exporting your content](/copywriter/exporting-your-content) and the current destination state; a file export does not create a live CMS connection.
* **Task handoff is unavailable** — Confirm that a project-management provider is connected for the organization and that the selected client is mapped to an accessible destination.

Disconnecting a service stops future authorized access but does not necessarily delete historical results already stored in Rankability. Contact support before assuming a disconnect is a data-erasure request.


# Connecting Bing Webmaster Tools

Connect a client's Bing Webmaster Tools account by pasting an API key. Serena uses Bing search performance data alongside Google Search Console for a fuller picture — especially useful because…

Connect a client's Bing Webmaster Tools account by pasting an API key. Serena uses Bing search performance data alongside Google Search Console for a fuller picture — especially useful because ChatGPT and Copilot lean on the Bing index.

Rankability connects to **Bing Webmaster Tools** per client using a personal API key your client pastes from their Bing account. Unlike Google services (which use OAuth), Bing connection takes about 30 seconds and requires no Microsoft sign-in flow.

## Why connect Bing

* LLM-powered answer engines like **ChatGPT and Copilot** lean heavily on the Bing index. Bing performance is a strong leading indicator of AI visibility.
* Serena combines Bing and GSC data so you can say things like “we rank #3 on Bing for X but only #18 on Google” in a single chat.
* No Azure app registration, no OAuth consent screen, no IT review — your client copies one key and you paste it.

## Step 1 — Your client copies their API key

Send your client this short instruction (or do it yourself if you have access to their Bing Webmaster Tools account):

1. Sign in at [bing.com/webmasters](https://www.bing.com/webmasters) with the Microsoft account that owns the verified site.
2. Click the **Settings** gear (top right) → **API access**.
3. Click **Generate** if no key exists yet, then copy the key to the clipboard.

If the site isn’t verified in Bing Webmaster Tools yet, the client will need to add and verify it first — the API key only returns data for sites the account owns.

## Step 2 — Paste the key in Rankability

1. Open the client, then go to **Client Settings**.
2. Find the **Integrations** card and click **Connect** next to Bing Webmaster Tools.
3. Paste the API key. Rankability validates it against Bing’s API and returns the list of verified sites on that account.
4. Pick the site that matches this client and save.

The key is encrypted at rest and only used server-side. Rankability never displays it back to you after save.

## What happens after you connect

* A background sync runs every **6 hours** and pulls the client’s top queries and top pages (clicks, impressions, CTR, average position) into Rankability.
* Serena automatically includes a compact Bing data summary in its system prompt alongside the existing GSC summary — no extra UI to enable.
* If Bing’s API is unavailable or rate-limited on a given run, the failure is logged and the Serena simply omits the Bing block on that turn. You won’t see a customer-facing error.

## Disconnecting

In **Client Settings → Integrations**, click **Unplug** on the Bing row. This deletes the stored API key and stops the sync. To reconnect later, repeat Step 2 with a fresh key.

## Troubleshooting

* **“Invalid API key”** — The key was mistyped or has been regenerated in Bing Webmaster Tools (regenerating invalidates the old one). Have your client copy the current key again.
* **No sites returned** — The Microsoft account behind the key doesn’t own any verified sites. Confirm with your client that they’re signed into the right account and that the site is verified.
* **Serena doesn’t mention Bing data** — The first sync runs shortly after you connect; if it’s been more than a few hours, click **Unplug** and reconnect to force a fresh sync.
* **Where’s the OAuth option?** — Rankability briefly shipped an OAuth flow for Bing and dropped it. The paste-a-key flow is \~30 seconds vs 3–5 minutes for OAuth, and it doesn’t require an Azure app registration on your client’s side.

## Scope (MVP)

Bing today powers the **Serena only**. Crawl errors, backlinks, keyword research, URL submission, and Researcher / Tracker / Copywriter exposure are intentionally out of scope for the initial release.

## Related articles

* [Data integrations overview](/track/data-integrations-overview) — Reference for all available data connections.
* [Connecting and using Google Search Console](/track/connecting-google-search-console) — The Google-side equivalent of this guide.
* [Serena: Knowledge base and data connections](/serena/advisor-knowledge-base-and-data-connections) — How Serena uses connected data sources.


# Running benchmark reports

Benchmark reports let you run a one-time visibility scan across search engines and AI platforms without setting up recurring tracking.

Benchmark reports let you run a one-time visibility scan across search engines and AI platforms without setting up recurring tracking.

## What is a benchmark report?

A benchmark report is a one-time visibility snapshot for a keyword. It scans every search engine and AI platform you select and delivers an SPI score, traditional rankings, AI mentions, and AI citations — the same data as an ongoing tracking project, just without recurring scans.

Benchmarks are ideal for sales calls, prospect audits, competitive checks, and client onboarding. Run one before a pitch to show a potential client exactly where they stand.

## Creating a benchmark report

1. Select a client and open **Track**.
2. Open the additional options beside the new-report action and choose **Run one-time benchmark**.
3. The setup form opens as **One-time benchmark**. Answer what customers should find the client for and confirm the brand context, exactly as you would for a tracking report.
4. Choose the platforms to include. A benchmark does not ask for a monitoring cadence, because it does not schedule anything.
5. Select **Run first report**.

The summary line above the button shows what the report will use before you start it.

## Viewing results

After you start it, you are taken to the same project dashboard used for standard tracking. You’ll see:

* **Scanning timeline** — Live progress showing each platform being scanned in real time.
* **Overview tab** — SPI score ring with a breakdown by category (traditional ranking, AI mentions, AI citations).
* **Traditional search tab** — Your position on each search engine with competitor comparison.
* **AI answers tab** — Whether your brand is mentioned in each AI platform’s response.
* **AI citations tab** — Whether AI platforms cite your website as a source.

## Converting to ongoing tracking

Every benchmark report includes an **Auto-tracking** toggle in the project dashboard. Flip it on and the project starts scanning on a recurring schedule — no need to re-enter any details. The keyword, domain, platforms, and brand settings are all preserved.

This makes benchmarks a natural sales funnel: show a prospect their current visibility, then convert the report to tracked monitoring once they sign on.

## Benchmark vs. standard tracking

| Feature        | Benchmark                    | Standard tracking             |
| -------------- | ---------------------------- | ----------------------------- |
| Scan frequency | One-time                     | Daily, weekly, or monthly     |
| Dashboard      | Same                         | Same                          |
| SPI score      | Yes                          | Yes, with trend history       |
| Convertible    | Yes, toggle auto-tracking on | N/A                           |
| Usage          | One-time on-demand impact    | Scheduled scans are protected |

## Tips

* Select all AI platforms for the most complete picture of AI visibility.
* Use benchmarks during prospect meetings to demonstrate your value before the client commits.
* Run benchmarks for competitor keywords to identify gaps in their strategy.

## Related articles

* [Setting up keyword tracking](/track/setting-up-keyword-tracking) — Create standard tracking projects with recurring scans.
* [Understanding SPI](/track/understanding-spi) — How the Search Performance Index score is calculated.
* [Supported tracking platforms](/track/supported-tracking-platforms) — Full list of trackable search engines and AI platforms.
* [Billing and usage](/account-and-settings/understanding-billing-and-credits) — Pooled limits and protected scheduled scans.


# Using Portfolio performance

Compare SPI, Search Console, Analytics, and tracked-keyword metrics across clients in Portfolio performance.

Portfolio performance is the agency-level comparison table for finding clients that need attention before you open their individual workspaces. It combines Rankability visibility, Google Search Console, Google Analytics, and Tracker coverage in one view.

At the agency level, select **Performance**. This opens **Portfolio performance**; it is not the same as the Performance summary inside one client workspace.

## Choose a date and comparison period

Select the last 7, 14, 28, or 90 days. Then compare the selected range with either:

* The immediately previous period of the same length.
* The same period last year.

Each change indicator uses the comparison you selected. A gray dash can mean no change or insufficient comparable history; hover over it for the page's explanation.

Trend colors show direction for that metric. Green is favorable, red is unfavorable, and gray means the absolute change is below the 5% display threshold. Average position is inverted because a lower position is better. Always interpret metrics together—for example, higher CTR with sharply lower impressions can reflect narrower reach rather than an unqualified improvement.

## Read the columns

* **SPI** is the client's 0–100 Search Performance Index and its change. A mixed-scales badge warns when projects in the rollup use different platform-inclusion settings.
* **Clicks, Impressions, CTR, and Avg position** come from the selected Google Search Console property and period.
* **Sessions and Engagement rate** come from Google Analytics.
* **Tracked** is the number of tracked keywords, with the number of active tracking projects below it.

The **Portfolio totals** row follows the current filters. Clicks, impressions, sessions, and tracked keywords are sums. SPI, CTR, average position, and engagement rate are averages across clients with the required data; the connected-client counts show the contributing coverage.

## Filter, search, and sort

Quick filters are views over the same portfolio and can overlap:

* **Declining** means the client's SPI trend is below zero.
* **Improving** means the SPI trend is above zero.
* **Missing data** means the client has tracked keywords but is missing GSC or GA4 connectivity.
* **Tracking paused** means tracked keywords exist but no tracking project is active.

The count on each quick filter is calculated before the text search. Search matches client names and domains. Select a column heading to sort, and select it again to reverse the direction.

Clients without GSC, GA4, or an SPI result appear in a separate **Not connected** group. Expand that group and use **Connect GSC** or **Connect GA4** to open the client's settings. A connected service can still show a dash until enough data and comparison history have synced.

## Export and investigate

Select **CSV** to export the currently visible rows, including the active search, quick filter, and whether the Not connected group is collapsed. The export includes client, domain, SPI, GSC metrics, GA4 metrics, and tracked-keyword count.

Click a client row to open its workspace before acting. Portfolio performance is a triage surface, not a causal diagnosis. Confirm the selected property, connection freshness, tracking state, individual reports, and underlying date range before recommending a change.

## Troubleshooting

* **A client is absent from a quick-filter count:** The quick-filter counts use the connected-client group; search text is applied afterward.
* **Missing data is not zero:** A dash indicates unavailable or insufficient data. Do not substitute zero when calculating a result.
* **A change looks backward:** Average position treats decreases as improvement; other metrics generally treat increases as improvement.
* **The page fails to load:** Select **Retry**. If only one client's data is absent, open that client's settings rather than treating the whole portfolio as unavailable.

## Related articles

* [Understanding Today and Performance](/getting-started/understanding-the-dashboard)
* [Client settings reference](/account-and-settings/client-settings-reference)
* [Connecting client Google services](/account-and-settings/connecting-client-google-services)
* [Understanding the Search Performance Index](/track/understanding-spi)


# Understanding billing and usage

Understand plan allowances for tracked prompts, workspaces, and AI platforms, protected legacy plans, pooled usage, recovery windows, and subscription changes.

Rankability's paid plans are Starter, Core, and Team. Each one includes every Rankability tool and unlimited users. What differs between them is how many prompts you can actively track, how many brand workspaces you can keep, and which AI platforms you can track.

Open **Billing** from the Settings group to see your plan, allowances, enabled AI platforms, invoices, and pooled usage. Billing has its own `/billing` page; the older `/usage` route redirects there.

## What your plan includes

| Plan    | Active tracked prompts | Brand workspaces | AI platforms                            |
| ------- | ---------------------- | ---------------- | --------------------------------------- |
| Starter | 60                     | 1                | ChatGPT, Google AI Mode, and Claude     |
| Core    | 125                    | 3                | adds Google AI Overviews and Perplexity |
| Team    | 250                    | 10               | adds Gemini, Grok, and Copilot          |

Every plan also includes Google Search, local, and video tracking, your choice of daily, weekly, or monthly monitoring for each tracked prompt, scheduled tracking, and Agent API and MCP access.

Agency is no longer sold. Existing Agency subscriptions keep the allowances and terms they were bought with, and subscriptions bought under earlier Starter, Core, or Team packaging keep theirs — a plan name alone does not tell you which allowances apply.

Billing shows the exact allowances, enabled-platform count, and full platform list for your own subscription, including any paid platform add-ons. Read it there rather than inferring coverage from this table or a plan name. For what each surface measures, see [Supported tracking platforms](/track/supported-tracking-platforms).

Tracked prompts are counted as an active total, not a lifetime one. Billing shows the current figure against your limit, and Tracker shows where a new report would leave you before you start tracking it. Pausing or removing a report returns its allowance.

## Add an AI platform without changing plan

A current subscription can add any AI platform its base plan does not already include. Billing shows every supported platform, marking each one **Enabled** or **Available to add**:

1. Open **Billing** and find **AI platforms**.
2. Select **Add platforms** or choose a tile labeled **Available to add**.
3. Choose the platform. Billing shows the add-on price for your monthly or yearly billing interval.
4. Review the proration and new recurring subscription total, then confirm the change.

Each selected platform adds one paid platform unit to the same subscription. Access is enabled after the required payment succeeds. If Stripe needs another payment step, Rankability opens the hosted invoice and keeps access pending until it is resolved. A subscription that is still trialing can add a platform without an immediate charge; the add-on becomes part of the recurring subscription.

To remove a paid platform add-on, select its enabled tile in Billing and confirm the removal. A platform included with the base plan cannot be removed individually. Changing plan or billing interval preserves paid platform add-ons unless the new base plan already includes one of them.

## Protected legacy plans

Subscriptions bought before the current packaging keep the price and the client or workspace terms they were sold, and can track every supported AI platform. Billing marks these with a **Grandfathered** badge and shows that the existing price is protected. Rankability does not convert a protected subscription to current plan terms automatically.

Do not start a new checkout to correct protected terms. Contact support with the organization and invoice details instead.

## Pooled usage instead of credits

Paid accounts do not manage a credit wallet or action-by-action prices. On-demand activity is pooled across the organization and shown as remaining percentages for rolling 24-hour and 7-day windows. Rankability keeps this indicator out of the way while usage is healthy.

If an on-demand window reaches its limit, new on-demand work pauses with a recovery time. Older activity continuously rolls out of the window, so capacity returns automatically. Work already saved remains available.

## Scheduled work is protected

Routine scheduled tracking and monitoring are recorded separately from on-demand work and are not blocked by the on-demand windows. Provider quotas, request-rate controls, concurrency safeguards, and abuse protections can still apply independently.

## API and MCP

The Agent API and hosted MCP connection use the same plan entitlement and pooled usage as the web application. `GET /api/agent/v1/usage` and `get_usage_and_limits` return percentage windows and recovery times rather than credit prices. Copywriter Core remains a separate product with completed-outcome allowances.

## Change or cancel a subscription

* Choose a plan card and monthly or yearly interval directly in Billing. Review the in-app confirmation before Rankability updates the existing Stripe subscription; active customers are not sent through first-purchase checkout to create another subscription.
* **Invoices** opens Stripe billing management for receipts and payment details, then returns full-platform customers to Billing.
* Use the cancellation controls in Billing to stop renewal. Access continues through the paid period shown there, and a **Resume subscription** control appears while a cancellation is scheduled.

The Billing confirmation and any Stripe-hosted payment page are authoritative for a new charge, proration, or recurring total. Review them before confirming, especially when leaving protected legacy terms.

## Troubleshooting

* **You cannot add another brand workspace** — Check the workspace allowance for your plan in Billing. Protected subscriptions use their existing terms instead of a plan cap.
* **You cannot track another prompt** — You are at your active tracked prompt allowance. Pause or remove a report you no longer need, or change plan.
* **An AI platform is unavailable in setup** — Open Billing. The platform may be available as a paid add-on, or you can compare a plan that includes it. A platform remains unavailable until any required add-on payment succeeds.
* **A newly added platform is still unavailable** — Finish the hosted invoice or payment action if one was shown, then return to Billing. Access is not granted from a failed or incomplete payment.
* **A removed platform still looks enabled** — Refresh Billing once. The add-on list from Billing is authoritative; contact support if the removed platform remains after Stripe finishes the change.
* **On-demand work is paused** — Open Billing to see which rolling window reached its limit and when capacity begins returning.
* **Scheduled work did not run** — Check the project schedule, connection health, and provider or queue status; scheduled work does not consume the on-demand window.
* **Your legacy terms look different** — Do not start a new checkout. Existing subscriptions are protected; contact support with the organization and invoice details.
* **The Stripe total is unexpected** — Do not confirm the change. Compare the plan and interval you selected against the summary, then contact support.

## Related articles

* [Control your usage](/account-and-settings/control-your-usage)
* [Setting up keyword tracking](/track/setting-up-keyword-tracking)
* [Supported tracking platforms](/track/supported-tracking-platforms)
* [Connecting Rankability to AI assistants with MCP](/api/mcp-getting-started)
* [Troubleshooting common issues](/troubleshooting/troubleshooting-common-issues)


# Usage limits reference

Understand the current full-platform pooled-usage contract and the separate Copywriter Core allowances.

Rankability no longer asks full-platform customers to calculate credits for individual actions. Every full-platform tool is included, and on-demand activity uses pooled rolling limits shown in **Billing**.

## Full-platform accounts

* General usage uses a rolling 7-day window.
* Burst usage uses a rolling 24-hour window.
* Capacity recovers continuously as older activity rolls out.
* Scheduled tracking and monitoring are protected from the on-demand windows.
* Website-level activity is shown relatively, without exposing internal units or action prices.
* API and MCP work uses the same pooled contract as the application.

Larger crawls, broader scans, and high-volume generation naturally use more capacity than a small request, but you do not need to price each action. Rankability warns only when usage is low or temporarily limited.

## Copywriter Core

Copywriter Core is a separate standalone product. Its Billing and usage response shows completed-outcome allowances for content assets, optimizations, and requested full-document rewrites. Those allowances do not become full-platform credits and do not unlock other platform tools.

## Other safeguards

Pooled usage is separate from request-rate limits, crawler page quotas, provider availability, concurrency controls, and abuse prevention. An action can be included in the platform and still wait or fail when one of those operational safeguards applies.

Pooled usage is also separate from your plan's allowances. Tracked prompts, brand workspaces, and AI platform access are fixed entitlements rather than rolling windows, so reaching one of those limits is not the same as pausing on-demand work.

See [Understanding billing and usage](/account-and-settings/understanding-billing-and-credits) for plan allowances, protected legacy terms, recovery behavior, and subscription changes.


# Control your usage

Use Rankability's pooled usage confidently, avoid duplicate work, and understand rolling recovery windows.

Rankability is designed to be used without pricing every action. Full-platform on-demand work is pooled across the organization and shown as remaining percentages in **Billing**.

## Work normally while usage is healthy

The usage indicator stays quiet during normal work. You do not need to optimize a credit wallet or compare tool prices. Use the scope that produces a useful result for the client.

It is still good operational practice to:

1. Confirm the correct client, project, market, and website.
2. Check whether equivalent work is already running or recently completed.
3. Avoid unnecessary platforms, locations, pages, competitors, or duplicate keywords.
4. Use a stable idempotency key for API or MCP creates and keep the returned job ID.
5. Review a high-impact estimate before starting a large crawl, scan, or generation batch.

## When usage is low

Billing shows rolling 24-hour burst and 7-day general windows. Capacity recovers continuously as older activity rolls out. If a window reaches zero, new on-demand work pauses and the product returns a recovery time. Saved results and existing projects remain available.

Do not repeatedly retry a limited request. Wait until the returned recovery time, reduce avoidable parallel work, or contact support if a normal workload repeatedly reaches the cap.

## Scheduled work

Scheduled tracking and monitoring are kept separate from on-demand windows. If scheduled work does not run, check the schedule, integration health, provider status, and queue state rather than treating it as pooled-usage consumption.

## Usage by website

Billing shows relative low, typical, or high activity by website without exposing internal units. Use it to identify a client producing an unusual share of work, not to allocate action prices or rebill every task.

See [Understanding billing and usage](/account-and-settings/understanding-billing-and-credits) for plan allowances, protected legacy terms, and subscription changes.


# Client settings reference

Configure a Rankability client's profile, brand voice, sources, assets, integrations, reports, alerts, and monitoring.

Client settings define the identity, defaults, evidence, connections, and delivery rules Rankability uses for one brand. Select the client and open **Settings**. On a smaller screen, use the settings-section menu in place of the left navigation. Confirm the client before changing a setting; these controls can affect generated content, tracking, Serena's context, scheduled work, and outside delivery.

## Profile

### General

**Basic information** contains the client name, website domain, and completion-email preference. The client name is required. A valid domain improves setup and is needed for many website-based workflows, but it can be added later.

**Project defaults** prefill new work and can still be overridden inside an individual project:

* Industry, default language, and target location guide new Copywriter projects.
* Default brand aliases prefill new Tracker projects for brand-mention detection; they are not backlink-domain aliases.
* A LinkedIn company or profile URL lets Tracker recognize the client's own LinkedIn content as an owned result without connecting a LinkedIn account.

### Brand & voice

Define the brand name, tagline, audience, differentiators, competitors, tone, writing guidance, restricted words, excluded topics, and branded GSC terms. Rankability uses supported fields as grounding for content and analysis, so review specific facts rather than treating an AI suggestion as authoritative.

**Auto-fill from website** analyzes the client's site and can fill all fields or only empty fields. **Extract voice from samples** accepts representative URLs or pasted text. These actions are included in full-platform pooled usage; review their scope before a large import. Review AI-suggested values, edit anything inaccurate, and select **Save changes**.

When creating a new client, only the General and Brand & voice sections are available. Save the client before configuring the client-only sections below.

## Content

* **Assets** stores approved photos and reusable visual material for supported content workflows. In the Copywriter editor, **Insert an approved image** lets you choose a saved asset or add one. Saved alt text is used when available; otherwise the filename is a fallback that you should review. Autopilot does not silently select a featured image.
* **Sources** manages client-specific material that Serena and supported workflows can use as context. Keep sources current and remove material that should no longer influence execution.

Assets and sources use their own controls inside their panels; do not assume the page-level **Save changes** button submits a pending upload or source action.

## Connections

* **Integrations** groups data, publishing, task-management, and notification connections. A connected badge confirms saved authorization, not necessarily current data freshness or permission to every property. Project-management authorization is created once under **Settings → Organization → Integrations**; the client panel maps that client to a destination. For the current Asana workflow, see [Connecting Rankability to Asana](/account-and-settings/connecting-asana).
* **Client portal** manages a no-login report link, report visibility, and individually invited portal users. The portal is read-only and scoped to the selected client.

For the Google authorization and property-selection workflow, see [Connecting client Google services](/account-and-settings/connecting-client-google-services). For external access, see [Setting up the client portal](/account-and-settings/client-portal-sharing).

## Performance

**Reports** controls scheduled report delivery for this client. Review the recipients, cadence, report configuration, and connected-data coverage before enabling delivery. Scheduling a report does not create missing GSC, GA4, or Tracker history.

## Monitoring

* **Alerts** configures which eligible detector signals can create client alerts and which supported channels receive them.
* **Monitoring capabilities** controls the capabilities that feed Serena and the weekly brief. Integration-dependent capabilities can enable automatically after the required service is connected.

Monitoring capability and alert settings serve different purposes: enabling a capability makes its evidence available to supported analysis, while an alert rule determines whether an eligible finding should notify someone.

## Saving and troubleshooting

General and Brand & voice edits use the sticky **Save changes** button. If you switch those tabs with unsaved edits, Rankability asks whether to save, discard, or remain on the current section. Field limits can block saving; review highlighted brand fields when the button is unavailable.

If a setting appears missing, confirm that the client has already been created and that you have access to it. If connected data is absent elsewhere, verify the selected account and property in Integrations rather than entering a zero value manually.

## Related articles

* [Creating a new client](/getting-started/creating-a-new-client)
* [Using Portfolio performance](/agency/portfolio-performance)
* [Content editor reference](/copywriter/content-editor-reference)
* [Connecting Rankability to Asana](/account-and-settings/connecting-asana)


# Connecting Rankability to Asana

Connect Asana to Rankability, map each client to a project, send supported work as tasks, and understand completion sync.

Rankability helps your team create SEO content that ranks and earns AI citations. The native Asana integration carries supported content and workflow handoffs into the Asana projects where your team reviews and delivers that work.

## What the integration does

Connect Asana once for your Rankability organization, then map each Rankability client to the appropriate Asana workspace and project. Supported work can be sent to that project as an Asana task with useful context and a direct link back to Rankability.

The connection does not send every project automatically. You choose when to send a supported Copywriter project, Activity assignment, or monitoring alert.

## Before you connect

You need:

* access to integrations in your Rankability organization;
* permission to manage organization integrations;
* an Asana account that can access the intended workspace and project; and
* approval from your Asana administrator if the workspace restricts third-party apps.

Rankability's Asana app can be authorized by external Asana workspaces. Customers do not need to change any developer or distribution settings.

## Connect Asana

1. Sign in to Rankability.
2. Open **Settings**.
3. Select **Organization → Integrations**.
4. Find **Project management** and choose **Connect Asana**.
5. Sign in to the Asana account that can access the intended projects.
6. Authorize Rankability and return to the integration page.
7. Under **Client mapping**, choose **Choose project** for each client you want to map.
8. Select the Asana **Workspace** and **Project**, then save the destination.

Asana uses a workspace-to-project hierarchy. Unlike ClickUp, there is no intermediate space or list selection.

## Map or change one client's destination

You can also manage a destination from the client:

1. Select the client in Rankability.
2. Open **Settings → Integrations**.
3. Find **Task management** and open **Asana**.
4. Select the **Workspace** and **Project**.
5. Choose **Save destination**.

Use **Change** to send future work to a different project. Changing a destination does not move tasks that Rankability already created in Asana.

The mapping states mean:

* **Not connected** — No project-management provider is connected for the organization.
* **Not mapped** — Asana is connected, but this client has no saved destination.
* **Needs re-selection** — The saved project was deleted, became inaccessible, or is no longer returned by Asana. Choose an available project and save it again.

## Send content and workflow items to Asana

The available action depends on where the work lives:

* **Copywriter:** Open a project and choose **Send to Asana**. Rankability creates a task with the content topic, available project context, and a link to the Copywriter project. A **Copywriter** tag is added when Asana allows it. After a successful handoff, the action links to the existing task as **In Asana** instead of creating a duplicate.
* **Activity:** Open an eligible card, choose **Assign**, and confirm with **Confirm & assign**. The task includes the card summary, a link to Activity, and related Copywriter links when available.
* **Monitoring alerts:** Use **Send to Asana** on a supported alert. The task can include the finding, recommended action, severity or impact context, and a link back to Rankability.

Rankability does not automatically select an assignee, add a due date, publish content, or send every project. Review the task in Asana and add the delivery details your team needs.

## Completion and synchronization

Completion sync is limited to supported linked item types:

| Linked item                             | Completion behavior                                                                                                                                       |
| --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Activity assignment                     | Completing the linked Asana task can complete the Activity item. Completing or dismissing the supported Activity item can complete its linked Asana task. |
| Monitoring alert                        | Completing the Asana task can resolve the linked finding. Resolving the finding in Rankability can complete its linked Asana task.                        |
| Copywriter project sent from the editor | The Asana task links to the project, but task completion does not change the Copywriter project status.                                                   |

This is not universal two-way synchronization. Completing an Asana task does not publish content, and edits to task fields do not rewrite the Rankability project.

## Disconnect Asana

1. Open **Settings → Organization → Integrations**.
2. Find the connected project-management service and choose **Disconnect**.
3. Confirm the disconnection.

Disconnecting removes Rankability's active authorization and clears the saved client project mappings. Tasks already created in Asana remain in Asana. If you reconnect later, review or recreate each client mapping before sending more work.

## Troubleshooting

* **The connection was cancelled or denied:** Start **Connect Asana** again and approve the requested access.
* **The authorization link expired:** Return to Rankability and begin a new connection instead of reusing the old authorization page.
* **An Asana administrator blocks the app:** Ask the Asana administrator to approve Rankability for that workspace.
* **The intended workspace or project is missing:** Confirm that the Asana account you authorized can open it. Reconnect with the correct account if necessary.
* **The client is Not mapped:** Open **Client mapping**, choose the client's project, and save it before trying the handoff again.
* **The destination Needs re-selection:** The original project is no longer available to the connected account. Choose another accessible project and save it.
* **Reconnecting did not restore the old mapping:** Reconnection starts without the cleared client mappings. Map each client again.
* **You authorized the wrong Asana account:** Disconnect Asana, reconnect with the intended account, and recreate the client mappings.

## Related articles

* [Integrations and connected apps](/track/data-integrations-overview)
* [Client settings reference](/account-and-settings/client-settings-reference)
* [Using Activity](/activity/tasks-board)
* [Creating a content project](/copywriter/creating-a-content-project)
* [Exporting and publishing content](/copywriter/exporting-your-content)


# Setting up the client portal

Set up a private client portal or revocable share link for read-only access to Rankability Tracker results.

Use the client portal when an outside stakeholder needs recurring, read-only access to a client's Tracker results without becoming a member of your Rankability organization.

The current client portal is a client-facing Tracker. It can show keyword rankings, Local results, traditional search, AI answers, AI citations, competitor comparisons, and completed work when those sections are enabled and data exists. Portal visitors cannot start scans, change tracking projects, edit client settings, or access your other clients.

## Before you begin

You need access to a saved client record. Add the tracking projects and connections that should supply the report before sharing it. A portal can only display data Rankability has already collected.

Open the client, select **Settings**, and choose **Client portal** under Connections.

## Choose an access method

Rankability provides two access methods on the same settings page.

### Share link

Turn on **Share link** to create a URL that opens the client Tracker without a Rankability sign-in. Copy the URL and send it through a secure channel. Anyone who receives a working copy of the link can open it.

Use **Report visibility** to choose:

* **All channels** or **AI only** report scope.
* Visible sections such as Keywords, Local, AI answers, Compare, and Work completed.
* Which supported AI platforms appear.
* Whether AI citations are shown.

The same visibility configuration applies to the client-facing portal report; it does not hide data from your agency's own Tracker workspace.

You can add or remove the client-level report password from **Tracker > Share report**. When a password is active, the Client portal settings page labels the share link as password protected.

### Invite a client

Select **Invite client**, enter the recipient's email and optional name, and send the invitation. The email contains a private sign-in link that is valid for seven days. Invited users appear in the access list with their last sign-in time and sign-in count.

Use **Resend link** if the invitation expires or the recipient cannot find it. An invited portal user signs in as that individual; this is different from an anonymous share link.

## Revoke or rotate access

Choose the control that matches the access method:

* Turn **Share link** off to disable the public URL.
* Rotate the share link to create a new token and invalidate the old URL immediately.
* Revoke an invited user to end that user's active portal sessions and prevent another sign-in.

These actions do not remove an organization member and do not revoke separate links for shared Copywriter projects, audit reports, or keyword approvals.

## Troubleshooting

* **Portal controls are unavailable:** Confirm that you opened a saved client and have permission to manage its sharing settings.
* **The invitation link expired:** Return to the invited user and select **Resend link**. Invitation links expire after seven days.
* **A report section is missing:** Expand **Report visibility** and check its section, report scope, and platform settings. Also confirm the client has completed tracking data for that section.
* **The old share link still opens:** Confirm that you rotated the link or turned sharing off. Copying the same enabled URL does not revoke earlier copies.
* **The portal shows no current data:** Check the client's tracking status and integrations. Missing or uncollected data is not converted into zero.

## Related articles

* [Client settings reference](/account-and-settings/client-settings-reference) — Understand every client-level settings group.
* [Managing your team and client access](/account-and-settings/managing-team-and-client-access) — Add internal teammates who need permission to work in Rankability.
* [Understanding the Track overview](/track/reporter-executive-summary) — Understand the Tracker levels and result states shown in the portal.
* [Sharing content and tracking reports](/copywriter/sharing-content-and-tracking-reports) — Choose a narrower one-item share link when a full client portal is unnecessary.


# Connecting client Google services

Learn how to generate a connect link, send it to your client, and manage their connected Google services such as Google Search Console, Google Analytics, YouTube, and Google Business Profile.

Learn how to generate a connect link, send it to your client, and manage their connected Google services such as Google Search Console, Google Analytics, YouTube, and Google Business Profile.

The Integrations tab in Client Settings lets you connect a client's Google services to Rankability without sharing passwords. You generate a secure link, send it to your client, and they authorize access with one click.

## Overview

Agencies use connect links to pull search performance data from a client's Google accounts. Once connected, Rankability can import data from Google Search Console, Google Analytics, YouTube, and Google Business Profile into the Serena and Reporter tools.

**Note:** The connect link flow is Google-only. To connect a client’s **Bing Webmaster Tools** account, your client copies an API key from [bing.com/webmasters](https://www.bing.com/webmasters) → **Settings** → **API access** and you paste it on the client Integrations settings — see [Connecting Bing Webmaster Tools](/track/connecting-bing-webmaster-tools).

## How to generate a connect link

1. Select a client, then open **Client Settings**.
2. Click the **Integrations** tab.
3. Click **Generate connect link**.
4. The link is created and automatically copied to your clipboard.
5. Share the link with your client via email, chat, or any secure channel.

## What your client sees

When your client opens the connect link they see a branded page from Rankability explaining what access is being requested. The flow works like this:

1. The client clicks **Connect with Google**.
2. Google’s standard sign-in screen appears. The client signs in with the Google account that owns the properties you need.
3. After authorization, Rankability auto-discovers the client’s available Google Search Console sites, Analytics properties, YouTube channels, and Business Profile locations.

Connecting an account does not change Google data by itself. Search Console, Analytics, and the connected-data reporting flows are read-only. A connected Google Business Profile uses Google’s business-management permission because supported Rankability actions can update selected profile fields or post a review reply after an authorized user explicitly reviews and applies that action. Rankability does not make those GBP changes merely because the account is connected.

## Use a Google account your workspace already connected

When your workspace already has a connected Google account that can see the client's Search Console property, you do not need a new connect link. In the client's **Integrations** tab, choose the option to select a property from a connected Google account, pick the account under **Choose a connected Google account**, and select the verified site to link to this client.

Rankability lists only verified sites for that account. If the account has none, or its properties cannot be loaded, the selector says so rather than linking something unverified. After you select a property, Rankability confirms the connection and can warn when the chosen property looks like a poor match for the client's domain — read that warning before relying on the data.

This reuses existing authorization; it does not grant the workspace any new Google access, and the client's own connect-link flow remains available for accounts your workspace cannot already see.

## Selecting properties

After authorization, the client is shown a property-selection screen. For each service that has available properties, the client can:

* Toggle the service on or off with a checkbox.
* Choose a specific property from a searchable dropdown (e.g., which Search Console site or which Analytics property).

If only one property exists for a service it is pre-selected automatically. Once the client clicks **Connect selected services**, the connection is saved and the client sees a confirmation screen.

## Managing connected services

Back in Client Settings → Integrations, you can see the status of each service:

* A green **Connected** badge means the service is active and data is syncing.
* Click the **disconnect** icon next to a service to remove the connection.
* To reconnect, generate a new connect link and send it to your client again.

You can also connect services directly from the **Serena** page using the Connections panel.

## Link expiration and security

* Each connect link expires after **7 days**.
* Only **one active link** can exist per client at a time. Generating a new link automatically revokes the previous one.
* You can manually revoke an active link at any time by clicking **Revoke**.
* Once a link has been used (the client completes authorization), it cannot be reused.

## Troubleshooting

* **Link shows as expired** – Generate a new connect link and send it to your client. Links are only valid for 7 days.
* **Client didn’t select any properties** – The client may have authorized but skipped the property-selection step. Send them the link again, or generate a new one if the original has expired.
* **Service shows as not connected** – The client may have signed in with a Google account that doesn’t own the expected properties. Ask them to try again with the correct account.
* **No properties found after authorization** – The Google account used doesn’t have any Search Console sites, Analytics properties, YouTube channels, or Business Profile locations. Confirm the client is using the right Google account.
* **Can’t generate a link** – Make sure you have permission to manage this client. Check with your agency admin if needed.

## Related articles

* [Client settings — General and Brand & voice](/account-and-settings/client-settings-reference) — Configure client name, brand identity, and writing style.
* [Creating a new client](/getting-started/creating-a-new-client) — Set up a client before connecting their Google services.
* [Quickstart checklist](/getting-started/quickstart-checklist) — Full onboarding steps including connecting data sources.


# Managing your team and client access

Invite team members, assign roles, and control which clients each member can access.

Invite team members, assign roles, and manage access to clients in your Rankability organization.

You must be an organization Admin to invite members, change roles, or manage client access. Before inviting someone, confirm the organization, the email address they use for Rankability, the clients they need, and whether they truly need administrative access. Client access limits visibility inside the selected organization; it does not create a separate client-portal login.

Open **Settings** in the sidebar footer, then use **Organization** for members and client access. Current paid plans include unlimited users, but only invite people who need organization access.

## Viewing your organization

Settings has Organization and Billing tabs. The Organization tab shows your org name and member count. Click **Manage** to open the organization modal.

## Managing organization profile

The Organization modal has General and Members sections. Under General, you can update your profile or leave the organization.

## Inviting and managing members

The Members tab has Members and Invitations sub-tabs. The Members table shows User, Joined, Role, and Actions columns. Invite new members via the blue invite button. Change roles via the dropdown (Admin or Member). Additional actions available via the ⋯ button.

## Roles

* **Admin** – Full access to all features and settings.
* **Member** – Limited access; can be granted or denied access to specific clients.

## Controlling client access

In the Organization tab, find the **Client access management** section. Toggle access per member per client.

After changing access, ask the member to refresh Rankability. A member with access can work within the permitted client according to the product permissions available to their role. Removing access hides that client from the member but does not delete projects, sources, reports, or activity.

## Complete invite workflow

1. Open **Settings → Organization** and select **Manage**.
2. Open **Members → Invitations** and choose the invite action.
3. Enter the recipient's email address and send the invitation.
4. Confirm the invitation appears as pending. If the address is wrong, revoke it and send a new invitation rather than sharing the link.
5. After the person accepts, return to **Members**, assign **Admin** or **Member**, and save the role.
6. In **Client access management**, enable only the clients that person should use.
7. Verify the final role and client toggles with the member.

Pending invitations do not grant access until they are accepted. Current paid plans include unlimited users; a billing or organization-state problem can still prevent an invitation from completing.

## Tips and best practices

* Use the Member role for freelancers and contractors, then enable only the clients they need.

## Troubleshooting

* **Invite button not visible** – You need the Admin role to invite members.
* **Team member can’t see a client** – Check the toggle in Client access management.
* **Invitation was not received** – Confirm the exact address, ask the recipient to check spam, then revoke and resend if necessary. Do not invite a second address unless it belongs to the intended person.
* **Invitation stays pending** – The recipient must sign in with the invited address and accept the invitation. A different login will not inherit it.
* **Role change appears unchanged** – Refresh the Members view and have the member sign out and back in. If it persists, record the organization and user email for support.
* **External client only needs reports** – Use [Setting up the client portal](/account-and-settings/client-portal-sharing) or a supported share link instead of granting an organization seat.

## Related articles

* [Understanding billing and usage](/account-and-settings/understanding-billing-and-credits) — Manage your plan, pooled usage, and access.
* [Creating a new client](/getting-started/creating-a-new-client) — Add a new client for your team to work on.
* [Client settings — General and Brand & voice](/account-and-settings/client-settings-reference) — Configure individual client settings.


# Using the all projects page

The All Projects page shows every content and tracking project across all your clients in one place.

The All Projects page shows every content and tracking project across all your clients in one place.

Use this organization-level view when you need to find work across clients. You must have access to the underlying client for its projects to appear. Switch to **All workspaces** before looking for **Projects** in the sidebar; client-specific navigation shows that client's own workflows instead.

## Steps

1. Click **Projects** in the left sidebar (visible in the “All workspaces” scope).
2. The page shows a heading, subtitle, and project count.
3. Use the search bar to find projects by name.
4. Use filter dropdowns: All clients, All types (Content/Tracking), All statuses (Draft/In progress/Complete/Error).
5. Each row shows: client icon, project name (linked), client name, creation date, and status badge.
6. Click a project name to open it.
7. Use the **+ New project** button to open a client selection modal.

After you choose a client, Rankability routes you into the project flow supported for that client. Creating a project from this page does not create a client and does not bypass the selected client's settings, permissions, or usage safeguards.

## Build a useful working view

1. Clear old filters and search text.
2. Select a client when you are reviewing one account, or leave **All clients** selected for a portfolio view.
3. Choose **Content** or **Tracking** only when the project type matters.
4. Filter by **Draft**, **In progress**, **Complete**, or **Error** to find the next action.
5. Open the linked project and verify the client name before editing, rerunning, or sharing it.

Search and filters affect only the current list; they do not change project data. The status shown is the current persisted project state, so a background job may require a refresh before its row moves from in progress to complete.

## What this page does not include

All Projects is an index, not a combined report. It does not merge performance metrics across projects, expose clients you cannot access, or replace the client-specific **Activity**, **Create**, or **Track** views. Use [Understanding Today and Performance](/getting-started/understanding-the-dashboard) for organization summaries and open the project for its detailed result.

## Tips and best practices

* Use the status filter “In progress” to see your active workload.
* Use the type filter for content-only or tracking-only views.
* Projects without a client will show “No client.”

## Troubleshooting

* **Project missing** – Check the filter dropdowns. An active filter may be hiding it.
* **Projects link not in sidebar** – You must be in the “All workspaces” view.
* **Search returns no match** – Search uses the project name. Clear the query and locate it by client and type if the expected wording differs.
* **New project opens the wrong workflow** – Return to All Projects, choose **+ New project**, and confirm the client before continuing.
* **Status looks stale** – Open the project to check its latest status, then refresh the list once. Do not start a duplicate while the original job is active.

## Related articles

* [Understanding Today and Performance](/getting-started/understanding-the-dashboard) — Navigate the agency and client workspaces.
* [Creating a content project (Copywriter)](/copywriter/creating-a-content-project) — Create new content projects from this page.
* [Setting up keyword tracking](/track/setting-up-keyword-tracking) — Create and manage tracking projects.


# Getting started with the API

Create a least-privilege Rankability API key, make your first Agent API request, and choose the right endpoint family.

Use the Rankability Agent API to connect external reporting tools, automations, AI assistants, and internal systems to your Rankability workspace. This guide covers the shared setup for every API family.

## Before you begin

You need:

* An active paid Rankability subscription.
* An organization Admin to create the API key.
* A server-side application or secure automation environment. Do not expose an API key in browser code.

All customer Agent API endpoints start with:

```
https://app.rankability.com/api/agent/v1
```

Current responses include `X-API-Version: 1.19.0`. There is no separate `/v2` namespace.

## 1. Create a least-privilege key

1. Open organization **Settings**.
2. Select **API keys**.
3. Select **Create API key**.
4. Give the key a name that identifies its integration.
5. Select only the scopes the integration needs.
6. Set an expiration when the integration is temporary.
7. Copy the secret when Rankability displays it.

The full secret is shown once. Store it in a secrets manager or protected server environment. Rankability stores a hash and cannot reveal the secret later.

See [Authentication and API scopes](/api/api-authentication) before granting write or run permissions.

## 2. Make a read-only request

Create a key with `clients:read`, then list the clients visible to your organization:

```bash
curl "https://app.rankability.com/api/agent/v1/clients?limit=10" \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

A successful response is organization-scoped and includes pagination:

```json
{
  "clients": [],
  "pagination": {
    "limit": 10,
    "offset": 0,
    "count": 0,
    "total": 0
  }
}
```

Inspect these response headers while developing:

* `X-API-Version` — the current Agent API contract version.
* `X-Request-Id` — the identifier to include when reporting a failed request.
* `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` — the current key-level request allowance.

## 3. Choose the correct API family

| Goal                                                    | Start with                                                                                                                                              |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Read pooled usage windows and recovery times            | `GET /api/agent/v1/usage` in [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors)                                              |
| Research keyword opportunities                          | [Researcher API](/api/api-researcher)                                                                                                                   |
| Score one existing page against search competitors      | [Optimize API](/api/api-optimize-endpoint)                                                                                                              |
| Run and inspect a full-site technical audit             | [Site Auditor API](/api/api-site-auditor)                                                                                                               |
| Fetch pages or extract structured facts                 | [Scrape, Crawl, and Extract API](/api/api-crawler)                                                                                                      |
| Read tracking results or start a tracking scan          | [Tracker API onboarding](/api/api-reporter-getting-started)                                                                                             |
| Create content jobs                                     | [Creating content jobs](/api/api-creating-content-jobs)                                                                                                 |
| Manage saved outreach lists and pipeline items          | [Prospector API](/api/api-prospector)                                                                                                                   |
| Read saved backlink profile evidence                    | [Backlink Profile API](/api/api-backlink-profile)                                                                                                       |
| Read saved GBP or Batch URL audit artifacts             | [GBP Auditor guide](/audit/gbp-auditor-guide) and [Batch URL Analyzer guide](/audit/batch-url-analyzer-guide)                                           |
| Inspect recurring Routines or publishing delivery state | [Connecting Rankability to AI assistants with MCP](/api/mcp-getting-started) and [Exporting and publishing content](/copywriter/exporting-your-content) |
| Run a scored page audit                                 | [Page Auditor API endpoints](/api/api-page-auditor)                                                                                                     |
| Query Google and AI-search results directly             | [Search Intelligence API endpoints](/api/api-search-intelligence)                                                                                       |
| Connect an AI assistant over MCP                        | [Connecting Rankability to AI assistants with MCP](/api/mcp-getting-started)                                                                            |
| Read the published in-app KB dataset                    | [Knowledge Base API endpoint](/api/api-knowledge-base)                                                                                                  |

Use [API use cases and integration patterns](/api/api-use-cases) if you need help choosing between related surfaces.

## 4. Handle synchronous and asynchronous work differently

Scrape and Extract return their result in the same request. They may still take longer than an ordinary database read.

Researcher jobs, Optimize runs, Tracker scans, Site Auditor crawls, Page Auditor audits, content jobs, and bounded crawls are asynchronous. For those operations:

1. Store the returned job, run, project, or audit ID.
2. Poll the documented read endpoint with backoff.
3. Stop at the documented terminal status.
4. Read the returned error and usage fields before retrying.

## 5. Prepare for limits and failures

Current plans allow 30, 60, or 120 requests per minute per key, depending on the plan. Your response headers are authoritative; do not infer the limit from a plan name. Crawler operations also enforce daily page quotas, and some job families enforce concurrency limits.

Do not blindly retry write or run requests. Send `Idempotency-Key` where the endpoint supports it, store created IDs, and check whether the first request succeeded before creating another operation.

Continue with [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors).


# Authentication and API scopes

Create, secure, rotate, and scope Rankability Agent API keys with the minimum access each integration requires.

Rankability Agent API keys are organization-scoped Bearer credentials. Use a separate least-privilege key for each integration so access can be changed or revoked without affecting other systems.

## Create and store a key

Only an organization owner or admin can manage keys. Open **Settings → API keys**. An active subscription is required.

When creating a key, provide:

* A descriptive name.
* One or more scopes.
* An optional expiration date.

Rankability displays the complete `rk_live_...` secret once. Store it in a server-side secret manager. Never place it in client-side JavaScript, a public repository, an analytics property, a support ticket, or a shared document.

## Send the Bearer header

Send the key on requests to the Agent API base URL:

```http
Authorization: Bearer rk_live_YOUR_KEY
```

```bash
curl https://app.rankability.com/api/agent/v1/clients \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

Do not send the key to any host other than `https://app.rankability.com`.

## Current scopes

| Product area        | Scope                       | Permission                                                                                  |
| ------------------- | --------------------------- | ------------------------------------------------------------------------------------------- |
| Copywriter          | `copywriter:run`            | Create or continue content work                                                             |
| Copywriter          | `copywriter:read`           | Read jobs, artifacts, and exports                                                           |
| Tracker             | `reporter:read`             | Read projects, results, trends, and summaries; the scope name is retained for compatibility |
| Tracker             | `reporter:run`              | Start tracking scans; the scope name is retained for compatibility                          |
| Tracker             | `reporter:write`            | Create, update, and delete tracking projects; the scope name is retained for compatibility  |
| Researcher          | `researcher:run`            | Start keyword-research jobs                                                                 |
| Researcher          | `researcher:read`           | Read jobs and saved projects                                                                |
| Clients             | `clients:read`              | List and read clients                                                                       |
| Clients             | `clients:write`             | Create, update, and delete clients                                                          |
| Help knowledge base | `kb:read`                   | Read published knowledge-base content                                                       |
| Optimize            | `optimize:run`              | Start durable page optimization runs and read saved results                                 |
| Page Auditor        | `page_audit:read`           | Read and list page audits                                                                   |
| Page Auditor        | `page_audit:write`          | Start and delete page audits                                                                |
| Site Auditor        | `site-auditor:read`         | List audits, read results, and estimate usage impact                                        |
| Site Auditor        | `site-auditor:write`        | Create, crawl, cancel, and delete audit projects                                            |
| Search Intelligence | `search_intelligence:query` | Run and retrieve search-intelligence queries                                                |
| Crawler             | `scrape:run`                | Fetch one page                                                                              |
| Crawler             | `crawl:run`                 | Start and poll a bounded crawl                                                              |
| Crawler             | `extract:run`               | Extract structured answers from content                                                     |
| Prospector          | `prospector:read`           | Read saved outreach lists and pipeline items                                                |
| Prospector          | `prospector:write`          | Create, update, and delete saved outreach lists and items                                   |
| Backlink profile    | `backlinks:read`            | Read saved backlink profile evidence without provider refresh                               |
| GBP Auditor         | `gbp-audit:read`            | Read saved GBP audit artifacts without starting an audit                                    |
| Batch URL Analyzer  | `batch-url:read`            | Read saved run history without analyzing URLs                                               |
| Routines            | `routines:read`             | Read recurring content and Knowledge-monitor Routine state without changing schedules       |
| Publishing          | `publishing:read`           | Read credential-free connections and privacy-safe delivery receipts                         |
| Serena              | `serena:ask`                | Ask client-scoped strategic questions through the read-only consultation endpoint           |
| SEO Researcher      | `seo_research:run`          | Start an SEO research job                                                                   |
| SEO Researcher      | `seo_research:read`         | List jobs and read a job's status and saved result                                          |

The SEO Researcher scopes apply to the standalone SEO Researcher product. Like Copywriter Core, it is entitled separately from the full platform, so a key carrying those scopes only reaches that product's endpoints.

## Apply least privilege

Choose scopes based on actions, not convenience:

* A dashboard that only reads tracking data normally needs `reporter:read`.
* A scheduled scan runner needs `reporter:read` and `reporter:run`, but not `reporter:write` unless it manages projects.
* A Researcher automation that starts and polls jobs needs `researcher:run` and `researcher:read`.
* A Site Auditor integration that only exports completed findings needs `site-auditor:read`.
* A crawler integration needs separate scopes for scrape, crawl, and extract; grant only the operations it actually calls.
* An outreach dashboard needs `prospector:read`; grant `prospector:write` only when it will change saved list state.
* A backlink dashboard that only reads saved evidence needs `backlinks:read`; this scope does not authorize provider refresh or export.
* Saved GBP and Batch URL reporting use `gbp-audit:read` and `batch-url:read`; neither scope starts provider-backed work.
* Routine and publishing dashboards use `routines:read` and `publishing:read`; these scopes cannot change a schedule, publish, retry, validate, reconnect, or expose credentials.
* Serena consultation uses `serena:ask`; it can read the selected client's grounded context but cannot run scans, change projects, publish, or perform live web research.

Routes requiring several scopes require all listed permissions. Routes documented as accepting any of several scopes require at least one.

## Update, rotate, or revoke a key

From **Settings → API keys**, an owner or admin can:

* Change a key's name or scopes.
* Review its prefix, creation time, expiration, and last-used time.
* Revoke it permanently.

The expiration cannot be extended by editing the existing key. Create a replacement when rotating or changing expiration, update the integration, verify the new key, and then revoke the old key.

Revocation is permanent. A revoked, expired, suspended, or unknown key returns `401 unauthorized`.

## Diagnose authentication failures

| Response                            | Meaning                                                                | Action                                                         |
| ----------------------------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------- |
| `401 unauthorized`                  | Missing Bearer header or invalid, expired, revoked, or suspended key   | Confirm the header and rotate the key if necessary             |
| `403 forbidden`                     | Valid key without the required scope                                   | Add only the required scope or use the correct integration key |
| `403 subscription_required`         | The organization cannot create a key without an active subscription    | Restore subscription access before creating a key              |
| `404 session_reinitialize_required` | The MCP session expired or belongs to a different credential principal | Initialize a new MCP session with the current credential       |

Record the response's `X-Request-Id` when contacting support. Never send the full key.

Next, make a request with [Getting started with the API](/api/api-getting-started) or review [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors).


# API usage, rate limits, and errors

Read pooled usage and handle API request limits, crawler quotas, recovery windows, errors, and safe retries.

Reliable Rankability integrations treat pooled usage, request-rate limits, crawler quotas, job concurrency, and provider availability as separate controls.

## Resolve the active usage contract

Before consequential on-demand work, request:

```bash
curl https://app.rankability.com/api/agent/v1/usage \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

Full-platform accounts return `product_mode: "full_platform"` and `metering_model: "pooled_usage"`. The response includes general 7-day and burst 24-hour remaining percentages, recovery timestamps, scheduled-work protection, and the Billing usage path. It does not expose internal units, credit balances, or per-action prices.

Copywriter Core returns `metering_model: "outcome_allowances"` with its separate completed-outcome allowances.

## Estimate usage impact

Use the read-only estimator before approval:

```bash
curl "https://app.rankability.com/api/agent/v1/usage/estimate?operation=site_audit_run&max_pages=500" \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

The response describes impact as standard or high and identifies on-demand usage. It does not start work. For Tracker, include `project_id` so the estimate can account for the saved keywords, platforms, locations, and Local Pack grid.

## Pooled limits

If an on-demand window is exhausted, a run endpoint returns `429 usage_limit_reached` with `window`, `retry_at`, and `usage_path`. Respect the recovery time and do not fan out retries. Scheduled tracking and monitoring are not blocked by these on-demand windows.

## Request-rate headers

Read `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` rather than hard-coding a plan value. A request-rate failure returns `429 rate_limit_exceeded`; respect `Retry-After`.

## Crawler quotas

Scrape and Crawl can also have a daily page quota. Check `/api/agent/v1/crawler/usage` and read `X-Quota-Limit`, `X-Quota-Used`, and `X-Quota-Remaining`. A crawler quota failure returns `429 quota_exceeded`. This is separate from pooled usage and request-rate limiting.

## Structured errors

Agent API errors include an error code, message, and optional details. Log `X-Request-Id`, method, route, status, and time. Never log Bearer tokens or sensitive request bodies.

| HTTP  | Common code                                                    | Meaning                                                            |
| ----- | -------------------------------------------------------------- | ------------------------------------------------------------------ |
| `400` | `invalid_input`, `validation_error`                            | Missing, malformed, unsafe, or unsupported input                   |
| `401` | `unauthorized`                                                 | Missing or invalid authentication                                  |
| `403` | `forbidden`, `plan_limit_exceeded`                             | Missing scope or unavailable capability                            |
| `404` | `not_found`                                                    | Resource not found in the authenticated organization               |
| `409` | `conflict`                                                     | A job is running or the resource is in the wrong state             |
| `422` | `validation_error`                                             | Structured payload failed validation                               |
| `429` | `usage_limit_reached`, `rate_limit_exceeded`, `quota_exceeded` | A rolling usage, request, or crawler window is temporarily limited |
| `500` | `internal_error`                                               | Unexpected server failure                                          |
| `502` | provider or operation unavailable                              | Required service was unavailable                                   |
| `504` | operation timeout                                              | Synchronous work exceeded its time budget                          |

## Retry safely

* Retry reads and polling with bounded exponential backoff and jitter.
* For `429`, follow `Retry-After` or `retry_at` and distinguish pooled usage from request or crawler limits.
* For `502` and `504`, retry later with a bounded attempt count.
* Do not retry validation, authentication, permission, or not-found errors until their cause changes.
* On `409`, use the returned state or existing job ID instead of creating duplicate work.
* Send a stable idempotency key on supported create calls and store returned operation IDs before polling.

See [Getting started with the API](/api/api-getting-started) and [Connecting Rankability to AI assistants with MCP](/api/mcp-getting-started).


# Getting started with the Tracker API

Connect a reporting integration to Rankability projects, read truthful result snapshots, and start scans only when required.

Use the Tracker API to read tracking projects, SPI, platform results, trends, and organization or brand summaries. The API retains the legacy `/reporter` path and `reporter:*` scope names for compatibility; **Tracker** is the product name. It can also manage projects and start scans, but most dashboard integrations should begin read-only.

## Base path and scopes

```
https://app.rankability.com/api/agent/v1/reporter
```

| Scope            | Use it for                                                    |
| ---------------- | ------------------------------------------------------------- |
| `reporter:read`  | List projects and read detail, results, trends, and summaries |
| `reporter:run`   | Start a scan on an existing project                           |
| `reporter:write` | Create, update, or delete tracking projects                   |

A reporting dashboard normally needs only `reporter:read`. Grant run or write access only when the integration is intended to change Rankability state or consume pooled on-demand usage.

## 1. List available projects

```bash
curl "https://app.rankability.com/api/agent/v1/reporter/projects?limit=50" \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

Optional filters are `client_id`, `status=active|archived`, `limit` up to 100, and `offset`. Use `view=compact` for portfolio discovery, `view=full` for every supported field, or `fields=id,keyword,data_state` to request an explicit field set. Default compact rows return `platform_count` instead of the full platform-name array and cap each page at 50 rows; paginate with `offset`. An explicit `fields` request can still return up to 100 rows and can request `platforms` when the names are actually needed.

Each compact row identifies its keyword, domain, platform count, status, tracking mode, next scheduled run, and measurement/history state. `auto_track_enabled: false` is returned as `tracking_mode: "benchmark"` with `effective_frequency: null` and `next_run_at: null`. Do not interpret the backward-compatible raw `frequency` field as proof that a benchmark project is scheduled.

## 2. Read project detail

```bash
curl "https://app.rankability.com/api/agent/v1/reporter/projects/PROJECT_ID?view=summary" \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

Project detail includes:

* Current configuration and tracking mode.
* SPI and its traditional, video, AI mention, AI citation, and local components, plus the canonical standard or local weight set. Unmeasured categories are `null`, and `category_states` distinguishes `not_tracked`, `no_scan`, and `measured` rather than zero-filling them.
* Current per-platform result summary, with `data_state` and `comparison_state` directly on each entry, including configured platforms with no result.
* The latest run and failed-platform list.
* A `latest_per_platform` snapshot map showing which run supplied each platform's current result.

The newest project run and the run supplying a platform's current result can differ. A newer partial or failed attempt does not erase an older successful result.

The backward-compatible API default is `view=full`. Use `view=summary` for ordinary reads or `fields=keyword,spi,platforms_detail,next_run_at` for an explicit top-level projection.

## 3. Read results with an explicit snapshot method

The default request is:

```bash
curl "https://app.rankability.com/api/agent/v1/reporter/projects/PROJECT_ID/results?view=compact" \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

It uses `snapshot=latest_per_platform`, matching Tracker's current-data behavior. The response identifies:

* `snapshot.method`
* `latest_run_id`
* every `result_run_id`
* platform coverage and source runs
* the latest attempt's status and failed platforms

Use `?snapshot=latest_run` when you need only the newest run, including its gaps. Use `?run_id=RUN_ID` to retrieve one historical run. Never infer the snapshot method from only the top-level `run` object.

Compact result rows include position, mention, citation, URL, state, and change data. Request `view=full` only when complete stored `answer_text`, `answer_excerpt`, detected brands, citations, sentiment, or provider provenance is needed. Availability varies by platform and completed work; preserve null and unavailable states. `data_state` describes measurement (`not_tracked`, `no_scan`, `not_ranked`, or `measured`), while `comparison_state` describes history (`no_history` or `comparable`).

For a client-wide keyword × platform table, call `/reporter/matrix?client_id=CLIENT_ID` instead of issuing one project-detail request per keyword. Paginate with `limit` and `offset`, and use the optional `platforms` filter when only selected surfaces are needed.

## 4. Read trends

```bash
curl "https://app.rankability.com/api/agent/v1/reporter/projects/PROJECT_ID/trends?days=30" \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

The allowed period is capped at 90 days. Trend points include completed and partial terminal runs, their coverage, SPI breakdown, and platform values. Do not present a partial point as fully covered.

## 5. Start a scan only when necessary

```bash
curl -X POST https://app.rankability.com/api/agent/v1/reporter/projects/PROJECT_ID/scan \
  -H "Authorization: Bearer rk_live_YOUR_KEY" \
  -H "Idempotency-Key: tracker-scan-PROJECT_ID-2026-08-14"
```

The key needs `reporter:run`. The response returns HTTP `201`, a `run_id`, and `status: "queued"`. Continue reading project results until that run reaches a terminal state.

A scan cannot start for an archived project. If the latest run is already `pending` or `running`, the endpoint returns `409 conflict` with that run ID instead of creating another scan.

Scan usage impact depends on the project's selected platforms, resolved locations, Local Pack grid size, and tracked keyword count. Read the current estimate first with `GET /api/agent/v1/usage/estimate?operation=trigger_scan&project_id=PROJECT_ID` or MCP `estimate_usage_impact` with `operation: "trigger_scan"`. Do not schedule repeated manual scans merely because a polling request has not finished.

## Next steps

* Use [Tracker API endpoint reference](/api/api-reporter-endpoints) for project creation, summaries, and all routes.
* Use [Understanding SPI](/track/understanding-spi) before presenting the score outside Rankability.
* Use [Reading traditional and video search results](/track/traditional-search-tab), [Reading AI answers](/track/ai-answers-tab), and [Reading AI citations](/track/ai-citations-tab) to preserve result semantics.
* Review [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) before automating scans.
* Use [Building a Looker Studio dashboard](/api/api-reporter-looker-studio) when you need a server-side, read-only reporting connector.


# Tracker API endpoint reference

Reference the current Rankability Tracker API routes for projects, scans, result snapshots, trends, and summaries.

Tracker API resources are scoped to the authenticated organization. The legacy `/reporter` route and `reporter:*` scope names remain for compatibility. An ID from another organization returns `404 not_found` rather than revealing that resource.

Prefix every route with:

```
https://app.rankability.com/api/agent/v1
```

Start with [Getting started with the Tracker API](/api/api-reporter-getting-started) if you have not yet validated a read-only integration.

## Project routes

| Method   | Path                     | Scope            | Purpose                                                               |
| -------- | ------------------------ | ---------------- | --------------------------------------------------------------------- |
| `GET`    | `/reporter/projects`     | `reporter:read`  | List projects                                                         |
| `POST`   | `/reporter/projects`     | `reporter:write` | Create a project                                                      |
| `GET`    | `/reporter/projects/:id` | `reporter:read`  | Read configuration, SPI, platform summary, scheduling, and latest run |
| `PATCH`  | `/reporter/projects/:id` | `reporter:write` | Update supported project settings                                     |
| `DELETE` | `/reporter/projects/:id` | `reporter:write` | Permanently delete a project                                          |

### Create a project

`POST /reporter/projects` requires `name` and a `keywords` array containing exactly one non-empty string or `{ "keyword": "...", "targetDomain": "..." }` object. One Tracker project represents exactly one durable keyword/report identity. Create separate projects for additional keywords.

Optional fields are:

* `client_id` — client UUID in the organization.
* `target_domain` and `brand_name`.
* `gbp_location_name`.
* `platforms` — defaults to Google organic, Bing, ChatGPT, Perplexity, and Gemini.
* `location`, `location_lat`, and `location_lng`.
* `grid_size` — `3x3`, `5x5`, or `7x7`; defaults to `3x3`.
* `language` — defaults to `en`.
* `frequency` — `daily`, `weekly`, or `monthly`; defaults to `daily`.
* `platform_frequencies` — platform-specific frequency map.
* `auto_track_enabled` — defaults to true; false creates benchmark tracking state.

Send `Idempotency-Key` when retrying project creation. Rankability enforces the organization's tracking-project plan allowance and validates `client_id` ownership. Creating a project does not run an immediate scan; automatic tracking schedules future protected work only when `auto_track_enabled` is true.

### Update or delete a project

`PATCH /reporter/projects/:id` can change `name`, `target_domain`, `brand_name`, `gbp_location_name`, `platforms`, `location`, `frequency`, `platform_frequencies`, and `auto_track_enabled`.

Disabling automatic tracking clears scheduling timestamps. Enabling it or changing platforms or frequencies recalculates the schedule.

Send a stable `Idempotency-Key` for retryable updates and deletes. `DELETE` permanently removes the tracking project. Treat it as an intentional destructive action; a read-only reporting connector does not need `reporter:write`.

Project detail supports `view=summary|full` and `fields=...`. The backward-compatible default is `full`. Summary omits the duplicated provenance snapshot while preserving identity, scheduling, SPI, platform measurements, current state, and latest-run information. `next_run_at` is the earliest real scheduled timestamp for recurring projects and is `null` for benchmark projects.

## Results and scan routes

| Method | Path                                   | Scope           | Purpose                                                             |
| ------ | -------------------------------------- | --------------- | ------------------------------------------------------------------- |
| `GET`  | `/reporter/projects/:id/results`       | `reporter:read` | Read grouped platform results                                       |
| `GET`  | `/reporter/projects/:id/trends`        | `reporter:read` | Read up to 90 days of terminal-run trends                           |
| `GET`  | `/reporter/projects/:id/scan-estimate` | `reporter:read` | Legacy estimate route; pooled accounts should use `/usage/estimate` |
| `POST` | `/reporter/projects/:id/scan`          | `reporter:run`  | Queue a manual scan                                                 |

### Result snapshots

`GET /reporter/projects/:id/results` supports:

* No query or `snapshot=latest_per_platform` — newest available successful result for each tracked platform or keyword.
* `snapshot=latest_run` — only the newest run.
* `run_id=RUN_ID` — one explicit historical run; this overrides the snapshot choice.
* `view=compact` — position, mention, citation, URL, state, and change fields without complete answers or provider diagnostics.
* `view=full` — the backward-compatible default with complete stored answer and evidence fields when available.

The response always identifies `snapshot.method`, `latest_run_id`, the result-source run IDs, coverage by platform, and the latest run status. The default can intentionally combine results from several runs after a partial or failed attempt.

Each platform also exposes `carried_forward_from_latest_run`. It is true when the current valid measurement came from an older project run, including when the newest run omitted the platform. `using_last_success` is narrower: it is true only when the platform's latest recorded attempt failed and the response falls back to an earlier successful result.

Traditional rows preserve rank, change, URL, and engine data. AI rows can include `answer_text`, `answer_excerpt`, brand sentiment data, detected brands, mention position, citations, provider provenance, and capture time. `snippet` remains a compatibility alias for `answer_excerpt`.

Every platform snapshot includes separate measurement and history fields. `data_state` is `not_tracked`, `no_scan`, `not_ranked`, or `measured`. `comparison_state` is `no_history` or `comparable` when a current measurement exists, and otherwise `null`. These states are never interchangeable with numeric zero, and `no_history` is never a `data_state` value.

Project detail also places those fields directly on every `platforms_detail` entry, including configured platforms with no result, so consumers do not need to infer measurement state from omission, `null`, or `false`. SPI `breakdown` categories are `null` when unmeasured, with a parallel `category_states` map; a returned numeric zero therefore means a measured zero.

### Trend semantics

`GET /trends?days=30` defaults to 30 days and caps the request at 90. It includes `complete` and `partial` terminal runs. Every point identifies `run_status` and coverage so consumers can distinguish missing work from a fully completed scan.

### Manual scans

`GET /scan-estimate` returns usage impact for the project's current platforms, location, Local Pack grid, and tracked keyword count without starting work. A scan runs every keyword on every selected platform, so impact scales with project scope. `POST /scan` returns a queued `run_id`; send a stable `Idempotency-Key` for retryable automation. It rejects archived projects with `400 invalid_operation` and returns `409 conflict` when a scan is already pending or running.

## Summary routes

| Method | Path                                              | Scope           | Purpose                                                                                       |
| ------ | ------------------------------------------------- | --------------- | --------------------------------------------------------------------------------------------- |
| `GET`  | `/reporter/summary`                               | `reporter:read` | Organization or optional client-level SPI summary                                             |
| `GET`  | `/reporter/matrix?client_id=...`                  | `reporter:read` | Bounded client keyword × platform position, mention, and citation matrix                      |
| `GET`  | `/reporter/brand-summary?client_id=...`           | `reporter:read` | Client AI mention and citation summary                                                        |
| `GET`  | `/reporter/seo-performance?client_id=...&days=28` | `reporter:read` | Client GSC and GA4 organic-search performance from the client's connected Google integrations |

`/reporter/summary` accepts an optional `client_id`. It returns project counts, explicit data/comparison states, average SPI, change from prior measurements when available, platform coverage, and top movers. `snapshot_method: "latest_per_platform"` means `average_spi` is calculated from the same current snapshot model as project detail, including valid carried-forward platform results after a partial run. `projects_with_history` counts projects with at least one comparable platform, while `projects_with_spi_delta` counts the narrower set whose immediately previous per-platform snapshot supports a complete SPI comparison. A summary with current measurements and no prior scan returns `data_state: "measured"` with `comparison_state: "no_history"`. `average_spi` is `null` when no completed measurement exists, and `spi_delta` is `null` when no comparable SPI snapshot exists.

Tracker project-list pagination includes `limit`, `requested_limit`, `offset`, `count`, `total`, and `has_more`. A compact default request can also return `limit_cap_reason: "compact_default_fields"` when its payload-safety cap applies.

`/reporter/matrix` requires `client_id`, defaults to active projects, accepts `status=active|archived|all`, optional comma-separated `platforms`, and `limit`/`offset` pagination up to 100 rows. It returns one compact row per independent keyword report with explicit measurement, comparison, URL, and freshness fields. Active selection includes legacy projects whose stored status is null.

`/reporter/brand-summary` requires `client_id`. It uses the latest available result per platform and reports projects with and without data, citation and mention rates, counts, and per-platform breakdown. It is an aggregation, not a replacement for the underlying result evidence.

`/reporter/seo-performance` requires `client_id` and accepts `days=7`, `28`, or `90`. It reuses the Google Search Console and GA4 properties already connected to that Rankability client. The response includes current and previous totals, daily trends, GSC queries and pages, submitted sitemaps, and GA4 organic landing pages. Google refresh tokens remain inside Rankability and are never returned to the caller.

## Common failures

* `400 invalid_input` — invalid create/update payload or snapshot value.
* `400 invalid_operation` — a scan was requested for an archived project.
* `403 forbidden` — the key lacks the exact read, run, or write scope.
* `403 plan_limit_exceeded` — project creation exceeds the organization's tracking allowance.
* `404 not_found` — project, client, or run is absent or outside the organization.
* `409 conflict` — a scan is already in progress.

Review [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) before adding automatic retries or scan schedules.


# Researcher API

Create and poll asynchronous Rankability Researcher jobs, understand pooled usage and caching, and read saved keyword projects.

Use the Researcher API to start keyword-research jobs, poll their results, and read projects that have already been saved in Researcher. API jobs and saved projects are related but separate resources.

## Scopes and routes

| Method | Path                       | Scope             | Purpose                               |
| ------ | -------------------------- | ----------------- | ------------------------------------- |
| `POST` | `/researcher/jobs`         | `researcher:run`  | Start a research job                  |
| `GET`  | `/researcher/jobs`         | `researcher:read` | List research jobs                    |
| `GET`  | `/researcher/jobs/:job_id` | `researcher:read` | Poll a job and read its result        |
| `GET`  | `/researcher/projects`     | `researcher:read` | List saved Researcher projects        |
| `GET`  | `/researcher/projects/:id` | `researcher:read` | Read a saved project and its keywords |

Prefix every path with `https://app.rankability.com/api/agent/v1`.

## Start a research job

```bash
curl -X POST https://app.rankability.com/api/agent/v1/researcher/jobs \
  -H "Authorization: Bearer rk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: research-acme-2026-08-01" \
  -d '{
    "topics": ["commercial roofing st louis"],
    "country": "us",
    "client_id": "CLIENT_UUID",
    "mode": "discover"
  }'
```

### Request fields

| Field                  | Required | Behavior                                                                                          |
| ---------------------- | -------- | ------------------------------------------------------------------------------------------------- |
| `topics`               | Yes      | Array of 1–20 non-empty seed topics                                                               |
| `country`              | No       | Two-to-five-character country code; defaults to `us`                                              |
| `location`             | No       | More specific geographic context                                                                  |
| `client_id`            | No       | Must belong to the authenticated organization                                                     |
| `business_description` | No       | Business context; Rankability derives a fallback from client knowledge or topics                  |
| `competitor_domains`   | No       | Domains used as research context                                                                  |
| `target_audience`      | No       | Audience context                                                                                  |
| `content_goals`        | No       | Intended content outcome                                                                          |
| `include_gsc`          | No       | Requests connected Search Console context when available                                          |
| `use_knowledge_base`   | No       | Includes client knowledge; defaults to true when `client_id` is supplied and the field is omitted |
| `mode`                 | No       | `discover`, `trending`, `reddit`, `youtube`, or `ecommerce`; defaults to `discover`               |
| `refresh`              | No       | Bypasses a valid cached result and starts paid fresh research                                     |

Rankability also applies organization and client topic exclusions to the research run.

## Usage, cache, and failure behavior

| Mode        |    Current non-cached impact |
| ----------- | ---------------------------: |
| `discover`  | Standard pooled-usage impact |
| `trending`  | Standard pooled-usage impact |
| `reddit`    | Standard pooled-usage impact |
| `youtube`   | Standard pooled-usage impact |
| `ecommerce` | Standard pooled-usage impact |

A valid cached result has no additional pooled-usage impact and can be reused for up to seven days. It returns HTTP `200`, `status: "completed"`, `cached: true`, and `usage_impact.level: "none"`.

A fresh job returns HTTP `201`, `status: "pending"`, and `usage_impact`. If the job later fails without usable output, its pending usage is released.

Setting `refresh: true` deliberately bypasses the cache and can create new usage. Send a stable `Idempotency-Key` when retrying the same create request.

## Poll the job

```bash
curl https://app.rankability.com/api/agent/v1/researcher/jobs/JOB_ID \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

Poll every 5–10 seconds with backoff. Treat these as distinct states:

* `pending` — accepted and waiting to run.
* `processing` — research is running.
* `completed` — `results` contains the keyword-research payload.
* `empty` — the run completed but filtering produced no usable keywords.
* `failed` — no usable result; inspect `error`.

The `progress.stage` and `progress.detail` fields provide current progress. Do not treat a null `results` field on an in-progress job as a failed search.

## List jobs or saved projects

`GET /researcher/jobs` accepts `client_id`, `limit`, and `offset`. The list contains summaries, not each job's complete result.

`GET /researcher/projects` lists projects saved through Researcher. `GET /researcher/projects/:id` adds the project's saved keyword rows, including volume, difficulty, CPC, intent, opportunity score, cluster, rank and GSC fields when available, status, priority, and next action.

Creating an API research job does not automatically create a saved Researcher project. Use the job result unless your workflow separately saves or manages a project through a supported Rankability workflow.

## Common failures

* `400 invalid_input` — fields failed validation or `job_id` is malformed.
* `429 usage_limit_reached` — a pooled on-demand window has reached its current limit.
* `404 not_found` — the client, job, or project is outside the organization or does not exist.
* `429 rate_limit_exceeded` — the API request limit or Researcher concurrency limit was reached.
* `500 internal_error` — the system could not record or queue the job safely.

See [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) before implementing retries. For workflow selection, return to [API use cases and integration patterns](/api/api-use-cases).


# Prospector API

Read and manage saved Prospector outreach lists through the Agent API without triggering discovery, enrichment, scraping, or contact actions.

Use the Prospector Agent API to turn a known source or outreach opportunity into durable client workspace state. The API manages saved lists and their pipeline items only. It does not search for prospects, run backlink providers, enrich contacts, scrape pages, send email, or contact anyone.

## Scopes and safety

* `prospector:read` lists saved lists and items.
* `prospector:write` creates, updates, or deletes saved list state.
* Every mutation requires a stable `Idempotency-Key` header.
* Deletes also require the exact current list name or item URL in the request body.
* All routes verify both organization and client ownership. A foreign list or item is returned as not found.

## List saved outreach lists

```http
GET /api/agent/v1/clients/:client_id/prospect-lists?limit=25&offset=0
```

The response is newest-updated first and capped at 100 lists per page. Each row includes `item_count` and a `status_breakdown` for `identified`, `contacted`, `in_discussion`, `won`, and `passed` items.

## Create a list

```http
POST /api/agent/v1/clients/:client_id/prospect-lists
Idempotency-Key: client-citation-outreach-v1
Content-Type: application/json

{
  "name": "Citation outreach",
  "opportunity_type": "guest_post"
}
```

`opportunity_type` is optional. Reusing the same key returns the same durable list instead of creating another list.

## List pipeline items

```http
GET /api/agent/v1/clients/:client_id/prospect-lists/:list_id/items?status=identified&limit=50&offset=0
```

The response contains compact target identity, URL, opportunity type, status, notes, contact path, and timestamps. It does not include scraped content or raw enrichment payloads.

## Save one known prospect

```http
POST /api/agent/v1/clients/:client_id/prospect-lists/:list_id/items
Idempotency-Key: example-resources-outreach-v1
Content-Type: application/json

{
  "url": "https://example.com/resources/",
  "name": "Example resources",
  "status": "identified",
  "notes": "Potential citation-source update"
}
```

Rankability normalizes HTTP/HTTPS URLs, rejects private or unsafe hosts, and de-duplicates canonical URL variants within the list. Saving an item records workflow state only; it does not fetch the URL.

## Update pipeline state

```http
PATCH /api/agent/v1/clients/:client_id/prospect-lists/:list_id/items/:item_id
Idempotency-Key: example-resources-status-v2
Content-Type: application/json

{
  "status": "contacted",
  "notes": "Sent through the customer's approved external workflow"
}
```

Send at least one of `status` or `notes`. Set `notes` to `null` to clear it. This endpoint records what happened elsewhere; it never sends outreach.

## Delete an item or list

Deleting an item requires the exact `url` returned by the item list:

```http
DELETE /api/agent/v1/clients/:client_id/prospect-lists/:list_id/items/:item_id
Idempotency-Key: example-resources-delete-v1
Content-Type: application/json

{
  "confirm_url": "https://example.com/resources/"
}
```

Deleting a list requires its exact current name:

```http
DELETE /api/agent/v1/clients/:client_id/prospect-lists/:list_id
Idempotency-Key: citation-outreach-delete-v1
Content-Type: application/json

{
  "confirm_name": "Citation outreach"
}
```

List deletion removes memberships and the list. It does not delete pages, external contacts, or unrelated Rankability evidence.


# Backlink Profile API

Read saved backlink summary, history, anchor, and top-page evidence through the Agent API without starting a live provider request.

Use the Backlink Profile Agent API when an integration needs evidence already saved by Rankability. This route is deliberately read-only: it never invokes DataForSEO, refreshes a snapshot, loads the separately billed individual-backlink list, exports rows, or consumes usage.

## Scope and endpoint

Grant `backlinks:read`, then call:

```http
GET /api/agent/v1/clients/:client_id/backlinks/profile
```

The API verifies both organization and client ownership. A client outside the authenticated organization is returned as not found.

## Choose a section

| Section     | Saved evidence                                                                    | Additional parameters |
| ----------- | --------------------------------------------------------------------------------- | --------------------- |
| `summary`   | Totals, referring domains, Domain Score, link attributes, and 30-day gains/losses | None                  |
| `history`   | Referring-domain, gain/loss, and Domain Score observations                        | `months=1..12`        |
| `anchors`   | Anchor text with backlink and referring-domain counts                             | `limit`, `offset`     |
| `top_pages` | Saved destination pages and their link totals                                     | `limit`, `offset`     |

`limit` is capped at 100 and `offset` at 10,000. The default section is `summary`.

```http
GET /api/agent/v1/clients/CLIENT_UUID/backlinks/profile?section=anchors&limit=25&offset=0
Authorization: Bearer rk_live_YOUR_KEY
```

## Domain selection

The route defaults to the client's configured domain. Supply `domain=competitor.example` only when Rankability previously saved a snapshot for that exact client/domain pair.

`include_subdomains=true` selects the aggregate domain snapshot. Set it to `false` only when a separately saved isolated-domain snapshot exists. Changing this flag never starts a new analysis.

## Freshness and missing data

Available responses include:

```json
{
  "client_id": "CLIENT_UUID",
  "domain": "example.com",
  "section": "summary",
  "data_state": "available",
  "cached_at": "2026-08-24T18:00:00.000Z",
  "freshness": "fresh",
  "summary": {
    "total_backlinks": 1250,
    "referring_domains": 184,
    "domain_score": 42
  }
}
```

Snapshots older than six hours remain readable with `freshness: "stale"`. When no matching snapshot exists, the route returns `data_state: "unavailable"`, null freshness time, and an explanatory note. Unavailable does not mean the domain has zero backlinks.

## Safety boundary

This contract returns saved aggregate evidence only. It does not expose raw provider payloads, individual live backlinks, CSV export, provider refresh, prospect discovery, enrichment, or outreach. Use the Rankability web workflow when a human explicitly intends to request new provider data and review its current usage impact.

## Related articles

* [Getting started with the API](/api/api-getting-started)
* [Authentication and API scopes](/api/api-authentication)
* [Using Backlink Profile](/promote/backlink-profile-guide)
* [Prospector API](/api/api-prospector)


# Scrape, Crawl, and Extract API

Fetch one page, run a bounded crawl, or extract grounded answers and fields with Rankability's customer crawler API.

The crawler API exposes three related operations: fetch one page, crawl a bounded set of pages, or extract a grounded answer or structure from content. Use [Site Auditor](/api/api-site-auditor) instead when you need technical audit findings rather than raw crawler output.

## Choose an operation

| Operation                   | Scope                       | Route                | Execution    |
| --------------------------- | --------------------------- | -------------------- | ------------ |
| Scrape one page             | `scrape:run`                | `POST /scrape`       | Synchronous  |
| Start bounded crawl         | `crawl:run`                 | `POST /crawl`        | Asynchronous |
| Poll bounded crawl          | `crawl:run`                 | `GET /crawl/:jobId`  | Read/poll    |
| Read daily page usage       | `scrape:run` or `crawl:run` | `GET /crawler/usage` | Read-only    |
| Extract an answer or fields | `extract:run`               | `POST /extract`      | Synchronous  |

Prefix paths with `https://app.rankability.com/api/agent/v1`.

## Costs and cache behavior

* Scrape, Crawl, and Extract are included in full-platform pooled usage.
* Large bounded crawls can have a high on-demand impact; estimate scope before approval.
* Too little content, a failed extraction, or a missing grounded answer does not imply a fabricated result; inspect `noContent`, `extractionFailed`, and the returned mode-specific fields.

See [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) for retry rules.

## Scrape one page

```bash
curl -X POST https://app.rankability.com/api/agent/v1/scrape \
  -H "Authorization: Bearer rk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/guide",
    "includeAeo": true,
    "query": "pricing and eligibility"
  }'
```

`url` is required. Optional fields are:

* `includeAeo` — include AI-answer-oriented extraction data.
* `query` — focus relevant-content extraction, up to 500 characters.
* `maxAgeMinutes` — reuse eligible cached data up to the requested age.
* `pageActions` — up to 12 `click`, `scroll`, `wait`, or `acceptCookies` actions. Use narrowly; selectors and timing are vulnerable to site changes.

The response includes the crawler `jobId`, `pageId`, page data, relevant content, `cached`, and pooled `usageImpact`. A returned page can contain its own `errorMessage`; check it before using the content.

## Run a bounded crawl

```bash
curl -X POST https://app.rankability.com/api/agent/v1/crawl \
  -H "Authorization: Bearer rk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/docs/",
    "maxPages": 25,
    "maxDepth": 2,
    "sameDomainOnly": true,
    "includeAeo": true
  }'
```

Current defaults are 25 pages, depth 2, same-domain only, and AEO extraction enabled. The hard limits are 200 pages and depth 5. Rankability clamps values above those ceilings.

The HTTP `202` response returns `jobId`, the initial job, and effective defaults. Poll:

```bash
curl https://app.rankability.com/api/agent/v1/crawl/JOB_ID \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

Only the owning organization can read a job. The response includes job status, persisted pages, a fetch-source summary, and failed-result summary. Stop at a terminal job status and inspect failures before treating the page set as complete.

## Extract grounded information

`POST /extract` accepts one source:

* `url` — fetch and analyze a public page.
* `pageId` — reuse a stored crawler page.
* `content` — analyze supplied text, up to 200,000 characters.

Choose one mode:

| Mode         | Required field | Result                                               |
| ------------ | -------------- | ---------------------------------------------------- |
| `question`   | `question`     | Answer, `answered`, and supporting source highlights |
| `highlights` | `query`        | Most relevant grounded passages                      |
| `schema`     | `fields`       | Caller-defined values plus `missingFields`           |

Example:

```bash
curl -X POST https://app.rankability.com/api/agent/v1/extract \
  -H "Authorization: Bearer rk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/pricing",
    "mode": "schema",
    "fields": [
      { "name": "starting_price", "type": "number" },
      { "name": "free_trial", "type": "boolean" }
    ],
    "idempotencyKey": "example-pricing-v1"
  }'
```

For schema mode, missing evidence is returned as null and listed in `missingFields`. Do not replace nulls with guessed values.

## Monitor the daily page quota

Before large scrape or crawl work, call `GET /crawler/usage`. The response and `X-Quota-*` headers report the current limit, used pages, remaining pages, and UTC window date.

A crawl checks its full requested maximum against the daily page quota when it is enqueued. Reduce `maxPages` if the requested budget exceeds the remaining quota.

## Bounded polling and tenant isolation

Existing callers that omit `view` retain the original complete crawl response. New integrations should use an explicit bounded view:

* `view=status` returns only the job and progress fields.
* `view=summary` adds fetch-source and failure totals without page records.
* `view=full` adds a paginated page inventory. Use `page_limit` from 1–50, `page_offset`, and an optional comma-separated `page_fields` selection.

The default full-view field set is compact and excludes nested `seo`, `aeo`, `scores`, and object-storage paths. Select those fields only for the small page set that needs them.

Agent-created scrape and crawl records carry the owning organization. Freshness-cache lookup cannot reuse another organization's record, crawl polling cannot reveal a foreign job, and `pageId` extraction accepts only a page belonging to the authenticated organization. These checks return not found rather than exposing whether a foreign record exists.

## MCP equivalents

MCP clients can use `get_crawler_usage`, `scrape_page`, `start_crawl`, `get_crawl`, and `extract_page_data`. Before a run, call the current usage endpoint and estimate `crawler_scrape`, `crawler_crawl`, or `crawler_extract`; show the result, obtain approval, and send the same stable idempotency key on retries. Use status while a crawl is active, summary at completion, and full only for bounded page evidence.

## Common failures

* `400 invalid_input` — invalid URL, fields, extraction mode, or required mode input.
* `429 usage_limit_reached` — a pooled on-demand window has reached its current limit.
* `404 not_found` — a crawl or page is absent or belongs to another organization.
* `429 rate_limit_exceeded` — the key-level request window is exhausted.
* `429 quota_exceeded` — the daily crawler page budget is exhausted.

For complete workflow selection, see [API use cases and integration patterns](/api/api-use-cases).


# Site Auditor API

Create, monitor, cancel, read, and delete Rankability Site Auditor projects through the customer Agent API.

Use the Site Auditor API for a full-site crawl that produces a project summary, crawled-page records, and detected audit issues. It reuses Rankability's Site Auditor pipeline and is different from the raw bounded [Crawl API](/api/api-crawler).

## Scopes and usage

* `site-auditor:read` lists projects, reads results, and estimates usage impact.
* `site-auditor:write` creates projects, starts or cancels crawls, and permanently deletes projects.

Site Auditor is included in full-platform pooled usage. Larger page ceilings have a greater usage impact, so check the current windows and estimate the requested scope before starting. Cancelled and errored crawls do not consume completed-work usage.

Estimate before starting:

```bash
curl "https://app.rankability.com/api/agent/v1/usage/estimate?operation=site_audit_run&max_pages=500" \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

```json
{
  "operation": "site_audit_run",
  "metering_model": "pooled_usage",
  "included": true,
  "usage_impact": { "level": "high", "included": true },
  "usage": { "general_remaining_percent": 72, "burst_remaining_percent": 88 }
}
```

MCP callers can use `site_audit_estimate` or `estimate_cost` with `operation: "site_audit_run"`. Both calls are read-only and start no work. The older `/site-auditor/credit-estimate` route remains available only to legacy metered contracts; pooled accounts receive `410 credit_estimate_retired` with the replacement path.

## Routes

| Method   | Path                                                | Scope                | Purpose                                                       |
| -------- | --------------------------------------------------- | -------------------- | ------------------------------------------------------------- |
| `POST`   | `/site-auditor/projects`                            | `site-auditor:write` | Create a project and start its first crawl                    |
| `POST`   | `/site-auditor/projects/:project_id/crawl`          | `site-auditor:write` | Re-crawl an existing project                                  |
| `POST`   | `/site-auditor/projects/:project_id/cancel`         | `site-auditor:write` | Cancel an in-progress crawl                                   |
| `DELETE` | `/site-auditor/projects/:project_id`                | `site-auditor:write` | Permanently delete a non-running project and its data         |
| `GET`    | `/site-auditor/projects`                            | `site-auditor:read`  | List projects                                                 |
| `GET`    | `/site-auditor/projects/:project_id`                | `site-auditor:read`  | Read status, a bounded summary, or paginated pages and issues |
| `GET`    | `/site-auditor/projects/:project_id/pages/:page_id` | `site-auditor:read`  | Read one page's summary, content evidence, or selected fields |
| `GET`    | `/usage/estimate?operation=site_audit_run`          | `site-auditor:read`  | Estimate pooled usage impact without starting work            |

Prefix every path with `https://app.rankability.com/api/agent/v1`.

## Create and start an audit

```bash
curl -X POST https://app.rankability.com/api/agent/v1/site-auditor/projects \
  -H "Authorization: Bearer rk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "name": "Example technical audit",
    "client_id": "CLIENT_UUID",
    "max_pages": 500,
    "max_depth": 10,
    "check_external_links": false
  }'
```

`domain` is required. Rankability removes a leading protocol and trailing slash. `name` and `client_id` are optional. Every Site Auditor entry point accepts `max_pages` from 1–1,000 and `max_depth` from 1–50; defaults are 500 and 10. Requests outside those bounds are rejected before usage is checked or a project is created. Start with the smallest useful scope because large crawls take longer and have a greater usage impact.

The HTTP `201` response returns immediately with `project_id`, `status: "crawling"`, the effective configuration, progress counters, and `usage_impact`.

## Poll and interpret status

```bash
curl "https://app.rankability.com/api/agent/v1/site-auditor/projects/PROJECT_ID?view=status" \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

Poll with backoff until a terminal state:

| Status      | Meaning                                  | Usage                    |
| ----------- | ---------------------------------------- | ------------------------ |
| `pending`   | Project exists but crawl has not started | Not completed            |
| `crawling`  | Pages are being discovered and fetched   | In progress              |
| `analyzing` | Crawled pages are being evaluated        | In progress              |
| `completed` | Pages and issues are available           | Included in pooled usage |
| `cancelled` | An authorized caller stopped the crawl   | No completed-work usage  |
| `error`     | The crawl failed                         | No completed-work usage  |

Use `view=status` while polling; it returns only the project and progress counters. The default `view=summary` adds bounded findings and verification totals without loading the page and issue inventories. Findings include severity and lifecycle totals plus grouped issue types, affected-page counts, and a bounded sample of affected URLs. Use `view=full` only when you need records, and paginate them independently with `page_limit`, `page_offset`, `issue_limit`, and `issue_offset` (default 5, maximum 100 per collection).

Full project reads accept a comma-separated `page_fields` selection of up to 40 supported fields. Omitting it preserves the earlier Agent API response, while MCP sends a compact explicit selection that excludes `analyzed_text`. Select only the fields needed by the consumer.

For page-body evidence, first get the page ID from the full inventory, then read that page alone:

```bash
curl "https://app.rankability.com/api/agent/v1/site-auditor/projects/PROJECT_ID/pages/PAGE_ID?view=content" \
  -H "Authorization: Bearer rk_live_YOUR_KEY"
```

`view=summary` is compact. `view=content` adds the analyzed text and duplicate-content passages and related URLs. `view=full` returns all stored page fields. A comma-separated `fields` query, also capped at 40, overrides those presets. The page must belong to the requested project, and the project must belong to the authenticated organization.

Every list and full-detail pagination block includes `total` and `has_more`. Agent API audit payloads use recursively normalized `snake_case` by default, including nested issue and page evidence. Send `naming=legacy` only for backward compatibility with the earlier mixed-casing payload.

`verification_summary.unverified` means the initial crawler detected the finding but nobody has performed a later live recheck. It does not mean the original finding lacked crawl evidence. Historical projects can remain entirely unverified until findings are explicitly checked or a new crawl supplies fresh evidence.

Project counters distinguish pages found, crawled, and analyzed. An unavailable page or an issue count of zero is not proof that the whole site is healthy; review crawl coverage and page failures.

## List, re-crawl, cancel, and delete

`GET /site-auditor/projects` accepts `client_id`, `status`, `limit` up to 100, and `offset`. Its pagination includes the matching project total.

Use `POST /site-auditor/projects/:project_id/crawl` to start a fresh crawl with the stored configuration. A running `crawling` or `analyzing` project returns `409 conflict`.

Use the cancel endpoint only while a crawl is running. If the crawl finishes during cancellation, Rankability returns `409` rather than overwriting a completed result.

Deletion is permanent and removes the project, pages, issues, and related audit records. It refuses to delete a running crawl; cancel first, confirm the terminal state, and then delete only when removal is intentional.

## Common failures

* `400 invalid_input` — invalid fields, status filter, or project ID.
* `429 usage_limit_reached` — the account's pooled on-demand window has reached its current limit; wait until `retry_at`.
* `404 not_found` — the client or project is outside the organization or absent.
* `409 conflict` — a crawl is running, already finished during cancellation, or must be cancelled before deletion.

For the in-app interpretation workflow, see [Using Site Auditor](/audit/site-auditor-guide). For one-page scoring, use [Page Auditor API endpoints](/api/api-page-auditor).


# Creating content jobs

A complete reference for the POST /copywriter/jobs endpoint — every input field, valid values, execution modes, idempotency, and practical examples.

A complete reference for the POST /copywriter/jobs endpoint — every input field, valid values, execution modes, idempotency, and practical examples.

The `POST /api/agent/v1/copywriter/jobs` endpoint creates a new content job. This page covers every input field, execution modes, and how to handle retries safely.

## Endpoint

```
POST /api/agent/v1/copywriter/jobs
Authorization: Bearer rk_live_...
Content-Type: application/json
```

**Scope required:** `copywriter:run`

## Request body fields

| Field                 | Type         | Required    | Default        | Description                                                                                                                                                                                                                                                                                                        |
| --------------------- | ------------ | ----------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `topic`               | string       | Yes         | —              | The primary keyword or topic for the content piece. Example: `"emergency plumber st louis"`                                                                                                                                                                                                                        |
| `client_id`           | UUID         | Yes         | —              | The client workspace to scope the job to. The job inherits the client’s brand voice, tone settings, and knowledge base context. The client must belong to your organization — list your clients with `GET /api/agent/v1/clients` to find a valid ID. Requests without a `client_id` are rejected with a 400 error. |
| `intent`              | enum         | No          | `"educate"`    | Search intent that shapes research and content structure. Values: `educate`, `discover`, `compete`, `convert`.                                                                                                                                                                                                     |
| `mode`                | enum         | No          | `"auto"`       | Execution mode. `auto` runs the full pipeline end-to-end. `stepped` pauses after the brief for review. See **Execution modes** below.                                                                                                                                                                              |
| `location`            | string       | No          | —              | Target location for SERP geo-targeting. Example: `"St. Louis, MO"`, `"London, UK"`. When set, competitor analysis uses location-specific search results.                                                                                                                                                           |
| `language`            | string       | No          | `"en"`         | Language code for the content. Controls SERP results language, brief language, draft language, and entity extraction language. See [Supported languages](/api/api-supported-languages) for all codes.                                                                                                              |
| `tone`                | enum         | No          | —              | Writing tone for the draft. Values: `clear_practical`, `expert_detailed`, `friendly_simple`, `technical_precise`, `persuasive_direct`. If omitted, the client’s default tone is used.                                                                                                                              |
| `custom_instructions` | string       | No          | —              | Free-text guidance for the AI. Applied to both outline generation and draft writing. Example: `"Mention 24/7 availability and licensed technicians"`.                                                                                                                                                              |
| `word_count_target`   | integer      | No          | —              | Target word count for the draft. Must be between 100 and 10,000. The AI uses this as a goal — actual word count may vary slightly.                                                                                                                                                                                 |
| `project_mode`        | enum         | No          | `"new"`        | `new` creates content from scratch. `optimize` creates a persistent optimization project for an existing page (requires `source_url`).                                                                                                                                                                             |
| `page_contract`       | enum         | Conditional | —              | Required for generated content. Choose `article` or `commercial_service`. It may be omitted only when supplying a pre-written `draft_body`.                                                                                                                                                                        |
| `source_url`          | URL          | Conditional | —              | Required when `project_mode` is `"optimize"`. Rankability imports the existing page and researches optimization guidance; it does not change the live URL.                                                                                                                                                         |
| `research_platforms`  | string array | No          | Google Organic | Research sources to analyze. AI sources run only when explicitly selected. Broader research changes the evidence gathered, not the fixed completed-deliverable price.                                                                                                                                              |

## Execution modes

### Auto mode (default)

Set `"mode": "auto"`. The API runs the entire pipeline — research, brief generation, brief approval, and draft writing — without stopping. Your agent only needs to poll until the status reaches `completed`, then fetch artifacts.

```
POST /jobs  (mode: "auto")
  → queued → researching → generating_draft → completed
```

Auto mode is included in full-platform pooled usage. Copywriter Core uses one completed-content allowance after a usable new asset is produced.

### Stepped mode

Set `"mode": "stepped"`. The API runs research and generates the brief, then pauses at `brief_ready`. Your agent can fetch partial artifacts (outline, SEO metadata, entities, FAQs) to review the brief before approving it.

```
POST /jobs  (mode: "stepped")
  → queued → researching → brief_ready
  → POST /jobs/:id/approve
  → generating_draft → completed
```

Research and the brief do not complete an outcome. Full-platform work uses pooled usage; Copywriter Core consumes its content-asset allowance only when draft generation produces a usable asset.

To approve the brief and start draft generation:

```
POST /api/agent/v1/copywriter/jobs/:id/approve
Authorization: Bearer rk_live_...
```

### Autopilot (separate endpoint)

For the most hands-off option, use the dedicated Autopilot endpoint instead of a content job. Autopilot runs research, brief, draft, extra optimization passes, and fact checking with citations. It is included in full-platform pooled usage; Copywriter Core uses its completed-content allowance. Images remain user-selected in the editor. See [Running Autopilot content jobs](/api/api-copywriter-autopilot).

## How client\_id works

`client_id` is required — every API-created content job is scoped to a client workspace. The job inherits context from that client:

* **Brand voice** — tone, style, and terminology defined in the client’s Brand & voice settings.
* **Knowledge base** — uploaded documents, URLs, and pasted text that inform the AI about the client’s products, services, and unique selling points.
* **Domain context** — the client’s website domain used for competitor analysis.

If the `client_id` you send does not exist or belongs to another organization, the request is rejected with a 404 error. For one-off or test content, create a dedicated test client first.

## How location affects SERP targeting

The `location` field tells the research engine where to simulate the search from. For example, setting `"location": "Austin, TX"` returns SERP results as if searching from Austin. This affects:

* Which competitors appear in the analysis
* Local pack results and map data (if applicable)
* Location-specific content recommendations in the brief

If omitted, the search uses a generic US location.

## How custom\_instructions guides output

The `custom_instructions` field is free-text guidance that the AI applies during both outline creation and draft writing. Use it to:

* Emphasize specific selling points: `"Highlight our 30-day money-back guarantee"`
* Set structural preferences: `"Include a comparison table in the middle of the article"`
* Add constraints: `"Do not mention competitor brand names"`
* Guide the angle: `"Write from the perspective of an experienced practitioner"`

## Optimizing existing content

To optimize an existing page instead of creating new content, set `project_mode` to `"optimize"` and provide the `source_url`:

```
{
  "client_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "topic": "best crm for small business",
  "project_mode": "optimize",
  "page_contract": "article",
  "source_url": "https://example.com/blog/best-crm-guide",
  "mode": "auto"
}
```

Rankability creates a persistent Copywriter optimization project, imports the source into the editor, and researches current competitors and guidance. The job does not modify or publish the live page automatically. A successful full-platform outcome is included in pooled usage; Copywriter Core uses its optimization allowance.

## Idempotency keys

To safely retry a request without creating duplicate jobs, include an `Idempotency-Key` header:

```
POST /api/agent/v1/copywriter/jobs
Authorization: Bearer rk_live_...
Idempotency-Key: my-unique-request-id-123
Content-Type: application/json
```

If a job already exists for that idempotency key within your organization, the API returns the existing job instead of creating a new one. This is essential for:

* Network retry logic — safely retry after a timeout without double-creating
* Batch scripts — re-run a script without worrying about duplicates
* Webhook handlers — handle duplicate webhook deliveries gracefully

## Response

A successful request returns `201 Created`:

```
{
  "job_id": "uuid",
  "status": "queued",
  "content_type": "article",
  "research_platforms": ["organic", "google_video_pack", "youtube_search"],
  "usage_impact": { "level": "high", "included": true },
  "created_at": "2026-02-25T15:30:00.000Z"
}
```

`usage_impact` describes the operation's relative impact on pooled usage. Call `GET /api/agent/v1/usage` before starting work to check the current 24-hour and 7-day remaining percentages.

If the idempotency key matches an existing job, the response is `200 OK` with the existing job details.

## Reading job provenance and status

The list and detail endpoints return `creation_source` so consumers can distinguish Agent API jobs from projects saved in the web application. Agent-created jobs return `creation_source: "agent_api"` and an `auto` or `stepped` mode. Web-app projects return `creation_source: "web_app"` and `mode: null`.

`queued` is reserved for an Agent API job that has been handed off for background processing. A web-app project saved before generation is not queue work: it returns `status: "draft"` and `progress.stage: "not_started"`. This distinction prevents an intentionally saved project from appearing to be a stalled queue job.

## Example requests

### Minimal request (auto mode)

```
curl -X POST https://app.rankability.com/api/agent/v1/copywriter/jobs \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "topic": "best crm for small business",
    "page_contract": "article"
  }'
```

### Full request with all fields

```
curl -X POST https://app.rankability.com/api/agent/v1/copywriter/jobs \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: batch-2026-02-25-crm-guide" \
  -d '{
    "client_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "topic": "best crm for small business",
    "intent": "discover",
    "mode": "stepped",
    "location": "New York, NY",
    "language": "en",
    "tone": "expert_detailed",
    "custom_instructions": "Include a comparison table. Mention integrations with popular tools.",
    "word_count_target": 2000,
    "project_mode": "new",
    "page_contract": "article",
    "research_platforms": ["organic", "chatgpt", "claude"]
  }'
```

### Optimize an existing page

```
curl -X POST https://app.rankability.com/api/agent/v1/copywriter/jobs \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "topic": "best crm for small business",
    "project_mode": "optimize",
    "page_contract": "article",
    "source_url": "https://example.com/blog/best-crm",
    "mode": "auto"
  }'
```

## Common errors

| HTTP | Code                  | Cause                                                                                                                                         |
| ---- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| 400  | `invalid_input`       | Missing `client_id`, `topic`, or required `page_contract`; invalid field values; or `source_url` missing when `project_mode` is `"optimize"`. |
| 401  | `unauthorized`        | Missing, invalid, expired, or revoked API key.                                                                                                |
| 403  | `plan_required`       | Active subscription required. Subscribe to any plan to access the API.                                                                        |
| 404  | `not_found`           | `client_id` does not exist or does not belong to your organization.                                                                           |
| 429  | `rate_limit_exceeded` | Too many requests. Wait and retry.                                                                                                            |
| 429  | `usage_limit_reached` | A pooled on-demand window has reached its current limit; retry at the returned recovery time.                                                 |
| 503  | `service_unavailable` | Queue service is temporarily unavailable. Retry with exponential backoff.                                                                     |

## Related articles

* [Running Autopilot content jobs](/api/api-copywriter-autopilot) — The fully hands-off pipeline with optimization and fact checking.
* [Supported languages](/api/api-supported-languages) — All 32 language codes and how the language field controls output.
* [Retrieving and using artifacts](/api/api-retrieving-artifacts) — How to fetch and use the outline, draft, SEO metadata, and more.
* [Content types reference](/copywriter/content-types-reference) — Details on Educate, Discover, Compete, and Convert intents.


# Running Autopilot content jobs

Run a hands-off Autopilot content job using Rankability's pooled usage and durable job states.

Autopilot runs research, brief, draft, optimization passes, and fact checking in one hands-off job. Full-platform work is included in pooled usage; Copywriter Core uses its separate completed-outcome allowance.

Autopilot is the most hands-off way to create content through the API. One request runs the full pipeline — research, brief, draft, optimization passes, and fact checking with citations — and delivers a review-ready draft. Call `GET /api/agent/v1/usage` first to check the current pooled windows. If a run fails before it produces a usable draft, its pending usage is released.

Autopilot does not silently choose an image. Add an approved image in the editor after generation so the asset and alt text stay under your control.

## When to use Autopilot vs. content jobs

* **Autopilot** — you want a finished, polished draft with no intermediate steps. One completed draft, one poll loop.
* **Content jobs (auto mode)** — you want the standard research-to-draft pipeline without the extra optimization and fact-checking passes.
* **Content jobs (stepped mode)** — you want to review or edit the brief before the draft is written.

See [Creating content jobs](/api/api-creating-content-jobs) for the standard pipeline.

## Start a run

```
POST /api/agent/v1/copywriter/autopilot
Authorization: Bearer rk_live_...
Content-Type: application/json
```

**Scope required:** `copywriter:run`

### Request body fields

| Field                           | Type    | Required | Default        | Description                                                                                                                                                           |
| ------------------------------- | ------- | -------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `topic`                         | string  | Yes      | —              | The primary keyword or topic for the content piece.                                                                                                                   |
| `client_id`                     | UUID    | Yes      | —              | Scope the run to a client. The run inherits the client’s brand voice, tone, knowledge base, and excluded-topic context. The client must belong to your organization.  |
| `intent`                        | enum    | No       | `"educate"`    | Search intent: `educate`, `discover`, `compete`, or `convert`.                                                                                                        |
| `language`                      | string  | No       | `"en"`         | Language code for the generated content.                                                                                                                              |
| `context`                       | string  | No       | —              | Free-text guidance for the run (up to 2,000 characters), such as selling points to emphasize or angles to take.                                                       |
| `location`                      | string  | No       | —              | Target location for geo-specific content. If it differs from the workspace’s saved service area, the request returns `409 location_conflict` before paid work starts. |
| `location_lat` / `location_lng` | number  | No       | —              | Optional coordinates for the target location.                                                                                                                         |
| `allow_location_conflict`       | boolean | No       | `false`        | Retry with `true` only after confirming that a different target market is intentional.                                                                                |
| `page_contract`                 | enum    | Yes      | —              | Choose `article` or `commercial_service`.                                                                                                                             |
| `research_platforms`            | array   | No       | Google Organic | Research platforms to analyze. AI sources run only when selected. Research breadth changes evidence coverage and can affect usage impact.                             |

### Response

A successful request returns `202 Accepted` — the run continues in the background:

```
{
  "job_id": "uuid",
  "status": "queued",
  "stage": "researching",
  "usage_impact": { "level": "high", "included": true },
  "created_at": "2026-07-07T15:30:00.000Z"
}
```

`usage_impact` describes the relative impact on the account's pooled windows. Use `/usage` to check the current 24-hour and 7-day remaining percentages before starting work.

### Idempotency keys

Include an `Idempotency-Key` header to safely retry a request. If an Autopilot run already exists for that key within your organization, the API returns the existing run instead of starting (and charging for) a new one.

## Poll run status

```
GET /api/agent/v1/copywriter/autopilot/:id
Authorization: Bearer rk_live_...
```

**Scope required:** `copywriter:read`

The response includes the live stage, timestamps, how many optimization passes have run, whether reserved usage was consumed or released, any error, and — once available — a review summary of the finished draft:

```
{
  "job_id": "uuid",
  "status": "generating_draft",
  "stage": "optimizing",
  "started_at": "2026-07-07T15:30:05.000Z",
  "updated_at": "2026-07-07T15:34:41.000Z",
  "completed_at": null,
  "optimize_passes": 1,
  "optimize_pass_cap": 3,
  "charged": false,
  "released": false,
  "error": null,
  "review": null,
  "publish": null
}
```

### Run stages

Runs move through these stages in order:

```
queued → researching → briefing → drafting → optimizing
  → fact_checking → finalizing → complete
```

A run that cannot finish ends in the `failed` stage with a human-readable `error`, and its pending usage is released.

## Fetch the finished draft

When the run completes, fetch the draft and all other outputs through the standard artifacts endpoint:

```
GET /api/agent/v1/copywriter/jobs/:id/artifacts
```

See [Retrieving and using artifacts](/api/api-retrieving-artifacts) for the full artifact reference.

## Example

```
curl -X POST https://app.rankability.com/api/agent/v1/copywriter/autopilot \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: autopilot-2026-07-07-drain-cleaning" \
  -d '{
    "client_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "topic": "drain cleaning services st louis",
    "intent": "convert",
    "language": "en",
    "location": "St. Louis, Missouri",
    "page_contract": "commercial_service",
    "research_platforms": ["organic", "chatgpt", "claude"],
    "context": "Emphasize same-day service and licensed technicians."
  }'
```

## Common errors

| HTTP | Code                    | Cause                                                                                                                                                                       |
| ---- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 400  | `invalid_input`         | Missing `client_id`, `topic`, or `page_contract`, or invalid field values.                                                                                                  |
| 402  | `subscription_required` | Active subscription required.                                                                                                                                               |
| 404  | `not_found`             | `client_id` does not exist or does not belong to your organization.                                                                                                         |
| 409  | `location_conflict`     | The requested target differs from the workspace’s saved service area. Review the returned locations, then correct the target or retry with `allow_location_conflict: true`. |
| 429  | `rate_limit_exceeded`   | Too many requests. Wait and retry.                                                                                                                                          |
| 429  | `usage_limit_reached`   | A pooled on-demand window has reached its current limit; retry at the returned recovery time.                                                                               |
| 503  | `service_unavailable`   | Queue service is temporarily unavailable. Retry with exponential backoff.                                                                                                   |

## Using Autopilot from AI assistants (MCP)

If you connect Rankability to an AI assistant through MCP, two tools expose the same capability: `create_content_autopilot` starts a run and `get_autopilot_status` polls it. See [Connecting Rankability to AI assistants (MCP)](/api/mcp-getting-started).

## Related articles

* [Creating content jobs](/api/api-creating-content-jobs) — The standard auto and stepped content pipelines.
* [Retrieving and using artifacts](/api/api-retrieving-artifacts) — Fetch the finished draft, outline, and SEO metadata.
* [Usage limits reference](/account-and-settings/credit-costs-reference) — Pooled windows and recovery behavior.


# Supported languages

A complete reference of the 32 language codes supported by the Rankability API, including special values, what the language field controls, and practical examples for creating non-English content.

A complete reference of the 32 language codes supported by the Rankability API, including special values, what the language field controls, and practical examples for creating non-English content.

The `language` field on a content job controls the language used throughout the entire content pipeline. This article lists every supported code and explains how the field works.

## What the language field controls

When you set a language code on a job, it affects four stages of the pipeline:

1. **SERP results language** — The language and locale used when fetching competitor pages from search engines.
2. **Brief language** — The language the content brief (headings, outline, and recommendations) is written in.
3. **Draft language** — The language the final article draft is generated in.
4. **Entity extraction language** — The language used when identifying entities, FAQs, and semantic topics from the research data.

When set to a non-English value (for example `"he"` for Hebrew), the entire output — headings, title tag, meta description, entities, FAQs, and the draft itself — will be generated in that language.

## Special values

| Code   | Behavior                                                                                                                                   |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `auto` | Auto-detect: uses English for SERP queries with no forced language instruction in prompts. The AI writes naturally based on topic context. |
| `none` | No language targeting: same behavior as `auto`.                                                                                            |

If you omit the `language` field entirely, the default is `"en"` (English US).

## Language reference table

| Code    | Language     |
| ------- | ------------ |
| `en-US` | English (US) |
| `en-GB` | English (UK) |
| `ar`    | Arabic       |
| `bn`    | Bengali      |
| `zh`    | Chinese      |
| `cs`    | Czech        |
| `da`    | Danish       |
| `nl`    | Dutch        |
| `tl`    | Filipino     |
| `fi`    | Finnish      |
| `fr`    | French       |
| `de`    | German       |
| `el`    | Greek        |
| `he`    | Hebrew       |
| `hi`    | Hindi        |
| `hu`    | Hungarian    |
| `id`    | Indonesian   |
| `it`    | Italian      |
| `ja`    | Japanese     |
| `ko`    | Korean       |
| `ms`    | Malay        |
| `no`    | Norwegian    |
| `pl`    | Polish       |
| `pt`    | Portuguese   |
| `ro`    | Romanian     |
| `ru`    | Russian      |
| `es`    | Spanish      |
| `sv`    | Swedish      |
| `th`    | Thai         |
| `tr`    | Turkish      |
| `uk`    | Ukrainian    |
| `vi`    | Vietnamese   |

Base codes like `"en"` are also accepted and treated as `"en-US"`.

## Practical examples

### Creating Hebrew content

```
curl -X POST https://app.rankability.com/api/agent/v1/copywriter/jobs \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "best crm for small business",
    "intent": "discover",
    "mode": "auto",
    "language": "he"
  }'
```

The SERP research will target Hebrew-language results, and the brief, outline, draft, title tag, meta description, entities, and FAQs will all be generated in Hebrew.

### Creating Spanish content

```
curl -X POST https://app.rankability.com/api/agent/v1/copywriter/jobs \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "mejores herramientas seo",
    "intent": "discover",
    "mode": "auto",
    "language": "es",
    "location": "Mexico City, Mexico"
  }'
```

Combining `language` with `location` gives you geo-targeted SERP data and a draft written entirely in Spanish.

### Creating Japanese content

```
curl -X POST https://app.rankability.com/api/agent/v1/copywriter/jobs \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "topic": "SEO best practices",
    "intent": "educate",
    "mode": "auto",
    "language": "ja"
  }'
```

Even though the topic is entered in English, the output will be fully in Japanese. The system fetches Japanese SERP results and generates all content in Japanese.

## How non-English content works

When a non-English language is selected:

* SERP queries are adapted to target that language and locale.
* Competitor pages may still be in English (especially for niche topics), but the AI uses them as reference material and produces the final output in your target language.
* Entity extraction identifies entities relevant to the target language and cultural context.
* FAQs and structured data (JSON-LD schema) are generated in the target language.

This means you can use English-centric keyword research to generate content in any of the 32 supported languages.

## Related articles

* [Creating content jobs](/api/api-creating-content-jobs) — Full reference for the `POST /copywriter/jobs` endpoint, including the `language` field.
* [Getting started with the API](/api/api-getting-started) — End-to-end walkthrough of your first API content job.


# Retrieving and using artifacts

Learn how to fetch structured output from completed content jobs — outline, draft, SEO metadata, entities, FAQs, FAQ schema, and content score — and how to use each piece in your publishing workflow.

Learn how to fetch structured output from completed content jobs — outline, draft, SEO metadata, entities, FAQs, FAQ schema, and content score — and how to use each piece in your publishing workflow.

After a content job reaches the `completed` status (or `brief_ready` in stepped mode), you can retrieve its structured artifacts. Each artifact is a self-contained piece of content you can feed directly into your CMS, page template, or downstream automation.

Use `GET /api/agent/v1/copywriter/queue/status` when you need the organization's bounded research and draft queue position, estimated wait, or service alerts. It is a read-only operational status call and does not start work.

## Endpoint

```
GET /api/agent/v1/copywriter/jobs/:id/artifacts
Authorization: Bearer rk_live_...
```

Replace `:id` with the `job_id` returned when you created the job.

### When to call

* **Auto mode** — Call after the status endpoint returns `"completed"`.
* **Stepped mode at `brief_ready`** — You can call immediately to inspect partial artifacts (outline, SEO metadata, entities, FAQs). The `draft` and `score` fields will be `null` until you approve the brief and the draft finishes generating.
* **Stepped mode after approval** — Poll the status endpoint until `"completed"`, then call artifacts for the full set.

If you call the endpoint before the job is ready, the API returns `409` with the code `not_ready`.

### Scope required

`copywriter:read`

## Full response example

A completed job returns the following JSON structure:

```
{
  "outline": [
    {
      "heading": "What Is Emergency Plumbing?",
      "level": "h2",
      "subheadings": [
        { "heading": "Signs You Need Emergency Service", "level": "h3" }
      ]
    }
  ],
  "draft": {
    "format": "markdown",
    "content": "# Emergency Plumber St. Louis\n\nWhen a pipe bursts...",
    "word_count": 1247
  },
  "seo": {
    "title_tag": "Emergency Plumber St. Louis | 24/7 Licensed Service",
    "meta_description": "Need an emergency plumber in St. Louis? ...",
    "h1": "Emergency Plumber St. Louis"
  },
  "entities": [
    { "name": "St. Louis", "type": "location", "relevance": 0.95 }
  ],
  "faqs": [
    {
      "question": "How much does an emergency plumber cost in St. Louis?",
      "answer": "Emergency plumbing in St. Louis typically costs..."
    }
  ],
  "faq_schema_json_ld": "{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",...}",
  "score": {
    "overall": 82,
    "overall_max": 100,
    "calculation_state": "partial_categories",
    "category_model": "partial_current",
    "category_total": 38,
    "overall_category_delta": 44,
    "categories": {
      "copywriting": 17,
      "readability": 8,
      "seo": 13
    },
    "category_details": {
      "copywriting": { "score": 17, "max_score": 20, "percent": 85 },
      "readability": { "score": 8, "max_score": 10, "percent": 80 },
      "seo": { "score": 13, "max_score": 15, "percent": 86.7 }
    }
  }
}
```

## Artifact reference

Each field in the response serves a specific purpose. Below is a detailed breakdown.

### outline

An ordered array of heading objects representing the article structure.

| Field         | Type   | Description                                                |
| ------------- | ------ | ---------------------------------------------------------- |
| `heading`     | string | The heading text                                           |
| `level`       | string | HTML heading level: `h2`, `h3`, or `h4`                    |
| `subheadings` | array  | Nested headings under this section (same shape, recursive) |

**How to use:** Compare the outline against your content strategy before approval (stepped mode). You can also use it to generate a table of contents or validate that the draft covers every planned section.

### draft

The generated article content.

| Field        | Type    | Description                         |
| ------------ | ------- | ----------------------------------- |
| `format`     | string  | Always `"markdown"`                 |
| `content`    | string  | The full article in Markdown format |
| `word_count` | integer | Total word count of the draft       |

**How to use:** Convert the Markdown to HTML for your CMS, or pass it directly to a headless CMS that accepts Markdown. The content is ready to publish but you may want to add your own images, internal links, or brand-specific formatting.

**Stepped mode note:** This field is `null` at `brief_ready`. It populates after the brief is approved and the draft finishes generating.

### seo

Pre-written SEO metadata for the page.

| Field              | Type   | Description                                               |
| ------------------ | ------ | --------------------------------------------------------- |
| `title_tag`        | string | Suggested `<title>` tag (typically 50–60 characters)      |
| `meta_description` | string | Suggested meta description (typically 150–160 characters) |
| `h1`               | string | Suggested H1 heading for the page                         |

**How to use:**

* Set `title_tag` as your page’s `<title>` element.
* Set `meta_description` as the `<meta name="description" content="...">` tag.
* Use `h1` as the visible page heading. This may differ slightly from the title tag for better on-page optimization.

### entities

Named entities extracted during research, ranked by relevance to the topic.

| Field       | Type   | Description                                                        |
| ----------- | ------ | ------------------------------------------------------------------ |
| `name`      | string | The entity name (e.g., "St. Louis", "PVC pipe")                    |
| `type`      | string | Entity category (e.g., `location`, `material`, `brand`, `concept`) |
| `relevance` | number | Relevance score from 0 to 1                                        |

**How to use:** Entities help you understand topical coverage. High-relevance entities that are missing from your draft may represent gaps. You can also use entities for internal linking, tagging, or building topic clusters.

### faqs

Question-and-answer pairs derived from competitor content and People Also Ask data.

| Field      | Type   | Description                                 |
| ---------- | ------ | ------------------------------------------- |
| `question` | string | A frequently asked question about the topic |
| `answer`   | string | A concise answer to the question            |

**How to use:** Add these as an FAQ section at the bottom of your article, or weave individual Q\&A pairs into relevant sections of the content. FAQs improve the chance of appearing in Google’s featured snippets and People Also Ask boxes.

### faq\_schema\_json\_ld

A ready-to-use JSON-LD string for the [FAQPage](https://schema.org/FAQPage) structured data type.

**How to use:** Inject this string into your page’s `<head>` inside a `<script type="application/ld+json">` tag:

```
<script type="application/ld+json">
  {{ faq_schema_json_ld }}
</script>
```

This tells search engines that your page contains FAQ content, which can trigger rich results in the SERP. The schema is pre-built from the `faqs` array — you do not need to construct it yourself.

### score

The content optimization score, calculated by comparing your draft against top-ranking competitors.

| Field                    | Type            | Description                                                                            |
| ------------------------ | --------------- | -------------------------------------------------------------------------------------- |
| `overall`                | integer         | Composite score from 0 to 100                                                          |
| `overall_max`            | integer         | Maximum overall score; currently `100`                                                 |
| `calculation_state`      | string          | Whether the stored overall and available category model are internally comparable      |
| `category_model`         | string          | Current seven-category, partial-current, legacy/unknown, or unavailable category model |
| `category_total`         | integer or null | Sum of the returned category values                                                    |
| `overall_category_delta` | integer or null | Stored overall minus `category_total`                                                  |
| `categories`             | object          | Backward-compatible numeric category scores                                            |
| `category_details`       | object          | Each category's `score`, `max_score`, and percentage of its maximum                    |

The standard category maxima are Copywriting 20, Readability 10, SEO 15, Structure 10, Coverage 15, Uniqueness 20, and Credibility 10. A legacy category without a defined modern maximum returns `max_score: null` and `percent: null` rather than an invented denominator. `legacy_mismatch` identifies a complete modern category set that does not sum to the stored overall, normally because the persisted record predates the current score calculation. Do not describe that difference as weighting unless the response explicitly supplies a weighted model.

**How to use:** Use the overall score as a quality gate in your automation. For example, only publish drafts that score 70 or above, and flag lower-scoring drafts for manual review. The category breakdown tells you exactly where the draft is strong or weak.

**Stepped mode note:** This field is `null` at `brief_ready`. The score is only available after the draft is generated.

## Edit or remove a saved project

These lifecycle routes use the normal organization scope. Send a stable `Idempotency-Key` header on every mutation so reconnect retries do not repeat the operation.

| Method   | Path                                      | Purpose                                                       |
| -------- | ----------------------------------------- | ------------------------------------------------------------- |
| `PATCH`  | `/api/agent/v1/copywriter/jobs/:id/brief` | Patch selected fields of a stepped-mode brief before approval |
| `PUT`    | `/api/agent/v1/copywriter/jobs/:id/draft` | Replace the complete draft body with Markdown or HTML         |
| `DELETE` | `/api/agent/v1/copywriter/jobs/:id`       | Permanently delete the project and its saved artifacts        |

Brief patching preserves omitted sections and refuses jobs that are not in the editable brief-ready state. Draft replacement refuses an active generation job and resets scores and review artifacts tied to the previous body. Deletion is permanent. Read the current project first and require a human confirmation of the exact topic before replacing or deleting content; the MCP tools enforce that preflight automatically.

## Stepped mode: partial artifacts

In stepped mode, calling the artifacts endpoint at `brief_ready` returns a partial response. This lets you inspect the research output before committing to draft generation.

| Field                | At brief\_ready | At completed |
| -------------------- | --------------- | ------------ |
| `outline`            | Available       | Available    |
| `draft`              | `null`          | Available    |
| `seo`                | Available       | Available    |
| `entities`           | Available       | Available    |
| `faqs`               | Available       | Available    |
| `faq_schema_json_ld` | Available       | Available    |
| `score`              | `null`          | Available    |

To move from `brief_ready` to `completed`, approve the brief:

```
POST /api/agent/v1/copywriter/jobs/:id/approve
Authorization: Bearer rk_live_...
```

Then poll the status endpoint until `"completed"` and fetch artifacts again for the full set.

## Practical examples

### Publishing to a CMS

After retrieving artifacts, map each field to your CMS:

* `seo.title_tag` → Page title / `<title>`
* `seo.meta_description` → Meta description field
* `seo.h1` → Page heading
* `draft.content` → Post body (convert Markdown to HTML if needed)
* `faq_schema_json_ld` → Custom code / head injection field

### Quality gate automation

```
artifacts = fetch_artifacts(job_id)

if artifacts["score"]["overall"] >= 70:
    publish_to_cms(artifacts)
else:
    flag_for_review(job_id, artifacts["score"])
```

### Building a table of contents

```
for section in artifacts["outline"]:
    print(f"{section['level']}: {section['heading']}")
    for sub in section.get("subheadings", []):
        print(f"  {sub['level']}: {sub['heading']}")
```

## Error responses

| HTTP | Code        | When                                                          |
| ---- | ----------- | ------------------------------------------------------------- |
| 404  | `not_found` | Job ID does not exist or does not belong to your organization |
| 409  | `not_ready` | Job has not completed yet — keep polling the status endpoint  |

## Related articles

* [Creating content jobs](/api/api-creating-content-jobs) — How to create jobs and understand auto vs stepped mode.
* [Getting started with the API](/api/api-getting-started) — End-to-end walkthrough from API key to finished content.
* [Understanding your content score](/copywriter/understanding-your-content-score) — How the 0–100 content score is calculated and what each category measures.


# API use cases and integration patterns

Choose the correct Rankability API workflow and design reliable content, research, reporting, audit, and crawler integrations.

Choose an API surface based on the result you need. Similar-looking Rankability operations can have different scopes, usage impact, execution time, and outputs.

## Choose the right surface

| You need to…                                      | Use                                               | Execution model            |
| ------------------------------------------------- | ------------------------------------------------- | -------------------------- |
| Discover and cluster keyword opportunities        | [Researcher API](/api/api-researcher)             | Asynchronous job           |
| Score an existing page against search competitors | [Optimize API](/api/api-optimize-endpoint)        | Synchronous analysis       |
| Audit one page with scored findings and gates     | [Page Auditor API](/api/api-page-auditor)         | Asynchronous audit         |
| Crawl a site and inventory technical issues       | [Site Auditor API](/api/api-site-auditor)         | Asynchronous project crawl |
| Fetch one page without a complete site audit      | [Scrape API](/api/api-crawler)                    | Synchronous fetch          |
| Crawl a bounded set of pages for raw page data    | [Crawl API](/api/api-crawler)                     | Asynchronous bounded crawl |
| Ask a grounded question or extract fields         | [Extract API](/api/api-crawler)                   | Synchronous extraction     |
| Read tracking data for dashboards                 | [Tracker API](/api/api-reporter-getting-started)  | Read requests              |
| Create optimized content                          | [Copywriter jobs](/api/api-creating-content-jobs) | Asynchronous content job   |

## Keyword-research workflow

1. Create a key with `researcher:run` and `researcher:read`.
2. Submit one to 20 topics and the appropriate research mode.
3. Store the returned `job_id` and whether the response was cached.
4. Poll until `completed`, `empty`, or `failed`.
5. Use the completed result directly, or separately read saved Researcher projects.

Do not assume creating an API research job automatically creates a saved Researcher project. See [Researcher API](/api/api-researcher).

## Tracking and dashboard workflow

Start read-only. A dashboard normally needs only `reporter:read`:

1. List projects.
2. Read project detail for SPI and current platform coverage.
3. Read results using the default `latest_per_platform` snapshot.
4. Read trends for completed and partial terminal runs.
5. Use the organization or brand summary only when its aggregation matches the report you are building.

Add `reporter:run` only if the integration must trigger scans. Add `reporter:write` only if it must create, change, or delete projects. These legacy scope names authorize Tracker. Read [Tracker API onboarding](/api/api-reporter-getting-started) before automating scans.

## Audit workflow

Use Page Auditor when one URL and target keyword need scored page-level recommendations. Use Site Auditor when a domain needs a multi-page crawl, issue inventory, and page evidence.

For Site Auditor:

1. Estimate the crawl's pooled usage impact.
2. Create the project, which starts the first crawl.
3. Poll the project until a terminal state.
4. Read its pages and issues.
5. Cancel before deleting an in-progress crawl.

Site Auditor and the bounded Crawler API are not interchangeable. Site Auditor produces audit issues and summary metrics; Crawl returns crawler job pages and fetch diagnostics.

## Fetch and extraction workflow

Use Scrape when you need one fetched page with SEO/AEO data. Use Crawl for a bounded, same-domain collection. Use Extract when you need a grounded answer, relevant passages, or caller-defined fields from a URL, an existing crawler page, or supplied content.

Check `/crawler/usage` before large jobs. A crawl reserves its maximum page budget against the daily page quota; that page quota is separate from the account's pooled usage windows.

## Reliability pattern

For every integration:

1. Use a separate least-privilege key.
2. Record `X-Request-Id` and limit headers.
3. Send `Idempotency-Key` where supported.
4. Persist returned IDs before polling.
5. Back off polling and stop at terminal states.
6. Distinguish a missing result from a failed or still-running job.
7. Confirm usage and partial-result behavior before retrying.
8. Require the human review appropriate to generated content or high-impact actions.

Returned headers are authoritative. Integrations should not encode plan names or assumed limits.

Review [Authentication and API scopes](/api/api-authentication) and [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) before moving an integration into production.


# Building a Looker Studio dashboard with the Tracker API

Build a read-only Looker Studio connector for Rankability tracking data without exposing API keys or misrepresenting partial results.

Use the Tracker API as the data source for a custom Google Apps Script community connector. The route and scope retain the legacy `reporter` identifier for compatibility. A reporting dashboard normally needs only `reporter:read`; keep scans and project changes outside the connector unless the integration has a separate, explicit write workflow.

## Before you start

You need:

* A Rankability API key with `reporter:read`.
* Access to Google Looker Studio and Google Apps Script.
* At least one Rankability Track project with result data.
* A plan for which client, projects, platforms, and date range the dashboard should display.

Create a dedicated read-only key rather than reusing a key that can run scans or edit projects. See [Authentication and API scopes](/api/api-authentication) for key setup.

## Choose the route for each chart

Prefix every request with:

```
https://app.rankability.com/api/agent/v1
```

| Dashboard element                      | Tracker route (legacy `/reporter` namespace) |
| -------------------------------------- | -------------------------------------------- |
| Project selector or project table      | `GET /reporter/projects`                     |
| Current project configuration and SPI  | `GET /reporter/projects/:id`                 |
| Current platform result detail         | `GET /reporter/projects/:id/results`         |
| Time series up to 90 days              | `GET /reporter/projects/:id/trends`          |
| Organization or client scorecards      | `GET /reporter/summary`                      |
| Client AI mention and citation summary | `GET /reporter/brand-summary?client_id=...`  |

Use the [Tracker API endpoint reference](/api/api-reporter-endpoints) for filters and response fields. Do not combine rows from different clients unless the dashboard is intentionally an organization-level view.

## Implement the connector

1. Store the Rankability API key in the connector user's properties or another server-side secret store. Never place it in a report field, URL, sheet, or browser-visible script setting.
2. Send `Authorization: Bearer YOUR_KEY` with each request.
3. Declare a stable Looker Studio schema. Keep identifiers and labels as dimensions; expose numeric values such as SPI, rank, mentions, citations, and coverage as metrics only when their source fields are present.
4. Map the selected Tracker response into rows that match that schema.
5. Cache identical reads in Apps Script. Include the organization, client, project, route, query parameters, and snapshot method in the cache key.
6. Paginate `/reporter/projects` instead of assuming the first page contains every project.

## Preserve result meaning

The default results request uses `snapshot=latest_per_platform`. It can combine the newest successful result for each platform after a newer run finishes only partially. Retain `snapshot.method`, `latest_run_id`, result-source run IDs, run status, and platform coverage in the connector data. A missing platform is not a zero, and a partial run is not a complete measurement.

For trends, retain each point's `run_status` and coverage. For SPI, use the returned score and applicable component fields rather than recomputing a different score in Looker Studio. Read [Understanding SPI](/track/understanding-spi) before presenting it to clients.

## Control freshness and limits

Set dashboard freshness close to the project's tracking cadence. Reading the API does not create newer tracking data. A scan requires `reporter:run`, contributes to pooled on-demand usage, and should not be triggered by every dashboard refresh.

Current plans allow 30, 60, or 120 Agent API requests per minute per key, depending on the plan. Integrations should read `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` instead of hard-coding a value. Respect `Retry-After` on `429` responses and use bounded exponential backoff. Review [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) before scheduling refreshes.

## Troubleshooting

* **`401 unauthorized`** — Replace an invalid or revoked key; do not log the key while diagnosing it.
* **`403 forbidden`** — Add `reporter:read` to the connector's key.
* **`404 not_found`** — Confirm that the ID belongs to the authenticated organization.
* **Blank chart after a successful request** — Check the snapshot coverage, selected client, field types, and null handling before treating it as no performance.
* **Frequent `429` responses** — Reduce refresh frequency, cache repeated requests, and consolidate route calls.

Start by validating the same request with the curl examples in [Getting started with the Tracker API](/api/api-reporter-getting-started), then implement the connector mapping.


# Knowledge Base API endpoint

Retrieve the canonical Rankability Help Center through the Agent API in structured JSON or combined Markdown, with stable caching headers.

Retrieve the canonical Rankability Help Center through the Agent API in structured JSON or combined Markdown, with stable caching headers.

The endpoint is generated from the same Markdown files that publish to `help.rankability.com`. It does not scrape GitBook at request time and it no longer reads the legacy in-app knowledge-base records for article content. This keeps GitBook and programmatic retrieval aligned while avoiding a runtime dependency on GitBook availability.

Use the public [Rankability Help Center](/) for the human-facing support experience. Use this endpoint when an authorized integration, agent, or internal system needs a versioned snapshot of that same documentation.

## Prerequisites

* An active Rankability organization and an Agent API key stored on a trusted server.
* The `kb:read` scope on that key.
* A client that can preserve the response `Content-Type`, `ETag`, and `Last-Modified` headers.

Create or rotate keys under **Settings → API keys**. Never expose a live key in browser code, screenshots, a public repository, or an AI prompt.

## Endpoint

```
GET /api/agent/v1/kb/articles
Authorization: Bearer rk_live_...
```

**Scope required:** `kb:read`

## JSON response

JSON is returned by default. Each published Help Center article appears once in the same navigation order used by GitBook.

```
curl https://app.rankability.com/api/agent/v1/kb/articles \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE"
```

Example shape:

```json
{
  "articles": [
    {
      "id": "stable-uuid",
      "slug": "what-is-rankability",
      "title": "What is Rankability?",
      "summary": "Learn how Rankability organizes SEO and AI search work...",
      "category": "Getting Started",
      "canonical_url": "https://help.rankability.com/getting-started/what-is-rankability",
      "content_html": "<p>Rankability is a search visibility platform...</p>",
      "content_markdown": "Rankability is a search visibility platform...",
      "sort_order": 1,
      "created_at": "2026-08-03T12:00:00.000Z",
      "updated_at": "2026-08-03T12:00:00.000Z"
    }
  ],
  "faq_markdown": "# Frequently asked questions\n\n...",
  "meta": {
    "article_count": 89,
    "last_updated": "2026-08-03T12:00:00.000Z",
    "has_faq": true,
    "source": "canonical_help_center",
    "canonical_base_url": "https://help.rankability.com",
    "manifest_version": 1
  }
}
```

Existing fields remain available for compatibility. The additive `canonical_url` field is the durable destination for user-facing links, and `content_markdown` is the preferred article body for retrieval or agent context. Treat `id` as an opaque stable identifier rather than deriving a URL from it.

`faq_markdown` is a compatibility alias generated from the canonical [Frequently asked questions](/troubleshooting/frequently-asked-questions) article. That FAQ also appears in `articles`; do not publish both copies on the same page.

## Bounded search and retrieval

Add any search parameter to request a bounded result instead of the complete snapshot:

| Parameter  | Behavior                                                                         |
| ---------- | -------------------------------------------------------------------------------- |
| `query`    | Relevance-orders matches across article title, summary, category, slug, and body |
| `category` | Filters to one category                                                          |
| `slug`     | Filters to one exact article slug                                                |
| `view`     | `compact` returns metadata; `full` also returns article Markdown and HTML        |
| `limit`    | 1–20 results; default 10                                                         |
| `offset`   | Zero-based result offset                                                         |

```bash
curl "https://app.rankability.com/api/agent/v1/kb/articles?query=Tracker&view=compact&limit=5" \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE"
```

Use compact search for discovery, then request the selected slug with `view=full`. This avoids injecting the entire Help Center into an assistant prompt. MCP clients can use `search_help_center` for the same bounded workflow.

## Combined Markdown response

Set `Accept: text/markdown` to receive one combined document containing every canonical article once, grouped in Help Center navigation order:

```
curl https://app.rankability.com/api/agent/v1/kb/articles \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE" \
  -H "Accept: text/markdown"
```

Article headings link to their canonical GitBook URLs, and cross-article links are rewritten as absolute Help Center URLs. The response is useful as retrieved reference context, but it is not model training and does not replace preserving source URLs and retrieval timestamps.

## Conditional caching

Every successful response includes `ETag` and `Last-Modified`. Store those headers with the snapshot and send `If-None-Match` on the next poll:

```
curl https://app.rankability.com/api/agent/v1/kb/articles \
  -H "Authorization: Bearer rk_live_YOUR_KEY_HERE" \
  -H 'If-None-Match: "saved-etag"'
```

The server returns `304 Not Modified` with no body when the manifest has not changed. `If-Modified-Since` is also supported, although ETag validation is more precise.

## Source-of-truth behavior

* **Canonical content** — Article titles, summaries, categories, order, HTML, Markdown, URLs, and FAQ content come from `help.rankability.com` source files.
* **Build-time snapshot** — A generated manifest is bundled with the application, so requests do not query legacy KB tables or fetch GitBook live.
* **Published articles only** — The Help Center home page, table of contents, and changelog archive are excluded from the article array; support articles listed in the public navigation are included.
* **Stable change detection** — Unchanged articles retain their timestamps, while a source or navigation change updates the manifest fingerprint.

The application’s historical KB administration records remain a separate legacy system during migration. Changes made only in that system do not change this endpoint or GitBook.

## Expected responses and errors

* `200 OK` returns JSON by default or Markdown when requested.
* `304 Not Modified` returns no body when a conditional request matches.
* `401` means the bearer token is missing or invalid.
* `403` means the key does not have `kb:read` or cannot access the organization.
* `429` means the Agent API rate limit was exceeded; honor the returned rate-limit headers and retry later.

Log the status, request time, response headers, and returned canonical URLs, but never log the bearer token. Validate `meta.source`, `meta.manifest_version`, and `meta.article_count` before replacing a known-good snapshot.

## Recommended agent-grounding workflow

1. Retrieve the Markdown or JSON representation and store its ETag, retrieval time, and canonical URLs.
2. Index article chunks with the article title, category, canonical URL, and manifest version as metadata.
3. Use bounded compact search, then retrieve only the relevant full articles or indexed chunks for the current task instead of injecting all articles into every prompt.
4. Use the documentation to understand product behavior, prerequisites, constraints, and execution order—not merely to recommend that the user read an article.
5. Link evidence to the canonical Help Center URL when an explanation or limitation needs user verification.
6. Refresh on a schedule with `If-None-Match`, retaining the previous snapshot after a failed request or invalid response.

## Related articles

* [Getting started with the API](/api/api-getting-started) — End-to-end walkthrough from your first key to your first API call.
* [Authentication and API keys](/api/api-authentication) — Bearer token format, scopes, and key management.
* [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) — Pooled windows, rate-limit headers, and error codes.
* [Connecting Rankability to AI assistants with MCP](/api/mcp-getting-started) — Use scoped Rankability capabilities from compatible assistants.


# Connecting Rankability to AI assistants with MCP

Connect an MCP-compatible assistant to Rankability's hosted endpoint with OAuth or a scoped API key, then use client, research, content, tracking, optimization, and audit tools.

Connect an MCP-compatible assistant to Rankability's hosted endpoint with OAuth or a scoped API key, then use client, research, content, tracking, optimization, and audit tools.

Rankability hosts a remote Model Context Protocol server. Use it to give an MCP-compatible assistant scoped access to your organization’s Rankability data and actions.

## Hosted MCP endpoint

```
https://app.rankability.com/mcp
```

No local installation is required. The hosted endpoint supports OAuth access tokens and Rankability API keys that begin with `rk_live_`.

## Start the connection in Rankability

1. Open **Settings → API keys**.
2. Find **Connect Claude or Codex** and select the assistant.
3. Select **Check endpoint**. **Endpoint ready** confirms that OAuth discovery is available; it does not authenticate the assistant by itself.
4. Follow the assistant-specific steps and complete Rankability sign-in and consent.
5. Run the read-only verification prompt before starting consequential work.

The verification prompt calls `get_usage_and_limits` and asks the assistant to report the active organization, usage contract, and available tools without starting work. Confirm that result before approving a run or write tool.

## Connect Claude with OAuth

1. On Claude Pro or Max, open **Customize → Connectors → + → Add custom connector**. On Team or Enterprise, an owner first adds it under **Organization settings → Connectors**.
2. Add Rankability with the hosted endpoint shown above.
3. Complete Rankability sign-in and approve only the required scopes.
4. Enable Rankability for the conversation and run the read-only verification prompt.

The OAuth token is bound to the organization that was active during consent. Claude refreshes access automatically until you revoke the connected app or authorize a different organization.

## Connect Codex with OAuth

1. In the Codex desktop app or IDE extension, open **Settings → MCP servers → Add server**.
2. Choose **Streamable HTTP**, enter `https://app.rankability.com/mcp`, save, restart, and select **Authenticate**.
3. Use `/mcp` to confirm Rankability is active.
4. Run the read-only verification prompt shown in Rankability.

Rankability can copy this OAuth configuration for you:

```toml
[mcp_servers.rankability]
url = "https://app.rankability.com/mcp"
auth = "oauth"
default_tools_approval_mode = "writes"
```

## Use a scoped API key when OAuth is unavailable

OAuth is the preferred connection. For a client that requires a Bearer token, create a key under **Settings → API keys** with only the scopes the assistant needs and store it as a secret.

```
{
  "mcpServers": {
    "rankability": {
      "url": "https://app.rankability.com/mcp",
      "headers": {
        "Authorization": "Bearer rk_live_YOUR_API_KEY"
      }
    }
  }
}
```

Store the key as a secret. Never commit it or put it in browser-delivered code.

For Codex, Rankability can copy an environment-variable configuration that reads the secret from `RANKABILITY_API_KEY` rather than placing it in the file.

## Current tools

The server currently registers 96 tools. Account terms and granted scopes control whether a call is authorized; they do not dynamically hide registered tool definitions. The MCP surface also includes Serena consultation, saved Prospector, backlink-profile, GBP-audit, Batch URL Analyzer, Routine, publishing evidence, durable job reconciliation, and structured manifests alongside clients, Knowledge, usage, GSC, Researcher, Copywriter, Optimize, Tracker, Help Center, Crawler, Search Intelligence, Page Auditor, and Site Auditor.

### Clients and account

* `list_clients`, `resolve_client`, `get_client`, `get_client_overview`, `create_client`, `update_client_profile`, `delete_client`, and `create_client_connect_link`
* `get_client` is the lightweight identity and configuration read. It includes the effective Copywriter brand/profile plus `do_not_use`, `blocked_keywords`, and `excluded_topics`. `update_client_profile` patches the client and can merge selected Knowledge fields without clearing omitted nested settings.
* `list_client_sources`, `get_client_source`, `create_client_source`, `update_client_source`, and `delete_client_source` manage pasted Knowledge sources. Lists return compact metadata only; request one source in full when its body is needed. Creating or changing content can schedule the normal indexing and contradiction checks.
* `get_client_overview` adds Tracker, content, and audit state and reports `brand_alignment`. Treat `divergent` as a configuration warning: Tracker and Copywriter may be measuring or generating for different brand names.
* `get_usage_and_limits` for pooled percentage windows and recovery times
* `get_usage_events` for a paginated audit trail of completed outcomes. Shared-credit accounts include signed credit amounts and resulting balances. Pooled accounts identify included work without inventing per-action prices or exposing internal capacity units.
* `estimate_usage_impact` for a read-only standard/high workload estimate
* Use `get_usage_and_limits` for the active contract; do not substitute an older credit-balance endpoint

### Serena consultation

* `consult_serena` asks Serena one strategic question scoped to a required client workspace.
* Serena can ground the answer in the client's selected Knowledge sources, saved workspace evidence, durable client memory, Rankability methodology, relevant SOP skill guidance, and canonical Help Center articles.
* The tool is read-only. It does not start scans, run audits, modify projects, publish, or perform live web research. Use separate scoped tools and their normal confirmation flow for actions.

### Researcher

* `researcher_run` starts an asynchronous keyword-research job in `discover`, `trending`, `reddit`, `youtube`, or `ecommerce` mode
* `researcher_get` polls one job; use the default `status` view while work is running, then request `full` after completion
* `researcher_list` returns bounded, compact job history
* `list_researcher_projects` and `get_researcher_project` read saved Researcher projects; project keywords are paginated, and saved projects are separate from Agent API job results

Before starting research, resolve the client when client Knowledge or GSC should ground the run. Call `get_usage_and_limits`, then `estimate_usage_impact` with `operation: "researcher_run"`; show the result, obtain approval, set `confirm_usage: true`, and provide a stable `idempotency_key`. A reusable cache hit can complete immediately without usage. Otherwise the job runs asynchronously. Do not repeatedly request the full result while polling.

### Copywriter and Autopilot

* `list_content_projects`, `get_content_project`, `get_content_artifacts`, and `get_copywriter_queue_status`
* `create_content_auto`, `create_content_stepped`, and `approve_brief`
* `update_content_brief` edits a stepped-mode brief before approval; `replace_content_draft` replaces a settled project's complete body; `delete_content_project` permanently removes one project and its artifacts
* `create_content_autopilot` and `get_autopilot_status`

Before starting any generated content workflow, choose the client workspace and page structure. The three creation tools require `client_id` plus `page_contract` (`article` or `commercial_service`). `create_content_auto`, `create_content_autopilot`, and `approve_brief` require an approved usage-impact estimate and `confirm_usage: true`. The deprecated `confirm_cost` alias remains compatible, but new integrations should use `confirm_usage`. For retryable automations, provide a stable `idempotency_key` so a reconnect does not start duplicate work.

Copywriter reads preserve project provenance. `creation_source: "agent_api"` identifies an Agent-created job and supplies `mode: "auto" | "stepped"` (including the legacy default when only the originating API key was recorded). `creation_source: "web_app"` returns `mode: null`. A web project saved before generation reports `status: "draft"` with `progress.stage: "not_started"`; `queued` is reserved for an Agent API handoff waiting for background processing.

`get_content_artifacts` can also request `blocks` or `gutenberg` for a structured publishing handoff. Brief edits, complete draft replacement, and deletion require an explicit confirmation plus a stable idempotency key. Draft replacement refuses an actively running job and clears score and review artifacts that belonged to the prior body.

### Tracker and optimization

* `list_tracker_projects`, `get_tracker_project`, `get_tracker_results`, `get_tracker_trends`, `get_tracker_matrix`, `get_tracker_summary`, `get_tracker_seo_performance`, `get_tracker_brand_summary`, and `get_notifications`
* `tracker_capabilities` performs the read-only entitlement and client dependency preflight. `upsert_tracker_project` is the preferred declarative write: run it first with `dry_run: true`, then confirm the exact desired configuration and repeat with the same idempotency key. It updates an exact client/topic report in place, preserves history, and does not start a scan.
* `get_tracker_project` defaults to a compact summary without the duplicated provenance snapshot. Request `full` only when run-attempt provenance is needed, or select specific top-level fields. `get_tracker_results` likewise defaults to compact measurements; its `full` view adds complete AI answers, citations, sentiments, and provider diagnostics.
* `get_tracker_matrix` returns a bounded client keyword × platform table in one call. It preserves position, mention, citation, URL, freshness, `data_state`, and `comparison_state` rather than requiring one detail request per keyword.
* `create_tracker_project`, `update_tracker_project`, and `delete_tracker_project` expose the existing organization-scoped Tracker lifecycle. One project represents exactly one keyword. Creation does not run an immediate scan and defaults to benchmark mode (`auto_track_enabled: false`); recurring tracking must be explicitly approved. Every mutation requires a stable `idempotency_key` and its matching confirmation field. Permanent deletion also requires the exact current keyword returned by `get_tracker_project`.
* The older `list_reporter_projects`, `get_reporter_project`, and `get_reporter_summary` names remain compatibility aliases. **Tracker** is the product name; `reporter` remains only in legacy tool IDs, scopes, and API paths.
* `trigger_scan` and `optimize_page`; estimate first, obtain approval, set `confirm_usage: true`, and provide a stable `idempotency_key` for retries
* `optimize_page` returns an `optimization_id` immediately. Poll `optimization_get` with `view: "status"`, then retrieve `summary` or `full` after completion. `optimization_list` returns bounded saved history and can filter by attributed client, status, keyword, or URL.
* `get_gsc_search_performance` reads connected Search Console evidence at query, page, or query-page grain. It defaults to 28 days, caps a request at 120 days and 100 rows per page, and reports impression-weighted position plus sync freshness.

### Page and site auditing

* `page_audit_run`, `page_audit_batch_upsert`, `page_audit_get`, `page_audit_list`, and `page_audit_delete`; every run requires a stable `idempotency_key`. Use the batch tool's `dry_run` before confirming usage, then poll its returned ID with `jobs_status`.
* `jobs_status` reconciles one or up to 50 job IDs with normalized progress, terminal reasons, output IDs, timestamps, and polling guidance. `audit_manifest_get` inventories client Tracker, audit, research, and content artifacts with explicit lifecycle and comparison state. `exports_get` returns either that manifest or paginated Page Audit, Site Audit-page, and Tracker result rows as JSON or CSV without browser export clicks.
* `site_audit_estimate`, `site_audit_run`, `site_audit_get`, `site_audit_get_page`, `site_audit_list`, `site_audit_cancel`, and `site_audit_delete`; a run requires `confirm_usage: true` plus a stable `idempotency_key`, while reads default to bounded status/summary views and paginate full inventories
* `site_audit_get` returns grouped issue-type totals and bounded affected-URL samples. Its full view accepts explicit `page_fields` and omits analyzed page text by default. Use `site_audit_get_page` for one page's body or duplicate-content evidence instead of loading every page body.

### Prospector outreach lists

* `prospector_list_lists` and `prospector_list_items` read bounded saved client outreach state, including pipeline counts and optional status filtering.
* `prospector_create_list`, `prospector_add_item`, `prospector_update_item`, `prospector_delete_item`, and `prospector_delete_list` require explicit confirmation and stable idempotency keys.
* Adding an item canonicalizes and de-duplicates its URL within that list. Updating status records `identified`, `contacted`, `in_discussion`, `won`, or `passed` only; Rankability does not send outreach from these tools.
* These tools do not run live backlink analysis, prospect discovery, enrichment, scraping, email, or contact actions. Those capabilities remain separate and unavailable through this MCP contract.

### Backlink profile

* `get_backlink_profile` reads one saved `summary`, `history`, `anchors`, or `top_pages` section for a client and reports the snapshot timestamp and freshness.
* History is limited to 1–12 months; anchor and top-page rows are paginated at no more than 100 rows per call. Missing saved evidence is `data_state: "unavailable"`, not zero.
* The tool never refreshes DataForSEO, loads the usage-billed individual backlink list, or exports rows. Live refresh, individual backlink-list, and export capabilities remain unavailable through MCP.

### Saved GBP and Batch URL artifacts

* `gbp_audit_list` and `gbp_audit_get` read saved audits. Summary excludes raw review/question bodies; full adds only bounded checkpoints and competitor aggregates.
* `batch_url_list` and `batch_url_get` read saved run history and paginated URL rows. Null stays null, rows report complete/partial/error state, and legacy credit units are omitted.
* These tools never resolve a listing, call Google/SerpAPI/DataForSEO/GSC/GA4, start an audit, or analyze URLs. New GBP and Batch URL runs remain unavailable through MCP.

### Routines and publishing receipts

* `routine_list` and `routine_get` read recurring content and Knowledge-monitor Routine state. Topics and source IDs are bounded; previously published and suggested topic bodies remain omitted.
* `publishing_list_connections` returns connection status, safe target identity, capabilities, and requirements without credentials. Legacy destinations whose target is stored with encrypted credentials return `target: null`.
* `publishing_list_deliveries` and `publishing_get_delivery` read saved delivery receipts, preflight and validation defect categories, source currency, safe HTTP(S) remote identity, and validation state without evidence summaries, article bodies, or diagnostic messages.
* These tools cannot create, edit, enable, disable, or run a Routine; test or reconnect a destination; publish content; validate a remote item; or retry a delivery.

### Help Center

* `search_help_center` searches the canonical published Help Center by text, category, or slug
* Compact results include titles, summaries, categories, and canonical URLs. Request full only for the small set of article bodies needed for the current task.

### Crawler and Search Intelligence

* `get_crawler_usage` reads the current instance-level daily page quota without starting work
* `scrape_page` fetches one public page and can return a query-focused excerpt of at most 8,000 characters; an eligible freshness-cache hit is organization-scoped
* `start_crawl` starts a bounded asynchronous crawl of at most 200 pages and depth 5; `get_crawl` uses `status`, `summary`, and paginated field-selected `full` views
* `extract_page_data` produces a grounded answer, highlights, or caller-defined fields from exactly one URL, organization-owned crawler page, or supplied text. Missing evidence remains null or explicitly unanswered.
* `search_intelligence_run` fans one query out to selected Google and AI search providers; `search_intelligence_get` reads the saved run. Summary view reports completion and counts without answers, citations, organic results, or raw payloads. Full normalized results and raw upstream payloads are separate opt-ins.

These operations can invoke fetchers, browsers, extraction models, or search providers. Read usage and crawler quota, estimate `crawler_scrape`, `crawler_crawl`, `crawler_extract`, or `search_intelligence_query`, show the scope, obtain approval, and reuse a stable idempotency key. Crawler page IDs and caches are organization-scoped; a foreign page is returned as not found.

## Built-in workflows and references

MCP clients that expose server prompts can discover sixteen read-first workflows, including `client_baseline`, `ai_visibility_gap`, `keyword_diagnosis`, `stale_data_sweep`, `brief_first`, `monthly_client_report`, `portfolio_leaderboard`, and `tracking_setup_plan`. Consequential workflows stop after the usage-impact estimate; they do not start work in the same prompt step.

Clients that expose resources can lazily load Rankability's SPI methodology, Tracker glossary, free-first workflow guide, live usage/price contract, client directory, and templated client or Tracker summaries. The price resource calls the current usage endpoint rather than embedding a stale price table.

## Usage and limits

MCP uses the same pooled usage as the Rankability application. Call `get_usage_and_limits` to read the rolling percentage windows, then call `estimate_usage_impact` before consequential work. For Researcher, pass `operation: "researcher_run"`; for a Tracker scan, pass `operation: "trigger_scan"` plus the Tracker `project_id`. These reads do not start work. Creating a benchmark Tracker project also starts no scan. Enabling recurring tracking schedules protected future work, so show and confirm the exact schedule before creation or update. Run and write tools require explicit confirmation and a stable idempotency key. Permanent deletion tools also preflight the current record and require its exact name, topic, or keyword. If on-demand usage is temporarily limited, the tool returns `429 usage_limit_reached` with `retry_at`; scheduled tracking remains protected.

## Missing Tracker data is not zero

Tracker responses label unavailable measurements explicitly. `not_tracked` means the platform was not selected, `no_scan` means no completed measurement exists, `not_ranked` means a completed traditional scan did not find the target, and `no_history` means a current measurement exists without an earlier comparable measurement. SPI and change fields are `null` when their measurement or comparison does not exist.

## Interpret Copywriter scores

Completed content scores include `overall_max: 100`. Each entry in `category_details` includes its raw score, `max_score`, and normalized percentage. The category maxima are not all 100: Copywriting and Uniqueness are each 20; SEO and Coverage are each 15; Readability, Structure, and Credibility are each 10.

The score also returns `category_total`, `overall_category_delta`, `category_model`, and `calculation_state`. Current seven-category scores are `consistent` when their categories sum to the stored overall. Historical rows can return `legacy_mismatch`, `legacy_categories`, or `partial_categories`; preserve that state instead of explaining the difference as undocumented weighting.

## Interpret client configuration and integrations

`get_client` returns a structured `business_scope`. `primary_location` identifies its source, while `service_areas` are populated only from the latest completed GBP audit. `service_areas_state: "unavailable"` means Rankability has no structured service-area evidence; do not derive a definitive list from audience prose.

Integration objects separate connection state from operational freshness. `health` can be `healthy`, `connected`, `syncing`, `no_sync`, `error`, `auth_error`, or `not_connected`. Scheduled GSC and GA4 connections expose `data_through_date`, `last_successful_sync_at`, and `last_full_backfill_at` as distinct concepts. `last_sync_date` and `last_sync_at` remain compatibility aliases for `data_through_date` and `last_successful_sync_at`. On-demand GBP, YouTube, WordPress, and Webflow connections return the same telemetry shape with null sync timestamps rather than inventing a refresh time. WordPress can additionally expose `publish_health` (`healthy`, `warning`, `failing`, or `no_activity`) from recent delivery attempts.

## Manage or revoke access

* Manage OAuth clients under **Settings → Connected apps**. Revoking an app invalidates its access and refresh tokens.
* Manage API-key connections under **Settings → API keys**. Delete or rotate the key to revoke that connection.

## Security

* Use least-privilege scopes.
* Confirm the active organization during OAuth consent.
* Review consequential or high-impact actions before approval.
* Revoke connections that are no longer used.

## Troubleshooting

* **No tools appear:** Restart the MCP client, then confirm the endpoint and authentication.
* **Endpoint check fails in Rankability:** Wait and retry before changing assistant configuration. A ready discovery response returns an authentication challenge with Rankability resource metadata.
* **An expected published tool is missing:** Start a new MCP session so the client reloads the server registry. If it remains absent, record the visible tool list and Rankability build ID; changing scopes cannot add a tool definition the server did not register.
* **A tool call is forbidden:** Reauthorize with the corresponding read, run, or write scope.
* **Unauthorized:** Reauthorize the OAuth client or replace an expired, revoked, or malformed API key.
* **Session needs to restart:** A `session_reinitialize_required` response means the saved MCP session no longer belongs to the current credential. Start a new MCP initialization request; do not repeatedly retry the old session ID.
* **Wrong organization:** Revoke the OAuth connection, switch to the intended Rankability organization, and authorize again.
* **The verification result shows the wrong organization or metering mode:** Do not start work. Reconnect under the intended organization and run the verification prompt again.
* **Rate limited:** Back off after `429` and use returned rate or quota headers.

## Related articles

* [Getting started with the API](/api/api-getting-started)
* [Authentication and API scopes](/api/api-authentication)
* [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors)


# Optimize API endpoint

Start, poll, and retrieve durable asynchronous Rankability Optimize analyses with retry-safe usage accounting.

Use Optimize to score one existing public page against current search competitors for a target keyword. Agent API and MCP runs are asynchronous and durable: the start request returns an `optimization_id` immediately, and the result remains available through get and list operations.

This is separate from a persistent Copywriter existing-content project. Optimize saves the scoring run and its evidence, but it does not create or edit a Copywriter draft.

## Scope and usage

The key needs `optimize:run`. Before starting work, read `GET /api/agent/v1/usage` and estimate `optimize_page` with `GET /api/agent/v1/usage/estimate?operation=optimize_page`.

```http
POST https://app.rankability.com/api/agent/v1/optimize
```

A stable `Idempotency-Key` is required. Repeating the same logical request with the same key returns the same durable run and cannot create a second reservation or provider run.

## Start a run

```bash
curl -X POST https://app.rankability.com/api/agent/v1/optimize \
  -H "Authorization: Bearer rk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: optimize-example-seo-guide-v1" \
  -d '{
    "url": "https://example.com/seo-guide",
    "keyword": "seo guide",
    "language": "en-US",
    "client_id": "4746d28b-0a38-43f9-a1ca-5e8402ef73d4"
  }'
```

| Field       | Required | Behavior                                                           |
| ----------- | -------- | ------------------------------------------------------------------ |
| `url`       | Yes      | Public HTTP or HTTPS page to score                                 |
| `keyword`   | Yes      | Target query used for competitor research and scoring              |
| `language`  | No       | Language code up to 10 characters; defaults to `en-US`             |
| `client_id` | No       | Organization-owned client used to attribute and filter run history |

Private IP ranges, localhost, link-local addresses, `.local` or `.internal` hosts, and cloud metadata targets are rejected before a reservation or job is created.

The accepted response is `202`:

```json
{
  "optimization_id": "opt-0123456789abcdef",
  "status": "queued",
  "client_id": "4746d28b-0a38-43f9-a1ca-5e8402ef73d4",
  "url": "https://example.com/seo-guide",
  "keyword": "seo guide",
  "language": "en-US",
  "created_at": "2026-08-24T20:00:00.000Z",
  "started_at": null,
  "completed_at": null,
  "error": null
}
```

## Poll and retrieve the result

Use the status view while work is queued or running:

```http
GET /api/agent/v1/optimizations/:optimization_id?view=status
```

Statuses are `queued`, `running`, `complete`, or `failed`. After completion, request `view=summary` for the score, source word count, competitor count, duration, and billing finalization state. Use `view=full` only when the complete entity, category, scoring, and competitor evidence is needed.

```http
GET /api/agent/v1/optimizations/:optimization_id?view=full
```

The full response returns the saved upstream Optimize result under `result`. A successful result can include `rankabilityScore`, `categoryScores`, `scoreDetails`, `entities`, `sourceWordCount`, `competitorCount`, `competitors`, and `duration`.

Competitor pages that cannot be fetched are omitted. A smaller comparison set means less evidence; it does not mean Rankability verified every result page. Scores are dated observations because search results and page content change.

## List past runs

```http
GET /api/agent/v1/optimizations?client_id=:clientId&status=complete&limit=25&offset=0
```

History is organization-scoped, newest first, and capped at 100 rows per page. Optional filters are `client_id`, `status`, `keyword`, and `url`. List results are summaries and do not repeat full result payloads.

## Failure and retry behavior

Failed provider work releases the run's reservation. Successful work finalizes that same reservation once. If finalization needs reconciliation after a usable result exists, the artifact remains available with `billing_status: reconciliation_pending`; the system does not create an unrelated second debit.

Do not repeatedly poll the full view. Poll status with a bounded interval, then retrieve the full result once. A terminal failed run remains auditable; use a new idempotency key only when the user approves a genuinely new attempt.

| Status   | Code or state                                  | Action                                                                    |
| -------- | ---------------------------------------------- | ------------------------------------------------------------------------- |
| `400`    | `validation_error`                             | Correct invalid or unsafe input                                           |
| `400`    | `idempotency_key_required`                     | Supply one stable retry key                                               |
| `401`    | `unauthorized`                                 | Replace or correct the key                                                |
| `403`    | `forbidden`                                    | Grant `optimize:run`                                                      |
| `404`    | `not_found`                                    | Confirm the run belongs to the active organization                        |
| `429`    | `usage_limit_reached` or `rate_limit_exceeded` | Wait until the returned recovery time                                     |
| terminal | `failed`                                       | Read the saved error and start a separately approved retry with a new key |

See [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) for the shared approval and usage contract.


# Page Auditor API endpoints

Run asynchronous on-page audits through the Agent API and monitor their pooled usage lifecycle.

Run on-page audits via the Agent API. Audits are asynchronous: start one, then poll until the status is complete or error. Full-platform audits are included in pooled usage; failed work does not consume completed-work usage.

The Page Auditor agent API lets you run an on-page audit for any public URL against a target keyword and retrieve the full result programmatically. It mirrors the in-app Page Auditor flow: each audit fetches the page, scores it across technical health, agent readiness, and content quality, and runs SERP-aware gates for crawlability, indexability, and retrievability.

## Endpoints at a glance

| Method & Path                                     | Scope              | Purpose                                                                                                    |
| ------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------- |
| `POST /api/agent/v1/page-auditor/audits`          | `page_audit:write` | Start a new audit. Returns immediately with an `audit_id` and `status: "pending"`.                         |
| `PUT /api/agent/v1/page-auditor/audits/batch`     | `page_audit:write` | Dry-run or start/resume up to 25 audits under one durable job ID.                                          |
| `GET /api/agent/v1/page-auditor/audits/:audit_id` | `page_audit:read`  | Fetch a single audit by ID. Use this to poll for completion.                                               |
| `GET /api/agent/v1/page-auditor/audits`           | `page_audit:read`  | List audits for your organization. Supports `client_id`, `status`, `limit`, and `offset` query parameters. |

## Authentication and scopes

All endpoints use the standard agent API auth: `Authorization: Bearer rk_live_...`. Add the `page_audit:write` scope to your API key to start audits, and `page_audit:read` to retrieve them. Manage scopes in **Settings > API keys**.

## Usage model

Each audit is included in full-platform pooled usage and follows a durable asynchronous lifecycle:

1. **Reserved** at start. The pending operation is reflected in the account's pooled window so concurrent callers see accurate capacity.
2. **Recorded** on full success. The reservation is finalized once the audit reaches `complete` status.
3. **Released** on any non-success exit — a crawlability/indexability/retrievability gate failure, a vendor timeout, or an internal error.

If a pooled window is exhausted, the create call returns `429 usage_limit_reached` with a recovery time before any audit work starts.

## Start an audit

```
POST /api/agent/v1/page-auditor/audits
Authorization: Bearer rk_live_YOUR_KEY
Idempotency-Key: stable-page-audit-key
Content-Type: application/json

{
  "url": "https://example.com/blog/seo-guide",
  "keyword": "seo guide",
  "location": "United States",
  "intent": "informational",
  "client_id": "8f1a2b3c-..."
}
```

| Field       | Type         | Required | Description                                                                                                                  |
| ----------- | ------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `url`       | string (URL) | Yes      | The public URL to audit. Must be `http` or `https`; private/internal hosts are rejected (SSRF protection).                   |
| `keyword`   | string       | Yes      | The target keyword the page should rank for. Max 500 characters.                                                             |
| `location`  | string       | No       | Optional location for SERP context (e.g. `"United States"`). Max 200 characters.                                             |
| `intent`    | enum         | No       | One of `informational`, `commercial`, `transactional`, `navigational`. If omitted, the auditor detects intent automatically. |
| `client_id` | UUID         | No       | Associates the audit with a client in your organization. The client must belong to your org.                                 |

### Response (201 Created)

```
{
  "audit_id": "1f8d3c5e-7e2a-4d2f-9c0b-2c8c9b9c5fa1",
  "status": "pending",
  "usage_impact": { "level": "standard", "included": true },
  "keyword": "seo guide",
  "url": "https://example.com/blog/seo-guide",
  "client_id": "8f1a2b3c-...",
  "created_at": "2026-05-12T15:30:00.000Z"
}
```

The endpoint returns immediately. Audit work happens in the background; typical end-to-end run time is 60–180 seconds.

## Idempotency

Send an `Idempotency-Key` header; it is required for every create call. Identical retries return the same durable audit across process restarts and concurrent delivery. Reusing a key with different inputs returns `409 idempotency_conflict`.

## Run a batch safely

Use `PUT /api/agent/v1/page-auditor/audits/batch` with a stable `Idempotency-Key`, a required `client_id`, one to 25 audit items, and `dry_run: true`. The dry run validates every URL and returns the deterministic job/audit IDs plus the complete usage impact without writing. After approval, repeat the same body and key with `dry_run: false`. Poll the returned `job_id` through `GET /api/agent/v1/jobs/{job_id}`; retries resume the same batch and only start missing items. To reconcile several Page Auditor and related Tracker, Researcher, Optimize, or Site Auditor jobs together, send one to 50 IDs to the read-only `POST /api/agent/v1/jobs/status` endpoint. Normalized responses include progress, terminal reason, output ID, timestamps, and the next recommended polling interval.

For browser-free synthesis, `GET /api/agent/v1/exports?client_id=...&type=audit_results&artifact_type=page_audit|site_audit|tracker_project&format=json|csv` returns bounded result rows with `limit` and `offset` pagination. The shared schema includes target and observed ranking URLs, platform position, brand mention/citation state, source URLs, score, and run date where those values apply. Completed outputs are the default; set `include_incomplete=true` only when incomplete evidence is explicitly required. Use `type=audit_manifest` for the lifecycle/configuration inventory instead. An API key sees only artifact families covered by its matching Page Auditor, Site Auditor, or Tracker read scope.

## Poll for completion

```
GET /api/agent/v1/page-auditor/audits/{audit_id}?view=status
Authorization: Bearer rk_live_YOUR_KEY
```

Status moves through these stages: `pending` → `crawling` → `researching` → `scoring` → `complete` (or `error`). Poll the bounded `view=status` response every 5–10 seconds until you see a terminal status, then omit `view` or request `view=full` for the complete analysis.

Nested audit data uses canonical `snake_case` by default. Use `naming=legacy` only when maintaining a consumer of the earlier mixed-casing nested payload.

### Successful response

```
{
  "audit_id": "1f8d3c5e-...",
  "status": "complete",
  "keyword": "seo guide",
  "url": "https://example.com/blog/seo-guide",
  "location": "United States",
  "intent": "informational",
  "client_id": "8f1a2b3c-...",
  "overall_score": 82,
  "section_scores": { "technical_health": 88, "agent_readiness": 79, "content_quality": 80 },
  "score_details": { ... },
  "gate_results": {
    "crawlability": { "passed": true },
    "indexability": { "passed": true },
    "retrievability": { "passed": true }
  },
  "technical_health": { ... },
  "agent_readiness": { ... },
  "page_title": "The Complete SEO Guide for 2026",
  "meta_description": "Everything you need to know...",
  "h1_tags": ["The Complete SEO Guide for 2026"],
  "h2_tags": ["What is SEO?", "On-page SEO basics", "..."],
  "word_count": 2450,
  "page_size_bytes": 184320,
  "schema_markup_types": ["Article", "FAQPage"],
  "quality_analysis": { ... },
  "error_message": null,
  "started_at": "2026-05-12T15:30:02.000Z",
  "completed_at": "2026-05-12T15:31:48.000Z",
  "created_at": "2026-05-12T15:30:00.000Z",
  "updated_at": "2026-05-12T15:31:48.000Z"
}
```

### Gate failure

If the page fails one of the SERP-aware gates (crawlability / indexability / retrievability), the audit terminates with `status: "error"`, the `gate_results` object spells out which gate failed and why, and the pending usage reservation is released. `error_message` contains a short explanation.

## List audits

```
GET /api/agent/v1/page-auditor/audits?client_id={uuid}&status=complete&view=compact&limit=50&offset=0
Authorization: Bearer rk_live_YOUR_KEY
```

* `client_id` (optional) — Filter to a specific client.
* `status` (optional) — Filter by audit status (e.g. `complete`, `error`).
* `limit` (optional) — Default 50, max 100.
* `offset` (optional) — For pagination.
* `view` (optional) — `compact` by default; `full` includes all stored analysis subtrees.
* `fields` (optional) — Comma-separated top-level field selection such as `audit_id,status,overall_score,completed_at`.

Results are sorted by most recent first. Pagination includes `total` and `has_more`. Keep the compact default for discovery; fetch one completed audit by ID for full analysis.

## Error codes

| HTTP | Code                       | When                                                                                            |
| ---- | -------------------------- | ----------------------------------------------------------------------------------------------- |
| 400  | `invalid_input`            | Missing/invalid `url` or `keyword`, non-HTTP protocol, or private host (SSRF).                  |
| 400  | `idempotency_key_required` | A run or batch omitted `Idempotency-Key`.                                                       |
| 409  | `idempotency_conflict`     | A key was reused for a different run or batch request.                                          |
| 401  | `unauthorized`             | Missing or invalid `Authorization` header.                                                      |
| 403  | `forbidden`                | API key is missing the `page_audit:write` or `page_audit:read` scope.                           |
| 429  | `usage_limit_reached`      | A pooled on-demand window has reached its current limit; wait until the returned recovery time. |
| 404  | `not_found`                | Audit ID not found, or `client_id` not in your org.                                             |
| 429  | `rate_limited`             | Per-minute rate limit exceeded.                                                                 |

## End-to-end example

```
1. POST /api/agent/v1/page-auditor/audits   → {"audit_id": "...", "status": "pending"}
2. GET  /api/agent/v1/page-auditor/audits/:id (every 5s)
                                            → status: "crawling" → "researching" → "scoring"
3. GET  /api/agent/v1/page-auditor/audits/:id
                                            → status: "complete" + scores + analysis
```

## MCP equivalents

If you've connected Rankability to Claude Desktop, Cursor, or Windsurf via MCP, the same operations are exposed as natural-language tools:

* `page_audit_run` — Start a new audit (mirrors `POST /page-auditor/audits`).
* `page_audit_batch_upsert` — Dry-run or start/resume a durable multi-page batch.
* `page_audit_get` — Fetch an audit by ID (mirrors `GET /page-auditor/audits/:id`).
* `page_audit_list` — List audits (mirrors `GET /page-auditor/audits`).
* `jobs_status`, `audit_manifest_get`, and `exports_get` — Reconcile work and retrieve structured lifecycle evidence without browser steps.

See [Connecting Rankability to AI assistants (MCP)](/api/mcp-getting-started) for setup.

## Related articles

* [Getting started with the API](/api/api-getting-started) — Overview of the agent API and authentication.
* [Authentication and API keys](/api/api-authentication) — How to create keys and add scopes.
* [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) — Pooled usage windows, rate limits, and error codes.
* [Search Intelligence API endpoints](/api/api-search-intelligence) — The other recently-published agent endpoint.
* [Connecting Rankability to AI assistants (MCP)](/api/mcp-getting-started) — Use the equivalent tools from Claude, Cursor, and Windsurf.


# Search Intelligence API endpoints

Run a single query across Google plus the major AI search platforms (ChatGPT, Perplexity, Gemini, Claude, Grok, Bing) and get structured per-platform results in one call. Includes brand and domain…

Run a single query across Google plus the major AI search platforms (ChatGPT, Perplexity, Gemini, Claude, Grok, Bing) and get structured per-platform results in one call. Includes brand and domain extraction.

The Search Intelligence agent API lets you run a single search query in parallel across Google and the major AI platforms, then get back a structured response with per-platform results, citations, and (optionally) brand/domain extraction. Use it to power external dashboards, citation monitors, and AI-search visibility reports.

## Endpoints at a glance

| Method & Path                                        | Scope                       | Purpose                                                                                                                                   |
| ---------------------------------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `POST /api/agent/v1/search-intelligence/query`       | `search_intelligence:query` | Run a query across the requested platforms. **Synchronous** — returns once all platforms settle or the 90s budget expires.                |
| `GET /api/agent/v1/search-intelligence/query/:runId` | `search_intelligence:query` | Fetch a previously-run query by `runId`. Useful when the original POST timed out at the wall-clock budget but partial state is in the DB. |

## Authentication and scope

Both endpoints use the standard agent API auth: `Authorization: Bearer rk_live_...`. Add the `search_intelligence:query` scope to your API key under **Settings > API keys** (the scope name in the picker is exactly `search_intelligence:query`).

Before provider work, read the current usage contract and call `GET /api/agent/v1/usage/estimate?operation=search_intelligence_query&platform_count=4` with the intended provider count. The estimate starts no query. Full-platform pooled accounts receive standard or high impact; the current legacy Agent API contract reports no customer credit deduction but the query still invokes providers and requires approval in an agent workflow.

## Supported platforms

The `platforms` field accepts any subset of the following (max 7):

* `google_organic` — Google organic SERP results (parsed)
* `chatgpt` — ChatGPT response with citations
* `perplexity` — Perplexity answer with sources
* `gemini` — Google Gemini response
* `claude` — Anthropic Claude response
* `grok` — xAI Grok response
* `bing` — Bing organic SERP results

If `platforms` is omitted, the default set is `["google_organic", "chatgpt", "perplexity", "gemini"]`.

## Run a query

```
POST /api/agent/v1/search-intelligence/query
Authorization: Bearer rk_live_YOUR_KEY
Content-Type: application/json

{
  "query": "best crm for small business",
  "platforms": ["google_organic", "chatgpt", "perplexity", "gemini"],
  "location": "United States",
  "gl": "us",
  "language": "en",
  "hl": "en",
  "device": "desktop",
  "includeRaw": false,
  "extract": {
    "brands": ["HubSpot", "Salesforce", "Pipedrive"],
    "domains": ["hubspot.com", "salesforce.com", "pipedrive.com"]
  }
}
```

| Field             | Type    | Required | Default           | Description                                                                              |
| ----------------- | ------- | -------- | ----------------- | ---------------------------------------------------------------------------------------- |
| `query`           | string  | Yes      | —                 | The search query. 1–250 characters.                                                      |
| `platforms`       | array   | No       | see above         | Up to 7 platform identifiers. Duplicates rejected.                                       |
| `location`        | string  | No       | `"United States"` | Display name of the search location (max 255 chars).                                     |
| `gl`              | string  | No       | `"us"`            | Two-letter country code for SERP context.                                                |
| `language`        | string  | No       | `"en"`            | Language code (e.g. `en`, `es`, `de`).                                                   |
| `hl`              | string  | No       | `"en"`            | UI language hint passed to providers that accept it.                                     |
| `device`          | enum    | No       | `"desktop"`       | `"desktop"` or `"mobile"`.                                                               |
| `includeRaw`      | boolean | No       | `false`           | If `true`, the response includes the raw upstream payload per platform (larger payload). |
| `extract.brands`  | array   | No       | —                 | Up to 20 brand names to detect mentions of in each platform's response.                  |
| `extract.domains` | array   | No       | —                 | Up to 20 domains to detect citations of in each platform's response.                     |

## Response (200 OK)

The response includes the `runId`, the query parameters, the requested platforms, and a per-platform result array. Each platform entry contains its raw answer (when `includeRaw: true`), parsed citations, and — when `extract` was provided — brand-mention and domain-citation flags.

```
{
  "runId": "0a1b2c3d-...",
  "query": "best crm for small business",
  "requestedPlatforms": ["google_organic", "chatgpt", "perplexity", "gemini"],
  "completedPlatforms": ["google_organic", "chatgpt", "perplexity", "gemini"],
  "failedPlatforms": [],
  "parameters": {
    "location": "United States",
    "gl": "us",
    "language": "en",
    "hl": "en",
    "device": "desktop"
  },
  "results": [
    {
      "platform": "google_organic",
      "status": "success",
      "answer": null,
      "citations": [ { "url": "https://hubspot.com/...", "title": "..." }, ... ],
      "extract": { "brands": { "HubSpot": true, "Salesforce": true }, "domains": { "hubspot.com": true } }
    },
    {
      "platform": "chatgpt",
      "status": "success",
      "answer": "For small businesses, HubSpot is often recommended ...",
      "citations": [ ... ],
      "extract": { ... }
    }
  ],
  "createdAt": "2026-05-12T15:32:00.000Z"
}
```

## Limits and timing

* **Per-platform timeout:** 45 seconds.
* **Total endpoint budget:** 90 seconds. If the orchestrator overruns, the POST returns `504 timeout`. The 504 envelope does not include a `runId`, so retry the POST rather than trying to hydrate a partial run.
* **Concurrency:** Up to 4 platforms run in parallel internally.
* **Brand / domain extraction:** Up to 20 entries each.

## Partial-failure behaviour

If **some** platforms succeed and others fail, the response is still `200 OK`. Failed platforms appear in `failedPlatforms` with an error code, and successful platforms appear in `results` with `status: "success"`.

If **all** requested platforms fail, the endpoint returns `502` with a top-level `runId` so you can still hydrate the partial DB state. The body shape is:

```
{
  "runId": "0a1b2c3d-...",
  "error": { "code": "all_platforms_failed", "message": "All requested platforms failed" },
  "response": { ...same shape as the success response... }
}
```

## Hydrate a previous run

```
GET /api/agent/v1/search-intelligence/query/{runId}?includeRaw=true
Authorization: Bearer rk_live_YOUR_KEY
```

The `includeRaw` query parameter is optional and defaults to `false`. The response is the same shape as the POST response.

Add `view=summary` to either the POST or GET route for a bounded operational response. Summary view retains run identity, requested/completed/failed platforms, parameters, timestamps, per-platform status, latency, citation and organic-result counts, answer presence, extracted-entity flags, and errors. It omits answer text, citations, organic-result rows, and raw provider payloads. `view=full` preserves the normalized response; `includeRaw=true` is honored only with full view.

Send a stable `Idempotency-Key` header on POST retries. Rankability replays the saved response within the Agent API idempotency window instead of repeating the provider fan-out.

## MCP equivalents

Use `search_intelligence_run` to start the synchronous provider fan-out and `search_intelligence_get` to read the saved run. MCP defaults to summary view; request full normalized evidence only after the run is known, and keep raw provider payloads off unless they are specifically required. Estimate `search_intelligence_query`, show the selected platform count and current usage state, obtain approval, and reuse one idempotency key.

## Error codes

| HTTP | Code                   | When                                                                                                                 |
| ---- | ---------------------- | -------------------------------------------------------------------------------------------------------------------- |
| 400  | `invalid_input`        | Missing or oversized `query`, unknown platform identifier, duplicate platforms, brands/domains array over 20.        |
| 401  | `unauthorized`         | Missing or invalid `Authorization` header.                                                                           |
| 403  | `forbidden`            | API key is missing the `search_intelligence:query` scope.                                                            |
| 404  | `not_found`            | `runId` not found in your org.                                                                                       |
| 429  | `rate_limited`         | Per-minute rate limit exceeded.                                                                                      |
| 502  | `all_platforms_failed` | All requested platforms failed. `runId` is still returned at the top level.                                          |
| 504  | `timeout`              | Wall-clock budget (90s) exceeded. The 504 envelope does not return a `runId` — retry the POST rather than hydrating. |

## Common gotcha

The endpoint is `POST .../search-intelligence/query` — not `GET .../search-intelligence`. A `GET` on the bare path returns the unknown-route fallthrough; make sure you're posting JSON to the `/query` sub-path.

## Related articles

* [Getting started with the API](/api/api-getting-started) — Overview of the agent API and authentication.
* [Authentication and API keys](/api/api-authentication) — How to create keys and add scopes.
* [API usage, rate limits, and errors](/api/api-credits-rate-limits-and-errors) — Pooled usage, rate limits, and error codes.
* [Page Auditor API endpoints](/api/api-page-auditor) — The other recently-published agent endpoint.




---

[Next Page](/llms-full.txt/1)

