Total Audits
0
All time
This Week
0
Last 7 days
Avg Score
—
Across all audits
Saved to Sheets
0
Not connected
Free
Landing Page Audit
Paste page copy. Get scored analysis across SEO, CRO, messaging, and content quality with a prioritised fix list.
Free
PMax Asset Audit
Audit every headline, description, and long headline. Weak assets rewritten. Asset diversity scored.
GSC OAuth
GSC SEO Audit
Connect Google Search Console. Pull live keyword, CTR, and ranking data. AI identifies quick wins instantly.
Free
Competitor Audit
Enter any competitor URL. We scrape their page and run a full SEO teardown — no access needed.
Audit History
All
Landing Page
PMax
GSC SEO
Competitor
No audits saved yet.
Run your first audit to see history here.
Landing Page Auditor
Paste page content for a full SEO + CRO analysis with prioritised fixes.
PMax Asset Auditor
Paste your Performance Max assets for a full quality and diversity audit.
GSC SEO Audit
Connect Google Search Console to pull live ranking and keyword data for a full AI-powered SEO audit.
Get from: oauth.pstmn.io → Search Console API v1 → getAuthCode → Exchange for tokens
Competitor SEO Audit
Enter any competitor URL — we scrape their page and run a full AI teardown.
🤖 Anthropic API
Powers all AI analysis. ~$0.04 per audit. Get yours at console.anthropic.com
📊 Google Sheets
Auto-save every audit to a shared Google Sheet your whole team can access.
Extensions → Apps Script → Deploy → Web App
📋 Google Apps Script Setup
Copy this script into your Google Sheet's Apps Script editor (Extensions → Apps Script), then deploy as a Web App.
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const d = JSON.parse(e.postData.contents);
// Add header row if sheet is empty
if (sheet.getLastRow() === 0) {
sheet.appendRow(['Date','Type','URL/Site','Brand','Score','Keyword','Summary','Full Report']);
sheet.getRange(1,1,1,8).setFontWeight('bold');
}
sheet.appendRow([d.date,d.type,d.url,d.brand,d.score,d.keyword,d.summary,d.report]);
return ContentService
.createTextOutput(JSON.stringify({status:'ok'}))
.setMimeType(ContentService.MimeType.JSON);
}
function doGet(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const rows = sheet.getDataRange().getValues();
return ContentService
.createTextOutput(JSON.stringify(rows))
.setMimeType(ContentService.MimeType.JSON);
}
After pasting: Deploy → New Deployment → Web App → Execute as: Me → Who has access: Anyone → Deploy → Copy the URL above.