Matt Valenta

PLS SEO Audit

內容創作v1.0.0
作者:Matt Valenta更新於 2026-05-11pls-seo-audit@clawhub_mattvalenta/pls-seo-audit
SEO 最佳化

據 AlphaMoat 統計,截至 2026-09,PLS SEO Audit 累計下載 3,492 次、獲 2 個星標,在全部 5,078 個 AI 技能中排名第 3,164 位,在「內容創作」分類(362 個)中排名第 214 位。

累計安裝
116
累計下載
3492
星標
2
全站排名
#3,164
全站前 63% · 「內容創作」前 60%
平台累計安裝累計下載星標評論
ClawHub ↗11634511-
SkillHub ↗11434922—

各平台的計數口徑不同,統計時間不一致。

這個技能是做什麼的

該技能涵蓋頁面元素、技術 SEO、內容質量、結構化資料和競品比較,也提供生成審計報告的模板。部分檢查會呼叫外部服務或抓取網站;結果應作為檢查線索,不代表排名保證。 僅提交獲准的公開 URL,保護 API token,使用經審查且固定版本的 Lighthouse。

資料釋出於 2026-10-29

可以用來做什麼

  • 檢查頁面後設資料或內容結構

什麼時候用

  • 需要審查網站 SEO 因素並整理改進建議時

示例提示詞

以下是根據技能文件生成的示例,不代表實際執行結果。

總結該 SEO 審計涵蓋的檢查領域,並說明結果不應被視作排名保證。

月度資料趨勢

累計下載3492
1781270036192026-03 · 累計下載 19082026-05 · 累計下載 28022026-06 · 累計下載 29572026-07 · 累計下載 32402026-08 · 累計下載 33502026-09 · 累計下載 349226-0326-09
星標2
1222026-03 · 星標 12026-05 · 星標 22026-06 · 星標 12026-07 · 星標 22026-08 · 星標 22026-09 · 星標 226-0326-09

2026-09 起統計方法調整:同名技能按作者分別統計,並覆蓋全部技能。圖中虛線為調整前的月份,與之後的資料不直接比較,也不計算跨越調整的增長。

月份累計下載環比星標
2026-093492—2
2026-083350+3.4%2
2026-073240+9.6%2
2026-062957+5.5%1
2026-052802—2
2026-031908—1

SKILL.md 原文

以下是作者釋出的原始檔案,按純文字顯示,本站未做修改或稽核;其中的連結不可點選,命令請核實後再執行。抓取於 2026-10-23。

6.9 KB · ClawHub v1.0.0
---
name: seo-audit
description: Scan content and websites for SEO gaps, identify opportunities to outrank competitors. Use when: (1) Analyzing page SEO, (2) Checking meta tags and structured data, (3) Reviewing content for keyword optimization, (4) Auditing technical SEO factors.
---

# SEO Audit

Comprehensive SEO analysis for content and websites.

## Quick Audit Checklist
展開全部(共 308 行)

### On-Page SEO

```markdown
- [ ] Title tag (50-60 chars, keyword near front)
- [ ] Meta description (150-160 chars, compelling)
- [ ] H1 tag (one per page, includes target keyword)
- [ ] H2-H6 hierarchy (logical structure)
- [ ] Image alt text (descriptive, keyword-relevant)
- [ ] Internal links (3-5 per page minimum)
- [ ] URL structure (short, descriptive, hyphens)
- [ ] Canonical tags (prevent duplicate content)
```

### Technical SEO

```markdown
- [ ] Page speed (<3s load time)
- [ ] Mobile-friendly (responsive design)
- [ ] HTTPS (SSL certificate valid)
- [ ] XML sitemap (submitted to Search Console)
- [ ] Robots.txt (properly configured)
- [ ] Structured data (Schema.org markup)
- [ ] Core Web Vitals (LCP, FID, CLS)
```

### Content Quality

```markdown
- [ ] Keyword in first 100 words
- [ ] Content length matches intent
- [ ] No keyword stuffing (<2% density)
- [ ] Readable (Flesch-Kincaid score)
- [ ] Unique value (not duplicate content)
- [ ] Fresh content (updated regularly)
```

---

## Technical SEO Commands

### Page Speed Analysis

```bash
# Using PageSpeed Insights API
curl "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=https://example.com&strategy=mobile"

# Using lighthouse locally
npx lighthouse https://example.com --view
```

### Check Robots.txt

```bash
curl https://example.com/robots.txt
```

### Check Sitemap

```bash
curl https://example.com/sitemap.xml | xmllint --format -
```

### SSL Certificate Check

```bash
openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates
```

### Mobile-Friendly Test

```bash
# Google's Mobile-Friendly Test API
curl "https://searchconsole.googleapis.com/v1/urlTestingTools/mobileFriendlyTest:run?key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'
```

---

## Content Analysis

### Keyword Density

```python
import re
from collections import Counter

def keyword_density(text, keyword):
    words = re.findall(r'\b\w+\b', text.lower())
    keyword_count = text.lower().count(keyword.lower())
    density = (keyword_count / len(words)) * 100
    return {
        "keyword": keyword,
        "count": keyword_count,
        "total_words": len(words),
        "density": f"{density:.2f}%"
    }

# Target: 1-2% density
```

### Readability Score

```python
import textstat

text = "Your content here..."

flesch = textstat.flesch_reading_ease(text)
# 90-100: Very Easy
# 60-70: Standard
# 0-30: Very Difficult

grade = textstat.flesch_kincaid_grade(text)
# Target: 8-9 for general audience
```

### Content Structure Analysis

```python
from bs4 import BeautifulSoup

def analyze_headings(html):
    soup = BeautifulSoup(html, 'html.parser')
    headings = {
        'h1': soup.find_all('h1'),
        'h2': soup.find_all('h2'),
        'h3': soup.find_all('h3'),
    }
    
    issues = []
    if len(headings['h1']) == 0:
        issues.append("Missing H1 tag")
    elif len(headings['h1']) > 1:
        issues.append("Multiple H1 tags (should be one)")
    
    return {
        "counts": {k: len(v) for k, v in headings.items()},
        "issues": issues
    }
```

---

## Meta Tag Analysis

### Extract Meta Tags

```python
from bs4 import BeautifulSoup
import requests

def audit_meta_tags(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    
    title = soup.find('title')
    description = soup.find('meta', attrs={'name': 'description'})
    keywords = soup.find('meta', attrs={'name': 'keywords'})
    
    issues = []
    
    if not title or len(title.text) < 30:
        issues.append("Title too short or missing")
    elif len(title.text) > 60:
        issues.append("Title too long (>60 chars)")
    
    if not description:
        issues.append("Meta description missing")
    elif len(description.get('content', '')) < 120:
        issues.append("Meta description too short")
    elif len(description.get('content', '')) > 160:
        issues.append("Meta description too long")
    
    return {
        "title": title.text if title else None,
        "description": description.get('content') if description else None,
        "issues": issues
    }
```

---

## Structured Data Check

### Validate Schema Markup

```bash
# Using Google's Rich Results Test
curl "https://searchconsole.googleapis.com/v1/urlTestingTools/richResultsTest:run" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'
```

### Common Schema Types

```json
// Article
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Title",
  "author": {"@type": "Person", "name": "Author"},
  "datePublished": "2026-01-01"
}

// Local Business
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Business Name",
  "address": {"@type": "PostalAddress", "streetAddress": "123 Main"},
  "telephone": "+1-555-555-5555"
}

// FAQ
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Question?",
    "acceptedAnswer": {"@type": "Answer", "text": "Answer"}
  }]
}
```

---

## Competitor Analysis

### Compare Page Metrics

```python
import requests
from bs4 import BeautifulSoup

def compare_seo(target_url, competitor_url):
    def get_metrics(url):
        r = requests.get(url)
        soup = BeautifulSoup(r.text, 'html.parser')
        return {
            "title_len": len(soup.find('title').text) if soup.find('title') else 0,
            "h1_count": len(soup.find_all('h1')),
            "h2_count": len(soup.find_all('h2')),
            "word_count": len(soup.get_text().split()),
            "images": len(soup.find_all('img')),
            "images_no_alt": len([i for i in soup.find_all('img') if not i.get('alt')])
        }
    
    return {
        "target": get_metrics(target_url),
        "competitor": get_metrics(competitor_url)
    }
```

---

## SEO Audit Report Template

```markdown
# SEO Audit Report

## Summary
- **Score:** X/100
- **Critical Issues:** X
- **Warnings:** X
- **Passed:** X

## Critical Issues
1. [Issue description]
   - Impact: [High/Medium/Low]
   - Fix: [Recommended action]

## Technical SEO
| Factor | Status | Notes |
|--------|--------|-------|
| Page Speed | ⚠️ | 4.2s load time |
| Mobile | ✅ | Responsive |
| HTTPS | ✅ | Valid SSL |
| Sitemap | ✅ | Submitted |

## On-Page SEO
| Factor | Status | Notes |
|--------|--------|-------|
| Title | ✅ | 55 chars |
| Meta Desc | ⚠️ | Too short |
| H1 | ✅ | Present |
| Images | ⚠️ | 3 missing alt |

## Recommendations
1. [Priority 1]
2. [Priority 2]
3. [Priority 3]
```

「內容創作」分類下的熱門技能

資料月份:2026-09 · 下載/星標/安裝數聚合自公開技能註冊庫(ClawHub、SkillHub),按月更新。口徑說明見資料方法。