@elsahafy/ux-mcp-server 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +190 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1766 -0
- package/knowledge/animation.json +469 -0
- package/knowledge/dark-mode.json +212 -0
- package/knowledge/design-tokens.json +286 -0
- package/knowledge/error-messages.json +307 -0
- package/knowledge/i18n.json +464 -0
- package/knowledge/nielsen-heuristics.json +253 -0
- package/knowledge/performance.json +347 -0
- package/knowledge/react-patterns.json +353 -0
- package/knowledge/responsive-design.json +258 -0
- package/knowledge/seo.json +518 -0
- package/knowledge/ui-patterns.json +344 -0
- package/knowledge/wcag-guidelines.json +201 -0
- package/package.json +62 -0
|
@@ -0,0 +1,518 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SEO Best Practices",
|
|
3
|
+
"description": "Search engine optimization guidelines, meta tags, and structured data",
|
|
4
|
+
"meta_tags": {
|
|
5
|
+
"essential": {
|
|
6
|
+
"title": {
|
|
7
|
+
"tag": "<title>Page Title | Site Name</title>",
|
|
8
|
+
"best_practices": [
|
|
9
|
+
"50-60 characters optimal",
|
|
10
|
+
"Include primary keyword",
|
|
11
|
+
"Unique for each page",
|
|
12
|
+
"Front-load important keywords",
|
|
13
|
+
"Include brand name at end"
|
|
14
|
+
],
|
|
15
|
+
"bad_examples": [
|
|
16
|
+
"Home - Too generic",
|
|
17
|
+
"Best products ever made in 2026 - Too long",
|
|
18
|
+
"Products Products Products - Keyword stuffing"
|
|
19
|
+
],
|
|
20
|
+
"good_examples": [
|
|
21
|
+
"Wireless Headphones - Noise Cancelling | Brand",
|
|
22
|
+
"Contact Us - Get in Touch | Company Name"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"description": {
|
|
26
|
+
"tag": "<meta name='description' content='Page description'>",
|
|
27
|
+
"best_practices": [
|
|
28
|
+
"150-160 characters optimal",
|
|
29
|
+
"Include primary keyword naturally",
|
|
30
|
+
"Compelling call-to-action",
|
|
31
|
+
"Unique for each page",
|
|
32
|
+
"Accurately describe page content"
|
|
33
|
+
],
|
|
34
|
+
"bad": "This is the homepage",
|
|
35
|
+
"good": "Shop premium wireless headphones with active noise cancellation. Free shipping on orders over $50. 30-day money-back guarantee."
|
|
36
|
+
},
|
|
37
|
+
"viewport": {
|
|
38
|
+
"tag": "<meta name='viewport' content='width=device-width, initial-scale=1'>",
|
|
39
|
+
"required": "Yes - affects mobile SEO",
|
|
40
|
+
"note": "Mobile-first indexing requires responsive design"
|
|
41
|
+
},
|
|
42
|
+
"charset": {
|
|
43
|
+
"tag": "<meta charset='UTF-8'>",
|
|
44
|
+
"required": "Yes - must be in first 1024 bytes",
|
|
45
|
+
"placement": "First meta tag in <head>"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"open_graph": {
|
|
49
|
+
"description": "Social media previews (Facebook, LinkedIn, etc.)",
|
|
50
|
+
"required_tags": {
|
|
51
|
+
"og:title": "<meta property='og:title' content='Page Title'>",
|
|
52
|
+
"og:description": "<meta property='og:description' content='Description'>",
|
|
53
|
+
"og:image": "<meta property='og:image' content='https://example.com/image.jpg'>",
|
|
54
|
+
"og:url": "<meta property='og:url' content='https://example.com/page'>",
|
|
55
|
+
"og:type": "<meta property='og:type' content='website'>"
|
|
56
|
+
},
|
|
57
|
+
"optional_tags": {
|
|
58
|
+
"og:site_name": "Your site name",
|
|
59
|
+
"og:locale": "en_US",
|
|
60
|
+
"og:image:width": "1200",
|
|
61
|
+
"og:image:height": "630"
|
|
62
|
+
},
|
|
63
|
+
"image_specs": {
|
|
64
|
+
"recommended_size": "1200x630 pixels",
|
|
65
|
+
"min_size": "600x315 pixels",
|
|
66
|
+
"aspect_ratio": "1.91:1",
|
|
67
|
+
"format": "JPG or PNG",
|
|
68
|
+
"max_file_size": "8 MB"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"twitter_cards": {
|
|
72
|
+
"description": "Twitter-specific previews",
|
|
73
|
+
"types": {
|
|
74
|
+
"summary": "Default card with small image",
|
|
75
|
+
"summary_large_image": "Large image card (recommended)",
|
|
76
|
+
"app": "Mobile app promotion",
|
|
77
|
+
"player": "Video/audio player"
|
|
78
|
+
},
|
|
79
|
+
"required_tags": {
|
|
80
|
+
"twitter:card": "<meta name='twitter:card' content='summary_large_image'>",
|
|
81
|
+
"twitter:title": "<meta name='twitter:title' content='Page Title'>",
|
|
82
|
+
"twitter:description": "<meta name='twitter:description' content='Description'>",
|
|
83
|
+
"twitter:image": "<meta name='twitter:image' content='https://example.com/image.jpg'>"
|
|
84
|
+
},
|
|
85
|
+
"optional": {
|
|
86
|
+
"twitter:site": "@username (site's Twitter)",
|
|
87
|
+
"twitter:creator": "@username (content creator)"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"robots": {
|
|
91
|
+
"tag": "<meta name='robots' content='index, follow'>",
|
|
92
|
+
"directives": {
|
|
93
|
+
"index": "Allow indexing (default)",
|
|
94
|
+
"noindex": "Don't index this page",
|
|
95
|
+
"follow": "Follow links (default)",
|
|
96
|
+
"nofollow": "Don't follow links",
|
|
97
|
+
"noarchive": "Don't show cached version",
|
|
98
|
+
"nosnippet": "Don't show snippet in results"
|
|
99
|
+
},
|
|
100
|
+
"use_cases": {
|
|
101
|
+
"noindex_follow": "Admin pages, thank you pages",
|
|
102
|
+
"noindex_nofollow": "Login, private pages",
|
|
103
|
+
"index_follow": "All public content (default)"
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"canonical": {
|
|
107
|
+
"tag": "<link rel='canonical' href='https://example.com/page'>",
|
|
108
|
+
"purpose": "Prevent duplicate content issues",
|
|
109
|
+
"when_to_use": [
|
|
110
|
+
"Multiple URLs for same content",
|
|
111
|
+
"URL parameters (sorting, filtering)",
|
|
112
|
+
"HTTP and HTTPS versions",
|
|
113
|
+
"www and non-www versions",
|
|
114
|
+
"Paginated content"
|
|
115
|
+
],
|
|
116
|
+
"best_practices": [
|
|
117
|
+
"Always use absolute URLs",
|
|
118
|
+
"Point to the preferred version",
|
|
119
|
+
"Self-reference on original page",
|
|
120
|
+
"Only one canonical per page"
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"structured_data": {
|
|
125
|
+
"description": "Schema.org markup for rich snippets",
|
|
126
|
+
"formats": {
|
|
127
|
+
"json_ld": {
|
|
128
|
+
"recommended": true,
|
|
129
|
+
"format": "JSON-LD in <script type='application/ld+json'>",
|
|
130
|
+
"placement": "<head> or <body>",
|
|
131
|
+
"advantage": "Cleanest, easiest to maintain"
|
|
132
|
+
},
|
|
133
|
+
"microdata": {
|
|
134
|
+
"format": "Inline HTML attributes (itemscope, itemprop)",
|
|
135
|
+
"use": "When JSON-LD not possible"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"common_schemas": {
|
|
139
|
+
"article": {
|
|
140
|
+
"type": "Article, NewsArticle, BlogPosting",
|
|
141
|
+
"properties": [
|
|
142
|
+
"headline",
|
|
143
|
+
"image",
|
|
144
|
+
"datePublished",
|
|
145
|
+
"dateModified",
|
|
146
|
+
"author",
|
|
147
|
+
"publisher"
|
|
148
|
+
],
|
|
149
|
+
"example": "{\n \"@context\": \"https://schema.org\",\n \"@type\": \"Article\",\n \"headline\": \"Article Title\",\n \"image\": \"https://example.com/image.jpg\",\n \"datePublished\": \"2026-01-24\",\n \"author\": {\n \"@type\": \"Person\",\n \"name\": \"Author Name\"\n }\n}"
|
|
150
|
+
},
|
|
151
|
+
"product": {
|
|
152
|
+
"type": "Product",
|
|
153
|
+
"properties": [
|
|
154
|
+
"name",
|
|
155
|
+
"image",
|
|
156
|
+
"description",
|
|
157
|
+
"sku",
|
|
158
|
+
"brand",
|
|
159
|
+
"offers (price, availability)",
|
|
160
|
+
"aggregateRating"
|
|
161
|
+
],
|
|
162
|
+
"enables": "Product rich snippets with price, availability, reviews"
|
|
163
|
+
},
|
|
164
|
+
"breadcrumbs": {
|
|
165
|
+
"type": "BreadcrumbList",
|
|
166
|
+
"enables": "Breadcrumb navigation in search results",
|
|
167
|
+
"example": "{\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n \"itemListElement\": [\n {\"@type\": \"ListItem\", \"position\": 1, \"name\": \"Home\", \"item\": \"https://example.com\"},\n {\"@type\": \"ListItem\", \"position\": 2, \"name\": \"Products\", \"item\": \"https://example.com/products\"}\n ]\n}"
|
|
168
|
+
},
|
|
169
|
+
"organization": {
|
|
170
|
+
"type": "Organization",
|
|
171
|
+
"properties": [
|
|
172
|
+
"name",
|
|
173
|
+
"url",
|
|
174
|
+
"logo",
|
|
175
|
+
"contactPoint",
|
|
176
|
+
"sameAs (social profiles)"
|
|
177
|
+
],
|
|
178
|
+
"placement": "Homepage",
|
|
179
|
+
"enables": "Knowledge graph panel"
|
|
180
|
+
},
|
|
181
|
+
"local_business": {
|
|
182
|
+
"type": "LocalBusiness",
|
|
183
|
+
"properties": [
|
|
184
|
+
"name",
|
|
185
|
+
"address",
|
|
186
|
+
"telephone",
|
|
187
|
+
"openingHours",
|
|
188
|
+
"geo (coordinates)",
|
|
189
|
+
"image"
|
|
190
|
+
],
|
|
191
|
+
"enables": "Google Maps listing, local pack"
|
|
192
|
+
},
|
|
193
|
+
"faq": {
|
|
194
|
+
"type": "FAQPage",
|
|
195
|
+
"enables": "FAQ rich snippets in search",
|
|
196
|
+
"properties": [
|
|
197
|
+
"mainEntity (array of Question)"
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
"how_to": {
|
|
201
|
+
"type": "HowTo",
|
|
202
|
+
"enables": "Step-by-step guide rich snippets",
|
|
203
|
+
"properties": [
|
|
204
|
+
"name",
|
|
205
|
+
"step (array)",
|
|
206
|
+
"totalTime",
|
|
207
|
+
"supply",
|
|
208
|
+
"tool"
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
"event": {
|
|
212
|
+
"type": "Event",
|
|
213
|
+
"properties": [
|
|
214
|
+
"name",
|
|
215
|
+
"startDate",
|
|
216
|
+
"endDate",
|
|
217
|
+
"location",
|
|
218
|
+
"image",
|
|
219
|
+
"description",
|
|
220
|
+
"offers (price, url)"
|
|
221
|
+
],
|
|
222
|
+
"enables": "Event rich snippets with date/location"
|
|
223
|
+
},
|
|
224
|
+
"review": {
|
|
225
|
+
"type": "Review",
|
|
226
|
+
"properties": [
|
|
227
|
+
"itemReviewed",
|
|
228
|
+
"reviewRating",
|
|
229
|
+
"author",
|
|
230
|
+
"reviewBody",
|
|
231
|
+
"datePublished"
|
|
232
|
+
],
|
|
233
|
+
"enables": "Star ratings in search results"
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
"testing": [
|
|
237
|
+
"Google Rich Results Test: https://search.google.com/test/rich-results",
|
|
238
|
+
"Schema Markup Validator: https://validator.schema.org/",
|
|
239
|
+
"Google Search Console: Monitor performance"
|
|
240
|
+
]
|
|
241
|
+
},
|
|
242
|
+
"technical_seo": {
|
|
243
|
+
"url_structure": {
|
|
244
|
+
"best_practices": [
|
|
245
|
+
"Use hyphens (not underscores) for word separation",
|
|
246
|
+
"Keep URLs short and descriptive",
|
|
247
|
+
"Include primary keyword",
|
|
248
|
+
"Use lowercase only",
|
|
249
|
+
"Avoid parameters when possible"
|
|
250
|
+
],
|
|
251
|
+
"good": "https://example.com/wireless-headphones",
|
|
252
|
+
"bad": "https://example.com/product?id=12345&cat=audio"
|
|
253
|
+
},
|
|
254
|
+
"sitemap": {
|
|
255
|
+
"xml_sitemap": {
|
|
256
|
+
"file": "sitemap.xml",
|
|
257
|
+
"location": "https://example.com/sitemap.xml",
|
|
258
|
+
"purpose": "Help search engines discover pages",
|
|
259
|
+
"include": [
|
|
260
|
+
"All public pages",
|
|
261
|
+
"Priority (0.0 - 1.0)",
|
|
262
|
+
"Change frequency",
|
|
263
|
+
"Last modified date"
|
|
264
|
+
],
|
|
265
|
+
"exclude": [
|
|
266
|
+
"Admin pages",
|
|
267
|
+
"Login/auth pages",
|
|
268
|
+
"Duplicate content",
|
|
269
|
+
"Noindex pages"
|
|
270
|
+
],
|
|
271
|
+
"submit": "Google Search Console, Bing Webmaster Tools"
|
|
272
|
+
},
|
|
273
|
+
"html_sitemap": {
|
|
274
|
+
"purpose": "User navigation, internal linking",
|
|
275
|
+
"placement": "Link from footer"
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
"robots_txt": {
|
|
279
|
+
"file": "robots.txt",
|
|
280
|
+
"location": "https://example.com/robots.txt",
|
|
281
|
+
"purpose": "Control crawler access",
|
|
282
|
+
"example": "User-agent: *\nDisallow: /admin/\nDisallow: /api/\nAllow: /api/public/\n\nSitemap: https://example.com/sitemap.xml",
|
|
283
|
+
"important": [
|
|
284
|
+
"Test before deploying (Google Search Console)",
|
|
285
|
+
"Disallow doesn't prevent indexing (use noindex meta tag)",
|
|
286
|
+
"Allow important resources (CSS, JS for rendering)"
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
"redirects": {
|
|
290
|
+
"301": {
|
|
291
|
+
"name": "Permanent Redirect",
|
|
292
|
+
"use": "Page moved permanently",
|
|
293
|
+
"seo_impact": "Passes 90-99% of link equity",
|
|
294
|
+
"when": "URL changes, site migration, canonical URLs"
|
|
295
|
+
},
|
|
296
|
+
"302": {
|
|
297
|
+
"name": "Temporary Redirect",
|
|
298
|
+
"use": "Page temporarily moved",
|
|
299
|
+
"seo_impact": "Doesn't pass link equity",
|
|
300
|
+
"when": "A/B testing, maintenance"
|
|
301
|
+
},
|
|
302
|
+
"best_practices": [
|
|
303
|
+
"Avoid redirect chains (A → B → C)",
|
|
304
|
+
"Use 301 for permanent changes",
|
|
305
|
+
"Update internal links instead of relying on redirects",
|
|
306
|
+
"Monitor redirect performance"
|
|
307
|
+
]
|
|
308
|
+
},
|
|
309
|
+
"https": {
|
|
310
|
+
"required": "Yes - Google ranking signal since 2014",
|
|
311
|
+
"implementation": [
|
|
312
|
+
"Install SSL certificate",
|
|
313
|
+
"Redirect HTTP to HTTPS (301)",
|
|
314
|
+
"Update canonical tags",
|
|
315
|
+
"Update sitemaps",
|
|
316
|
+
"Update internal links"
|
|
317
|
+
],
|
|
318
|
+
"hsts": "Strict-Transport-Security header (recommended)"
|
|
319
|
+
},
|
|
320
|
+
"page_speed": {
|
|
321
|
+
"ranking_factor": "Yes - Core Web Vitals are ranking signals",
|
|
322
|
+
"targets": [
|
|
323
|
+
"LCP < 2.5s",
|
|
324
|
+
"FID/INP < 100/200ms",
|
|
325
|
+
"CLS < 0.1"
|
|
326
|
+
],
|
|
327
|
+
"see_also": "ux://performance for optimization strategies"
|
|
328
|
+
},
|
|
329
|
+
"mobile_friendly": {
|
|
330
|
+
"importance": "Critical - Google uses mobile-first indexing",
|
|
331
|
+
"requirements": [
|
|
332
|
+
"Responsive design",
|
|
333
|
+
"Readable text (16px minimum)",
|
|
334
|
+
"Tappable elements (48x48px minimum)",
|
|
335
|
+
"No horizontal scrolling",
|
|
336
|
+
"Fast loading"
|
|
337
|
+
],
|
|
338
|
+
"testing": "Google Mobile-Friendly Test"
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"content_optimization": {
|
|
342
|
+
"keyword_research": {
|
|
343
|
+
"tools": [
|
|
344
|
+
"Google Keyword Planner",
|
|
345
|
+
"Ahrefs",
|
|
346
|
+
"SEMrush",
|
|
347
|
+
"Google Trends",
|
|
348
|
+
"Answer the Public"
|
|
349
|
+
],
|
|
350
|
+
"metrics": [
|
|
351
|
+
"Search volume",
|
|
352
|
+
"Keyword difficulty",
|
|
353
|
+
"Search intent",
|
|
354
|
+
"Related keywords"
|
|
355
|
+
]
|
|
356
|
+
},
|
|
357
|
+
"on_page_seo": {
|
|
358
|
+
"heading_hierarchy": {
|
|
359
|
+
"h1": "One per page, main topic",
|
|
360
|
+
"h2": "Main sections",
|
|
361
|
+
"h3": "Subsections",
|
|
362
|
+
"h4_h6": "Further subdivisions",
|
|
363
|
+
"best_practices": [
|
|
364
|
+
"Don't skip heading levels",
|
|
365
|
+
"Include keywords naturally",
|
|
366
|
+
"Make headings descriptive",
|
|
367
|
+
"Use heading hierarchy for structure, not styling"
|
|
368
|
+
]
|
|
369
|
+
},
|
|
370
|
+
"content_length": {
|
|
371
|
+
"guideline": "Write for humans, not word count",
|
|
372
|
+
"minimum": "300 words for indexing",
|
|
373
|
+
"comprehensive": "1500-2500 words for competitive topics",
|
|
374
|
+
"focus": "Answer search intent completely"
|
|
375
|
+
},
|
|
376
|
+
"keyword_usage": {
|
|
377
|
+
"density": "1-2% (natural usage)",
|
|
378
|
+
"placement": [
|
|
379
|
+
"Title tag",
|
|
380
|
+
"First paragraph",
|
|
381
|
+
"Headings (H1, H2)",
|
|
382
|
+
"URL",
|
|
383
|
+
"Alt text (when relevant)",
|
|
384
|
+
"Meta description"
|
|
385
|
+
],
|
|
386
|
+
"avoid": "Keyword stuffing, exact match overuse"
|
|
387
|
+
},
|
|
388
|
+
"images": {
|
|
389
|
+
"alt_text": "Describe image for accessibility and SEO",
|
|
390
|
+
"file_name": "descriptive-name.jpg (not IMG_1234.jpg)",
|
|
391
|
+
"compression": "Optimize for fast loading",
|
|
392
|
+
"format": "Use WebP or AVIF with fallbacks"
|
|
393
|
+
},
|
|
394
|
+
"internal_linking": {
|
|
395
|
+
"benefits": "Distributes page authority, helps crawling",
|
|
396
|
+
"best_practices": [
|
|
397
|
+
"Use descriptive anchor text",
|
|
398
|
+
"Link to relevant content",
|
|
399
|
+
"Don't overdo it (3-5 links per 500 words)",
|
|
400
|
+
"Fix broken links"
|
|
401
|
+
],
|
|
402
|
+
"avoid": "Generic anchors like 'click here'"
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
},
|
|
406
|
+
"local_seo": {
|
|
407
|
+
"google_business_profile": {
|
|
408
|
+
"importance": "Essential for local visibility",
|
|
409
|
+
"optimization": [
|
|
410
|
+
"Complete all business information",
|
|
411
|
+
"Choose correct category",
|
|
412
|
+
"Add photos regularly",
|
|
413
|
+
"Respond to reviews",
|
|
414
|
+
"Post updates",
|
|
415
|
+
"Add business hours (including holidays)"
|
|
416
|
+
]
|
|
417
|
+
},
|
|
418
|
+
"nap_consistency": {
|
|
419
|
+
"nap": "Name, Address, Phone",
|
|
420
|
+
"requirement": "Exact same format everywhere",
|
|
421
|
+
"locations": [
|
|
422
|
+
"Website",
|
|
423
|
+
"Google Business Profile",
|
|
424
|
+
"Directories (Yelp, Yellow Pages)",
|
|
425
|
+
"Social media"
|
|
426
|
+
]
|
|
427
|
+
},
|
|
428
|
+
"local_citations": {
|
|
429
|
+
"definition": "Mentions of business name/address online",
|
|
430
|
+
"sources": [
|
|
431
|
+
"Business directories",
|
|
432
|
+
"Industry-specific sites",
|
|
433
|
+
"Local chambers of commerce",
|
|
434
|
+
"News sites"
|
|
435
|
+
]
|
|
436
|
+
},
|
|
437
|
+
"reviews": {
|
|
438
|
+
"importance": "Ranking factor + social proof",
|
|
439
|
+
"strategy": [
|
|
440
|
+
"Ask satisfied customers",
|
|
441
|
+
"Make it easy (send link)",
|
|
442
|
+
"Respond to all reviews",
|
|
443
|
+
"Don't buy fake reviews (penalized)"
|
|
444
|
+
]
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
"common_mistakes": [
|
|
448
|
+
{
|
|
449
|
+
"mistake": "Duplicate content",
|
|
450
|
+
"fix": "Use canonical tags, noindex, or 301 redirects"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"mistake": "Missing or duplicate title tags",
|
|
454
|
+
"fix": "Unique, descriptive titles for every page"
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"mistake": "Slow page speed",
|
|
458
|
+
"fix": "See ux://performance for optimization"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"mistake": "Not mobile-friendly",
|
|
462
|
+
"fix": "Implement responsive design"
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"mistake": "Broken links",
|
|
466
|
+
"fix": "Regular audits, fix or redirect"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"mistake": "Thin content",
|
|
470
|
+
"fix": "Comprehensive, valuable content"
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
"mistake": "No alt text on images",
|
|
474
|
+
"fix": "Add descriptive alt attributes"
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"mistake": "Ignoring Search Console errors",
|
|
478
|
+
"fix": "Monitor and fix crawl errors, coverage issues"
|
|
479
|
+
}
|
|
480
|
+
],
|
|
481
|
+
"seo_checklist": [
|
|
482
|
+
"Install Google Search Console and Analytics",
|
|
483
|
+
"Create and submit XML sitemap",
|
|
484
|
+
"Implement HTTPS with proper redirects",
|
|
485
|
+
"Make site mobile-friendly (responsive design)",
|
|
486
|
+
"Optimize page speed (Core Web Vitals)",
|
|
487
|
+
"Write unique, descriptive title tags (50-60 chars)",
|
|
488
|
+
"Write compelling meta descriptions (150-160 chars)",
|
|
489
|
+
"Use heading hierarchy (H1, H2, H3) properly",
|
|
490
|
+
"Add structured data (JSON-LD) where applicable",
|
|
491
|
+
"Optimize images (alt text, compression, modern formats)",
|
|
492
|
+
"Create quality content that answers search intent",
|
|
493
|
+
"Build internal links with descriptive anchors",
|
|
494
|
+
"Fix broken links and 404 errors",
|
|
495
|
+
"Use canonical tags for duplicate content",
|
|
496
|
+
"Add Open Graph and Twitter Card meta tags",
|
|
497
|
+
"Create robots.txt file",
|
|
498
|
+
"Monitor and improve Core Web Vitals",
|
|
499
|
+
"Set up Google Business Profile (for local businesses)"
|
|
500
|
+
],
|
|
501
|
+
"tools": {
|
|
502
|
+
"free": [
|
|
503
|
+
"Google Search Console",
|
|
504
|
+
"Google Analytics",
|
|
505
|
+
"Google PageSpeed Insights",
|
|
506
|
+
"Google Mobile-Friendly Test",
|
|
507
|
+
"Google Rich Results Test",
|
|
508
|
+
"Bing Webmaster Tools",
|
|
509
|
+
"Schema Markup Validator"
|
|
510
|
+
],
|
|
511
|
+
"paid": [
|
|
512
|
+
"Ahrefs",
|
|
513
|
+
"SEMrush",
|
|
514
|
+
"Moz Pro",
|
|
515
|
+
"Screaming Frog SEO Spider"
|
|
516
|
+
]
|
|
517
|
+
}
|
|
518
|
+
}
|