
Gsc Ahrefs Browser Audit
- 3 installs
- 3 repo stars
- Updated April 6, 2026
- bagelhole/seo-skills
gsc-ahrefs-browser-audit is a skill that runs a Google Search Console and Ahrefs SEO audit through the user's logged-in browser sessions and writes an on-disk work brief.
About
This skill runs an SEO research pass using the user's logged-in Google Search Console and Ahrefs sessions in a real browser instead of APIs. It extracts Performance queries and pages, then pulls Ahrefs Site Explorer overview, organic keywords, and Opportunities to find CTR, ranking, and impression improvements. It writes a seo-work-brief.md file to the site repo root with metric tables and an action plan. A developer uses it when they want a Search Console or Ahrefs audit that feeds later content work.
- Runs GSC + Ahrefs research through the user's own logged-in browser sessions, not APIs
- Extracts queries and pages (impressions, clicks, CTR, position) plus Ahrefs Opportunities
- Writes a seo-work-brief.md on disk with Tier 1-3 tables for downstream bulk guide shipping
Gsc Ahrefs Browser Audit by the numbers
- 3 all-time installs (skills.sh)
- Ranked #1,624 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
gsc-ahrefs-browser-audit capabilities & compatibility
Free skill, but needs the user's own Google and optionally paid Ahrefs subscription accounts.
- Capabilities
- seo audit · keyword research · ctr optimization · search console analysis
- Works with
- chrome · playwright
- Use cases
- seo · web scraping · research
- Pricing
- Bring your own API key
What gsc-ahrefs-browser-audit says it does
Runs a deep SEO research pass using the user’s logged-in Google Search Console and Ahrefs sessions in a real browser (not API-first).
Produce actionable findings to improve **CTR**, **rankings**, and **impressions**
If there is no subscription, paywall, or the user opts out: complete the **GSC-only** analysis, state clearly that Ahrefs was skipped
npx skills add https://github.com/bagelhole/seo-skills --skill gsc-ahrefs-browser-auditAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3 |
|---|---|
| repo stars | ★ 3 |
| Last updated | April 6, 2026 |
| Repository | bagelhole/seo-skills ↗ |
What it does
Audit a site's Search Console and Ahrefs data to find CTR, ranking, and impression opportunities and write an on-disk SEO brief.
Who is it for?
Auditing organic search performance and finding CTR, ranking, and impression opportunities for a live site.
Skip if: Editing titles or content in the codebase, which the skill hands off to ctr-snippet-batch-optimize.
When should I use this skill?
The user asks for GSC analysis, Search Console audits, Ahrefs research, organic keyword opportunities, CTR fixes, or impression growth plans.
What you get
A seo-work-brief.md at the repo root with metrics, Tier 1-3 tables, Ahrefs highlights, and a new-guide backlog.
- seo-work-brief.md with metrics and Tier 1-3 tables
- New guide backlog table
- Optional short chat summary
By the numbers
- Tier 1-3 opportunity tables
- Combines 2 data sources (GSC and Ahrefs)
Files
GSC + Ahrefs browser SEO audit
Goal
Produce actionable findings to improve CTR, rankings, and impressions by combining:
1. Google Search Console — Performance report (queries + pages). 2. Ahrefs (optional) — Site Explorer, organic keywords, and Opportunities.
Use browser automation with the user’s own logged-in sessions. Prefer this over Ahrefs API or Ahrefs MCP when those hit rate limits quickly; the browser carries normal UI quota and features.
Tools
Use whatever browser automation your environment exposes (e.g. Playwright MCP, Cursor IDE browser tools). Names and refs differ by product; always take a fresh snapshot after navigation or login before clicking.
Before you start: resolve the site
Determine the canonical hostname (e.g. example.com) before building URLs. Order of inference:
1. User explicitly states the domain or URL. 2. Environment variables: SITE_URL, CANONICAL_URL, NEXT_PUBLIC_SITE_URL, VERCEL_URL (normalize to hostname). 3. package.json — homepage, or repository.url if it is a production site URL. 4. Framework config — e.g. Next.js metadataBase / siteUrl in config, Astro site, etc. 5. Project README.md. 6. If still unclear, ask the user for the domain and whether the GSC property is Domain or URL prefix.
GSC deep link (domain property):
https://search.google.com/search-console/performance/search-analytics?resource_id=sc-domain%3A{hostname}
For URL-prefix properties, open Search Console and let the user select the property (see authentication below); do not guess resource_id.
Ahrefs Site Explorer (subdomains mode, adjust if user prefers path or exact URL):
https://app.ahrefs.com/site-explorer/overview/v2/subdomains/live?target={hostname}
(Older /v2/site-explorer/overview?target=...&mode=subdomains may redirect; either is fine.)
Authentication: wait for the user
Never ask for passwords or 2FA codes. If the page shows login, account picker, “session limit exceeded,” or paywall:
1. Stop automated clicks that assume a logged-in dashboard. 2. Tell the user exactly what you see and what they should do (sign in, pick property, dismiss other sessions). 3. Wait until they confirm or until a new snapshot shows the expected logged-in view. 4. Resume with a fresh navigation to the target URL if needed.
Repeat for GSC and Ahrefs independently.
If Ahrefs is unavailable
If there is no subscription, paywall, or the user opts out: complete the GSC-only analysis, state clearly that Ahrefs was skipped, and still deliver tiers and recommendations from GSC.
Execution order
1. Resolve hostname → open GSC Performance (or property chooser). 2. Complete GSC steps: queries dimension, then pages. 3. Open Ahrefs Site Explorer for the same hostname (after login if required). 4. Complete Ahrefs steps: overview, organic keywords (summarize safely), Opportunities, location filters as needed. 5. Synthesize the report and write the on-disk brief (see Output below).
Large pages and token limits
Ahrefs Organic keywords and similar views can return huge snapshots. If tool output is truncated or errors on size:
- Rely on visible rows, filters, sorts, and pagination instead of one full-table scrape.
- Summarize top N by volume or position bands.
- Use Opportunities views for pre-bucketed lists.
Output
1. Write `seo-work-brief.md` to the root of the site repository you audited (default path ./seo-work-brief.md). If the user wants a different path or filename, use theirs and mention it in the brief’s top lines. 2. Follow references/seo-work-brief.md for the full structure: metrics, Tier 1–3 tables, Ahrefs highlights, action plan, and the `## New guide backlog (for bulk-seo-guides-from-keywords)` section with the backlog table populated from keyword research (new pages only). 3. You may also give a short summary in chat, but the markdown file is the source of truth for the next step (bulk-seo-guides-from-keywords).
Quick pointer: references/output-template.md (on-disk brief reminder).
Implementation follow-up (separate task)
If the user asks you to change titles, meta descriptions, or content in their codebase, treat that as implementation: map GSC/Ahrefs URLs to routes/files in that project using normal repo search. For batched snippet rewrites from tier lists, use the `ctr-snippet-batch-optimize` skill in this repo. This skill focuses on research and reporting unless the user explicitly asks for edits.
Reference files
| File | Purpose |
|---|---|
| references/gsc-steps.md | Click-path checklist for Performance |
| references/ahrefs-steps.md | Site Explorer and Opportunities |
| references/seo-work-brief.md | Full seo-work-brief.md spec + backlog for bulk guides |
| references/output-template.md | Pointer: write brief to disk, not chat-only |
Ahrefs — Site Explorer checklist (browser)
Prerequisite: user is signed in with a plan that includes the needed reports. If not, stop and follow the main skill’s authentication instructions.
Open Site Explorer
1. Navigate to Site Explorer for the target hostname. 2. Prefer subdomains (or the mode the user uses for their site) so you include www and apex consistently unless they specify otherwise. 3. Wait for overview metrics to load (DR, organic keywords, traffic estimates, etc.). Use short waits + fresh snapshots if the UI is slow.
Overview
Capture high-level numbers the UI shows, for example:
- Domain Rating (DR) and trend if visible
- Organic keywords count and growth
- Organic traffic estimate
- Referring domains / backlinks (if relevant to recommendations)
Exact widgets depend on Ahrefs version; record what you see, not a fixed schema.
Organic keywords
1. Open Organic keywords (or equivalent) from the Site Explorer sidebar or overview links. 2. Token / size warning: full keyword tables can be enormous. If automation returns oversized output or errors:
- Apply filters (e.g. position bucket, volume minimum, SERP features).
- Sort by volume or traffic and summarize top N rows visible on screen.
- Use pagination or narrower country/language instead of dumping the entire table.
3. Note quick wins: keywords ranking roughly 4–15 with decent volume (aligns with “low-hanging fruit” elsewhere).
Opportunities
1. Open Opportunities (or similarly named report) if available on the account. 2. Review buckets such as low-hanging fruit (positions ~4–15), content gaps, etc., depending on what Ahrefs shows. 3. If results are geo-filtered (e.g. United States only) and look empty, try All locations (or global), then apply Show results / refresh so the table repopulates.
Other useful areas (time permitting)
- Top pages — which URLs earn traffic and keywords.
- Content gap — vs competitors (only if the user cares and data loads).
- Site structure / internal — if visible and useful for internal linking advice.
Do not treat API or MCP as required; browser session is the source of truth for this skill.
Auth and session issues
- Signed out, session exceeded, or multiple devices: pause for the user; they may need to sign in again or free a session.
- After login, re-navigate to Site Explorer with the correct
target=hostname.
Google Search Console — Performance checklist
Use the Performance report for the correct property (domain or URL prefix). UI labels vary slightly; match by meaning.
Queries tab (default search appearance / “Queries”)
1. Open Performance → ensure the date range matches what the user cares about (often 3 months or 28 days). 2. In the main chart area, enable metrics so you can see CTR and average position (e.g. click Average CTR and Average position so they appear in the table — exact control names may be “Total clicks”, “Total impressions”, “Average CTR”, “Average position”). 3. In the queries table (dimension = queries):
- Sort by Impressions (descending) to find high-impression terms with weak CTR or poor position.
- Increase rows per page to 50 or 100 if available.
4. Note patterns:
- High impressions, zero or very low clicks, position roughly 5–15 → strong title/meta opportunity.
- High impressions, deep position (e.g. 25+) → content or intent gap.
5. Optionally scan Pages filtered mentally by which queries point to which URLs (or switch to Pages tab next).
Pages tab
1. Open the Pages tab (dimension = pages). 2. Sort by Impressions (descending). 3. Set rows per page to 50 or 100. 4. For each high-impression URL, capture impressions, clicks, CTR, and position. 5. Scroll if needed; take additional snapshots rather than assuming one view shows everything.
Edge cases
- Property mismatch: User may have both
wwwand non-wwwor subdomain properties — use the property they verify in GSC. - Low data: New sites may have sparse rows; widen the date range if the UI allows.
- Filters: If the user cares about a country or device, apply those filters and say so in the report.
What to extract for the final report
- Top queries by impressions with CTR and position.
- Top pages by impressions with CTR and position.
- Clear list of URLs/queries for Tier 1 / 2 / 3 in the output template.
Report output (on-disk brief)
Do not only paste the audit into chat. Write a file that downstream skills can read.
Full structure, tables, and the `## New guide backlog` section: seo-work-brief.md
Summary for the agent
1. Create or overwrite `seo-work-brief.md` at the site project root (unless the user specifies another path). 2. Follow every section in seo-work-brief.md, including the exact heading ## New guide backlog (for bulk-seo-guides-from-keywords). 3. Fill the backlog table with new guide targets from Ahrefs (and gaps); leave Tier 1–3 for snippet/content work, not duplicate rows unless a net-new URL is needed.
SEO work brief (seo-work-brief.md)
This file is the single markdown artifact the audit produces on disk and that `bulk-seo-guides-from-keywords` reads for the new guide backlog. Keep it in the root of the site project being optimized (not inside the SEO-Skills repo unless that is the site).
File placement
- Default path:
./seo-work-brief.md(repository root of the product site). - Override: If the user asks for another path, use it and tell `bulk-seo-guides-from-keywords` where it lives.
Optional YAML front matter (helps humans and agents):
---
brief_version: 1
site: "example.com"
generated: "2026-04-06"
gsc_date_range: "Last 3 months"
ahrefs_scope: "All locations"
---Body template
SEO work brief — {hostname}
Executive summary
2–4 sentences: biggest lever and the single highest-ROI next step.
Overall metrics
| Metric | Value | Notes |
|---|---|---|
| GSC clicks / impressions / CTR / avg position | … | Date range |
| Ahrefs DR | … | If used |
| Ahrefs organic keywords / traffic est. | … | If used |
| Referring domains | … | If visible |
Tier 1 — High impressions, zero (or near-zero) CTR
Priority for title + meta rewrites (ctr-snippet-batch-optimize).
| Page or query | Impressions | Clicks | CTR | Position | Priority |
|---|---|---|---|---|---|
| … | … | … | … | … | Critical / High |
Tier 2 — Meaningful impressions but low CTR
| Page | Impressions | Clicks | CTR | Position |
|---|---|---|---|---|
| … | … | … | … | … |
Tier 3 — High impressions, deep positions
| Page | Impressions | Position | Opportunity |
|---|---|---|---|
| … | … | … | Expand / consolidate / etc. |
Ahrefs keyword / opportunity highlights
If Ahrefs was used:
| Keyword / theme | Volume | KD | Current pos | Target page |
|---|---|---|---|---|
| … | … | … | … | … |
If Ahrefs was skipped: Ahrefs not used (reason).
Recommended action plan
1. …
---
New guide backlog (for bulk-seo-guides-from-keywords)
Required heading — use this exact text so the bulk skill can find it.
Populate from Ahrefs Organic keywords, Opportunities, and content gaps. One row per new URL to create (not Tier 1–3 snippet fixes on existing pages).
| Priority | Primary keyword | Volume | KD | Intent | Suggested slug | Notes | Status |
|---|---|---|---|---|---|---|---|
| 1 | … | … | … | informational / commercial / mixed | guides/example-topic | … | queued |
Columns
- Priority — Integer; lower runs first when batching.
- Primary keyword — Main query the page should satisfy.
- Volume / KD — From Ahrefs when available; else
—. - Intent — Short SERP intent note.
- Suggested slug — Path segment or full path (no domain), e.g.
guides/verisimilitude. - Notes — Opportunity bucket, internal link ideas, or “avoid duplicate of
/guides/x”. - Status —
queued(default for new rows),shipped, orskipped. The bulk skill only consumes `queued` or empty cells.
After each shipping batch, update Status to shipped for completed rows so reruns do not duplicate work.
Related skills
FAQ
Does this skill use the Ahrefs or GSC API?
No, it prefers browser automation with the user's own logged-in sessions because those carry normal UI quota; Ahrefs API and MCP are only optional fallbacks.
What happens if the user has no Ahrefs subscription?
It completes a GSC-only analysis, states clearly that Ahrefs was skipped, and still delivers tiers and recommendations from Search Console.
Where does the audit output go?
It writes seo-work-brief.md to the root of the audited site repository, which is the source of truth for the next bulk-seo-guides step.