Web analytics & SEO audits
Answer traffic questions in analytics UIs and fix SEO issues on a site.
20 project-authored proposals · taxonomy v1.1 · 0 new benchmark runs. Verifiers and partial-credit rules below are designs, not executed results.
- Typical applications
- GA4 · Search Console · Semrush
- Class GUI-need label
G2· GUI-essential
Task proposals · 20
Expand to inspect the complete original wording and proposed checks. Original proposal text remains English in both interfaces.
R05.07.01.03-T01 Save a GA4 exploration of top landing pages by key events
Original instruction
GA4 test property for the sandbox WordPress shop at https://shop.example.test (Docker, seeded) (seeded data). In Explore, build a free-form exploration 'LP Sept' for 2026-09-01 to 2026-09-30: rows Landing page + query string, metrics Sessions, Key events, Session key event rate; filter Session default channel group = Organic Search; top 5 by key events. Write the 5 pages to output/top5.txt.
- Platforms
web· Any OS (web)- Applications
- GA4
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickdrag· Drag & droptype· Text & forms- Work product
WP12· Answer/decision- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Saved exploration config (dimensions, metrics, filter, date range) equals key; top5.txt equals key order (seeded property, no sampling). GA4 Data/Admin API credentials are withheld from the agent, so explorations and admin changes can only be made in the GA4 web UI; the grader reads them via an admin service account.
Proposed partial credit
50% exploration configured and saved; 50% top 5 correct
R05.07.01.03-T02 Submit a sitemap and inspect a URL in Search Console
Original instruction
Google Search Console, verified property for the staging domain the sandbox WordPress shop at https://shop.example.test (Docker, seeded). Submit sitemap https://shop.example.test/sitemap_index.xml, then use URL Inspection on /pallets/heavy-duty and record its coverage verdict, the user-declared canonical and Google-selected canonical in output/inspect.txt.
- Platforms
web· Any OS (web)- Applications
- Search Console
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP12· Answer/decision- Conditions
- None declared
- Proposed difficulty
- 2 / 5
Proposed verifier
Sitemaps report lists the submitted sitemap (admin read); inspect.txt values equal the URL Inspection API result fetched by grader at check time. Search Console API credentials are withheld from the agent, so the sitemap must be submitted in the web UI.
Proposed partial credit
40% sitemap submitted; 60% inspection fields
R05.07.01.03-T03 Report a page's bounce rate for Q3 from Matomo
Original instruction
Self-hosted Matomo with seeded logs for the sandbox WordPress shop at https://shop.example.test (Docker, seeded). Find the bounce rate and average time on page for page URL /pricing for 2026-07-01 to 2026-09-30 (Behaviour > Pages, flattened), and write 'bounce%;mm:ss' to output/answer.txt.
- Platforms
web· Any OS (web)- Applications
- Matomo
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scroll- Work product
WP12· Answer/decision- Conditions
- None declared
- Proposed difficulty
- 1 / 5
Proposed verifier
Values equal Matomo archive for the period (seeded logs, archived before task); /pricing/ with trailing slash is a separate decoy row. Matomo token_auth is withheld from the agent, so report data is reachable only in the Matomo web UI.
Proposed partial credit
50% bounce rate; 50% time on page
R05.07.01.03-T04 Build a checkout funnel exploration and find the biggest drop-off
Original instruction
GA4 test property for the sandbox WordPress shop at https://shop.example.test (Docker, seeded). Create funnel exploration 'Checkout Q3' (closed funnel): view_item -> add_to_cart -> begin_checkout -> purchase, date range 2026-07-01 to 2026-09-30, breakdown by Device category. Save it and write the step with the largest abandonment rate for mobile to output/answer.txt.
- Platforms
web· Any OS (web)- Applications
- GA4
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clickdrag· Drag & droptype· Text & forms- Work product
WP12· Answer/decision- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Saved funnel config equals key (steps, closed, breakdown, dates); answer equals key. GA4 Data/Admin API credentials are withheld from the agent, so explorations and admin changes can only be made in the GA4 web UI; the grader reads them via an admin service account. Control pair: T13.
Proposed partial credit
50% funnel configured; 20% breakdown; 30% correct step
R05.07.01.03-T05 Register a custom dimension and build an exclusion audience in GA4
Original instruction
GA4 test property (editor role). Register event-scoped custom dimension 'Plan type' for parameter plan_type, and create audience 'Pro trial no purchase' = users with event trial_started where plan_type = pro, excluding users with purchase in the last 30 days, membership duration 60 days.
- Platforms
web· Any OS (web)- Applications
- GA4
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Admin read: custom dimension (scope, parameter, display name); audience definition (conditions, exclusion window, duration) equals key. GA4 Data/Admin API credentials are withheld from the agent, so explorations and admin changes can only be made in the GA4 web UI; the grader reads them via an admin service account.
Proposed partial credit
40% custom dimension; 60% audience definition
R05.07.01.03-T06 Crawl a site and export broken internal links and missing meta descriptions
Original instruction
Screaming Frog SEO Spider (licensed, desktop) on the sandbox WordPress shop at https://shop.example.test (Docker, seeded). Crawl with JavaScript rendering off and respect robots.txt, then export (1) all internal 4xx with their source pages (Bulk Export > Response Codes > Client Error inlinks) and (2) HTML pages missing meta descriptions, to output/.
- Platforms
mac· macOSwin· Windowslin· Linux- Applications
- Screaming Frog SEO Spider
- Interfaces
desk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
CL· CLI-sufficient- Interaction primitives
click· Point & clicknav· Pan/zoom/scroll- Work product
WP02· Records/table- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Exports parsed: 4xx (source, destination) pairs equal key set; missing-description URL set equals key; crawl config file in output/ matches settings. The agent has no terminal, so Screaming Frog's --headless CLI cannot be run; the config must be the GUI-saved .seospiderconfig.
Proposed partial credit
50% broken-link pairs; 40% missing descriptions; 10% crawl settings
R05.07.01.03-T07 Fix titles, meta descriptions and canonicals on ten pages in WordPress
Original instruction
WordPress admin of the sandbox WordPress shop at https://shop.example.test (Docker, seeded) with Yoast SEO. input/seo_fixes.xlsx lists 10 pages with problems (titles over 60 chars, missing meta descriptions, a wrong canonical). Fix each in the block editor's Yoast panel per the sheet's targets and update the pages.
- Platforms
web· Any OS (web)- Applications
- WordPress · Yoast SEO
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Rendered HTML of each page: <title>, meta description, canonical equal targets; other pages unchanged. WP-CLI and REST application passwords are disabled for the agent; post revisions must come from the editor session.
Proposed partial credit
40% titles; 40% descriptions; 20% canonical fix
R05.07.01.03-T08 Configure a Semrush Site Audit and export the top errors
Original instruction
Semrush test seat. Create project for shop.example.test, configure Site Audit: limit 500 pages, crawler Googlebot-smartphone, exclude /cart and /my-account, allow the staging crawl via the provided IP list, run it, and export the Errors report (issue, count, URLs) to output/semrush_errors.xlsx.
- Platforms
web· Any OS (web)- Applications
- Semrush
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP02· Records/table- Conditions
licensed· Licensed pro app- Proposed difficulty
- 3 / 5
Proposed verifier
Project audit settings equal spec (admin read); exported errors equal the audit snapshot (issue types and counts). Semrush API units are withheld from the agent's account, so the audit must be configured and exported in the web UI.
Proposed partial credit
40% audit settings; 60% export matches snapshot
R05.07.01.03-T09 Export striking-distance queries from Search Console performance
Original instruction
Search Console property for the staging domain (seeded performance data). In Performance > Search results for the last 28 days ending 2026-10-12, filter queries with average position 4-10 and CTR below 2% and at least 100 impressions, and export to output/striking.csv (query, page, clicks, impressions, CTR, position).
- Platforms
web· Any OS (web)- Applications
- Search Console
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP02· Records/table- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Exported query set equals key (grader computes from the same seeded data via admin); page mapping correct. Search Console API credentials are withheld from the agent, so the export must come from the Performance report UI.
Proposed partial credit
70% query set; 30% page mapping and metrics
R05.07.01.03-T10 Build a shared Looker Studio dashboard on GA4
Original instruction
Looker Studio with the GA4 test property as data source. Build report 'Shop KPIs' with scorecards (Sessions, Key events, Revenue) with prior-period comparison, a time-series of sessions by default channel group, a table of top 10 landing pages, and a date range control defaulting to last 28 days. Share view access with marketing@example.test.
- Platforms
web· Any OS (web)- Applications
- Looker Studio · GA4
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
drag· Drag & dropclick· Point & clicktype· Text & forms- Work product
WP03· Visual layout- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Report JSON (admin export): components, metrics, comparison setting, control default; sharing ACL includes the address with viewer role; VLM check on render only for layout overlap (10%). Looker Studio API access is withheld from the agent, so the report must be built in the editor (version history shows the agent's session).
Proposed partial credit
40% scorecards and comparison; 30% chart and table; 10% date control; 20% sharing and layout
R05.07.01.03-T11 Repair a lead event that does not fire in Google Tag Manager
Original instruction
Google Tag Manager test container for the sandbox WordPress shop at https://shop.example.test (Docker, seeded). The GA4 event generate_lead does not fire on the quote form because its trigger listens for the wrong form ID. Diagnose with Preview mode, fix the trigger (and pass form_name as an event parameter), confirm in GA4 DebugView, and publish version 'lead-fix-1'.
- Platforms
web· Any OS (web)- Applications
- Google Tag Manager · GA4
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
GTM API (admin) read: trigger conditions and tag parameters equal key; published version name; grader submits the form in a headless browser and observes a generate_lead hit with form_name. GTM API OAuth access is withheld from the agent, so the fix must be made and published in the GTM web UI (version history shows the agent's user).
Proposed partial credit
40% trigger fixed; 20% parameter; 20% published; 20% live hit verified
R05.07.01.03-T12 Get a landing page's LCP under 2.5 seconds
Original instruction
Staging site the sandbox WordPress shop at https://shop.example.test (Docker, seeded), page /landing/fall-sale scores LCP about 4.8 s in Lighthouse mobile. Using PageSpeed Insights / Lighthouse diagnostics, fix it in WordPress (hero image size/format, preload, lazy-loading misuse, render-blocking plugin CSS) without removing content. Record before/after reports in output/.
- Platforms
web· Any OS (web)lin· Linuxmac· macOSwin· Windows- Applications
- Lighthouse · WordPress
- Interfaces
brow· Browserdesk· Desktop GUI- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsvis· Visual judgment- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Grader runs Lighthouse 12 mobile 5 times: median LCP < 2.5 s and CLS < 0.1; visual diff of above-the-fold vs original SSIM >= 0.9 (content kept).
Proposed partial credit
60% LCP target met (scaled); 20% CLS; 20% content preserved
R05.07.01.03-T13 Pull the same funnel through the GA4 Data API (control pair of T04)
Original instruction
Control pair of T04. With a service account in env GA4_* for the same property, use the Data API (runFunnelReport, v1alpha) to compute the same closed funnel by device for Q3 2026 and write the mobile step with the largest abandonment rate to output/answer_api.txt.
- Platforms
lin· Linuxmac· macOSwin· Windows- Applications
- GA4 Data API · Python
- Interfaces
api· API/SDKterm· Terminal- GUI need · task setting
AP· API-sufficient- GUI need · ordinary access
AP· API-sufficient- Interaction primitives
code· Code & commands- Work product
WP12· Answer/decision- Conditions
- None declared
- Proposed difficulty
- 3 / 5
Proposed verifier
Answer equals the T04 key; compared with T04 to measure the GUI penalty.
Proposed partial credit
60% correct step; 40% funnel numbers in output/funnel.json match key
R05.07.01.03-T14 Fix hreflang errors on a three-language site
Original instruction
WordPress multilingual staging site (WPML, en/de/fr) at https://intl.example.test. A crawl shows missing return links, wrong language codes (de-DE vs de) and x-default missing. Fix the language settings and per-page translation links so every page group has valid reciprocal hreflang including x-default, and save a recrawl export to output/.
- Platforms
web· Any OS (web)mac· macOSwin· Windows- Applications
- WordPress · WPML · Screaming Frog SEO Spider
- Interfaces
brow· Browserdesk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & forms- Work product
WP08· App/system state- Conditions
licensed· Licensed pro appmultiapp· Multi-app- Proposed difficulty
- 4 / 5
Proposed verifier
Grader crawls the site: every indexable page has reciprocal hreflang with valid codes and x-default; no non-200 hreflang targets. WP-CLI and REST application passwords are disabled for the agent; post revisions must come from the editor session.
Proposed partial credit
50% reciprocal links; 25% codes; 15% x-default; 10% recrawl export
R05.07.01.03-T15 Compare channel credit under data-driven and last-click attribution in GA4
Original instruction
GA4 test property (seeded). Using Advertising > Attribution > Model comparison for 2026-07-01 to 2026-09-30, key event purchase, compare data-driven vs last click (paid and organic) by default channel group. Write the channel with the largest percentage gain under data-driven and the % change to output/answer.txt.
- Platforms
web· Any OS (web)- Applications
- GA4
- Interfaces
brow· Browser- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicknav· Pan/zoom/scroll- Work product
WP12· Answer/decision- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Answer equals key from the seeded property's model comparison; the lookback window must be the property default (90 days). GA4 Data API credentials are withheld from the agent, so the model comparison is reachable only in the GA4 web UI.
Proposed partial credit
60% channel; 40% % change within 0.5pp
R05.07.01.03-T16 Add product and breadcrumb structured data and pass validation
Original instruction
WordPress + WooCommerce staging site the sandbox WordPress shop at https://shop.example.test (Docker, seeded). Product pages lack valid Product structured data (offers price/currency/availability) and BreadcrumbList. Add them site-wide (theme template or SEO plugin settings), then validate 3 sample products with the Rich Results Test or Schema Markup Validator and save the results to output/.
- Platforms
web· Any OS (web)- Applications
- WordPress · Rich Results Test
- Interfaces
brow· Browser- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formscode· Code & commands- Work product
WP06· Code/engineering- Conditions
- None declared
- Proposed difficulty
- 4 / 5
Proposed verifier
Grader extracts JSON-LD from all product pages: Product with name, image, offers (price, priceCurrency, availability) matching WooCommerce data, and BreadcrumbList; validator returns no errors.
Proposed partial credit
50% Product markup site-wide; 30% breadcrumb; 20% validation evidence
R05.07.01.03-T17 Map and implement redirects for 120 retired URLs after a migration
Original instruction
Staging site the sandbox WordPress shop at https://shop.example.test (Docker, seeded) was migrated; input/old_urls.csv lists 120 old URLs now returning 404. Map each to the most relevant live URL (by slug/title similarity and the category map in input/category_map.csv; true orphans go to the parent category), implement 301s in the Redirection plugin, and export the mapping to output/redirects.csv.
- Platforms
web· Any OS (web)lin· Linuxmac· macOS- Applications
- WordPress · Redirection plugin · Python
- Interfaces
brow· Browserterm· Terminal- GUI need · task setting
HY· Hybrid- GUI need · ordinary access
HY· Hybrid- Interaction primitives
click· Point & clicktype· Text & formscode· Code & commands- Work product
WP08· App/system state- Conditions
long· Long-horizon- Proposed difficulty
- 4 / 5
Proposed verifier
Grader requests all 120 old URLs: single-hop 301 to target equal key for >= 95% (full credit); no redirect chains or loops; export matches plugin config.
Proposed partial credit
60% correct targets; 20% single-hop 301s; 20% export
R05.07.01.03-T18 Remediate a twenty-issue technical SEO audit on a staging site
Original instruction
Staging site the sandbox WordPress shop at https://shop.example.test (Docker, seeded) has 20 planted technical issues (robots.txt blocking CSS, noindex on category pages, duplicate titles, redirect chains, mixed content, missing alt text, sitemap including 404s, paginated canonicals, etc.). Find them with your crawl/analytics tools, fix each in WordPress, and document issue -> fix in output/audit.md.
- Platforms
web· Any OS (web)mac· macOSwin· Windows- Applications
- WordPress · Screaming Frog SEO Spider · Search Console
- Interfaces
brow· Browserdesk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsnav· Pan/zoom/scroll- Work product
WP08· App/system state- Conditions
long· Long-horizonmultiapp· Multi-app- Proposed difficulty
- 5 / 5
Proposed verifier
Grader re-crawls and runs 20 issue checks; audit.md parsed for issue names; regressions (new issues) penalized. WP-CLI and REST application passwords are disabled for the agent; post revisions must come from the editor session.
Proposed partial credit
75% twenty issues fixed (equal shares); 15% audit doc; 10% no regressions
R05.07.01.03-T19 Diagnose an organic traffic drop across GA4, Search Console and server logs
Original instruction
Organic sessions on the sandbox WordPress shop at https://shop.example.test (Docker, seeded) fell about 35% from 2026-09-10 (seeded GA4, Search Console and nginx logs in input/logs/). Determine the root cause (the key is one specific deployment change), the affected URL pattern and the date, write output/rca.md with evidence, then fix the cause on the site.
- Platforms
web· Any OS (web)lin· Linuxmac· macOS- Applications
- GA4 · Search Console · WordPress
- Interfaces
brow· Browserterm· Terminal- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
HY· Hybrid- Interaction primitives
click· Point & clicknav· Pan/zoom/scrollvis· Visual judgmentcode· Code & commands- Work product
WP12· Answer/decision- Conditions
multiapp· Multi-applong· Long-horizonhidden· Hidden/stale state- Proposed difficulty
- 5 / 5
Proposed verifier
rca.md fields (cause category, URL pattern regex, date) equal key; site fix verified by crawl of the affected pattern; LLM rubric only for evidence coherence (10%). GA4 and Search Console API credentials are withheld from the agent, so traffic data must be read in their web UIs; server logs are read-only in the terminal.
Proposed partial credit
40% cause; 20% pattern and date; 30% fix verified; 10% evidence rubric
R05.07.01.03-T20 Find orphan pages and add internal links until each has two inlinks
Original instruction
Staging site the sandbox WordPress shop at https://shop.example.test (Docker, seeded). Compare the crawl, the XML sitemap and GA4 landing pages to find indexable orphan pages (in sitemap or receiving traffic but with zero internal inlinks). For each, add at least two contextual links from topically related live pages in the block editor, then recrawl and save the inlink report to output/.
- Platforms
web· Any OS (web)mac· macOSwin· Windows- Applications
- WordPress · Screaming Frog SEO Spider · GA4
- Interfaces
brow· Browserdesk· Desktop GUI- GUI need · task setting
G2· GUI-essential- GUI need · ordinary access
G2· GUI-essential- Interaction primitives
click· Point & clicktype· Text & formsmulti· Cross-app- Work product
WP08· App/system state- Conditions
multiapp· Multi-applong· Long-horizon- Proposed difficulty
- 5 / 5
Proposed verifier
Orphan set identified equals key (output/orphans.txt); after task each has >= 2 internal followed inlinks from pages in the same category; no broken links introduced. WP-CLI and REST application passwords are disabled for the agent; post revisions must come from the editor session.
Proposed partial credit
40% orphan set; 45% inlinks added correctly; 15% no broken links
Mapped research references
Existing benchmark-to-class links from the research catalog. They are not record-level annotations, executions or product endorsements.