refactor: Reorganize skill numbering and update documentation
Skill Numbering Changes: - 01-03: OurDigital core (was 30-32) - 31-32: Notion tools (was 01-02) - 99_archive: Renamed from _archive for sorting New Files: - AGENTS.md: Claude Code agent routing guide - requirements.txt for 00-claude-code-setting, 32-notion-writer, 43-jamie-youtube-manager Documentation Updates: - CLAUDE.md: Updated skill inventory (23 skills) - AUDIT_REPORT.md: Current completion status (91%) - Archived REFACTORING_PLAN.md (most tasks complete) Removed: - ga-agent-skills/ (moved to separate repo ~/Project/dintel-ga4-agent) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
# SEO Audit Quick Reference Card
|
||||
|
||||
## Instant Commands
|
||||
|
||||
### Site Audits
|
||||
```
|
||||
Perform full SEO audit for https://example.com
|
||||
Check technical SEO for https://example.com
|
||||
Analyze robots.txt for example.com
|
||||
Validate sitemap at https://example.com/sitemap.xml
|
||||
```
|
||||
|
||||
### Schema Operations
|
||||
```
|
||||
Validate schema markup on https://example.com
|
||||
Generate Organization schema for [Company Name], URL: [URL]
|
||||
Generate LocalBusiness schema for [Business Name], Address: [Address], Hours: [Hours]
|
||||
Generate Article schema for [Title], Author: [Name], Published: [Date]
|
||||
Generate FAQPage schema with these Q&As: [Questions and Answers]
|
||||
```
|
||||
|
||||
### Performance
|
||||
```
|
||||
Check Core Web Vitals for https://example.com
|
||||
Analyze page speed issues on https://example.com
|
||||
```
|
||||
|
||||
### Local SEO
|
||||
```
|
||||
Local SEO audit for [Business Name] in [City]
|
||||
Check NAP consistency for [Business Name]
|
||||
```
|
||||
|
||||
### Competitive Analysis
|
||||
```
|
||||
Compare SEO between https://site1.com and https://site2.com
|
||||
Analyze top 10 results for "[keyword]"
|
||||
```
|
||||
|
||||
### Export & Reporting
|
||||
```
|
||||
Export findings to Notion
|
||||
Create SEO audit report for [URL]
|
||||
Summarize audit findings with priorities
|
||||
```
|
||||
|
||||
## Schema Validation Checklist
|
||||
|
||||
### Organization
|
||||
- [ ] name (required)
|
||||
- [ ] url (required)
|
||||
- [ ] logo (recommended)
|
||||
- [ ] sameAs (recommended)
|
||||
- [ ] contactPoint (recommended)
|
||||
|
||||
### LocalBusiness
|
||||
- [ ] name (required)
|
||||
- [ ] address (required)
|
||||
- [ ] telephone (recommended)
|
||||
- [ ] openingHours (recommended)
|
||||
- [ ] geo (recommended)
|
||||
|
||||
### Article
|
||||
- [ ] headline (required)
|
||||
- [ ] author (required)
|
||||
- [ ] datePublished (required)
|
||||
- [ ] image (recommended)
|
||||
- [ ] publisher (recommended)
|
||||
|
||||
### Product
|
||||
- [ ] name (required)
|
||||
- [ ] image (recommended)
|
||||
- [ ] description (recommended)
|
||||
- [ ] offers (recommended)
|
||||
|
||||
### FAQPage
|
||||
- [ ] mainEntity (required)
|
||||
- [ ] Question with name (required)
|
||||
- [ ] acceptedAnswer (required)
|
||||
|
||||
## Core Web Vitals Targets
|
||||
|
||||
| Metric | Good | Improve | Poor |
|
||||
|--------|------|---------|------|
|
||||
| LCP | <2.5s | 2.5-4s | >4s |
|
||||
| CLS | <0.1 | 0.1-0.25 | >0.25 |
|
||||
| INP | <200ms | 200-500ms | >500ms |
|
||||
| FCP | <1.8s | 1.8-3s | >3s |
|
||||
| TTFB | <800ms | 800ms-1.8s | >1.8s |
|
||||
|
||||
## Priority Levels
|
||||
|
||||
| Priority | Examples |
|
||||
|----------|----------|
|
||||
| Critical | Site blocked, 5xx errors, no HTTPS |
|
||||
| High | Missing titles, schema errors, broken links |
|
||||
| Medium | Missing alt text, thin content, no OG tags |
|
||||
| Low | URL structure, minor schema issues |
|
||||
|
||||
## Notion Database ID
|
||||
|
||||
**OurDigital SEO Audit Log**: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
||||
|
||||
## MCP Tools Reference
|
||||
|
||||
| Tool | Usage |
|
||||
|------|-------|
|
||||
| firecrawl_scrape | Single page analysis |
|
||||
| firecrawl_map | Site structure discovery |
|
||||
| firecrawl_crawl | Full site crawl |
|
||||
| perplexity search | Research & competitive analysis |
|
||||
| notion API-post-page | Create findings |
|
||||
| fetch | Get robots.txt, sitemap |
|
||||
@@ -0,0 +1,386 @@
|
||||
# OurDigital SEO Audit - Claude Desktop Project Knowledge
|
||||
|
||||
## Overview
|
||||
|
||||
This project knowledge file enables Claude Desktop to perform comprehensive SEO audits using MCP tools. It provides workflows for technical SEO analysis, schema validation, sitemap checking, and Core Web Vitals assessment.
|
||||
|
||||
## Available MCP Tools
|
||||
|
||||
### Primary Tools
|
||||
| Tool | Purpose |
|
||||
|------|---------|
|
||||
| `firecrawl` | Website crawling, scraping, structured data extraction |
|
||||
| `perplexity` | AI-powered research, competitive analysis |
|
||||
| `notion` | Store audit findings in database |
|
||||
| `fetch` | Fetch web pages and resources |
|
||||
| `sequential-thinking` | Complex multi-step analysis |
|
||||
|
||||
### Tool Usage Patterns
|
||||
|
||||
#### Firecrawl - Web Scraping
|
||||
```
|
||||
firecrawl_scrape: Scrape single page content
|
||||
firecrawl_crawl: Crawl entire website
|
||||
firecrawl_extract: Extract structured data
|
||||
firecrawl_map: Get site structure
|
||||
```
|
||||
|
||||
#### Notion - Output Storage
|
||||
```
|
||||
API-post-search: Find existing databases
|
||||
API-post-database-query: Query database
|
||||
API-post-page: Create finding pages
|
||||
API-patch-page: Update findings
|
||||
```
|
||||
|
||||
## SEO Audit Workflows
|
||||
|
||||
### 1. Full Site Audit
|
||||
|
||||
**User prompt:** "Perform SEO audit for https://example.com"
|
||||
|
||||
**Workflow:**
|
||||
1. Use `firecrawl_scrape` to get homepage content
|
||||
2. Use `firecrawl_map` to discover site structure
|
||||
3. Check robots.txt at /robots.txt
|
||||
4. Check sitemap at /sitemap.xml
|
||||
5. Extract and validate schema markup
|
||||
6. Use `perplexity` for competitive insights
|
||||
7. Store findings in Notion database
|
||||
|
||||
### 2. Schema Markup Validation
|
||||
|
||||
**User prompt:** "Validate schema on https://example.com"
|
||||
|
||||
**Workflow:**
|
||||
1. Use `firecrawl_scrape` with extractSchema option
|
||||
2. Look for JSON-LD in `<script type="application/ld+json">`
|
||||
3. Check for Microdata (`itemscope`, `itemtype`, `itemprop`)
|
||||
4. Validate against schema.org requirements
|
||||
5. Check Rich Results eligibility
|
||||
|
||||
**Schema Types to Check:**
|
||||
- Organization / LocalBusiness
|
||||
- Product / Offer
|
||||
- Article / BlogPosting
|
||||
- FAQPage / HowTo
|
||||
- BreadcrumbList
|
||||
- WebSite / WebPage
|
||||
|
||||
**Required Properties by Type:**
|
||||
|
||||
| Type | Required | Recommended |
|
||||
|------|----------|-------------|
|
||||
| Organization | name, url | logo, sameAs, contactPoint |
|
||||
| LocalBusiness | name, address | telephone, openingHours, geo |
|
||||
| Product | name | image, description, offers, brand |
|
||||
| Article | headline, author, datePublished | image, dateModified, publisher |
|
||||
| FAQPage | mainEntity (Question + Answer) | - |
|
||||
|
||||
### 3. Robots.txt Analysis
|
||||
|
||||
**User prompt:** "Check robots.txt for example.com"
|
||||
|
||||
**Workflow:**
|
||||
1. Fetch https://example.com/robots.txt
|
||||
2. Parse directives:
|
||||
- User-agent rules
|
||||
- Disallow patterns
|
||||
- Allow patterns
|
||||
- Crawl-delay
|
||||
- Sitemap declarations
|
||||
3. Check for issues:
|
||||
- Blocking CSS/JS resources
|
||||
- Missing sitemap reference
|
||||
- Overly restrictive rules
|
||||
|
||||
**Sample Analysis Output:**
|
||||
```
|
||||
Robots.txt Analysis
|
||||
==================
|
||||
User-agents: 3 defined (*, Googlebot, Bingbot)
|
||||
|
||||
Directives:
|
||||
- Disallow: /admin/, /private/, /tmp/
|
||||
- Allow: /public/, /blog/
|
||||
- Sitemap: https://example.com/sitemap.xml
|
||||
|
||||
Issues Found:
|
||||
- WARNING: CSS/JS files may be blocked (/assets/)
|
||||
- OK: Sitemap is declared
|
||||
- INFO: Crawl-delay set to 10s
|
||||
```
|
||||
|
||||
### 4. Sitemap Validation
|
||||
|
||||
**User prompt:** "Validate sitemap at https://example.com/sitemap.xml"
|
||||
|
||||
**Workflow:**
|
||||
1. Fetch sitemap XML
|
||||
2. Parse and validate structure
|
||||
3. Check:
|
||||
- XML syntax validity
|
||||
- URL count (max 50,000)
|
||||
- Lastmod date formats
|
||||
- URL accessibility (sample)
|
||||
4. For sitemap index, check child sitemaps
|
||||
|
||||
**Validation Criteria:**
|
||||
- Valid XML syntax
|
||||
- `<urlset>` or `<sitemapindex>` root element
|
||||
- Each `<url>` has `<loc>` element
|
||||
- `<lastmod>` in W3C datetime format
|
||||
- File size under 50MB uncompressed
|
||||
|
||||
### 5. Core Web Vitals Check
|
||||
|
||||
**User prompt:** "Check Core Web Vitals for https://example.com"
|
||||
|
||||
**Workflow:**
|
||||
1. Use PageSpeed Insights (if API available)
|
||||
2. Or analyze page with firecrawl for common issues
|
||||
3. Check for:
|
||||
- Large images without optimization
|
||||
- Render-blocking resources
|
||||
- Layout shift causes
|
||||
- JavaScript execution time
|
||||
|
||||
**Metrics & Thresholds:**
|
||||
| Metric | Good | Needs Improvement | Poor |
|
||||
|--------|------|-------------------|------|
|
||||
| LCP | < 2.5s | 2.5s - 4.0s | > 4.0s |
|
||||
| CLS | < 0.1 | 0.1 - 0.25 | > 0.25 |
|
||||
| FID/INP | < 100ms/200ms | 100-300ms/200-500ms | > 300ms/500ms |
|
||||
|
||||
### 6. Technical SEO Check
|
||||
|
||||
**User prompt:** "Check technical SEO for https://example.com"
|
||||
|
||||
**Workflow:**
|
||||
1. Check HTTPS implementation
|
||||
2. Verify canonical tags
|
||||
3. Check meta robots tags
|
||||
4. Analyze heading structure (H1-H6)
|
||||
5. Check image alt attributes
|
||||
6. Verify Open Graph / Twitter Cards
|
||||
7. Check mobile-friendliness indicators
|
||||
|
||||
**Checklist:**
|
||||
- [ ] HTTPS enabled
|
||||
- [ ] Single canonical URL per page
|
||||
- [ ] Proper robots meta tags
|
||||
- [ ] One H1 per page
|
||||
- [ ] All images have alt text
|
||||
- [ ] OG tags present (og:title, og:description, og:image)
|
||||
- [ ] Twitter Card tags present
|
||||
- [ ] Viewport meta tag for mobile
|
||||
|
||||
### 7. Local SEO Audit
|
||||
|
||||
**User prompt:** "Local SEO audit for [Business Name] in [Location]"
|
||||
|
||||
**Workflow:**
|
||||
1. Search for business citations with `perplexity`
|
||||
2. Check for LocalBusiness schema
|
||||
3. Verify NAP (Name, Address, Phone) consistency
|
||||
4. Look for review signals
|
||||
5. Check Google Business Profile (manual)
|
||||
|
||||
## Notion Database Integration
|
||||
|
||||
### Default Database
|
||||
- **Database ID**: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
||||
- **Name**: OurDigital SEO Audit Log
|
||||
|
||||
### Database Properties
|
||||
| Property | Type | Values |
|
||||
|----------|------|--------|
|
||||
| Issue | Title | Finding title |
|
||||
| Site | URL | Audited site URL |
|
||||
| Category | Select | Technical SEO, On-page SEO, Content, Local SEO, Performance, Schema/Structured Data, Sitemap, Robots.txt |
|
||||
| Priority | Select | Critical, High, Medium, Low |
|
||||
| Status | Status | Not started, In progress, Done |
|
||||
| URL | URL | Specific page with issue |
|
||||
| Found Date | Date | Discovery date |
|
||||
| Audit ID | Rich Text | Groups findings from same audit |
|
||||
|
||||
### Page Content Template
|
||||
Each finding page should contain:
|
||||
|
||||
```markdown
|
||||
## Description
|
||||
[Detailed explanation of the issue]
|
||||
|
||||
## Impact
|
||||
[Business/ranking impact with warning callout]
|
||||
|
||||
## Recommendation
|
||||
[Actionable solution with lightbulb callout]
|
||||
```
|
||||
|
||||
### Creating Findings
|
||||
Use Notion MCP to create pages:
|
||||
1. Query database to check for existing entries
|
||||
2. Create new page with properties
|
||||
3. Add content blocks (Description, Impact, Recommendation)
|
||||
|
||||
## Schema Markup Templates
|
||||
|
||||
### Organization Schema
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "[Company Name]",
|
||||
"url": "[Website URL]",
|
||||
"logo": "[Logo URL]",
|
||||
"sameAs": [
|
||||
"[Social Media URLs]"
|
||||
],
|
||||
"contactPoint": {
|
||||
"@type": "ContactPoint",
|
||||
"telephone": "[Phone]",
|
||||
"contactType": "customer service"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### LocalBusiness Schema
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "LocalBusiness",
|
||||
"name": "[Business Name]",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "[Street]",
|
||||
"addressLocality": "[City]",
|
||||
"addressCountry": "[Country Code]"
|
||||
},
|
||||
"telephone": "[Phone]",
|
||||
"openingHoursSpecification": [{
|
||||
"@type": "OpeningHoursSpecification",
|
||||
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
|
||||
"opens": "09:00",
|
||||
"closes": "18:00"
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
### Article Schema
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Article",
|
||||
"headline": "[Article Title]",
|
||||
"author": {
|
||||
"@type": "Person",
|
||||
"name": "[Author Name]"
|
||||
},
|
||||
"datePublished": "[ISO Date]",
|
||||
"dateModified": "[ISO Date]",
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "[Publisher Name]",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "[Logo URL]"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### FAQPage Schema
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "FAQPage",
|
||||
"mainEntity": [{
|
||||
"@type": "Question",
|
||||
"name": "[Question Text]",
|
||||
"acceptedAnswer": {
|
||||
"@type": "Answer",
|
||||
"text": "[Answer Text]"
|
||||
}
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
### BreadcrumbList Schema
|
||||
```json
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1,
|
||||
"name": "Home",
|
||||
"item": "[Homepage URL]"
|
||||
}, {
|
||||
"@type": "ListItem",
|
||||
"position": 2,
|
||||
"name": "[Category]",
|
||||
"item": "[Category URL]"
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
## Common SEO Issues Reference
|
||||
|
||||
### Critical Priority
|
||||
- Site not accessible (5xx errors)
|
||||
- Robots.txt blocking entire site
|
||||
- No HTTPS implementation
|
||||
- Duplicate content across domain
|
||||
- Sitemap returning errors
|
||||
|
||||
### High Priority
|
||||
- Missing or duplicate title tags
|
||||
- No meta descriptions
|
||||
- Schema markup errors
|
||||
- Broken internal links
|
||||
- Missing canonical tags
|
||||
- Core Web Vitals failing
|
||||
|
||||
### Medium Priority
|
||||
- Missing alt text on images
|
||||
- Thin content pages
|
||||
- Missing Open Graph tags
|
||||
- Suboptimal heading structure
|
||||
- Missing breadcrumb schema
|
||||
|
||||
### Low Priority
|
||||
- Missing Twitter Card tags
|
||||
- Suboptimal URL structure
|
||||
- Missing FAQ schema
|
||||
- Review schema not implemented
|
||||
|
||||
## Quick Commands Reference
|
||||
|
||||
| Task | Prompt |
|
||||
|------|--------|
|
||||
| Full audit | "Perform SEO audit for [URL]" |
|
||||
| Schema check | "Validate schema on [URL]" |
|
||||
| Sitemap check | "Validate sitemap at [URL]" |
|
||||
| Robots.txt | "Analyze robots.txt for [domain]" |
|
||||
| Performance | "Check Core Web Vitals for [URL]" |
|
||||
| Generate schema | "Generate [type] schema for [details]" |
|
||||
| Export to Notion | "Export findings to Notion" |
|
||||
| Local SEO | "Local SEO audit for [business] in [location]" |
|
||||
| Competitive | "Compare SEO of [URL1] vs [URL2]" |
|
||||
|
||||
## Tips for Best Results
|
||||
|
||||
1. **Be specific** - Provide full URLs including https://
|
||||
2. **One site at a time** - Audit one domain per session for clarity
|
||||
3. **Check Notion** - Review existing findings before creating duplicates
|
||||
4. **Prioritize fixes** - Focus on Critical/High issues first
|
||||
5. **Validate changes** - Re-audit after implementing fixes
|
||||
|
||||
## Limitations
|
||||
|
||||
- No direct Python script execution (use MCP tools instead)
|
||||
- PageSpeed API requires separate configuration
|
||||
- Google Search Console data requires authenticated access
|
||||
- GA4 data requires service account setup
|
||||
- Large sites may require multiple sessions
|
||||
@@ -0,0 +1,230 @@
|
||||
# Claude Desktop SEO Audit - Setup Guide
|
||||
|
||||
## Prerequisites
|
||||
|
||||
### 1. Claude Desktop Application
|
||||
- Download from https://claude.ai/download
|
||||
- Sign in with your Anthropic account
|
||||
- Pro subscription recommended for extended usage
|
||||
|
||||
### 2. Required MCP Servers
|
||||
|
||||
Configure these MCP servers in Claude Desktop settings:
|
||||
|
||||
#### Firecrawl (Web Scraping)
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"firecrawl": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "firecrawl-mcp"],
|
||||
"env": {
|
||||
"FIRECRAWL_API_KEY": "your-firecrawl-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Get API key from: https://firecrawl.dev
|
||||
|
||||
#### Notion (Database Storage)
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"notion": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-notion"],
|
||||
"env": {
|
||||
"NOTION_API_KEY": "your-notion-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Get API key from: https://www.notion.so/my-integrations
|
||||
|
||||
#### Perplexity (Research)
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"perplexity": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "perplexity-mcp"],
|
||||
"env": {
|
||||
"PERPLEXITY_API_KEY": "your-perplexity-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Get API key from: https://www.perplexity.ai/settings/api
|
||||
|
||||
### 3. Notion Database Setup
|
||||
|
||||
#### Option A: Use Existing Database
|
||||
The OurDigital SEO Audit Log database is already configured:
|
||||
- **Database ID**: `2c8581e5-8a1e-8035-880b-e38cefc2f3ef`
|
||||
|
||||
Ensure your Notion integration has access to this database.
|
||||
|
||||
#### Option B: Create New Database
|
||||
Create a database with these properties:
|
||||
|
||||
| Property | Type | Options |
|
||||
|----------|------|---------|
|
||||
| Issue | Title | - |
|
||||
| Site | URL | - |
|
||||
| Category | Select | Technical SEO, On-page SEO, Content, Local SEO, Performance, Schema/Structured Data, Sitemap, Robots.txt |
|
||||
| Priority | Select | Critical, High, Medium, Low |
|
||||
| Status | Status | Not started, In progress, Done |
|
||||
| URL | URL | - |
|
||||
| Found Date | Date | - |
|
||||
| Audit ID | Rich Text | - |
|
||||
|
||||
## Configuration File Location
|
||||
|
||||
### macOS
|
||||
```
|
||||
~/Library/Application Support/Claude/claude_desktop_config.json
|
||||
```
|
||||
|
||||
### Windows
|
||||
```
|
||||
%APPDATA%\Claude\claude_desktop_config.json
|
||||
```
|
||||
|
||||
### Linux
|
||||
```
|
||||
~/.config/Claude/claude_desktop_config.json
|
||||
```
|
||||
|
||||
## Complete Configuration Example
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"firecrawl": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "firecrawl-mcp"],
|
||||
"env": {
|
||||
"FIRECRAWL_API_KEY": "fc-your-key-here"
|
||||
}
|
||||
},
|
||||
"notion": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-notion"],
|
||||
"env": {
|
||||
"NOTION_API_KEY": "ntn_your-key-here"
|
||||
}
|
||||
},
|
||||
"perplexity": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "perplexity-mcp"],
|
||||
"env": {
|
||||
"PERPLEXITY_API_KEY": "pplx-your-key-here"
|
||||
}
|
||||
},
|
||||
"fetch": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "@modelcontextprotocol/server-fetch"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Adding Project Knowledge
|
||||
|
||||
### Step 1: Create a Project
|
||||
1. Open Claude Desktop
|
||||
2. Click on the project selector (top left)
|
||||
3. Click "New Project"
|
||||
4. Name it "SEO Audit"
|
||||
|
||||
### Step 2: Add Knowledge Files
|
||||
1. In your project, click the paperclip icon or "Add content"
|
||||
2. Select "Add files"
|
||||
3. Add these files from `~/.claude/desktop-projects/seo-audit/`:
|
||||
- `SEO_AUDIT_KNOWLEDGE.md` (main knowledge file)
|
||||
- `QUICK_REFERENCE.md` (quick commands)
|
||||
|
||||
### Step 3: Verify Setup
|
||||
Start a new conversation and ask:
|
||||
```
|
||||
What SEO audit capabilities do you have?
|
||||
```
|
||||
|
||||
Claude should describe the available audit features.
|
||||
|
||||
## Testing the Setup
|
||||
|
||||
### Test 1: Firecrawl
|
||||
```
|
||||
Scrape https://example.com and show me the page structure
|
||||
```
|
||||
|
||||
### Test 2: Notion
|
||||
```
|
||||
Search for "SEO Audit" in Notion
|
||||
```
|
||||
|
||||
### Test 3: Perplexity
|
||||
```
|
||||
Research current SEO best practices for 2024
|
||||
```
|
||||
|
||||
### Test 4: Full Audit
|
||||
```
|
||||
Perform a quick SEO audit for https://blog.ourdigital.org
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### MCP Server Not Connecting
|
||||
1. Restart Claude Desktop
|
||||
2. Check config file JSON syntax
|
||||
3. Verify API keys are correct
|
||||
4. Check Node.js is installed (`node --version`)
|
||||
|
||||
### Notion Permission Error
|
||||
1. Go to Notion integration settings
|
||||
2. Add the database to integration access
|
||||
3. Ensure integration has read/write permissions
|
||||
|
||||
### Firecrawl Rate Limit
|
||||
1. Wait a few minutes between requests
|
||||
2. Consider upgrading Firecrawl plan
|
||||
3. Use `firecrawl_map` for discovery, then targeted scrapes
|
||||
|
||||
### Knowledge Files Not Loading
|
||||
1. Ensure files are in supported formats (.md, .txt)
|
||||
2. Keep file sizes under 10MB
|
||||
3. Restart the project conversation
|
||||
|
||||
## Usage Tips
|
||||
|
||||
1. **Start with Quick Reference** - Use the commands from QUICK_REFERENCE.md
|
||||
2. **One site per conversation** - Keep context focused
|
||||
3. **Export regularly** - Save findings to Notion frequently
|
||||
4. **Check existing findings** - Query Notion before creating duplicates
|
||||
5. **Prioritize Critical issues** - Fix showstoppers first
|
||||
|
||||
## Differences from Claude Code Version
|
||||
|
||||
| Feature | Claude Code | Claude Desktop |
|
||||
|---------|-------------|----------------|
|
||||
| Python Scripts | Direct execution | Not available |
|
||||
| Google APIs | Service account auth | Manual or via MCP |
|
||||
| File System | Full access | Limited to uploads |
|
||||
| Automation | Bash commands | MCP tools only |
|
||||
| Scheduling | Possible via cron | Manual only |
|
||||
|
||||
## Support
|
||||
|
||||
For issues with:
|
||||
- **Claude Desktop**: https://support.anthropic.com
|
||||
- **Firecrawl**: https://docs.firecrawl.dev
|
||||
- **Notion API**: https://developers.notion.com
|
||||
- **MCP Protocol**: https://modelcontextprotocol.io
|
||||
Reference in New Issue
Block a user