seo-geo-optimizer 1.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/CONTRIBUTING.md +81 -0
- package/LICENSE +21 -0
- package/README.md +303 -0
- package/bin/install.js +301 -0
- package/package.json +62 -0
- package/skill/SEO_GEO_SKILL.md +776 -0
|
@@ -0,0 +1,776 @@
|
|
|
1
|
+
# SEO & GEO OPTIMIZER — Universal AI Skill
|
|
2
|
+
|
|
3
|
+
**Purpose:** Transform any web product from unranked to fully visible across Google, Bing, Google AI Overviews, Bing Copilot, ChatGPT, and Perplexity. Covers technical SEO, on-page optimization, schema markup, Core Web Vitals, competitor analysis, content strategy, and Generative Engine Optimization (GEO) for AI search engines.
|
|
4
|
+
|
|
5
|
+
**Compatible with:** Cursor · Windsurf · Lovable · Bolt · GitHub Copilot · Replit · VS Code · Any AI assistant
|
|
6
|
+
|
|
7
|
+
**Verified against:**
|
|
8
|
+
- Google Search Central — December 2025
|
|
9
|
+
- Bing Webmaster Guidelines — 2025
|
|
10
|
+
- Google June 2025 Core Update
|
|
11
|
+
- Core Web Vitals spec — March 2024 (INP replaces FID — all FID references are outdated)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## HOW TO USE THIS SKILL
|
|
16
|
+
|
|
17
|
+
**In Cursor:** Place this file at `.cursor/rules/seo-geo-optimizer.mdc` OR paste contents into `.cursorrules`
|
|
18
|
+
|
|
19
|
+
**In Windsurf:** Place at `.windsurf/rules/seo-geo-optimizer.md` OR paste into `.windsurfrules`
|
|
20
|
+
|
|
21
|
+
**In GitHub Copilot (VS Code):** Place at `.github/copilot-instructions.md`
|
|
22
|
+
|
|
23
|
+
**In Lovable / Bolt / Replit:** Paste the full contents into the system prompt or custom instructions field
|
|
24
|
+
|
|
25
|
+
**Activation trigger:** When the user asks anything related to SEO, rankings, meta tags, schema, structured data, Core Web Vitals, GEO, AI search visibility, competitor analysis, Google/Bing optimization, or improving search visibility — load and follow this entire skill document before responding.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## PART 1 — IRON LAWS
|
|
30
|
+
|
|
31
|
+
These rules govern all AI behavior when this skill is active. They are absolute and override any shortcut or efficiency instinct.
|
|
32
|
+
|
|
33
|
+
**LAW 1 — READ BEFORE ACTING**
|
|
34
|
+
Read this entire skill file completely before taking any action whatsoever. No partial reads. No skipping sections.
|
|
35
|
+
|
|
36
|
+
**LAW 2 — ASK, NEVER ASSUME**
|
|
37
|
+
Every piece of information about the product, audience, goals, tech stack, and competitors must come from the user — never inferred, guessed, or assumed. If any information is missing or unclear, STOP and ask. No exceptions.
|
|
38
|
+
|
|
39
|
+
**LAW 3 — COLLECT ALL DATA FIRST**
|
|
40
|
+
Complete the full 40-question intake questionnaire AND the full competitor analysis before generating any plan or any output. Do not start planning on partial data.
|
|
41
|
+
|
|
42
|
+
**LAW 4 — PLAN BEFORE EXECUTING**
|
|
43
|
+
Always generate the full Execution Plan Report (EPR) and get explicit written approval from the user before writing a single line of code, configuration, markup, or content.
|
|
44
|
+
|
|
45
|
+
**LAW 5 — ZERO AUTONOMOUS CHANGES**
|
|
46
|
+
Never make any change — not a "small fix", not a "quick patch", not an "obvious improvement" — without explicit user approval for that exact specific change. Every change is a decision. The human makes it.
|
|
47
|
+
|
|
48
|
+
**LAW 6 — CITE EVERY RECOMMENDATION**
|
|
49
|
+
Every SEO or GEO recommendation must include the official source URL. No recommendation without a citation. See the Official References Index at the bottom of this file.
|
|
50
|
+
|
|
51
|
+
**LAW 7 — ONE PHASE AT A TIME**
|
|
52
|
+
After completing each phase, STOP completely. Report results to the user. Ask for explicit approval to continue. Never chain phases without confirmation.
|
|
53
|
+
|
|
54
|
+
**LAW 8 — FLAG ALL TEMPORARY FIXES**
|
|
55
|
+
If a workaround or temporary patch is applied at the user's request, label it explicitly as **[TEMPORARY FIX]** and document what the permanent solution is and why it matters.
|
|
56
|
+
|
|
57
|
+
**FORBIDDEN PHRASES — Never say these:**
|
|
58
|
+
- "I went ahead and..."
|
|
59
|
+
- "I quickly fixed..."
|
|
60
|
+
- "I took the liberty of..."
|
|
61
|
+
- "I also updated..."
|
|
62
|
+
- "While I was at it..."
|
|
63
|
+
- "I assumed you'd want..."
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## PART 2 — MANDATORY EXECUTION SEQUENCE
|
|
68
|
+
|
|
69
|
+
Follow this exact sequence every engagement. No skipping. No reordering.
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
PHASE 0 → Read this entire skill file
|
|
73
|
+
PHASE 1 → Complete all 40 intake questions
|
|
74
|
+
PHASE 2 → Competitor analysis (3–5 real SEO competitors)
|
|
75
|
+
PHASE 3 → Gap and opportunity assessment
|
|
76
|
+
PHASE 4 → Generate Execution Plan Report → GET WRITTEN APPROVAL → then stop
|
|
77
|
+
PHASE 5 → Execute Tier 1 only → verify → report → ask to proceed
|
|
78
|
+
PHASE 6 → Execute Tier 2 only → verify → report → ask to proceed
|
|
79
|
+
PHASE 7 → Execute Tier 3 only → verify → report → ask to proceed
|
|
80
|
+
PHASE 8 → Execute Tier 4 only → verify → report → ask to proceed
|
|
81
|
+
PHASE 9 → Final verification checklist (all tools, pass/fail for every item)
|
|
82
|
+
PHASE 10 → Maintenance monitoring setup
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Phase 0 — Initialize
|
|
86
|
+
Read this entire file. Then say to the user:
|
|
87
|
+
> "I have read the full SEO & GEO skill. Before I build your strategy, I need to ask 40 questions across 5 groups. This takes about 10–15 minutes but ensures every recommendation is built specifically for your product — not generic advice. Ready to begin?"
|
|
88
|
+
|
|
89
|
+
### Phase 4 — Critical Stop
|
|
90
|
+
After generating the EPR, say:
|
|
91
|
+
> "Here is your complete Execution Plan Report. Please review it carefully. Do you approve this plan and want me to begin execution? (yes / no / modify)"
|
|
92
|
+
|
|
93
|
+
Do NOT proceed until you receive explicit written approval. Silence is not approval.
|
|
94
|
+
|
|
95
|
+
### Approved Change Protocol
|
|
96
|
+
Use this exact format before making ANY change:
|
|
97
|
+
|
|
98
|
+
1. **WHAT** — State exactly what will change. File name, current value → new value.
|
|
99
|
+
2. **WHY** — Explain why this helps ranking. Include official reference URL.
|
|
100
|
+
3. **SHOW** — Show the exact before/after diff.
|
|
101
|
+
4. **RISK** — State any risk, side effect, or dependency.
|
|
102
|
+
5. **ASK** — "Do you approve this change? (yes / no / modify)"
|
|
103
|
+
6. **WAIT** — Wait for explicit written approval. Never proceed on silence.
|
|
104
|
+
7. **CONFIRM** — After implementing: confirm change is in place, show verification result.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## PART 3 — INTAKE QUESTIONNAIRE (ALL 40 QUESTIONS)
|
|
109
|
+
|
|
110
|
+
Tell the user: *"Before I can build your SEO & GEO strategy, I need to understand your product deeply. I have 40 questions across 5 groups. Every question matters — this is what separates tailored strategy from generic advice."*
|
|
111
|
+
|
|
112
|
+
Ask all questions in groups. Document every answer. If the user skips a question, state the default assumption you will use and ask for explicit confirmation.
|
|
113
|
+
|
|
114
|
+
### GROUP A — Product & Business Identity
|
|
115
|
+
|
|
116
|
+
| ID | Question |
|
|
117
|
+
|----|----------|
|
|
118
|
+
| A1 | What is the full name of your product/website? What does it do in one sentence? |
|
|
119
|
+
| A2 | What is the URL? Is it live, staging, or not built yet? |
|
|
120
|
+
| A3 | Product category? (SaaS / e-commerce / blog / local business / portfolio / app landing page / news / other?) |
|
|
121
|
+
| A4 | What specific problem does this product solve? Who has this problem? |
|
|
122
|
+
| A5 | What is the primary call-to-action? (Sign up / Buy / Contact / Read / Download / Book a call?) |
|
|
123
|
+
| A6 | Is this a new domain or an existing one? How old is the domain approximately? |
|
|
124
|
+
| A7 | What tech stack is the site built on? (React / Next.js / Vue / WordPress / Webflow / Shopify / plain HTML / other?) |
|
|
125
|
+
| A8 | Is the site server-side rendered (SSR), statically generated (SSG/pre-rendered), or client-side only (CSR / SPA)? |
|
|
126
|
+
|
|
127
|
+
### GROUP B — Target Audience & Market
|
|
128
|
+
|
|
129
|
+
| ID | Question |
|
|
130
|
+
|----|----------|
|
|
131
|
+
| B1 | Who is the ideal user/customer? Describe their age, profession, expertise level, and location. |
|
|
132
|
+
| B2 | What countries or regions are you targeting? What languages? |
|
|
133
|
+
| B3 | What would your ideal user type into Google or Bing to find you? Please list 5–10 specific search phrases. |
|
|
134
|
+
| B4 | Are you targeting local, national, or global search? |
|
|
135
|
+
| B5 | Is the audience B2B (businesses), B2C (consumers), or both? |
|
|
136
|
+
| B6 | What is the typical buying journey — research-heavy over weeks, or a quick impulse decision? |
|
|
137
|
+
|
|
138
|
+
### GROUP C — Competitors & Current State
|
|
139
|
+
|
|
140
|
+
| ID | Question |
|
|
141
|
+
|----|----------|
|
|
142
|
+
| C1 | Name 3–5 websites you consider direct competitors. Please give their URLs or names. |
|
|
143
|
+
| C2 | Which competitor do you most want to outrank? Why do you think they currently rank higher? |
|
|
144
|
+
| C3 | Have you done any SEO work on this site before? If yes, what was done and which tools were used? |
|
|
145
|
+
| C4 | Is Google Search Console set up and verified? Is Bing Webmaster Tools set up? |
|
|
146
|
+
| C5 | Do you have any analytics on the site? What is your estimated current monthly organic traffic? |
|
|
147
|
+
| C6 | Are there any keywords you currently rank for, even at positions 20–100? |
|
|
148
|
+
|
|
149
|
+
### GROUP D — Goals & Constraints
|
|
150
|
+
|
|
151
|
+
| ID | Question |
|
|
152
|
+
|----|----------|
|
|
153
|
+
| D1 | Primary SEO goal? (Get indexed / reach top 10 / beat a specific competitor / appear in Google AI Overviews / all of the above?) |
|
|
154
|
+
| D2 | What is your timeline? When do you need to see measurable results? |
|
|
155
|
+
| D3 | Is a developer available to make code changes? Or must this be no-code only? |
|
|
156
|
+
| D4 | What SEO tools do you have access to? (Ahrefs / SEMrush / Moz / only free tools like GSC and Bing WT?) |
|
|
157
|
+
| D5 | How many pages currently exist on the site? Is there existing content? |
|
|
158
|
+
| D6 | Any technical constraints? (CDN limits / hosting restrictions / CMS blocks / no access to `<head>` tag?) |
|
|
159
|
+
| D7 | Does the site use AI-generated content? If yes, what human review and editing process exists? |
|
|
160
|
+
|
|
161
|
+
### GROUP E — GEO & AI Visibility Goals
|
|
162
|
+
|
|
163
|
+
| ID | Question |
|
|
164
|
+
|----|----------|
|
|
165
|
+
| E1 | Do you want to appear in Google AI Overviews (the AI-generated answer boxes at the top of Google results)? |
|
|
166
|
+
| E2 | Do you want to be cited by Bing Copilot, ChatGPT, Perplexity, or other AI answer engines? |
|
|
167
|
+
| E3 | Does existing content include instructional/how-to material, FAQ sections, or Q&A content? |
|
|
168
|
+
| E4 | Is any structured data (schema markup) currently on the site? If yes, which types? |
|
|
169
|
+
| E5 | Is the brand currently mentioned or cited on other authoritative websites? Which ones? |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## PART 4 — COMPETITOR ANALYSIS FRAMEWORK
|
|
174
|
+
|
|
175
|
+
### Step 1 — Find Real SEO Competitors
|
|
176
|
+
|
|
177
|
+
> ⚠️ Business competitors and SEO competitors are often different. Always run this process rather than using the business rivals the user listed.
|
|
178
|
+
|
|
179
|
+
1. Take the 5–10 keyword phrases from intake answer **B3**.
|
|
180
|
+
2. Search each phrase in Google (incognito/private mode). Record top 5 organic results.
|
|
181
|
+
3. Search the same phrases in Bing. Record top 5 results.
|
|
182
|
+
4. Identify domains appearing **3 or more times** across all searches. These are real SEO competitors.
|
|
183
|
+
5. Remove unreachable benchmarks: Wikipedia, Amazon, Forbes, Reddit, major news sites — unless the user is enterprise-level.
|
|
184
|
+
6. Filter to **3–5 competitors** with Domain Rating (DR) within ±20 of the user's site. Check via Ahrefs Free Backlink Checker or Moz Link Explorer.
|
|
185
|
+
7. Present the shortlist to the user and ask: *"Are these the right competitors to analyze? Any to add or remove?"*
|
|
186
|
+
|
|
187
|
+
**Rule:** 40%+ keyword overlap = genuine SEO competitor. Under 20% = not worth deep analysis.
|
|
188
|
+
|
|
189
|
+
### Step 2 — Analyze All 13 Dimensions For Each Competitor
|
|
190
|
+
|
|
191
|
+
| # | Analysis Area | What to Find | Free Tool |
|
|
192
|
+
|---|--------------|-------------|-----------|
|
|
193
|
+
| 1 | Title tag strategy | Keyword position, brand placement, length, power words | View page source |
|
|
194
|
+
| 2 | Meta description style | Format (benefit/question/CTA), length, keyword | metatags.io |
|
|
195
|
+
| 3 | H1/H2 keyword usage | Exact vs. semantic match, heading hierarchy depth | View page source |
|
|
196
|
+
| 4 | Content length & depth | Word count on ranking pages. Shallow or comprehensive? | Paste into word counter |
|
|
197
|
+
| 5 | Schema markup present | Which schema types? Any errors? | [Rich Results Test](https://search.google.com/test/rich-results) |
|
|
198
|
+
| 6 | Core Web Vitals scores | LCP, INP, CLS — note where they fail | [PageSpeed Insights](https://pagespeed.web.dev/) |
|
|
199
|
+
| 7 | Backlink profile | Referring domains, .edu/.gov links present? | Ahrefs Free / Moz |
|
|
200
|
+
| 8 | Social signals (Bing factor) | Active sharing on Facebook, LinkedIn, X? | Manual check |
|
|
201
|
+
| 9 | FAQ / AI-optimized content | FAQ sections with schema? HowTo guides? Q&A blocks? | Manual review + Rich Results Test |
|
|
202
|
+
| 10 | Content freshness | When were key pages last updated? | Google cache check: `cache:url` |
|
|
203
|
+
| 11 | Keyword gap | Keywords they rank for that user doesn't | SEMrush Keyword Gap (free trial) |
|
|
204
|
+
| 12 | Featured snippets / AI Overviews | Do they own any for target keywords? | Manual search |
|
|
205
|
+
| 13 | Mobile experience | Does the mobile version work cleanly? | [Mobile-Friendly Test](https://search.google.com/test/mobile-friendly) |
|
|
206
|
+
|
|
207
|
+
### Step 3 — Competitor Analysis Table (Fill For Each Competitor)
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
Competitor URL:
|
|
211
|
+
Domain Age (approx.):
|
|
212
|
+
Estimated Monthly Traffic:
|
|
213
|
+
Top 3 Ranking Keywords:
|
|
214
|
+
Schema Types Detected:
|
|
215
|
+
CWV — LCP / INP / CLS:
|
|
216
|
+
Content Depth (avg. words on key pages):
|
|
217
|
+
Has FAQPage Schema?:
|
|
218
|
+
Social Signal Activity:
|
|
219
|
+
Referring Domains Count:
|
|
220
|
+
Key Strengths vs. Our Product:
|
|
221
|
+
Key Weaknesses / Our Opportunity:
|
|
222
|
+
Keyword Gap Opportunities:
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## PART 5 — EXECUTION PLAN REPORT (EPR) TEMPLATE
|
|
228
|
+
|
|
229
|
+
Generate a complete, filled EPR before executing anything. Present to user. Require written approval before any action.
|
|
230
|
+
|
|
231
|
+
### EPR Header
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
Product Name:
|
|
235
|
+
Product URL:
|
|
236
|
+
Date of Analysis:
|
|
237
|
+
Primary Search Engines: Google · Bing · Both
|
|
238
|
+
GEO/AI Visibility Goal:
|
|
239
|
+
Top 5 Priority Keywords:
|
|
240
|
+
Primary Competitor:
|
|
241
|
+
Tech Stack & Rendering Method:
|
|
242
|
+
SEO Maturity Level: Beginner / Intermediate / Advanced
|
|
243
|
+
|
|
244
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
245
|
+
APPROVED BY (User must complete): _______________________
|
|
246
|
+
Approval Date: _______________________
|
|
247
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Situation Assessment
|
|
251
|
+
Write 4–6 sentences. Cover: current ranking position, biggest barriers to ranking, what competitor analysis revealed, fastest ROI path. No filler. Specific, factual, cited.
|
|
252
|
+
|
|
253
|
+
### Critical Findings
|
|
254
|
+
List the top 3–5 most urgent issues found. Each finding must state:
|
|
255
|
+
- What it is
|
|
256
|
+
- Why it matters for ranking
|
|
257
|
+
- What it costs in lost visibility
|
|
258
|
+
- Official reference link
|
|
259
|
+
|
|
260
|
+
### Prioritized Action Plan
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
#### TIER 1 — Critical Foundation *(Day 1)*
|
|
265
|
+
|
|
266
|
+
| ID | Action | Why | Official Reference |
|
|
267
|
+
|----|--------|-----|--------------------|
|
|
268
|
+
| T1-1 | Generate all HTML meta tags: `<title>` (50–60 chars, keyword near start), `<meta description>` (150–160 chars), `<meta robots>`, `<link rel="canonical">`, `<meta viewport>`, `<meta charset>` | Zero ranking without correct indexing signals | [Title Links](https://developers.google.com/search/docs/appearance/title-link) · [Snippets](https://developers.google.com/search/docs/appearance/snippet) |
|
|
269
|
+
| T1-2 | Add `Organization` JSON-LD schema: name, url, logo (min 112×112px), sameAs all social profiles, contactPoint | Brand identity signal. Required for AI engines to understand who you are. | [schema.org/Organization](https://schema.org/Organization) |
|
|
270
|
+
| T1-3 | Add `WebSite` JSON-LD schema: name, url, SearchAction potentialAction | Enables sitelinks search box in Google. Declares canonical site identity. | [schema.org/WebSite](https://schema.org/WebSite) |
|
|
271
|
+
| T1-4 | Create XML sitemap. Submit to Google Search Console. | Pages not in sitemap may never be indexed. | [Google: Sitemaps](https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview) |
|
|
272
|
+
| T1-5 | Submit XML sitemap to Bing Webmaster Tools *(separate — Bing does not sync with GSC)* | Bing requires its own sitemap submission. Without it, Bing won't index you. | [Bing Webmaster Tools](https://www.bing.com/webmasters/) |
|
|
273
|
+
| T1-6 | Audit `robots.txt`: correct format, no key pages blocked, CSS/JS files not blocked | Blocked CSS/JS = search engine cannot render page = severe ranking drop | [Google: robots.txt](https://developers.google.com/search/docs/crawling-indexing/robots/intro) |
|
|
274
|
+
| T1-7 | Verify HTTPS on all pages. No mixed content warnings anywhere. | Confirmed ranking signal for Google. Trust signal for Bing. | [Google: HTTPS](https://developers.google.com/search/docs/fundamentals/seo-starter-guide) |
|
|
275
|
+
| T1-8 | **BING CRITICAL:** If site uses React/Vue/Angular CSR — check that critical content appears in raw HTML source without JavaScript execution. If not visible in source: SSR or pre-rendering is required immediately. | Bing cannot render JavaScript well. Client-side-only apps are effectively invisible to Bing. | [Bing Webmaster Guidelines](https://www.bing.com/webmasters/help/webmaster-guidelines-30fba23a) |
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
#### TIER 2 — Performance & On-Page *(Week 1)*
|
|
280
|
+
|
|
281
|
+
| ID | Action | Why | Official Reference |
|
|
282
|
+
|----|--------|-----|--------------------|
|
|
283
|
+
| T2-1 | Fix **LCP** (Largest Contentful Paint): compress hero images, convert to WebP, add `width`+`height` attributes, `<link rel="preload">` the LCP image. Target: **under 2.5 seconds**. | 54% of sites fail CWV — huge competitive gap for those who pass. | [web.dev/lcp](https://web.dev/articles/lcp) |
|
|
284
|
+
| T2-2 | Fix **INP** (Interaction to Next Paint): break up long JavaScript tasks, defer non-critical scripts, use `requestIdleCallback`. Target: **under 200ms**. ⚠️ INP replaced FID in March 2024. | Page responsiveness is a direct ranking signal. | [web.dev/inp](https://web.dev/articles/inp) |
|
|
285
|
+
| T2-3 | Fix **CLS** (Cumulative Layout Shift): add explicit `width`+`height` to all images/videos/ads, reserve space for embeds, use `font-display: swap`. Target: **under 0.1**. | Unstable layout = poor UX = ranking penalty. | [web.dev/cls](https://web.dev/articles/cls) |
|
|
286
|
+
| T2-4 | Structure heading tags: one `<h1>` per page (matches title), keyword-rich `<h2>` for main sections, `<h3>` for sub-sections. Never skip heading levels. | Heading structure is a primary on-page relevance signal for both Google and Bing. | [Google: Starter Guide](https://developers.google.com/search/docs/fundamentals/seo-starter-guide) |
|
|
287
|
+
| T2-5 | Add full Open Graph tags: `og:title`, `og:description`, `og:image` (min 1200×630px), `og:url`, `og:type`, `og:site_name` | **Direct Bing ranking input via social sharing.** Also controls how pages look when shared. | [Open Graph Protocol](https://ogp.me/) |
|
|
288
|
+
| T2-6 | Add Twitter Card tags: `twitter:card` (use `summary_large_image`), `twitter:title`, `twitter:description`, `twitter:image` | Social visibility + Bing social ranking signal | [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/) |
|
|
289
|
+
| T2-7 | Add `WebPage` JSON-LD schema to every page: name, description, url, datePublished, dateModified, inLanguage | Communicates exact page type and freshness to crawlers | [schema.org/WebPage](https://schema.org/WebPage) |
|
|
290
|
+
| T2-8 | Add `BreadcrumbList` JSON-LD schema on all multi-level pages | Navigation signals + cleaner breadcrumb display in SERPs | [Google: Breadcrumbs](https://developers.google.com/search/docs/appearance/structured-data/breadcrumb) |
|
|
291
|
+
| T2-9 | Verify Google Mobile-Friendly Test passes | Google indexes mobile version first (mobile-first indexing) | [Mobile-Friendly Test](https://search.google.com/test/mobile-friendly) |
|
|
292
|
+
| T2-10 | **BING SPECIFIC:** Verify exact-match keyword phrase appears verbatim in title, H1, first paragraph, URL slug, and meta description | Bing weights exact-match keywords far more heavily than Google | [Bing Webmaster Guidelines](https://www.bing.com/webmasters/help/webmaster-guidelines-30fba23a) |
|
|
293
|
+
| T2-11 | **BING SPECIFIC:** Create or claim Bing Places listing (if any local/regional relevance) | Bing Maps + Copilot local visibility | [Bing Places](https://www.bingplaces.com/) |
|
|
294
|
+
| T2-12 | All image alt text: descriptive, natural keyword use, under 125 chars, no stuffing | Image search visibility + accessibility + crawl signal | [Google: Images](https://developers.google.com/search/docs/appearance/google-images) |
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
#### TIER 3 — Content & Authority *(Week 2–3)*
|
|
299
|
+
|
|
300
|
+
| ID | Action | Why | Official Reference |
|
|
301
|
+
|----|--------|-----|--------------------|
|
|
302
|
+
| T3-1 | Add `FAQPage` JSON-LD schema on all key pages with real user questions | **Pages with FAQPage schema are 3.2× more likely to appear in Google AI Overviews** | [Google: FAQPage](https://developers.google.com/search/docs/appearance/structured-data/faqpage) |
|
|
303
|
+
| T3-2 | Add `HowTo` JSON-LD schema on all instructional/tutorial/guide content: steps, tools, totalTime | AI step extraction + voice search compatibility | [Google: HowTo](https://developers.google.com/search/docs/appearance/structured-data/how-to) |
|
|
304
|
+
| T3-3 | Add `Person`/`Author` JSON-LD schema on content pages: name, credentials, bio URL, sameAs LinkedIn | **E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) signal.** AI citation credibility. | [schema.org/Person](https://schema.org/Person) · [E-E-A-T](https://developers.google.com/search/docs/fundamentals/creating-helpful-content) |
|
|
305
|
+
| T3-4 | Add `Article` or `BlogPosting` JSON-LD schema to all content pages: headline, author, datePublished, publisher, image | Author authority + content freshness signal | [schema.org/Article](https://schema.org/Article) |
|
|
306
|
+
| T3-5 | Keyword placement audit: confirm target keyword is in title, H1, first 100 words of body, meta description, URL slug. Natural usage only — no stuffing. | Core on-page signal for both Google and Bing | [Google: Starter Guide](https://developers.google.com/search/docs/fundamentals/seo-starter-guide) |
|
|
307
|
+
| T3-6 | Build topic cluster: identify hub (main) page + 5–10 supporting pages around the same core topic. Internal link all supporting pages back to hub. | Google favors niche expertise. Topic clusters drive sustained long-term ranking. | [Google: Helpful Content](https://developers.google.com/search/docs/fundamentals/creating-helpful-content) |
|
|
308
|
+
| T3-7 | Content freshness strategy: update `dateModified` in schema on every content update. Plan quarterly refresh cycle for top pages. | Pages updated within 12 months rank avg. 4.6 positions higher. | [Google: Freshness](https://developers.google.com/search/docs/fundamentals/seo-starter-guide) |
|
|
309
|
+
| T3-8 | Internal link audit: every page links to 2–3 related pages. No orphan pages. All anchor text descriptive — never "click here". | PageRank distribution + crawl discovery for both engines | [Google: Links](https://developers.google.com/search/docs/fundamentals/seo-starter-guide) |
|
|
310
|
+
| T3-9 | **BING SPECIFIC:** Social sharing strategy — publish key pages on Facebook and LinkedIn on a regular schedule | Explicit Bing ranking factor. Social engagement directly boosts Bing ranking. | [Bing Webmaster Guidelines](https://www.bing.com/webmasters/help/webmaster-guidelines-30fba23a) |
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
#### TIER 4 — GEO / AI Visibility *(Week 3–4)*
|
|
315
|
+
|
|
316
|
+
| ID | Action | Why | Official Reference |
|
|
317
|
+
|----|--------|-----|--------------------|
|
|
318
|
+
| T4-1 | Restructure content into self-contained blocks: each `<h2>` section must be independently answerable without reading the rest of the page | AI systems read blocks, not whole pages. Block structure = extractable by Copilot, ChatGPT, Perplexity. | [Google: Featured Snippets](https://developers.google.com/search/docs/appearance/featured-snippets) |
|
|
319
|
+
| T4-2 | Add definitive answer format: lead every section with "X is Y." pattern before expanding. Direct answer first, context after. | AI systems prioritize direct, extractable answers over narrative prose | [Google: Featured Snippets](https://developers.google.com/search/docs/appearance/featured-snippets) |
|
|
320
|
+
| T4-3 | Entity optimization: brand name, key people, products, and organizations always referenced by exact name in HTML text. Minimize ambiguous pronouns (it, they, we) without explicit named antecedents. | LLMs prefer entity-rich content for citation selection | [Google: Structured Data](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data) |
|
|
321
|
+
| T4-4 | Audit image-only information: any critical text inside images/infographics must also exist as HTML text near the image | AI systems and most crawlers cannot read text embedded in images | [Google: Images](https://developers.google.com/search/docs/appearance/google-images) |
|
|
322
|
+
| T4-5 | Add citation links to credible external sources within content (link to .gov, .edu, research papers, official docs) | AI ranking models prefer content that cites authoritative sources — same logic as academic citations | [Google: Helpful Content](https://developers.google.com/search/docs/fundamentals/creating-helpful-content) |
|
|
323
|
+
| T4-6 | Convert prose-heavy sections to tables, numbered lists, and definition blocks where appropriate | AI extracts structured information more reliably than flowing prose | [Google: Featured Snippets](https://developers.google.com/search/docs/appearance/featured-snippets) |
|
|
324
|
+
| T4-7 | Add `SoftwareApplication` JSON-LD schema for SaaS/app products: applicationCategory, operatingSystem, offers (pricing) | App-specific rich results + AI product citation | [schema.org/SoftwareApplication](https://schema.org/SoftwareApplication) |
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## PART 6 — SCHEMA JSON-LD TEMPLATES
|
|
329
|
+
|
|
330
|
+
All templates use **JSON-LD format** (preferred by both Google and Bing). Insert inside `<script type="application/ld+json">` in `<head>`. Replace all `{{PLACEHOLDER}}` values with real data.
|
|
331
|
+
|
|
332
|
+
### Organization — Add to Every Homepage
|
|
333
|
+
```json
|
|
334
|
+
{
|
|
335
|
+
"@context": "https://schema.org",
|
|
336
|
+
"@type": "Organization",
|
|
337
|
+
"name": "{{COMPANY_NAME}}",
|
|
338
|
+
"url": "{{WEBSITE_URL}}",
|
|
339
|
+
"logo": "{{LOGO_URL_MIN_112x112px}}",
|
|
340
|
+
"description": "{{ONE_SENTENCE_DESCRIPTION}}",
|
|
341
|
+
"foundingDate": "{{YEAR}}",
|
|
342
|
+
"sameAs": [
|
|
343
|
+
"{{LINKEDIN_URL}}",
|
|
344
|
+
"{{TWITTER_X_URL}}",
|
|
345
|
+
"{{FACEBOOK_URL}}",
|
|
346
|
+
"{{GITHUB_URL}}"
|
|
347
|
+
],
|
|
348
|
+
"contactPoint": {
|
|
349
|
+
"@type": "ContactPoint",
|
|
350
|
+
"contactType": "customer support",
|
|
351
|
+
"email": "{{SUPPORT_EMAIL}}",
|
|
352
|
+
"url": "{{CONTACT_PAGE_URL}}"
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### WebSite — Add to Every Homepage
|
|
358
|
+
```json
|
|
359
|
+
{
|
|
360
|
+
"@context": "https://schema.org",
|
|
361
|
+
"@type": "WebSite",
|
|
362
|
+
"name": "{{SITE_NAME}}",
|
|
363
|
+
"url": "{{WEBSITE_URL}}",
|
|
364
|
+
"potentialAction": {
|
|
365
|
+
"@type": "SearchAction",
|
|
366
|
+
"target": {
|
|
367
|
+
"@type": "EntryPoint",
|
|
368
|
+
"urlTemplate": "{{WEBSITE_URL}}/search?q={search_term_string}"
|
|
369
|
+
},
|
|
370
|
+
"query-input": "required name=search_term_string"
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### WebPage — Add to Every Individual Page
|
|
376
|
+
```json
|
|
377
|
+
{
|
|
378
|
+
"@context": "https://schema.org",
|
|
379
|
+
"@type": "WebPage",
|
|
380
|
+
"name": "{{PAGE_TITLE}}",
|
|
381
|
+
"description": "{{PAGE_DESCRIPTION}}",
|
|
382
|
+
"url": "{{PAGE_URL}}",
|
|
383
|
+
"datePublished": "{{YYYY-MM-DD}}",
|
|
384
|
+
"dateModified": "{{YYYY-MM-DD}}",
|
|
385
|
+
"inLanguage": "{{e.g. en-US}}",
|
|
386
|
+
"isPartOf": {
|
|
387
|
+
"@type": "WebSite",
|
|
388
|
+
"url": "{{WEBSITE_URL}}"
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### FAQPage — Highest GEO Impact (3.2× More Likely in AI Overviews)
|
|
394
|
+
```json
|
|
395
|
+
{
|
|
396
|
+
"@context": "https://schema.org",
|
|
397
|
+
"@type": "FAQPage",
|
|
398
|
+
"mainEntity": [
|
|
399
|
+
{
|
|
400
|
+
"@type": "Question",
|
|
401
|
+
"name": "{{EXACT_QUESTION_USERS_TYPE}}",
|
|
402
|
+
"acceptedAnswer": {
|
|
403
|
+
"@type": "Answer",
|
|
404
|
+
"text": "{{DIRECT_ANSWER_IN_PLAIN_TEXT_NO_HTML}}"
|
|
405
|
+
}
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"@type": "Question",
|
|
409
|
+
"name": "{{QUESTION_2}}",
|
|
410
|
+
"acceptedAnswer": {
|
|
411
|
+
"@type": "Answer",
|
|
412
|
+
"text": "{{ANSWER_2}}"
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
]
|
|
416
|
+
}
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
### Article / BlogPosting — Add to All Content Pages
|
|
420
|
+
```json
|
|
421
|
+
{
|
|
422
|
+
"@context": "https://schema.org",
|
|
423
|
+
"@type": "Article",
|
|
424
|
+
"headline": "{{TITLE_MAX_110_CHARS}}",
|
|
425
|
+
"description": "{{META_DESCRIPTION}}",
|
|
426
|
+
"url": "{{PAGE_URL}}",
|
|
427
|
+
"datePublished": "{{YYYY-MM-DD}}",
|
|
428
|
+
"dateModified": "{{YYYY-MM-DD}}",
|
|
429
|
+
"author": {
|
|
430
|
+
"@type": "Person",
|
|
431
|
+
"name": "{{AUTHOR_FULL_NAME}}",
|
|
432
|
+
"url": "{{AUTHOR_BIO_URL}}",
|
|
433
|
+
"sameAs": ["{{AUTHOR_LINKEDIN_URL}}"]
|
|
434
|
+
},
|
|
435
|
+
"publisher": {
|
|
436
|
+
"@type": "Organization",
|
|
437
|
+
"name": "{{COMPANY_NAME}}",
|
|
438
|
+
"logo": {
|
|
439
|
+
"@type": "ImageObject",
|
|
440
|
+
"url": "{{LOGO_URL}}"
|
|
441
|
+
}
|
|
442
|
+
},
|
|
443
|
+
"image": {
|
|
444
|
+
"@type": "ImageObject",
|
|
445
|
+
"url": "{{FEATURED_IMAGE_1200x630px}}",
|
|
446
|
+
"width": 1200,
|
|
447
|
+
"height": 630
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
### SoftwareApplication — For SaaS and App Products
|
|
453
|
+
```json
|
|
454
|
+
{
|
|
455
|
+
"@context": "https://schema.org",
|
|
456
|
+
"@type": "SoftwareApplication",
|
|
457
|
+
"name": "{{APP_NAME}}",
|
|
458
|
+
"description": "{{APP_DESCRIPTION}}",
|
|
459
|
+
"url": "{{APP_URL}}",
|
|
460
|
+
"applicationCategory": "{{e.g. BusinessApplication / UtilitiesApplication / EducationalApplication}}",
|
|
461
|
+
"operatingSystem": "{{e.g. Web / iOS / Android / Windows}}",
|
|
462
|
+
"offers": {
|
|
463
|
+
"@type": "Offer",
|
|
464
|
+
"price": "{{STARTING_PRICE_or_0_if_free}}",
|
|
465
|
+
"priceCurrency": "USD"
|
|
466
|
+
},
|
|
467
|
+
"aggregateRating": {
|
|
468
|
+
"@type": "AggregateRating",
|
|
469
|
+
"ratingValue": "{{e.g. 4.7}}",
|
|
470
|
+
"reviewCount": "{{NUMBER}}",
|
|
471
|
+
"bestRating": "5"
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
### HowTo — For Tutorial and Instructional Content
|
|
477
|
+
```json
|
|
478
|
+
{
|
|
479
|
+
"@context": "https://schema.org",
|
|
480
|
+
"@type": "HowTo",
|
|
481
|
+
"name": "{{HOW_TO_TITLE}}",
|
|
482
|
+
"description": "{{BRIEF_DESCRIPTION}}",
|
|
483
|
+
"totalTime": "{{ISO_DURATION_e.g._PT30M_for_30_minutes}}",
|
|
484
|
+
"tool": [
|
|
485
|
+
{ "@type": "HowToTool", "name": "{{REQUIRED_TOOL}}" }
|
|
486
|
+
],
|
|
487
|
+
"step": [
|
|
488
|
+
{
|
|
489
|
+
"@type": "HowToStep",
|
|
490
|
+
"position": 1,
|
|
491
|
+
"name": "{{STEP_1_SHORT_NAME}}",
|
|
492
|
+
"text": "{{STEP_1_FULL_DESCRIPTION}}",
|
|
493
|
+
"image": "{{STEP_1_IMAGE_URL_OPTIONAL}}"
|
|
494
|
+
}
|
|
495
|
+
]
|
|
496
|
+
}
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
### BreadcrumbList — All Multi-Level Pages
|
|
500
|
+
```json
|
|
501
|
+
{
|
|
502
|
+
"@context": "https://schema.org",
|
|
503
|
+
"@type": "BreadcrumbList",
|
|
504
|
+
"itemListElement": [
|
|
505
|
+
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "{{HOMEPAGE_URL}}" },
|
|
506
|
+
{ "@type": "ListItem", "position": 2, "name": "{{SECTION_NAME}}", "item": "{{SECTION_URL}}" },
|
|
507
|
+
{ "@type": "ListItem", "position": 3, "name": "{{PAGE_NAME}}", "item": "{{PAGE_URL}}" }
|
|
508
|
+
]
|
|
509
|
+
}
|
|
510
|
+
```
|
|
511
|
+
|
|
512
|
+
### LocalBusiness — For Location-Based Products or Services
|
|
513
|
+
```json
|
|
514
|
+
{
|
|
515
|
+
"@context": "https://schema.org",
|
|
516
|
+
"@type": "LocalBusiness",
|
|
517
|
+
"name": "{{BUSINESS_NAME}}",
|
|
518
|
+
"description": "{{DESCRIPTION}}",
|
|
519
|
+
"url": "{{WEBSITE_URL}}",
|
|
520
|
+
"telephone": "{{PHONE}}",
|
|
521
|
+
"email": "{{EMAIL}}",
|
|
522
|
+
"address": {
|
|
523
|
+
"@type": "PostalAddress",
|
|
524
|
+
"streetAddress": "{{STREET}}",
|
|
525
|
+
"addressLocality": "{{CITY}}",
|
|
526
|
+
"addressRegion": "{{STATE_REGION}}",
|
|
527
|
+
"postalCode": "{{ZIP}}",
|
|
528
|
+
"addressCountry": "{{e.g. US}}"
|
|
529
|
+
},
|
|
530
|
+
"geo": {
|
|
531
|
+
"@type": "GeoCoordinates",
|
|
532
|
+
"latitude": "{{LAT}}",
|
|
533
|
+
"longitude": "{{LNG}}"
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
540
|
+
## PART 7 — META TAG RULES
|
|
541
|
+
|
|
542
|
+
### `<title>` Tag
|
|
543
|
+
- **Length:** 50–60 characters maximum
|
|
544
|
+
- **Structure:** `Primary Keyword — Descriptive Phrase | Brand Name`
|
|
545
|
+
- **Rule:** Primary keyword near the start; brand at the end
|
|
546
|
+
- **Every page must have a unique title — never duplicate**
|
|
547
|
+
- **Bing:** Uses title more as-written. Exact keyword phrase match critical.
|
|
548
|
+
- **Google:** Often rewrites titles. Write the best human-readable version.
|
|
549
|
+
- **Reference:** https://developers.google.com/search/docs/appearance/title-link
|
|
550
|
+
|
|
551
|
+
### `<meta name="description">`
|
|
552
|
+
- **Length:** 150–160 characters maximum
|
|
553
|
+
- **Must include:** Primary keyword + compelling reason to click (benefit, promise, or action)
|
|
554
|
+
- **Every page must have a unique description — never duplicate**
|
|
555
|
+
- **Bing:** Uses your written description mostly as-is. Write it carefully.
|
|
556
|
+
- **Google:** Often rewrites it to match the specific query.
|
|
557
|
+
- **Reference:** https://developers.google.com/search/docs/appearance/snippet
|
|
558
|
+
|
|
559
|
+
### `<meta name="robots">`
|
|
560
|
+
- Rankable pages: `content="index, follow"`
|
|
561
|
+
- Admin / thank-you / internal search / duplicate pages: `content="noindex, nofollow"`
|
|
562
|
+
- Pages with useful links but not for ranking: `content="noindex, follow"`
|
|
563
|
+
- **Reference:** https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag
|
|
564
|
+
|
|
565
|
+
### `<link rel="canonical">`
|
|
566
|
+
- **Every page must have one**
|
|
567
|
+
- Self-referencing on unique, original pages
|
|
568
|
+
- Must use absolute URLs including `https://`
|
|
569
|
+
- **Reference:** https://developers.google.com/search/docs/crawling-indexing/canonicalization
|
|
570
|
+
|
|
571
|
+
### `<meta name="viewport">`
|
|
572
|
+
- Always: `content="width=device-width, initial-scale=1"`
|
|
573
|
+
- Required for Google mobile-first indexing
|
|
574
|
+
|
|
575
|
+
### Open Graph (`og:`)
|
|
576
|
+
- `og:image` minimum **1200×630px** — critical for Bing social signal ranking
|
|
577
|
+
- `og:type`: use `website` for homepage, `article` for blog posts
|
|
578
|
+
- Validate with: https://developers.facebook.com/tools/debug/
|
|
579
|
+
- **Reference:** https://ogp.me/
|
|
580
|
+
|
|
581
|
+
### `<link rel="hreflang">`
|
|
582
|
+
- Required only for multi-language or multi-regional sites
|
|
583
|
+
- Include `x-default` pointing to the default language
|
|
584
|
+
- **Reference:** https://developers.google.com/search/docs/specialty/international/localization
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
## PART 8 — CORE WEB VITALS REFERENCE
|
|
589
|
+
|
|
590
|
+
**Official spec:** https://web.dev/articles/vitals — Check this URL for any threshold updates.
|
|
591
|
+
|
|
592
|
+
> ⚠️ **INP replaced FID in March 2024.** Any guide, recommendation, or tool still mentioning FID as a ranking metric is outdated and must not be followed.
|
|
593
|
+
|
|
594
|
+
| Metric | Good ✅ | Needs Work ⚠️ | Poor ❌ | What It Measures |
|
|
595
|
+
|--------|---------|--------------|--------|-----------------|
|
|
596
|
+
| **LCP** — Largest Contentful Paint | < 2.5s | 2.5–4.0s | > 4.0s | How fast the main content (hero image, heading) loads |
|
|
597
|
+
| **INP** — Interaction to Next Paint | < 200ms | 200–500ms | > 500ms | How fast the page responds when user clicks or taps |
|
|
598
|
+
| **CLS** — Cumulative Layout Shift | < 0.1 | 0.1–0.25 | > 0.25 | How much content visually jumps around while loading |
|
|
599
|
+
|
|
600
|
+
Must pass for **75% of real-user page loads** (not just lab test).
|
|
601
|
+
|
|
602
|
+
**Testing tool:** https://pagespeed.web.dev/ — Run on both mobile AND desktop.
|
|
603
|
+
|
|
604
|
+
**54.2% of websites currently fail at least one CWV metric** — passing all three is a significant competitive advantage.
|
|
605
|
+
|
|
606
|
+
---
|
|
607
|
+
|
|
608
|
+
## PART 9 — GOOGLE vs. BING DIFFERENCES
|
|
609
|
+
|
|
610
|
+
Never treat Google and Bing as the same search engine. Handle both explicitly.
|
|
611
|
+
|
|
612
|
+
| Factor | Google | Bing |
|
|
613
|
+
|--------|--------|------|
|
|
614
|
+
| Keyword matching | Semantic + intent-based. Understands synonyms and related terms. | **Exact-match preferred.** Use the exact keyword phrase verbatim in title, H1, URL, first paragraph. |
|
|
615
|
+
| Social signals | Not officially used as ranking signals | **Explicitly used.** Facebook shares, LinkedIn engagement, X reposts directly boost ranking. |
|
|
616
|
+
| JavaScript rendering | Excellent — handles complex SPAs, multi-pass rendering | **WEAK.** Client-side-only React/Vue/Angular is often invisible to Bingbot. SSR or SSG required. |
|
|
617
|
+
| Indexing priority | **Mobile-first.** Desktop is secondary. | Desktop-first. Both versions must be optimized. |
|
|
618
|
+
| Meta description usage | Often rewrites to match the specific query | Uses your written description mostly as-is. Write carefully. |
|
|
619
|
+
| Domain age | Content quality can overcome a new domain | Older, established domains receive more inherent trust. |
|
|
620
|
+
| Backlink weighting | Quality + topical relevance | **Extra weight for .edu and .gov domains.** Total count also matters more. |
|
|
621
|
+
| Content length | Depth and completeness over raw word count | Explicitly prefers longer-form, comprehensive content. |
|
|
622
|
+
| Webmaster tools | Google Search Console | **Bing Webmaster Tools — completely separate. Manual sitemap submission required.** |
|
|
623
|
+
| Structured data | Powers rich results + AI Overviews | Powers Bing rich results + Copilot citations |
|
|
624
|
+
|
|
625
|
+
---
|
|
626
|
+
|
|
627
|
+
## PART 10 — VERIFICATION CHECKLIST
|
|
628
|
+
|
|
629
|
+
Run every item after each execution phase. Report Pass ✅ or Fail ❌ with evidence for each.
|
|
630
|
+
|
|
631
|
+
### Verification Tools
|
|
632
|
+
|
|
633
|
+
| Tool | URL | What It Validates |
|
|
634
|
+
|------|-----|------------------|
|
|
635
|
+
| Google Rich Results Test | https://search.google.com/test/rich-results | All schema — must show 0 errors |
|
|
636
|
+
| Google PageSpeed Insights | https://pagespeed.web.dev/ | LCP, INP, CLS scores |
|
|
637
|
+
| Google Mobile-Friendly Test | https://search.google.com/test/mobile-friendly | Mobile responsiveness |
|
|
638
|
+
| Google Search Console | https://search.google.com/search-console/ | Indexing, coverage, CWV, manual actions |
|
|
639
|
+
| Bing Webmaster Tools | https://www.bing.com/webmasters/ | Bing crawl, indexing, SEO analyzer |
|
|
640
|
+
| Bing URL Inspection | https://www.bing.com/webmasters/url-inspection | Specific URL index status in Bing |
|
|
641
|
+
| Schema.org Validator | https://validator.schema.org | Schema vocabulary correctness |
|
|
642
|
+
| Meta Tags Preview | https://metatags.io | SERP visual preview of title + description |
|
|
643
|
+
| Facebook OG Debugger | https://developers.facebook.com/tools/debug/ | og: tags + Bing social signal verification |
|
|
644
|
+
|
|
645
|
+
### Final Sign-Off Checklist
|
|
646
|
+
|
|
647
|
+
- [ ] All pages: unique `<title>` (50–60 chars, keyword near start)
|
|
648
|
+
- [ ] All pages: unique `<meta description>` (150–160 chars)
|
|
649
|
+
- [ ] All pages: self-referencing `<link rel="canonical">`
|
|
650
|
+
- [ ] All pages: `<meta name="robots" content="index, follow">` (or noindex where appropriate)
|
|
651
|
+
- [ ] All pages: `<meta name="viewport" content="width=device-width, initial-scale=1">`
|
|
652
|
+
- [ ] Open Graph tags validated via Facebook Debugger — no errors
|
|
653
|
+
- [ ] Twitter Card tags present on all pages
|
|
654
|
+
- [ ] `Organization` + `WebSite` schema: **0 errors** in Google Rich Results Test
|
|
655
|
+
- [ ] `WebPage` schema on all pages: **0 errors**
|
|
656
|
+
- [ ] `BreadcrumbList` schema on all multi-level pages: **0 errors**
|
|
657
|
+
- [ ] `FAQPage` schema on all key pages: **0 errors**
|
|
658
|
+
- [ ] `Article`/`BlogPosting` schema on all content pages: **0 errors**
|
|
659
|
+
- [ ] CWV: LCP **< 2.5s** ✅
|
|
660
|
+
- [ ] CWV: INP **< 200ms** ✅
|
|
661
|
+
- [ ] CWV: CLS **< 0.1** ✅
|
|
662
|
+
- [ ] HTTPS on all pages — zero mixed content warnings
|
|
663
|
+
- [ ] Google Mobile-Friendly Test: **passed**
|
|
664
|
+
- [ ] `robots.txt` valid — no important pages, CSS, or JS blocked
|
|
665
|
+
- [ ] XML sitemap submitted to **Google Search Console**
|
|
666
|
+
- [ ] XML sitemap submitted to **Bing Webmaster Tools**
|
|
667
|
+
- [ ] Bing: critical content visible in raw HTML source (not JS-only rendered)
|
|
668
|
+
- [ ] All images have descriptive alt text (under 125 chars)
|
|
669
|
+
- [ ] Zero internal 404 broken links
|
|
670
|
+
- [ ] Zero orphan pages — all pages reachable within 3 clicks from homepage
|
|
671
|
+
- [ ] URL structure: lowercase, hyphens, keyword in slug, no unnecessary parameters
|
|
672
|
+
- [ ] Author/Person schema present on all content pages (E-E-A-T signal)
|
|
673
|
+
- [ ] FAQ sections with `FAQPage` schema on all key pages
|
|
674
|
+
- [ ] Content uses self-contained H2 blocks (GEO optimization)
|
|
675
|
+
- [ ] `hreflang` tags if multi-language site
|
|
676
|
+
|
|
677
|
+
---
|
|
678
|
+
|
|
679
|
+
## PART 11 — ALGORITHM UPDATE MONITORING
|
|
680
|
+
|
|
681
|
+
### When Google or Bing Announces an Update
|
|
682
|
+
|
|
683
|
+
1. Check the official reference links below for what changed.
|
|
684
|
+
2. Cross-reference against the affected section of this skill file.
|
|
685
|
+
3. Generate a specific impact report: what changed, which pages/tags/schema are affected, what action is needed.
|
|
686
|
+
4. Present impact report to user. Follow the Approved Change Protocol for every proposed update action.
|
|
687
|
+
5. After implementing: update any local notes with new version information.
|
|
688
|
+
|
|
689
|
+
### Sources to Monitor
|
|
690
|
+
|
|
691
|
+
| Source | URL | Check Frequency |
|
|
692
|
+
|--------|-----|----------------|
|
|
693
|
+
| Google Search Central Blog | https://developers.google.com/search/blog | Weekly |
|
|
694
|
+
| Bing Webmaster Blog | https://blogs.bing.com/webmaster/ | Monthly |
|
|
695
|
+
| Search Engine Land | https://searchengineland.com/category/google/algorithm | Weekly during major updates |
|
|
696
|
+
| Search Engine Roundtable | https://www.seroundtable.com/ | Weekly |
|
|
697
|
+
| Core Web Vitals changelog | https://web.dev/articles/vitals | Quarterly |
|
|
698
|
+
|
|
699
|
+
---
|
|
700
|
+
|
|
701
|
+
## PART 12 — BEGINNER EXECUTION TIMELINE
|
|
702
|
+
|
|
703
|
+
For users starting from zero, execute in this exact order:
|
|
704
|
+
|
|
705
|
+
| When | Actions |
|
|
706
|
+
|------|---------|
|
|
707
|
+
| **Day 1** | Meta tags (title, description, robots, canonical, viewport) · Organization schema · WebSite schema · robots.txt audit · HTTPS verify · Sitemap → GSC + Bing WT |
|
|
708
|
+
| **Week 1** | CWV fixes (LCP/INP/CLS) · H1/H2/H3 structure · Open Graph tags · Twitter Cards · WebPage schema · BreadcrumbList schema · Mobile-friendly test · Bing JS rendering audit · Bing Places listing |
|
|
709
|
+
| **Week 2** | FAQPage schema · HowTo schema · Person/Author schema · Article schema · Keyword placement audit · Image alt text · Bing social sharing strategy |
|
|
710
|
+
| **Week 3** | Topic cluster planning · Internal link audit · Content freshness plan · Social sharing schedule · Fix any orphan pages |
|
|
711
|
+
| **Week 4** | GEO: self-contained H2 content blocks · Definitive answer formats ("X is Y.") · Entity name optimization · Citation links to credible sources · Tables/lists restructuring |
|
|
712
|
+
| **Ongoing** | Monthly: Review GSC + Bing WT errors · Quarterly: Refresh top-performing content pages · On update announcement: Check monitoring sources above |
|
|
713
|
+
|
|
714
|
+
---
|
|
715
|
+
|
|
716
|
+
## PART 13 — OFFICIAL REFERENCES INDEX
|
|
717
|
+
|
|
718
|
+
All critical official documentation. Verify these are current at each re-audit. If a URL redirects or changes, note it and update the skill file.
|
|
719
|
+
|
|
720
|
+
### Google
|
|
721
|
+
- **Search Essentials (Official Rules):** https://developers.google.com/search/docs/essentials
|
|
722
|
+
- **SEO Starter Guide:** https://developers.google.com/search/docs/fundamentals/seo-starter-guide
|
|
723
|
+
- **Helpful Content System:** https://developers.google.com/search/docs/fundamentals/creating-helpful-content
|
|
724
|
+
- **Core Web Vitals:** https://web.dev/articles/vitals
|
|
725
|
+
- **LCP:** https://web.dev/articles/lcp
|
|
726
|
+
- **INP:** https://web.dev/articles/inp
|
|
727
|
+
- **CLS:** https://web.dev/articles/cls
|
|
728
|
+
- **Structured Data Overview:** https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data
|
|
729
|
+
- **Rich Results Test:** https://search.google.com/test/rich-results
|
|
730
|
+
- **Featured Snippets Guide:** https://developers.google.com/search/docs/appearance/featured-snippets
|
|
731
|
+
- **Title Link Guide:** https://developers.google.com/search/docs/appearance/title-link
|
|
732
|
+
- **Snippets/Meta Description:** https://developers.google.com/search/docs/appearance/snippet
|
|
733
|
+
- **Canonical Guide:** https://developers.google.com/search/docs/crawling-indexing/canonicalization
|
|
734
|
+
- **robots.txt Guide:** https://developers.google.com/search/docs/crawling-indexing/robots/intro
|
|
735
|
+
- **Robots Meta Tag:** https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag
|
|
736
|
+
- **Sitemaps Guide:** https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview
|
|
737
|
+
- **Mobile Sites Guide:** https://developers.google.com/search/docs/appearance/mobile-sites
|
|
738
|
+
- **Images Guide:** https://developers.google.com/search/docs/appearance/google-images
|
|
739
|
+
- **Breadcrumbs Schema:** https://developers.google.com/search/docs/appearance/structured-data/breadcrumb
|
|
740
|
+
- **FAQPage Schema:** https://developers.google.com/search/docs/appearance/structured-data/faqpage
|
|
741
|
+
- **HowTo Schema:** https://developers.google.com/search/docs/appearance/structured-data/how-to
|
|
742
|
+
- **hreflang Guide:** https://developers.google.com/search/docs/specialty/international/localization
|
|
743
|
+
- **Search Central Blog (Algorithm Updates):** https://developers.google.com/search/blog
|
|
744
|
+
- **Quality Rater Guidelines (PDF):** https://static.googleusercontent.com/media/guidelines.raterhub.com/en//searchqualityevaluatorguidelines.pdf
|
|
745
|
+
|
|
746
|
+
### Bing
|
|
747
|
+
- **Webmaster Guidelines:** https://www.bing.com/webmasters/help/webmaster-guidelines-30fba23a
|
|
748
|
+
- **Webmaster Tools:** https://www.bing.com/webmasters/
|
|
749
|
+
- **Bing Places:** https://www.bingplaces.com/
|
|
750
|
+
- **Bing Structured Data:** https://www.bing.com/webmasters/help/marking-up-your-site-12a3234f
|
|
751
|
+
- **Bing URL Inspection:** https://www.bing.com/webmasters/url-inspection
|
|
752
|
+
- **Bing Search Blog:** https://blogs.bing.com/webmaster/
|
|
753
|
+
|
|
754
|
+
### Schema Vocabulary
|
|
755
|
+
- **Schema.org Full Vocabulary:** https://schema.org/
|
|
756
|
+
- **Schema.org Validator:** https://validator.schema.org
|
|
757
|
+
- **Organization:** https://schema.org/Organization
|
|
758
|
+
- **WebSite:** https://schema.org/WebSite
|
|
759
|
+
- **WebPage:** https://schema.org/WebPage
|
|
760
|
+
- **Article:** https://schema.org/Article
|
|
761
|
+
- **FAQPage:** https://schema.org/FAQPage
|
|
762
|
+
- **HowTo:** https://schema.org/HowTo
|
|
763
|
+
- **Product:** https://schema.org/Product
|
|
764
|
+
- **SoftwareApplication:** https://schema.org/SoftwareApplication
|
|
765
|
+
- **LocalBusiness:** https://schema.org/LocalBusiness
|
|
766
|
+
- **BreadcrumbList:** https://schema.org/BreadcrumbList
|
|
767
|
+
- **Person:** https://schema.org/Person
|
|
768
|
+
- **AggregateRating:** https://schema.org/AggregateRating
|
|
769
|
+
|
|
770
|
+
### Protocols & Social
|
|
771
|
+
- **Open Graph Protocol:** https://ogp.me/
|
|
772
|
+
- **Twitter/X Card Docs:** https://developer.twitter.com/en/docs/twitter-for-websites/cards/
|
|
773
|
+
- **Facebook OG Debugger:** https://developers.facebook.com/tools/debug/
|
|
774
|
+
- **Google PageSpeed Insights:** https://pagespeed.web.dev/
|
|
775
|
+
- **Mobile-Friendly Test:** https://search.google.com/test/mobile-friendly
|
|
776
|
+
- **Meta Tags Preview:** https://metatags.io
|