✶ SEO Tools
The Portland Company

Checking your session…

01 — Snapshot

Current standing

Traffic timeline — clicks, impressions & CTR per day

Markers

Impressions / dayrising falling trajectory weekend

Clicks / dayrising falling trajectory weekend

CTR / dayrising falling trajectory weekend

A falling site-wide CTR here is usually dilution, not decline: each keyword batch we add to Position Tracking surfaces more page-2/3 terms that earn impressions without clicks, so the ratio drops while absolute clicks hold. Tracked so far — …. ?A per-batch CTR line (CTR for only Batch 1’s keywords, only Batch 2’s, etc.) needs Search Console’s per-query daily clicks & impressions, which this dataset doesn’t carry — GSC only exposes it per query on request, not as a daily series. That pull is the remaining piece before a batch selector can show true per-batch CTR.

Search traffic / dayrising falling trajectory weekend

Finish setting up this project

Connect the data sources below to light up the full report. Until then this dashboard shows only what’s already connected.

Position Tracking — visibility, traffic & average position

Position Tracking — tracked keywords by rank band

Priority products — the best sellers we optimise first ?Ranked by units sold. These drive the revenue, so their keywords and pages take priority over generic terms. 45 of their 52 keywords are not yet in Position Tracking — list ready at docs/priority-products-keywords-2026-08.txt, pending a paste into the SEMrush UI (the tracking API is read-only for campaign config).

UnitsProductRevenueRev / itemRevenue ÷ Units — average revenue per unit sold.SKU / page
2,081EnergyLogic Preheater Gasket 2 5/8" O.D.$14,549$6.9920940122
1,683NuEra Waste Oil Filter$49,242$29.26NU601
1,140EnergyLogic Air Compressor Filter$9,841$8.6320210112
1,074EnergyLogic Nozzle #5$33,486$31.1820210123
945EnergyLogic Electrode$37,699$39.8906000593
907EnergyLogic O-Ring for Solenoid Valve$2,273$2.5120293199
819EnergyLogic Burner Gasket$10,606$12.9520910103
798EnergyLogic Nucleus with Spring for Solenoid Valve$10,374$13.0020293198
702EnergyLogic Preheater Insulation Top$1,404$2.0020940120
630EnergyLogic Drip Cap/Cup Gasket$12,634$20.0520933118
202EnergyLogic Metering Pump with Fittings$60,568$299.8414020155
192Large Compressor (unmatched in catalog)$91,298$475.51— · not found

Summary

Two things stand out: Large Compressor ($91,298) and 14020155 ($60,568) are the top revenue lines despite mid-pack volume — by revenue they outrank the #1 seller. SRV 200H and SRV 140H show $0.00 across 490 units and resolve to nothing in the catalog, which looks like service items tracked outside it. And SKU 20210112’s product title is literally “Air Compressor Filter20210112” — the part number is concatenated into the name Google indexes.

Keywords — stats, movers & per-keyword timeline

· Click a row to load its timeline and filter the Position Tracking cards above.

Position Tracking — competitive visibility

Visibility % · tracked domains

Source
SEMrush Position Tracking — nueraheat.net (campaign 28026270_4021236, pulled live from the Position Tracking API Aug 13, 2026). . Tracked-campaign figures cover the 267 tracked keywords and are a different universe from the domain-wide numbers below.
8/100
Authority ScoreSEMrush’s 0–100 estimate of a domain’s ranking strength, based mainly on backlink quality.
113
KeywordsDomain-wide ranking keywords (SEMrush API, live Aug 13). Down from 243 in June by design — the junk query-string pages being de-indexed carried low-value rankings.
Jun 243 → 113▼ cleanup
~81
Visits / mo
Jun 112 → 81▼ 28%
292
Ref. domainsReferring domains — separate websites that link to you.
1,732
Backlinks
$0
Ad spend
Source
SEMrush domain overview — nueraheat.net (live values pulled from the SEMrush API Aug 13, 2026: AS 8, 114 keywords, 74 organic visits/mo, 292 referring domains, 1,732 backlinks; monthly history Jul 15 = 136 kw / 104 visits, Jun 15 = 243 kw / 112 visits).

Progress — last 30 days vs prior 30 days · Google Search Console

Clicks
65 → 104▲ 60%
Impressions
5,429 → 7,222▲ 33%
CTR
1.20% → 1.44%▲ 20%
Avg position
17.0 → 13.8▲ better
Source
Google Search Console — nueraheat.net (requires the site's Google account) · SEMrush domain overview (requires a SEMrush login for full data).

Cart recovery

Abandoned carts

Abandoned checkout carts — live from the NuEra storefront & Umami

Loading live cart & analytics data…

Source
Abandoned carts, value and top products are live from the NuEra storefront database (the Dan Clemens Multisite store powering nueraheat.net) — carts that hold items, were never converted to an order, and have sat untouched for over a day. Visitors and completed purchases are live from Umami (nueraheat.net). Obvious catalog QA/test SKUs are excluded.

Target keywords

Tracked keywords & favorites

All tracked keywords — star the ones that matter ?Every keyword in the Position Tracking campaign that carries daily ranking data. Click a star to favorite it; favorites are saved in your browser. The client’s target keywords (the EnergyLogic / BlackGold waste-oil products John & Dan asked us to optimise for) are starred by default.

02 — Traffic

Where traffic lands

The homepage and /shop/ take ~82% of organic traffic. Most other ranking URLs are PDFs, which don’t link into the shop.

Data Top landing pages
PageKWsKeywords the page ranks for.TrafficShare
/ (homepage)245751%
/shop/123431%
furnace-manual.pdf41110%
/shop/el-75h/933%
2016-schematic.pdf1033%

03 — Keyword rankings

Current positions

“energylogic” slipped to #6 while “oil furnace cad cell” climbed 16 places. Each row carries the date SEMrush last crawled that keyword’s SERP — they are not all measured on the same day.

Data Rankings
KeywordPosPosition on Google (1 = top). Source: SEMrush’s tracking of live Google US results — their measured ranking, not a live check of your own analytics.Vol.Estimated monthly Google searches in the US. Source: SEMrush.Last checkedThe date this row’s ranking was last measured, and which tool measured it. SEMrush timestamps come from their own SERP crawl of that keyword.
nuera heat— 170Jun 25, 2026 · SEMrush
energylogic▼ 2 6590Aug 6, 2026 · SEMrush
energylogic waste oil heater— 7390Aug 7, 2026 · SEMrush
oil furnace cad cell▲ 16 11260Aug 3, 2026 · SEMrush
how to prime oil burner— 5320Aug 1, 2026 · SEMrush
how to clean an oil furnace nozzle▼ 5 2670Jun 17, 2026 · SEMrush

04 — Keyword gap

Missing terms

Terms competitors rank for and NuEra doesn’t — 15,000+ searches/mo. “Waste oil heater” alone is 6,600/mo.

Data Missing keywords
KeywordVol.Estimated monthly Google searches in the US. Source: SEMrush.KDKeyword Difficulty — how hard it is to rank on page one, 0–100. Under ~20 is very achievable. Source: SEMrush.Last checkedWhen this gap was last confirmed, and the tool that confirmed it. Gap terms come from SEMrush’s keyword-gap report against energylogic.com and wasteoilheatingparts.com.
waste oil heater6,60018Jul 31, 2026 · SEMrush gap
waste oil burner3,60018Jul 31, 2026 · SEMrush gap
used oil heater1,60015Jul 31, 2026 · SEMrush gap
waste oil furnace1,30018Jul 31, 2026 · SEMrush gap
lanair waste oil heater1,00019Jul 31, 2026 · SEMrush gap
drum heaters1,0005Jul 31, 2026 · SEMrush gap

05 — Backlinks

Link profile

292 referring domains. A few strong links sit above a tail of low-value directories and spam — 177 spam domains were disavowed on Aug 7, 2026, so Google now discounts them.

Data Referring domains
DomainASAuthority Score (0–100) — the linking site’s own strength.Note
bing.com93Strongest link
centralohioheaters.com10Industry peer
wasteoilparts.com7Industry peer
cheapsmmprovider.online6Spam — disavowed ✓
directory tail12–42Low value

06 — Priorities

Top three actions

1

Rank top-3 for “energylogic”

1,070 searches/mo, one step away. Optimize /shop/ around the term.

Low effort · High impact
2

Turn PDFs into pages

Manuals and diagrams rebuilt as pages that link into the shop.

Medium · High
3

Build the gap pages

Pages for “waste oil heater / furnace” — 15,000+ searches/mo.

Medium · Very high

07 — Keyword density

Live keyword density

Density = (occurrences × words-in-phrase) ÷ total words — the same method as the July density report, so numbers are comparable.

In goals · at/above target In goals · below target Not a goal (off-target) Stopword / filler

Measured on page — top phrases

Choose a page and hit Analyze.

Keywords we want hereGoals mapped to this page show first; site-wide goals follow. Edit any target % — it’s saved in your browser.

Goals for the selected page appear here.

Target keywords

Tracked keywords

All tracked keywords on the site — starred = on the client target list

Target products

Products

All products on the site — starred = on the client target list · click a row for linked keywords & traffic

Aug 13, 2026 · latest

SEO / AIO sprint — shipped & verified live

Ten fixes merged to production and confirmed live on nueraheat.net, an active 1102 outage caught and recovered, and every human-blocked item filed to Focus Forge. The screenshots and walkthrough below were captured from the live site after deploy.

10
PRs merged & live
200
Site health · was 1102
2
Green prod deploys
11
HITL blockers → Forge
The 1102 outage was caught and recovered
Sitewide Worker CPU exhaustion returned 503 on every route. Restored by rolling the Worker back to the last-good version (verified 200 on live page text). Recurrence fix (stable build ID + cache-warm) shipped in PR #75; the durable ISR fix — tenant-twin routes that build as SSG/ISR — is in review as PR #82.
Resolved

Four fixes you can see on the live site

Live EnergyLogic EL75H product page

Product title — SKU suffix gone

wasEL 75H Waste Oil Heater | SKU el-75h
nowEL 75H Waste Oil Heater
Live EnergyLogic EL75H blog post

Blog title — brand added

wasEl75H Startup and Tuning
nowEnergyLogic EL75H Startup and Tuning
New Guides hub page

Guides hub — new page

was/guides → 404 (broke breadcrumbs)
now/guides → 200, ItemList schema
NuEra Heat homepage live

Homepage — back up

was1102 / 503 sitewide
now200 across cold Googlebot hits

Walkthrough — live site, recorded after deploy

Pull requests

PRFixStatus
#76SKU concatenated into product titles + “| SKU” suffixLive
#73Brand product-referencing blog titles (EnergyLogic/NuEra)Live
#74/guides hub — stops breadcrumb 404sLive
#7274 redirect-hop internal links → canonicalLive
#71Invalid reviewedBy dropped from guide JSON-LDLive
#80Blog title ≠ H1 + internal links (SEMrush 105/213)Live
#78Expanded llms.txt + pricing.json for AI enginesLive
#751102 recurrence fix (stable build ID + cache-warm)Live
#79Build fix — ProductCard has no sku fieldLive
#82Durable 1102 fix: tenant-twin routes build as SSG/ISRIn review
#81Drum-heaters + Lanair/Clean-Burn comparison pagesIn review*

*#81 has owner TODOs — competitor specs must be verified before publishing; left as a draft, no fabricated claims went live.

11 blockers are on you — filed in Focus Forge
All human-in-the-loop items (disable Workers Builds auto-deploy, R2/KV & Bot-Management tokens, disavow upload, Bing access, GA4/Umami IDs, COGS from Dan, marketing-email approval, the keyword→sales email + order data, energylogic.parts DNS) are Forge tasks assigned to Spencer, due Aug 1. Full plan in docs/seo-audit.md.
Action needed

Aug 12, 2026

Site reliability — the store stopped falling over

A run of work to kill the intermittent “1102” errors that took the whole site down on cold traffic, so pages load fast and stay up between deploys.

  • Store pages are now cached and pre-warmed after every release, so the first visitor after a deploy no longer hits a blank error page d474f1a
  • Product, category and content pages are served from a fast edge cache instead of rebuilt on every hit 85abaf6 aae2d4c
  • Fresh deploys now pre-load their cache before going live, closing the window where cold pages errored out 1f914f0
  • Rolled the site back to the last known-good version the moment a sitewide outage appeared, then re-landed the fixes safely in stages cc023f2

Aug 10, 2026

Returning-customer login & email unsubscribe

Past customers from the old site can set a password and get into their account, and the announcement email now has a working one-click unsubscribe.

  • New password-setup flow for existing customers migrating from the old WordPress store 0e9072b
  • The reset link now pre-fills the customer's email and shows the follow-up profile prompt, instead of dropping those details b5f1a8e 8eb4017
  • One-click unsubscribe endpoint wired up for the “new website” announcement email (api 1a7327d)

Aug 8, 2026

Traffic analytics turned on

The store now records real visitor and traffic data so we can measure what the SEO work is doing.

  • Google Analytics 4 and Umami wired in, and fixed a settings gate that would have silently kept them from recording anything 6c177b2

Aug 7, 2026

Google Shopping feed fixes

Cleaned up the product feed sent to Google Shopping so listings stop getting disapproved for duplicate IDs.

  • Every product now gets its own unique product ID in the feed instead of sharing one, which was causing Google to reject items 578606c

Jul 17, 2026

Brands, categories, tags & part compatibility

A big catalog upgrade across the storefront, admin and API: shoppers can browse by manufacturer, category and tag, and see which parts fit which machines.

  • New Manufacturer pages plus a “Manufacturer Information” card, and brand names auto-link across the site 97cc67c
  • New “Categories & Tags” browsing, tag pages, and a store-style manufacturer listing aa1f1ed
  • “Compatible With” card on product pages showing which products fit together 08c9105
  • Admins can now manage manufacturers and assign one to each product (admin 5888f2d)
  • Backend support for all of it: manufacturer endpoints, tag/category filters, and compatible-product data (api dae4785 fc9c76d cff3def)

Jul 16, 2026

Old-site link redirects & product display fixes

Links and images from the old WordPress store now point at the right places on the new site, and product descriptions render properly.

  • Old WordPress/WooCommerce page URLs now 301-redirect to their live equivalents, and added CMS Terms & Privacy pages 4a07042
  • Legacy product images from /wp-content/uploads redirect to the current product photos instead of 404ing 2aeef76 7df8158
  • Product descriptions now render their formatting correctly, and fixed unreadable text on price thumbnails e42147c

Technical Audit

Site health

Aug 13 outage & recovery: the site went fully down again — a sitewide Cloudflare Worker 1102 (CPU limit) returned 503 on every route. Root cause: every page renders dynamically (host-based multi-tenant routing reads request headers, so nothing is static/ISR) and the build ID changed on every deploy, orphaning the data cache — so each post-deploy crawl paid a full cold render and blew the CPU budget. Restored by rolling the Worker back to the last-good version (verified 200 on live page text); the recurrence-prevention fix (stable build ID + post-deploy cache-warm) shipped in PR #75, and the durable ISR fix — tenant-twin routes that build as SSG/ISR so cold crawls stop blowing the CPU budget — is in review as PR #82. Ten SEO fixes then shipped live this session (PRs #71–#80): SKU dropped from product titles, EnergyLogic added to product-referencing blog titles, the /guides hub, 74 redirect hops, structured-data, and blog title≠H1 — all verified live with two green production deploys. 220 errors and 61 warnings on the Aug 13 crawl (pre-fix). Warnings fell 1,346 as the metadata fixes landed (duplicate titles/content, nofollow links, minification and long titles all cleared); errors rose because the site was returning 5xx while SEMrush crawled it — 31 5xx pages and 157 broken internal links are outage artefacts, not new SEO debt. Separately, only ~181 of the 565 sitemap URLs are indexed by Google — closing that ~384-URL backlog is the single biggest ranking lever left.

Crawl scorecard

Results

220
Errors
61
Warnings
88
AI-search score
84
Performance

Progress since Jun 1 — technical fixes

Sitemap coverage
29 → 564 URLsfull catalog ▲
Indexed of sitemap
181 / 56532%
Audit fixes shipped
9 / 1090%
Legacy 301s live
~370 old URLsdone ▲

Shipped since Jun 1: self-referencing canonicals, full-catalog sitemap, www→apex 301, keyword product titles, homepage H1, Organization schema, stale-sitemap removal from Search Console, legacy WordPress-URL redirects. Also shipped Jul 31 (PR #39): bare-route meta descriptions, H1 fixes, sitewide brand linking, IndexNow (key + 50-URL ping accepted). Shipped Aug 7: 177 spam domains disavowed in Search Console (needed a new URL-prefix property — the disavow tool rejects domain properties), Workers Builds auto-deploy disconnected so only one pipeline deploys production, the Merchant Center service account granted Standard access, and R2 activated which unblocks edge caching. Shipped Aug 7 (later): AI crawlers now allowed — Cloudflare's managed robots.txt was overriding the app's own file and blocking ClaudeBot, CCBot, Google-Extended and others; disabling it also restored the Sitemap: directive it had been suppressing. ISR edge caching live on R2 + KV. Merchant feed fixed: the whole catalog was shipping under one g:id, now 370 items with 370 unique ids. Meta repairs re-landed and /products/furnaces now 301s to the real Heaters listing instead of serving an empty shell. Shipped Aug 8: analytics is finally measuring — GA4 (G-FKMD6JYY16) and Umami are both live and confirmed receiving real traffic, not just installed. A latent bug was caught in the process: NEXT_PUBLIC_* are inlined at build time, but the workflows set them only on the deploy step and production had no NEXT_PUBLIC_ENV at all — the tags would have shipped dead and silently reported zero. Bing Webmaster Tools verified (DNS CNAME) with the sitemap submitted; Google Search Console import does not work here because Bing only imports URL-prefix properties and nueraheat.net is a domain property. Position Tracking expanded 86 → 267 keywords with three competitors and batch tags for before/after comparison. Remaining: the mismatched-description content rewrite and the capped category listings.

Root causes

Indexation blockers

Every page names the homepage as its “canonicalA canonical tag tells Google which URL is the real one. If every page names the homepage, Google treats them all as duplicates of it.”
Google collapses the catalog and blog as duplicates. Biggest issue, smallest fix.
Fix first
Technical Files & fix

Root layout hardcodes canonicalPath:'/' (layout.tsx:22); no builder sets alternates.canonical. Remove it and emit per-route canonicals from each metadata builder (content-meta.ts).

The parts catalog is invisible to Google
Part pages load only in the browser and aren’t in the sitemap.
Fix first
Technical Files & fix

Part routes use client-side renderingThe page ships empty and fills in via JavaScript in the browser — so crawlers see a blank shell. (ssr:false in PartDetailShell.tsx). Convert to server components like products/[slug]/page.tsx and add part URLs to sitemap.ts.

~10 more pages render as a blank loading screen
/services, /store, /used-oil and others serve crawlers a spinner.
Fix first
Technical Fix

Convert the 'use client' + useEffect fetch pages to server components. The correct pattern already exists in-repo.

12 pages ship no title or description
They inherit the homepage tags — the direct cause of the duplicate-title, duplicate-meta, and missing-heading counts.
Then
No cachingPages are rebuilt on every request instead of served pre-built, so they load slower and strain the server.
Every request hits the backend fresh — tied to the known Cloudflare burst errors.
Fixed
Technical What’s needed

Forge task ISR + R2/KV edge-cache (190391b5). SHIPPED Aug 7. R2 was activated (it had never been enabled), a scoped token minted, and incremental caching is live: R2 as the durable cache behind a colo-local regional cache, with KV as the tag cache so publishing invalidates by tag. Staging has its own bucket so it can never poison production. Verified live — cache objects landing in R2, no 1102. The sitemap is pinned force-dynamic: it is built from the live catalog and a cached build-time render would silently ship a catalog-less sitemap.

Full crawl list

All errors & warnings

Every issue with its count, fix, and Goal — also tracked as tasks under Goal 6 in the plan.

No action needed

Already correct

Technical What’s working

Dynamic robots.txt & sitemap · nueraheat.com→.net redirect live · homepage, /products, and blog properly server-rendered with structured data · fonts and scripts optimized · full image alt coverage · accurate llms.txt · NAP in the footer sitewide.

AI Visibility

AI search readiness

AI engines cite sources instead of ranking them. About half the site can’t be read by AI crawlers today, because they don’t run JavaScript.

~50%
Unreadable by AI
✓
llms.txt live
✓
pricing.json live
25
FAQ schemaStructured Q&A markup that lets AI engines lift a direct answer from your page.

Progress since Jun 1 — AI readiness

Foundations shipped
2 / 4llms.txt + pricing.json
Structured data
Organization ✓ · FAQ ✗1 / 2
AI crawler access
GPTBot, ClaudeBot, CCBot…allowed ✓
Server-rendered content
~50% readablein progress

Resolved Aug 7 — AI crawlers can now read the site. The block was not in the app at all: Cloudflare’s managed robots.txt was overriding the file the site serves, and turning off ai_bots_protection alone did nothing — the fix required setting is_robots_txt_managed=false. That also restored the Sitemap: directive Cloudflare had been silently suppressing. Verified live: ClaudeBot, CCBot, GPTBot and Google-Extended are allowed. The remaining AI gap is now content, not access — roughly half the site still renders client-side, so a crawler that does not run JavaScript still sees an empty shell. That is what the capped category listings and the rebuilt comparison page fix.

Findings

Issues

Half the site is invisible to AI
The parts catalog and client-rendered pages serve AI bots a blank screen.
Critical
The comparison page is unreadable
Comparison pages are the format AI cites most, and this one ships as a blank shell.
Critical
Weak citation signals
No FAQ answers, bare author names, no answer-first content blocks.
Improve
Ahead of most competitors
AI bots allowed; llms.txt and machine-readable pricing already live.
Keep
Technical Signal detail

FAQ schema — shipped Aug 11. 25 questions across /support (12), /waste-oil-heaters (9) and the comparison page (4), server-rendered and verified in the raw HTML. JsonLd was a client component, so its ld+json only materialised after hydration — invisible to crawlers; it is now server-rendered, which is the likely reason SEMrush detected no schema at all. Four answers carry content TODOs (warranty terms, competitor service intervals, Lanair/Clean Burn parts) pending a human answer. Authors — shipped Aug 11. Archives emit ProfilePage + Person (url, worksFor, recent posts) and blog bylines link to them; the team roster is now one shared source so /about and the archives cannot drift. Three of four people still have no bio on file — description is omitted rather than invented, and filling them in is a content task (~+30% citation lift). Answer-first — pages lack 40–60-word direct answers, sourced stats, and “last updated” dates. Already live: AI bots allowed in robots, llms.txt and pricing.json return 200, server-rendered structured data on the main product route.

Sequence

Order of work

1

Server-render the pages

Fixes Google and AI in one move — nothing else matters until bots can read the pages.

2

Rebuild the comparison page

A real comparison table with numbers — the highest-odds citation asset.

3

Add FAQs & answer-first content

Direct answers, sourced stats, author bios; keep llms.txt / pricing.json fresh.

Strategy & Plan

Engagement plan

Two months to fix the foundation and build momentum, then a lower base fee tied to results. The full task list is below.

Phase 1

Months 1–2

Fixed budget covering the foundation fixes and the first content and links. Backlink cost is included within the budget.

Included
  • Technical fixes (Goals 1, 6, 7)
  • Gap + PDF pages (Goal 3)
  • Search-engine + AI submission (Goal 8)
  • Backlink building — not included
  • Tracking, Analytics, reporting
Result by month 2
  • Full catalog indexed
  • “energylogic” moving toward top-3
  • First gap pages live & submitted
  • Baseline set for Phase 2
$2,000 / mo × 2Fixed monthly budget, Months 1–2.

Phase 2

Month 3 onward

Lower fixed base plus a results component, measured against the Phase-1 baseline. Pick one results model at signing.

$750 / mo base+ results component below.
Rankings
Simplest to track.
  • Bonus per tracked keyword reaching top-3
  • Held while it stays there
Recommended
Revenue share
Best aligned to the shop.
  • % of attributable organic revenue
  • Needs store conversion tracking
Traffic
Simple, volume-based.
  • Bonus per organic-traffic milestone
  • Banded month over month

Base and rates are finalized after the Phase-1 baseline so targets reflect real numbers. Month-to-month, cancel anytime.

Timeline

First 90 days

1

Month 1

Technical fixes · Analytics live · keywords tracked · submissions · first pages.

2

Month 2

Catalog indexed · gap pages live · outreach begins · baseline report.

3

Month 3+

Switch to base + results · scale content and links against the baseline.

Goals & Tasks

The work

15 Goals90 Tasks50 / 90 done
Expand a goal to see its tasks. Tap a task to mark it done.
Loading tasks…

Goal 1 alone clears most of Goal 6 — the duplicate and missing-heading counts are symptoms of the canonical and metadata fixes.

Accomplishments

Everything we've shipped

Every improvement made to your website, online store, and back office — drawn directly from the work history. Grouped by area, newest first.

Tap any area to expand it. "Plain English" shows the result; "Technical" shows the engineering detail and the underlying change references.

Loading accomplishments…

Settings

Settings & Connectors

Connect external tools to this report. Connections are private to your account — only you can see or use them.

Data sources

Google Search Console & Analytics

Connect this project’s Search Console and GA4 properties to power the traffic timeline, positions and search-traffic charts.

A domain property like sc-domain:example.com, or a URL-prefix like https://example.com/.

The numeric Analytics property ID, e.g. 123456789 — Admin → Property settings.

After saving, grant the SEO Tools Google service account Viewer access to this property in both Search Console and Analytics — otherwise the API returns no data.

Data sources

Backlinks (DataForSEO)

Backlink data comes from the DataForSEO backlink index — pay-as-you-go. Referring-domain authority uses DataForSEO’s domain rank (optionally OpenPageRank).

Connectors

Focus Forge

Two-way task sync. Every Goal on the Strategy & Plan page becomes a task list in Focus Forge, and each Technical / AI Visibility item is filed as a task under its Goal. Completing a task in either system syncs to the other.

Checking…
Date range

CSV

Loading…