Loading...
Loading...
Compare original and translation side by side
1. Content Quality ← Foundation: Valuable, accurate, unique content
2. Technical Access ← Can crawlers find and index your pages?
3. Semantic Structure ← Do machines understand your content's meaning?
4. Meta Optimization ← Are your titles/descriptions compelling?
5. Structured Data ← JSON-LD for rich search results
6. Performance ← Core Web Vitals affect rankings1. 内容质量 ← 基础:有价值、准确、独特的内容
2. 技术可访问性 ← 爬虫能否找到并索引你的页面?
3. 语义结构 ← 机器能否理解内容的含义?
4. 元标签优化 ← 标题/描述是否具有吸引力?
5. 结构化数据 ← 用于富搜索结果的JSON-LD
6. 性能优化 ← Core Web Vitals影响排名next.config.jsapp/pages/astro.config.mjssrc/pages/react-router-domgatsby-config.jsgatsby-node.js.htmlpublic/next.config.jsapp/pages/astro.config.mjssrc/pages/react-router-domgatsby-config.jsgatsby-node.jspublic/.html<head>og:titleog:imagetwitter:cardtwitter:image<script type="application/ld+json">sitemap.xml<head>og:titleog:imagetwitter:cardtwitter:image<script type="application/ld+json">sitemap.xml| Page Type | Priority | Key Optimizations |
|---|---|---|
| Landing/Home | Critical | Brand keywords, comprehensive structured data |
| Product/Service | High | Product schema, reviews, pricing |
| Blog/Article | High | Article schema, author, publish date |
| Documentation | Medium | HowTo/FAQ schema, breadcrumbs |
| About/Contact | Medium | Organization schema, local business |
| Legal/Privacy | Low | Basic meta only, often noindex |
| 页面类型 | 优先级 | 核心优化点 |
|---|---|---|
| 首页/落地页 | 最高优先级 | 品牌关键词,全面的结构化数据 |
| 产品/服务页 | 高优先级 | 产品Schema,评论,定价信息 |
| 博客/文章页 | 高优先级 | 文章Schema,作者信息,发布日期 |
| 文档页 | 中优先级 | HowTo/FAQ Schema,面包屑导航 |
| 关于/联系页 | 中优先级 | 组织Schema,本地商家信息 |
| 法律/隐私页 | 低优先级 | 仅基础元标签,通常设置noindex |
references/analysis-checklist.mdreferences/analysis-checklist.md<!-- Required -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{Page Title} | {Site Name}</title>
<meta name="description" content="{150-160 char description}">
<!-- Recommended -->
<link rel="canonical" href="{full canonical URL}">
<meta name="robots" content="index, follow"><!-- Required -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{Page Title} | {Site Name}</title>
<meta name="description" content="{150-160 char description}">
<!-- Recommended -->
<link rel="canonical" href="{full canonical URL}">
<meta name="robots" content="index, follow">{Primary Content} | {Brand}{Primary Content} - {Brand}Homepage: {Brand} - {Value Proposition}
Product: {Product Name} - {Key Benefit} | {Brand}
Article: {Article Title} | {Brand}
Category: {Category} Products | {Brand}
Search: Search Results for "{Query}" | {Brand}{核心内容} | {品牌名}{核心内容} - {品牌名}首页: {品牌名} - {价值主张}
产品页: {产品名} - {核心优势} | {品牌名}
文章页: {文章标题} | {品牌名}
分类页: {分类名} 产品 | {品牌名}
搜索结果页: "{搜索关键词}" 搜索结果 | {品牌名}<meta property="og:type" content="website">
<meta property="og:url" content="{canonical URL}">
<meta property="og:title" content="{title}">
<meta property="og:description" content="{description}">
<meta property="og:image" content="{1200x630 image URL}">
<meta property="og:site_name" content="{Site Name}"><meta property="og:type" content="website">
<meta property="og:url" content="{canonical URL}">
<meta property="og:title" content="{title}">
<meta property="og:description" content="{description}">
<meta property="og:image" content="{1200x630 image URL}">
<meta property="og:site_name" content="{Site Name}"><meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@{handle}">
<meta name="twitter:title" content="{title}">
<meta name="twitter:description" content="{description}">
<meta name="twitter:image" content="{image URL}">references/meta-tags-complete.md<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@{handle}">
<meta name="twitter:title" content="{title}">
<meta name="twitter:description" content="{description}">
<meta name="twitter:image" content="{image URL}">references/meta-tags-complete.md| Content Type | Schema | Rich Result |
|---|---|---|
| Organization info | Organization | Knowledge panel |
| Products | Product | Price, availability, reviews |
| Articles/Blog | Article | Headline, image, date |
| How-to guides | HowTo | Step-by-step in search |
| FAQs | FAQPage | Expandable Q&A |
| Events | Event | Date, location, tickets |
| Recipes | Recipe | Image, time, ratings |
| Local business | LocalBusiness | Maps, hours, contact |
| Breadcrumbs | BreadcrumbList | Navigation path |
| 内容类型 | Schema | 富搜索结果 |
|---|---|---|
| 组织信息 | Organization | 知识面板 |
| 产品 | Product | 价格、库存、评论 |
| 文章/博客 | Article | 标题、图片、日期 |
| 教程指南 | HowTo | 搜索结果中的分步展示 |
| 常见问题 | FAQPage | 可展开的问答 |
| 活动 | Event | 日期、地点、票务 |
| 菜谱 | Recipe | 图片、时长、评分 |
| 本地商家 | LocalBusiness | 地图、营业时间、联系方式 |
| 面包屑导航 | BreadcrumbList | 导航路径 |
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Company Name",
"url": "https://example.com",
"logo": "https://example.com/logo.png",
"sameAs": [
"https://twitter.com/company",
"https://linkedin.com/company/company"
]
}
</script><script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Company Name",
"url": "https://example.com",
"logo": "https://example.com/logo.png",
"sameAs": [
"https://twitter.com/company",
"https://linkedin.com/company/company"
]
}
</script>@graph{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Organization", ... },
{ "@type": "WebSite", ... },
{ "@type": "BreadcrumbList", ... }
]
}references/structured-data-schemas.md@graph{
"@context": "https://schema.org",
"@graph": [
{ "@type": "Organization", ... },
{ "@type": "WebSite", ... },
{ "@type": "BreadcrumbList", ... }
]
}references/structured-data-schemas.md<lastmod>references/framework-implementations.md<lastmod>references/framework-implementations.mdUser-agent: *
Allow: /User-agent: *
Allow: /undefinedundefined| Metric | Target | What It Measures |
|---|---|---|
| LCP | < 2.5s | Largest Contentful Paint (loading) |
| INP | < 200ms | Interaction to Next Paint (interactivity) |
| CLS | < 0.1 | Cumulative Layout Shift (visual stability) |
| 指标 | 目标值 | 衡量内容 |
|---|---|---|
| LCP | < 2.5s | 最大内容绘制(加载性能) |
| INP | < 200ms | 交互到下一次绘制(交互性) |
| CLS | < 0.1 | 累积布局偏移(视觉稳定性) |
<!-- BAD -->
<title>Best Shoes | Buy Shoes | Cheap Shoes | Shoes Online | Shoe Store</title>
<!-- GOOD -->
<title>Running Shoes for Marathon Training | SportShop</title><!-- BAD -->
<img src="product.jpg">
<!-- GOOD -->
<img src="product.jpg" alt="Blue Nike Air Max running shoe, side view">undefined<!-- 错误示例 -->
<title>Best Shoes | Buy Shoes | Cheap Shoes | Shoes Online | Shoe Store</title>
<!-- 正确示例 -->
<title>马拉松训练跑鞋 | SportShop</title><!-- 错误示例 -->
<img src="product.jpg">
<!-- 正确示例 -->
<img src="product.jpg" alt="蓝色Nike Air Max马拉松跑鞋,侧面视图">undefinedWhy bad: Complete deindexing. Check robots.txt carefully.
❌ **Ignoring Mobile**
Not having responsive design or mobile-specific considerations.
Why bad: Google uses mobile-first indexing. Most traffic is mobile.
❌ **Over-Optimization**
Adding structured data for content that doesn't exist.
Why bad: Schema violations can result in penalties. Trust erosion.
❌ **Generic Auto-Generated Content**
```html
<!-- BAD: Template without customization -->
<meta name="description" content="Welcome to our website. We offer great products and services.">为何错误:会导致网站被完全移除索引,需仔细检查robots.txt。
❌ **忽略移动端优化**
未做响应式设计或移动端专属优化。
为何错误:Google采用移动端优先索引,大部分流量来自移动端。
❌ **过度优化**
为不存在的内容添加结构化数据。
为何错误:Schema违规会导致惩罚,损害用户信任。
❌ **通用自动生成内容**
```html
<!-- 错误示例:无定制化的模板内容 -->
<meta name="description" content="欢迎来到我们的网站,我们提供优质的产品和服务。">// app/page.tsx
import { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Page Title | Brand',
description: 'Page description',
openGraph: {
title: 'Page Title',
description: 'Page description',
images: ['/og-image.png'],
},
}// app/page.tsx
import { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Page Title | Brand',
description: 'Page description',
openGraph: {
title: 'Page Title',
description: 'Page description',
images: ['/og-image.png'],
},
}// pages/index.tsx
import Head from 'next/head'
export default function Page() {
return (
<Head>
<title>Page Title | Brand</title>
<meta name="description" content="Page description" />
</Head>
)
}// pages/index.tsx
import Head from 'next/head'
export default function Page() {
return (
<Head>
<title>Page Title | Brand</title>
<meta name="description" content="Page description" />
</Head>
)
}---
// src/pages/index.astro
import Layout from '../layouts/Layout.astro';
---
<Layout
title="Page Title | Brand"
description="Page description"
ogImage="/og-image.png"
/>---
// src/pages/index.astro
import Layout from '../layouts/Layout.astro';
---
<Layout
title="Page Title | Brand"
description="Page description"
ogImage="/og-image.png"
/>import { Helmet } from 'react-helmet';
function Page() {
return (
<Helmet>
<title>Page Title | Brand</title>
<meta name="description" content="Page description" />
</Helmet>
);
}references/framework-implementations.mdimport { Helmet } from 'react-helmet';
function Page() {
return (
<Helmet>
<title>Page Title | Brand</title>
<meta name="description" content="Page description" />
</Helmet>
);
}references/framework-implementations.mdpython scripts/analyze_seo.py <path-to-project>python scripts/analyze_seo.py <path-to-project>python scripts/generate_sitemap.py <path-to-project> --domain https://example.compython scripts/generate_sitemap.py <path-to-project> --domain https://example.com