Loading...
Loading...
Compare original and translation side by side
ask_user_input_v0({
"questions": [
{
"question": "Select audit mode:",
"type": "single_select",
"options": [
"Normal - Core checks (technical, content, mobile, UX, security, accessibility)",
"Strict - Normal + performance, links, crawlability, schema, URL structure",
"Expert - All checks including E-E-A-T, legal, social, local SEO, video"
]
},
{
"question": "Select operation type:",
"type": "single_select",
"options": [
"Complete Audit - Full codebase crawl with cross-reference analysis",
"PR Review - Uncommitted changes only"
]
}
]
})AWESOME! The CLANKER is now... Loading... bEEp BooP 🤖ask_user_input_v0({
"questions": [
{
"question": "Select audit mode:",
"type": "single_select",
"options": [
"Normal - Core checks (technical, content, mobile, UX, security, accessibility)",
"Strict - Normal + performance, links, crawlability, schema, URL structure",
"Expert - All checks including E-E-A-T, legal, social, local SEO, video"
]
},
{
"question": "Select operation type:",
"type": "single_select",
"options": [
"Complete Audit - Full codebase crawl with cross-reference analysis",
"PR Review - Uncommitted changes only"
]
}
]
})太棒了!CLANKER正在...加载中...哔 啵 🤖git statusgit diffgit statusgit diffundefinedundefined
**Title Tags** (Error: 10)
```python
**标题标签**(错误等级:10)
```python<!-- Check: Missing or incorrect canonical tags -->
<link rel="canonical" href="http://example.com/page"> <!-- ❌ HTTP not HTTPS -->
<link rel="canonical" href="https://example.com/page"> <!-- ✅ Correct --><!-- Check: Missing OG tags for social sharing -->
<meta property="og:title" content="Page Title">
<meta property="og:description" content="Description">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:url" content="https://example.com/page"><!-- 检查:缺失或错误的规范标签 -->
<link rel="canonical" href="http://example.com/page"> <!-- ❌ 使用HTTP而非HTTPS -->
<link rel="canonical" href="https://example.com/page"> <!-- ✅ 正确 --><!-- 检查:缺失用于社交分享的OG标签 -->
<meta property="og:title" content="Page Title">
<meta property="og:description" content="Description">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:url" content="https://example.com/page">undefinedundefined
**Redirect Chains** (Warning: 7)
```python
**重定向链**(警告等级:7)
```python
**Mobile Friendliness** (Error: 9)
```html
<!-- Check: Viewport meta, responsive design -->
<!-- Missing viewport: -->
❌ No viewport tag
<!-- Correct: -->
✅ <meta name="viewport" content="width=device-width, initial-scale=1"><!-- Check: HTTP resources on HTTPS pages -->
<script src="http://example.com/script.js"> <!-- ❌ HTTP on HTTPS page -->
<script src="https://example.com/script.js"> <!-- ✅ HTTPS -->
**移动端适配性**(错误等级:9)
```html
<!-- 检查:视口元标签、响应式设计 -->
<!-- 缺失视口标签: -->
❌ 无viewport标签
<!-- 正确写法: -->
✅ <meta name="viewport" content="width=device-width, initial-scale=1"><!-- 检查:HTTPS页面中存在HTTP资源 -->
<script src="http://example.com/script.js"> <!-- ❌ HTTPS页面使用HTTP资源 -->
<script src="https://example.com/script.js"> <!-- ✅ 使用HTTPS -->undefinedundefined
**Resource Usage** (Warning: 6)
```javascript
// Check: Unused dependencies, duplicate code
// Example:
import { huge-library } from 'library'; // ❌ Full library import
import { specific-function } from 'library'; // ✅ Tree-shaking friendlyundefined
**资源使用**(警告等级:6)
```javascript
// 检查:未使用的依赖、重复代码
// 示例:
import { huge-library } from 'library'; // ❌ 导入完整库
import { specific-function } from 'library'; // ✅ 支持摇树优化undefined
**Image Optimization** (Warning: 8)
```html
<!-- Check: Format, size, lazy loading -->
<img src="photo.png" width="2000"> <!-- ❌ Large PNG, not optimized -->
<img src="photo.webp" loading="lazy" width="800"> <!-- ✅ WebP, lazy load -->
**图片优化**(警告等级:8)
```html
<!-- 检查:格式、大小、懒加载 -->
<img src="photo.png" width="2000"> <!-- ❌ 大型PNG,未优化 -->
<img src="photo.webp" loading="lazy" width="800"> <!-- ✅ WebP格式,懒加载 --><!-- Check: H1 uniqueness, logical hierarchy -->
<h1>Title</h1>
<h3>Subtitle</h3> <!-- ❌ Skipped H2 -->
<h1>Title</h1>
<h2>Section</h2> <!-- ✅ Correct order --><!-- Check: Missing alt, decorative images -->
<img src="photo.jpg"> <!-- ❌ Missing alt -->
<img src="photo.jpg" alt=""> <!-- ✅ Decorative (intentionally empty) -->
<img src="photo.jpg" alt="Red sports car on mountain road"> <!-- ✅ Descriptive -->undefined<!-- 检查:H1唯一性、逻辑层级 -->
<h1>Title</h1>
<h3>Subtitle</h3> <!-- ❌ 跳过H2 -->
<h1>Title</h1>
<h2>Section</h2> <!-- ✅ 正确顺序 --><!-- 检查:缺失alt文本、装饰性图片 -->
<img src="photo.jpg"> <!-- ❌ 缺失alt -->
<img src="photo.jpg" alt=""> <!-- ✅ 装饰性图片(故意留空) -->
<img src="photo.jpg" alt="Red sports car on mountain road"> <!-- ✅ 描述性文本 -->undefinedundefinedundefinedundefinedundefined
**HTTPS Usage** (Error: 10)
```python
**HTTPS使用**(错误等级:10)
```python
**Security Headers** (Warning: 8)
```python
**安全头**(警告等级:8)
```python
**Dependencies** (Warning: 7)
```python
**依赖项**(警告等级:7)
```pythonundefinedundefined/* Check: WCAG AA compliance (4.5:1 for normal text) */
.text { color: #777; background: #fff; } /* ❌ 4.47:1 - Fails AA */
.text { color: #666; background: #fff; } /* ✅ 5.74:1 - Passes AA */<!-- Check: Tab order, focus indicators -->
<div onclick="submit()"> <!-- ❌ Not keyboard accessible -->
<button onclick="submit()"> <!-- ✅ Keyboard accessible -->
<a href="#" style="outline: none;"> <!-- ❌ Removed focus outline -->
<a href="#"> <!-- ✅ Default focus visible --><!-- Check: Proper ARIA usage -->
<button>⚙️</button> <!-- ❌ Icon only, no label -->
<button aria-label="Settings">⚙️</button> <!-- ✅ Accessible label --><!-- Check: Every input has associated label -->
<input type="text" placeholder="Email"> <!-- ❌ Placeholder not label -->
<label for="email">Email</label>
<input type="text" id="email"> <!-- ✅ Proper label -->/* 检查:符合WCAG AA标准(普通文本对比度4.5:1) */
.text { color: #777; background: #fff; } /* ❌ 4.47:1 - 未通过AA标准 */
.text { color: #666; background: #fff; } /* ✅ 5.74:1 - 通过AA标准 */<!-- 检查:Tab顺序、焦点指示器 -->
<div onclick="submit()"> <!-- ❌ 无法通过键盘访问 -->
<button onclick="submit()"> <!-- ✅ 可通过键盘访问 -->
<a href="#" style="outline: none;"> <!-- ❌ 移除了焦点轮廓 -->
<a href="#"> <!-- ✅ 默认可见焦点 --><!-- 检查:正确使用ARIA -->
<button>⚙️</button> <!-- ❌ 仅图标,无标签 -->
<button aria-label="Settings">⚙️</button> <!-- ✅ 可访问标签 --><!-- 检查:每个输入框都有关联标签 -->
<input type="text" placeholder="Email"> <!-- ❌ 占位符不能替代标签 -->
<label for="email">Email</label>
<input type="text" id="email"> <!-- ✅ 正确关联标签 -->// Check: Client-side validation, error messages
// Example:
<input type="email"> // ✅ HTML5 validation
<input type="text"> // ❌ No validation for email field
// Error messages:
"Invalid" // ❌ Not helpful
"Please enter a valid email address" // ✅ Clear guidance// Check: User-friendly error pages, fallbacks
try {
fetchData();
} catch (e) {
console.log(e); // ❌ Silent failure
}
try {
fetchData();
} catch (e) {
showErrorMessage("Unable to load data. Please try again."); // ✅ User feedback
}undefined// 检查:客户端验证、错误提示
// 示例:
<input type="email"> // ✅ HTML5原生验证
<input type="text"> // ❌ 邮箱字段无验证
// 错误提示:
"Invalid" // ❌ 无帮助性
"Please enter a valid email address" // ✅ 清晰指引// 检查:用户友好的错误页面、降级方案
try {
fetchData();
} catch (e) {
console.log(e); // ❌ 静默失败
}
try {
fetchData();
} catch (e) {
showErrorMessage("Unable to load data. Please try again."); // ✅ 用户反馈
}undefinedundefinedundefined<!-- Check: All internal links resolve -->
<a href="/deleted-page">Link</a> <!-- ❌ 404 -->
<a href="/existing-page">Link</a> <!-- ✅ Valid -->undefined<!-- 检查:所有内部链接均可访问 -->
<a href="/deleted-page">Link</a> <!-- ❌ 404错误 -->
<a href="/existing-page">Link</a> <!-- ✅ 有效链接 -->undefined
**Anchor Text** (Notice: 4)
```html
<!-- Check: Descriptive anchor text -->
<a href="/page">Click here</a> <!-- ❌ Generic -->
<a href="/page">Read our privacy policy</a> <!-- ✅ Descriptive -->
**锚文本**(提示等级:4)
```html
<!-- 检查:描述性锚文本 -->
<a href="/page">Click here</a> <!-- ❌ 通用化 -->
<a href="/page">Read our privacy policy</a> <!-- ✅ 描述性文本 -->undefinedundefined
**Experience** (Notice: 5)
```python
**体验度**(提示等级:5)
```python
**Authority** (Notice: 6)
```python
**权威性**(提示等级:6)
```python
**Trustworthiness** (Warning: 7)
```python
**可信度**(警告等级:7)
```pythonundefinedundefinedundefinedundefined
**Sitemap.xml** (Warning: 6)
```xml
<!-- Check: Valid sitemap, submitted to search engines -->
<!-- Missing: -->
❌ No sitemap.xml found
<!-- Valid: -->
✅ sitemap.xml with < 50,000 URLs, submitted to GSC<!-- Check: Proper indexing directives -->
<meta name="robots" content="noindex, nofollow"> <!-- ❌ Blocking important page -->
<meta name="robots" content="index, follow"> <!-- ✅ Allowing indexing -->
**Sitemap.xml**(警告等级:6)
```xml
<!-- 检查:有效的站点地图,已提交至搜索引擎 -->
<!-- 缺失: -->
❌ 未找到sitemap.xml
<!-- 有效配置: -->
✅ sitemap.xml包含<50000个URL,已提交至GSC<!-- 检查:正确的索引指令 -->
<meta name="robots" content="noindex, nofollow"> <!-- ❌ 阻止重要页面索引 -->
<meta name="robots" content="index, follow"> <!-- ✅ 允许索引 --><!-- Check: Valid Schema.org markup -->
<!-- Missing: -->
❌ No structured data on product page
<!-- Valid: -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Product Name",
"offers": {
"@type": "Offer",
"price": "29.99",
"priceCurrency": "USD"
}
}
</script>undefined<!-- 检查:有效的Schema.org标记 -->
<!-- 缺失: -->
❌ 产品页面无结构化数据
<!-- 有效配置: -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Product Name",
"offers": {
"@type": "Offer",
"price": "29.99",
"priceCurrency": "USD"
}
}
</script>undefinedundefinedundefinedundefinedundefined
**Terms of Service** (Warning: 7)
```python
**服务条款**(警告等级:7)
```python
**Cookie Consent** (Warning: 8)
```javascript
// Check: GDPR/CCPA cookie consent
// Required:
- Consent banner before tracking
- Opt-out mechanism
- Clear cookie policyundefined
**Cookie同意**(警告等级:8)
```javascript
// 检查:符合GDPR/CCPA的Cookie同意机制undefined
**可访问性合规**(警告等级:9)
```python<!-- Check: Complete OG tags, correct image dimensions -->
<meta property="og:image" content="small.jpg" width="200"> <!-- ❌ Too small -->
<meta property="og:image" content="large.jpg" width="1200" height="630"> <!-- ✅ Optimal --><!-- Check: Twitter card meta tags -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Page Title">
<meta name="twitter:image" content="https://example.com/image.jpg">undefinedundefinedundefined<!-- 检查:完整的OG标签,正确的图片尺寸 -->
<meta property="og:image" content="small.jpg" width="200"> <!-- ❌ 尺寸过小 -->
<meta property="og:image" content="large.jpg" width="1200" height="630"> <!-- ✅ 最优尺寸 --><!-- 检查:Twitter卡片元标签 -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Page Title">
<meta name="twitter:image" content="https://example.com/image.jpg">undefinedundefinedundefined
**Hyphens vs Underscores** (Notice: 4)
```pythonundefined
**Keywords in URL** (Notice: 5)
```python
**连字符vs下划线**(提示等级:4)
```pythonundefined
**URL中的关键词**(提示等级:5)
```pythonundefinedundefinedundefined
**Geo Metadata** (Warning: 6)
```html
<!-- Check: Geographic targeting -->
<meta name="geo.region" content="US-CA">
<meta name="geo.placename" content="San Francisco">
<meta name="geo.position" content="37.774929;-122.419415">{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Business Name",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94102"
},
"telephone": "+1-415-555-0100"
}{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Video Title",
"description": "Video description",
"thumbnailUrl": "https://example.com/thumbnail.jpg",
"uploadDate": "2024-01-15",
"duration": "PT2M30S"
}<!-- Check: Captions, transcripts -->
<video>
<source src="video.mp4">
<track kind="captions" src="captions.vtt"> <!-- ✅ Captions -->
</video>
**地理元数据**(警告等级:6)
```html
<!-- 检查:地理定位 -->
<meta name="geo.region" content="US-CA">
<meta name="geo.placename" content="San Francisco">
<meta name="geo.position" content="37.774929;-122.419415">{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Business Name",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94102"
},
"telephone": "+1-415-555-0100"
}// Check: Imported but never used
import { unused } from 'library'; // ❌ Never referenced
import { used } from 'library';
const result = used(); // ✅ Used// Check: Code after return/throw
function example() {
return true;
console.log("Never runs"); // ❌ Unreachable
}undefined{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Video Title",
"description": "Video description",
"thumbnailUrl": "https://example.com/thumbnail.jpg",
"uploadDate": "2024-01-15",
"duration": "PT2M30S"
}<!-- 检查:字幕、文字转录 -->
<video>
<source src="video.mp4">
<track kind="captions" src="captions.vtt"> <!-- ✅ 字幕 -->
</video>undefined// 检查:已导入但从未使用
import { unused } from 'library'; // ❌ 未引用
import { used } from 'library';
const result = used(); // ✅ 已使用// 检查:return/throw后的代码
function example() {
return true;
console.log("Never runs"); // ❌ 不可达
}undefined// Check: Consistent camelCase, PascalCase, snake_case
const user_name = ""; // ❌ Inconsistent with camelCase
const userName = ""; // ✅ Consistentundefinedundefinedundefined// 检查:一致的驼峰式、帕斯卡式、蛇形命名
const user_name = ""; // ❌ 与驼峰式不一致
const userName = ""; // ✅ 一致性命名undefinedundefinedOverall Score: 73/100 🟡
Calculation:
- Critical errors: -5 points each
- Warnings: -2 points each
- Notices: -0.5 points each📊 Category Scores:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SEO ████████░░ 82/100
Technical ██████░░░░ 65/100
Performance ███████░░░ 71/100
Security █████░░░░░ 54/100 ⚠️
Accessibility ████████░░ 78/100
UX ███████░░░ 73/100
Content ████████░░ 81/100Overall Score: 73/100 🟡
计算方式:
- 严重错误:每项扣5分
- 警告:每项扣2分
- 提示:每项扣0.5分🔴 Critical (10): 3 issues
🟡 Warnings (7-9): 12 issues
🔵 Notices (1-6): 8 issues
Top Priority Fixes:
1. [Error-10] Leaked API keys in config.js
2. [Error-10] Missing HTTPS on checkout flow
3. [Error-9] 15 broken internal links📊 类别评分:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SEO ████████░░ 82/100
Technical ██████░░░░ 65/100
Performance ███████░░░ 71/100
Security █████░░░░░ 54/100 ⚠️
Accessibility ████████░░ 78/100
UX ███████░░░ 73/100
Content ████████░░ 81/100━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 SECURITY: Leaked Secrets (Error, Rank: 10)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Issue: Hardcoded API key found in codebase
File: src/config.js:12
Code:
const API_KEY = "sk-1234567890abcdef";
Fix:
const API_KEY = process.env.API_KEY;
Impact: Critical security vulnerability
Priority: Fix immediately
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━🔴 严重问题(10级):3个
🟡 警告(7-9级):12个
🔵 提示(1-6级):8个
最高优先级修复:
1. [Error-10] config.js中存在泄露的API密钥
2. [Error-10] 结账流程未使用HTTPS
3. [Error-9] 15个失效内部链接Quick Wins (< 1 hour):
✓ Add missing alt text to 8 images
✓ Fix 3 broken internal links
✓ Add viewport meta tag to mobile.html
High Impact (1-4 hours):
✓ Implement HTTPS across all pages
✓ Add security headers to server config
✓ Optimize 12 large images to WebP
Strategic (> 4 hours):
✓ Implement comprehensive Schema.org markup
✓ Build XML sitemap and submit to GSC
✓ Conduct full accessibility audit and remediation━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔴 安全:密钥泄露(错误等级:10)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
问题:代码库中发现硬编码的API密钥
文件:src/config.js:12
代码:
const API_KEY = "sk-1234567890abcdef";
修复方案:
const API_KEY = process.env.API_KEY;
影响:严重安全漏洞
优先级:立即修复
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Total Files: 247
Analyzed: 189
Skipped: 58 (node_modules, .git, build artifacts)
File Types:
- HTML: 34 files
- CSS: 28 files
- JavaScript: 67 files
- Images: 45 files
- Other: 15 files快速修复(<1小时):
✓ 为8张图片添加缺失的alt文本
✓ 修复3个失效内部链接
✓ 为mobile.html添加视口元标签
高影响修复(1-4小时):
✓ 所有页面启用HTTPS
✓ 为服务器配置添加安全头
✓ 将12张大型图片优化为WebP格式
战略性优化(>4小时):
✓ 实现完整的Schema.org标记
✓ 生成XML站点地图并提交至GSC
✓ 进行全面的可访问性审计与修复[Severity-Rank] Category: Issue Title
File: path/to/file.ext:line
Problem: Brief description
Example: Code snippet
Fix: Corrected code
Impact: User/SEO/Security impact
Priority: When to fix总文件数:247
已分析:189
已跳过:58(node_modules、.git、构建产物)
文件类型:
- HTML:34个
- CSS:28个
- JavaScript:67个
- 图片:45个
- 其他:15个[严重等级-分数] 类别:问题标题
文件:path/to/file.ext:行号
问题:简要描述
示例:代码片段
修复:修正后的代码
影响:对用户/SEO/安全的影响
优先级:修复时间建议undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined