diff --git a/README.md b/README.md index 63c6a2ff..4c8b3254 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ Configuration files that enhance Cursor AI editor experience with custom rules a [Cursor AI](https://cursor.sh/) is an AI-powered code editor. `.cursorrules` files define custom rules for Cursor AI to follow when generating code, allowing you to tailor its behavior to your specific needs and preferences. ## Sponsorships +

Warp - Built for coding with multiple AI agents

@@ -30,7 +31,6 @@ Configuration files that enhance Cursor AI editor experience with custom rules a

- ## Why .cursorrules? `.cursorrules` is a powerful feature in Cursor AI that allows developers to define project-specific instructions for the AI. Here's why you might want to use it: @@ -286,6 +286,7 @@ By creating a `.cursorrules` file in your project's root directory, you can leve ### Utilities - [Cursor Watchful Headers](https://github.com/johnbenac/cursor-watchful-headers) - A Python-based file watching system that automatically manages headers in text files and maintains a clean, focused project tree structure. Perfect for maintaining consistent file headers and documentation across your project, with special features to help LLMs maintain better project awareness. +- [SEO & GEO Optimizer](./rules/seo-geo-optimizer-cursorrules-prompt-file/.cursorrules) - Universal AI skill for Technical SEO, Content Strategy, Schema Markup, Core Web Vitals, and Generative Engine Optimization (GEO). ## Directories @@ -326,6 +327,7 @@ Contributions are welcome! If you have a great `.cursorrules` file to share: Please ensure your contribution is original or properly credited if based on existing work. Refer to the `.cursorrules` file in the root of this repository for detailed guidelines on formatting, naming conventions, and best practices for contributions. ## Sponsorships +

Warp - Built for coding with multiple AI agents

@@ -342,7 +344,6 @@ Please ensure your contribution is original or properly credited if based on exi

- --- ## License diff --git a/rules/seo-geo-optimizer-cursorrules-prompt-file/.cursorrules b/rules/seo-geo-optimizer-cursorrules-prompt-file/.cursorrules new file mode 100644 index 00000000..688b7733 --- /dev/null +++ b/rules/seo-geo-optimizer-cursorrules-prompt-file/.cursorrules @@ -0,0 +1,776 @@ +# SEO & GEO OPTIMIZER — Universal AI Skill + +**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. + +**Compatible with:** Cursor · Windsurf · Lovable · Bolt · GitHub Copilot · Replit · VS Code · Any AI assistant + +**Verified against:** +- Google Search Central — December 2025 +- Bing Webmaster Guidelines — 2025 +- Google June 2025 Core Update +- Core Web Vitals spec — March 2024 (INP replaces FID — all FID references are outdated) + +--- + +## HOW TO USE THIS SKILL + +**In Cursor:** Place this file at `.cursor/rules/seo-geo-optimizer.mdc` OR paste contents into `.cursorrules` + +**In Windsurf:** Place at `.windsurf/rules/seo-geo-optimizer.md` OR paste into `.windsurfrules` + +**In GitHub Copilot (VS Code):** Place at `.github/copilot-instructions.md` + +**In Lovable / Bolt / Replit:** Paste the full contents into the system prompt or custom instructions field + +**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. + +--- + +## PART 1 — IRON LAWS + +These rules govern all AI behavior when this skill is active. They are absolute and override any shortcut or efficiency instinct. + +**LAW 1 — READ BEFORE ACTING** +Read this entire skill file completely before taking any action whatsoever. No partial reads. No skipping sections. + +**LAW 2 — ASK, NEVER ASSUME** +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. + +**LAW 3 — COLLECT ALL DATA FIRST** +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. + +**LAW 4 — PLAN BEFORE EXECUTING** +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. + +**LAW 5 — ZERO AUTONOMOUS CHANGES** +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. + +**LAW 6 — CITE EVERY RECOMMENDATION** +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. + +**LAW 7 — ONE PHASE AT A TIME** +After completing each phase, STOP completely. Report results to the user. Ask for explicit approval to continue. Never chain phases without confirmation. + +**LAW 8 — FLAG ALL TEMPORARY FIXES** +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. + +**FORBIDDEN PHRASES — Never say these:** +- "I went ahead and..." +- "I quickly fixed..." +- "I took the liberty of..." +- "I also updated..." +- "While I was at it..." +- "I assumed you'd want..." + +--- + +## PART 2 — MANDATORY EXECUTION SEQUENCE + +Follow this exact sequence every engagement. No skipping. No reordering. + +``` +PHASE 0 → Read this entire skill file +PHASE 1 → Complete all 40 intake questions +PHASE 2 → Competitor analysis (3–5 real SEO competitors) +PHASE 3 → Gap and opportunity assessment +PHASE 4 → Generate Execution Plan Report → GET WRITTEN APPROVAL → then stop +PHASE 5 → Execute Tier 1 only → verify → report → ask to proceed +PHASE 6 → Execute Tier 2 only → verify → report → ask to proceed +PHASE 7 → Execute Tier 3 only → verify → report → ask to proceed +PHASE 8 → Execute Tier 4 only → verify → report → ask to proceed +PHASE 9 → Final verification checklist (all tools, pass/fail for every item) +PHASE 10 → Maintenance monitoring setup +``` + +### Phase 0 — Initialize +Read this entire file. Then say to the user: +> "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?" + +### Phase 4 — Critical Stop +After generating the EPR, say: +> "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)" + +Do NOT proceed until you receive explicit written approval. Silence is not approval. + +### Approved Change Protocol +Use this exact format before making ANY change: + +1. **WHAT** — State exactly what will change. File name, current value → new value. +2. **WHY** — Explain why this helps ranking. Include official reference URL. +3. **SHOW** — Show the exact before/after diff. +4. **RISK** — State any risk, side effect, or dependency. +5. **ASK** — "Do you approve this change? (yes / no / modify)" +6. **WAIT** — Wait for explicit written approval. Never proceed on silence. +7. **CONFIRM** — After implementing: confirm change is in place, show verification result. + +--- + +## PART 3 — INTAKE QUESTIONNAIRE (ALL 40 QUESTIONS) + +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."* + +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. + +### GROUP A — Product & Business Identity + +| ID | Question | +|----|----------| +| A1 | What is the full name of your product/website? What does it do in one sentence? | +| A2 | What is the URL? Is it live, staging, or not built yet? | +| A3 | Product category? (SaaS / e-commerce / blog / local business / portfolio / app landing page / news / other?) | +| A4 | What specific problem does this product solve? Who has this problem? | +| A5 | What is the primary call-to-action? (Sign up / Buy / Contact / Read / Download / Book a call?) | +| A6 | Is this a new domain or an existing one? How old is the domain approximately? | +| A7 | What tech stack is the site built on? (React / Next.js / Vue / WordPress / Webflow / Shopify / plain HTML / other?) | +| A8 | Is the site server-side rendered (SSR), statically generated (SSG/pre-rendered), or client-side only (CSR / SPA)? | + +### GROUP B — Target Audience & Market + +| ID | Question | +|----|----------| +| B1 | Who is the ideal user/customer? Describe their age, profession, expertise level, and location. | +| B2 | What countries or regions are you targeting? What languages? | +| B3 | What would your ideal user type into Google or Bing to find you? Please list 5–10 specific search phrases. | +| B4 | Are you targeting local, national, or global search? | +| B5 | Is the audience B2B (businesses), B2C (consumers), or both? | +| B6 | What is the typical buying journey — research-heavy over weeks, or a quick impulse decision? | + +### GROUP C — Competitors & Current State + +| ID | Question | +|----|----------| +| C1 | Name 3–5 websites you consider direct competitors. Please give their URLs or names. | +| C2 | Which competitor do you most want to outrank? Why do you think they currently rank higher? | +| C3 | Have you done any SEO work on this site before? If yes, what was done and which tools were used? | +| C4 | Is Google Search Console set up and verified? Is Bing Webmaster Tools set up? | +| C5 | Do you have any analytics on the site? What is your estimated current monthly organic traffic? | +| C6 | Are there any keywords you currently rank for, even at positions 20–100? | + +### GROUP D — Goals & Constraints + +| ID | Question | +|----|----------| +| D1 | Primary SEO goal? (Get indexed / reach top 10 / beat a specific competitor / appear in Google AI Overviews / all of the above?) | +| D2 | What is your timeline? When do you need to see measurable results? | +| D3 | Is a developer available to make code changes? Or must this be no-code only? | +| D4 | What SEO tools do you have access to? (Ahrefs / SEMrush / Moz / only free tools like GSC and Bing WT?) | +| D5 | How many pages currently exist on the site? Is there existing content? | +| D6 | Any technical constraints? (CDN limits / hosting restrictions / CMS blocks / no access to `` tag?) | +| D7 | Does the site use AI-generated content? If yes, what human review and editing process exists? | + +### GROUP E — GEO & AI Visibility Goals + +| ID | Question | +|----|----------| +| E1 | Do you want to appear in Google AI Overviews (the AI-generated answer boxes at the top of Google results)? | +| E2 | Do you want to be cited by Bing Copilot, ChatGPT, Perplexity, or other AI answer engines? | +| E3 | Does existing content include instructional/how-to material, FAQ sections, or Q&A content? | +| E4 | Is any structured data (schema markup) currently on the site? If yes, which types? | +| E5 | Is the brand currently mentioned or cited on other authoritative websites? Which ones? | + +--- + +## PART 4 — COMPETITOR ANALYSIS FRAMEWORK + +### Step 1 — Find Real SEO Competitors + +> ⚠️ Business competitors and SEO competitors are often different. Always run this process rather than using the business rivals the user listed. + +1. Take the 5–10 keyword phrases from intake answer **B3**. +2. Search each phrase in Google (incognito/private mode). Record top 5 organic results. +3. Search the same phrases in Bing. Record top 5 results. +4. Identify domains appearing **3 or more times** across all searches. These are real SEO competitors. +5. Remove unreachable benchmarks: Wikipedia, Amazon, Forbes, Reddit, major news sites — unless the user is enterprise-level. +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. +7. Present the shortlist to the user and ask: *"Are these the right competitors to analyze? Any to add or remove?"* + +**Rule:** 40%+ keyword overlap = genuine SEO competitor. Under 20% = not worth deep analysis. + +### Step 2 — Analyze All 13 Dimensions For Each Competitor + +| # | Analysis Area | What to Find | Free Tool | +|---|--------------|-------------|-----------| +| 1 | Title tag strategy | Keyword position, brand placement, length, power words | View page source | +| 2 | Meta description style | Format (benefit/question/CTA), length, keyword | metatags.io | +| 3 | H1/H2 keyword usage | Exact vs. semantic match, heading hierarchy depth | View page source | +| 4 | Content length & depth | Word count on ranking pages. Shallow or comprehensive? | Paste into word counter | +| 5 | Schema markup present | Which schema types? Any errors? | [Rich Results Test](https://search.google.com/test/rich-results) | +| 6 | Core Web Vitals scores | LCP, INP, CLS — note where they fail | [PageSpeed Insights](https://pagespeed.web.dev/) | +| 7 | Backlink profile | Referring domains, .edu/.gov links present? | Ahrefs Free / Moz | +| 8 | Social signals (Bing factor) | Active sharing on Facebook, LinkedIn, X? | Manual check | +| 9 | FAQ / AI-optimized content | FAQ sections with schema? HowTo guides? Q&A blocks? | Manual review + Rich Results Test | +| 10 | Content freshness | When were key pages last updated? | Google cache check: `cache:url` | +| 11 | Keyword gap | Keywords they rank for that user doesn't | SEMrush Keyword Gap (free trial) | +| 12 | Featured snippets / AI Overviews | Do they own any for target keywords? | Manual search | +| 13 | Mobile experience | Does the mobile version work cleanly? | [Mobile-Friendly Test](https://search.google.com/test/mobile-friendly) | + +### Step 3 — Competitor Analysis Table (Fill For Each Competitor) + +``` +Competitor URL: +Domain Age (approx.): +Estimated Monthly Traffic: +Top 3 Ranking Keywords: +Schema Types Detected: +CWV — LCP / INP / CLS: +Content Depth (avg. words on key pages): +Has FAQPage Schema?: +Social Signal Activity: +Referring Domains Count: +Key Strengths vs. Our Product: +Key Weaknesses / Our Opportunity: +Keyword Gap Opportunities: +``` + +--- + +## PART 5 — EXECUTION PLAN REPORT (EPR) TEMPLATE + +Generate a complete, filled EPR before executing anything. Present to user. Require written approval before any action. + +### EPR Header + +``` +Product Name: +Product URL: +Date of Analysis: +Primary Search Engines: Google · Bing · Both +GEO/AI Visibility Goal: +Top 5 Priority Keywords: +Primary Competitor: +Tech Stack & Rendering Method: +SEO Maturity Level: Beginner / Intermediate / Advanced + +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +APPROVED BY (User must complete): _______________________ +Approval Date: _______________________ +━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +``` + +### Situation Assessment +Write 4–6 sentences. Cover: current ranking position, biggest barriers to ranking, what competitor analysis revealed, fastest ROI path. No filler. Specific, factual, cited. + +### Critical Findings +List the top 3–5 most urgent issues found. Each finding must state: +- What it is +- Why it matters for ranking +- What it costs in lost visibility +- Official reference link + +### Prioritized Action Plan + +--- + +#### TIER 1 — Critical Foundation *(Day 1)* + +| ID | Action | Why | Official Reference | +|----|--------|-----|--------------------| +| T1-1 | Generate all HTML meta tags: `` (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) | +| 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) | +| 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) | +| 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) | +| 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/) | +| 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) | +| 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) | +| 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) | + +--- + +#### TIER 2 — Performance & On-Page *(Week 1)* + +| ID | Action | Why | Official Reference | +|----|--------|-----|--------------------| +| 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) | +| 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) | +| 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) | +| 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) | +| 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/) | +| 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/) | +| 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) | +| 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) | +| 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) | +| 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) | +| 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/) | +| 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) | + +--- + +#### TIER 3 — Content & Authority *(Week 2–3)* + +| ID | Action | Why | Official Reference | +|----|--------|-----|--------------------| +| 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) | +| 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) | +| 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) | +| 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) | +| 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) | +| 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) | +| 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) | +| 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) | +| 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) | + +--- + +#### TIER 4 — GEO / AI Visibility *(Week 3–4)* + +| ID | Action | Why | Official Reference | +|----|--------|-----|--------------------| +| 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) | +| 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) | +| 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) | +| 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) | +| 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) | +| 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) | +| 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) | + +--- + +## PART 6 — SCHEMA JSON-LD TEMPLATES + +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. + +### Organization — Add to Every Homepage +```json +{ + "@context": "https://schema.org", + "@type": "Organization", + "name": "{{COMPANY_NAME}}", + "url": "{{WEBSITE_URL}}", + "logo": "{{LOGO_URL_MIN_112x112px}}", + "description": "{{ONE_SENTENCE_DESCRIPTION}}", + "foundingDate": "{{YEAR}}", + "sameAs": [ + "{{LINKEDIN_URL}}", + "{{TWITTER_X_URL}}", + "{{FACEBOOK_URL}}", + "{{GITHUB_URL}}" + ], + "contactPoint": { + "@type": "ContactPoint", + "contactType": "customer support", + "email": "{{SUPPORT_EMAIL}}", + "url": "{{CONTACT_PAGE_URL}}" + } +} +``` + +### WebSite — Add to Every Homepage +```json +{ + "@context": "https://schema.org", + "@type": "WebSite", + "name": "{{SITE_NAME}}", + "url": "{{WEBSITE_URL}}", + "potentialAction": { + "@type": "SearchAction", + "target": { + "@type": "EntryPoint", + "urlTemplate": "{{WEBSITE_URL}}/search?q={search_term_string}" + }, + "query-input": "required name=search_term_string" + } +} +``` + +### WebPage — Add to Every Individual Page +```json +{ + "@context": "https://schema.org", + "@type": "WebPage", + "name": "{{PAGE_TITLE}}", + "description": "{{PAGE_DESCRIPTION}}", + "url": "{{PAGE_URL}}", + "datePublished": "{{YYYY-MM-DD}}", + "dateModified": "{{YYYY-MM-DD}}", + "inLanguage": "{{e.g. en-US}}", + "isPartOf": { + "@type": "WebSite", + "url": "{{WEBSITE_URL}}" + } +} +``` + +### FAQPage — Highest GEO Impact (3.2× More Likely in AI Overviews) +```json +{ + "@context": "https://schema.org", + "@type": "FAQPage", + "mainEntity": [ + { + "@type": "Question", + "name": "{{EXACT_QUESTION_USERS_TYPE}}", + "acceptedAnswer": { + "@type": "Answer", + "text": "{{DIRECT_ANSWER_IN_PLAIN_TEXT_NO_HTML}}" + } + }, + { + "@type": "Question", + "name": "{{QUESTION_2}}", + "acceptedAnswer": { + "@type": "Answer", + "text": "{{ANSWER_2}}" + } + } + ] +} +``` + +### Article / BlogPosting — Add to All Content Pages +```json +{ + "@context": "https://schema.org", + "@type": "Article", + "headline": "{{TITLE_MAX_110_CHARS}}", + "description": "{{META_DESCRIPTION}}", + "url": "{{PAGE_URL}}", + "datePublished": "{{YYYY-MM-DD}}", + "dateModified": "{{YYYY-MM-DD}}", + "author": { + "@type": "Person", + "name": "{{AUTHOR_FULL_NAME}}", + "url": "{{AUTHOR_BIO_URL}}", + "sameAs": ["{{AUTHOR_LINKEDIN_URL}}"] + }, + "publisher": { + "@type": "Organization", + "name": "{{COMPANY_NAME}}", + "logo": { + "@type": "ImageObject", + "url": "{{LOGO_URL}}" + } + }, + "image": { + "@type": "ImageObject", + "url": "{{FEATURED_IMAGE_1200x630px}}", + "width": 1200, + "height": 630 + } +} +``` + +### SoftwareApplication — For SaaS and App Products +```json +{ + "@context": "https://schema.org", + "@type": "SoftwareApplication", + "name": "{{APP_NAME}}", + "description": "{{APP_DESCRIPTION}}", + "url": "{{APP_URL}}", + "applicationCategory": "{{e.g. BusinessApplication / UtilitiesApplication / EducationalApplication}}", + "operatingSystem": "{{e.g. Web / iOS / Android / Windows}}", + "offers": { + "@type": "Offer", + "price": "{{STARTING_PRICE_or_0_if_free}}", + "priceCurrency": "USD" + }, + "aggregateRating": { + "@type": "AggregateRating", + "ratingValue": "{{e.g. 4.7}}", + "reviewCount": "{{NUMBER}}", + "bestRating": "5" + } +} +``` + +### HowTo — For Tutorial and Instructional Content +```json +{ + "@context": "https://schema.org", + "@type": "HowTo", + "name": "{{HOW_TO_TITLE}}", + "description": "{{BRIEF_DESCRIPTION}}", + "totalTime": "{{ISO_DURATION_e.g._PT30M_for_30_minutes}}", + "tool": [ + { "@type": "HowToTool", "name": "{{REQUIRED_TOOL}}" } + ], + "step": [ + { + "@type": "HowToStep", + "position": 1, + "name": "{{STEP_1_SHORT_NAME}}", + "text": "{{STEP_1_FULL_DESCRIPTION}}", + "image": "{{STEP_1_IMAGE_URL_OPTIONAL}}" + } + ] +} +``` + +### BreadcrumbList — All Multi-Level Pages +```json +{ + "@context": "https://schema.org", + "@type": "BreadcrumbList", + "itemListElement": [ + { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{HOMEPAGE_URL}}" }, + { "@type": "ListItem", "position": 2, "name": "{{SECTION_NAME}}", "item": "{{SECTION_URL}}" }, + { "@type": "ListItem", "position": 3, "name": "{{PAGE_NAME}}", "item": "{{PAGE_URL}}" } + ] +} +``` + +### LocalBusiness — For Location-Based Products or Services +```json +{ + "@context": "https://schema.org", + "@type": "LocalBusiness", + "name": "{{BUSINESS_NAME}}", + "description": "{{DESCRIPTION}}", + "url": "{{WEBSITE_URL}}", + "telephone": "{{PHONE}}", + "email": "{{EMAIL}}", + "address": { + "@type": "PostalAddress", + "streetAddress": "{{STREET}}", + "addressLocality": "{{CITY}}", + "addressRegion": "{{STATE_REGION}}", + "postalCode": "{{ZIP}}", + "addressCountry": "{{e.g. US}}" + }, + "geo": { + "@type": "GeoCoordinates", + "latitude": "{{LAT}}", + "longitude": "{{LNG}}" + } +} +``` + +--- + +## PART 7 — META TAG RULES + +### `<title>` Tag +- **Length:** 50–60 characters maximum +- **Structure:** `Primary Keyword — Descriptive Phrase | Brand Name` +- **Rule:** Primary keyword near the start; brand at the end +- **Every page must have a unique title — never duplicate** +- **Bing:** Uses title more as-written. Exact keyword phrase match critical. +- **Google:** Often rewrites titles. Write the best human-readable version. +- **Reference:** https://developers.google.com/search/docs/appearance/title-link + +### `<meta name="description">` +- **Length:** 150–160 characters maximum +- **Must include:** Primary keyword + compelling reason to click (benefit, promise, or action) +- **Every page must have a unique description — never duplicate** +- **Bing:** Uses your written description mostly as-is. Write it carefully. +- **Google:** Often rewrites it to match the specific query. +- **Reference:** https://developers.google.com/search/docs/appearance/snippet + +### `<meta name="robots">` +- Rankable pages: `content="index, follow"` +- Admin / thank-you / internal search / duplicate pages: `content="noindex, nofollow"` +- Pages with useful links but not for ranking: `content="noindex, follow"` +- **Reference:** https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag + +### `<link rel="canonical">` +- **Every page must have one** +- Self-referencing on unique, original pages +- Must use absolute URLs including `https://` +- **Reference:** https://developers.google.com/search/docs/crawling-indexing/canonicalization + +### `<meta name="viewport">` +- Always: `content="width=device-width, initial-scale=1"` +- Required for Google mobile-first indexing + +### Open Graph (`og:`) +- `og:image` minimum **1200×630px** — critical for Bing social signal ranking +- `og:type`: use `website` for homepage, `article` for blog posts +- Validate with: https://developers.facebook.com/tools/debug/ +- **Reference:** https://ogp.me/ + +### `<link rel="hreflang">` +- Required only for multi-language or multi-regional sites +- Include `x-default` pointing to the default language +- **Reference:** https://developers.google.com/search/docs/specialty/international/localization + +--- + +## PART 8 — CORE WEB VITALS REFERENCE + +**Official spec:** https://web.dev/articles/vitals — Check this URL for any threshold updates. + +> ⚠️ **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. + +| Metric | Good ✅ | Needs Work ⚠️ | Poor ❌ | What It Measures | +|--------|---------|--------------|--------|-----------------| +| **LCP** — Largest Contentful Paint | < 2.5s | 2.5–4.0s | > 4.0s | How fast the main content (hero image, heading) loads | +| **INP** — Interaction to Next Paint | < 200ms | 200–500ms | > 500ms | How fast the page responds when user clicks or taps | +| **CLS** — Cumulative Layout Shift | < 0.1 | 0.1–0.25 | > 0.25 | How much content visually jumps around while loading | + +Must pass for **75% of real-user page loads** (not just lab test). + +**Testing tool:** https://pagespeed.web.dev/ — Run on both mobile AND desktop. + +**54.2% of websites currently fail at least one CWV metric** — passing all three is a significant competitive advantage. + +--- + +## PART 9 — GOOGLE vs. BING DIFFERENCES + +Never treat Google and Bing as the same search engine. Handle both explicitly. + +| Factor | Google | Bing | +|--------|--------|------| +| 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. | +| Social signals | Not officially used as ranking signals | **Explicitly used.** Facebook shares, LinkedIn engagement, X reposts directly boost ranking. | +| 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. | +| Indexing priority | **Mobile-first.** Desktop is secondary. | Desktop-first. Both versions must be optimized. | +| Meta description usage | Often rewrites to match the specific query | Uses your written description mostly as-is. Write carefully. | +| Domain age | Content quality can overcome a new domain | Older, established domains receive more inherent trust. | +| Backlink weighting | Quality + topical relevance | **Extra weight for .edu and .gov domains.** Total count also matters more. | +| Content length | Depth and completeness over raw word count | Explicitly prefers longer-form, comprehensive content. | +| Webmaster tools | Google Search Console | **Bing Webmaster Tools — completely separate. Manual sitemap submission required.** | +| Structured data | Powers rich results + AI Overviews | Powers Bing rich results + Copilot citations | + +--- + +## PART 10 — VERIFICATION CHECKLIST + +Run every item after each execution phase. Report Pass ✅ or Fail ❌ with evidence for each. + +### Verification Tools + +| Tool | URL | What It Validates | +|------|-----|------------------| +| Google Rich Results Test | https://search.google.com/test/rich-results | All schema — must show 0 errors | +| Google PageSpeed Insights | https://pagespeed.web.dev/ | LCP, INP, CLS scores | +| Google Mobile-Friendly Test | https://search.google.com/test/mobile-friendly | Mobile responsiveness | +| Google Search Console | https://search.google.com/search-console/ | Indexing, coverage, CWV, manual actions | +| Bing Webmaster Tools | https://www.bing.com/webmasters/ | Bing crawl, indexing, SEO analyzer | +| Bing URL Inspection | https://www.bing.com/webmasters/url-inspection | Specific URL index status in Bing | +| Schema.org Validator | https://validator.schema.org | Schema vocabulary correctness | +| Meta Tags Preview | https://metatags.io | SERP visual preview of title + description | +| Facebook OG Debugger | https://developers.facebook.com/tools/debug/ | og: tags + Bing social signal verification | + +### Final Sign-Off Checklist + +- [ ] All pages: unique `<title>` (50–60 chars, keyword near start) +- [ ] All pages: unique `<meta description>` (150–160 chars) +- [ ] All pages: self-referencing `<link rel="canonical">` +- [ ] All pages: `<meta name="robots" content="index, follow">` (or noindex where appropriate) +- [ ] All pages: `<meta name="viewport" content="width=device-width, initial-scale=1">` +- [ ] Open Graph tags validated via Facebook Debugger — no errors +- [ ] Twitter Card tags present on all pages +- [ ] `Organization` + `WebSite` schema: **0 errors** in Google Rich Results Test +- [ ] `WebPage` schema on all pages: **0 errors** +- [ ] `BreadcrumbList` schema on all multi-level pages: **0 errors** +- [ ] `FAQPage` schema on all key pages: **0 errors** +- [ ] `Article`/`BlogPosting` schema on all content pages: **0 errors** +- [ ] CWV: LCP **< 2.5s** ✅ +- [ ] CWV: INP **< 200ms** ✅ +- [ ] CWV: CLS **< 0.1** ✅ +- [ ] HTTPS on all pages — zero mixed content warnings +- [ ] Google Mobile-Friendly Test: **passed** +- [ ] `robots.txt` valid — no important pages, CSS, or JS blocked +- [ ] XML sitemap submitted to **Google Search Console** +- [ ] XML sitemap submitted to **Bing Webmaster Tools** +- [ ] Bing: critical content visible in raw HTML source (not JS-only rendered) +- [ ] All images have descriptive alt text (under 125 chars) +- [ ] Zero internal 404 broken links +- [ ] Zero orphan pages — all pages reachable within 3 clicks from homepage +- [ ] URL structure: lowercase, hyphens, keyword in slug, no unnecessary parameters +- [ ] Author/Person schema present on all content pages (E-E-A-T signal) +- [ ] FAQ sections with `FAQPage` schema on all key pages +- [ ] Content uses self-contained H2 blocks (GEO optimization) +- [ ] `hreflang` tags if multi-language site + +--- + +## PART 11 — ALGORITHM UPDATE MONITORING + +### When Google or Bing Announces an Update + +1. Check the official reference links below for what changed. +2. Cross-reference against the affected section of this skill file. +3. Generate a specific impact report: what changed, which pages/tags/schema are affected, what action is needed. +4. Present impact report to user. Follow the Approved Change Protocol for every proposed update action. +5. After implementing: update any local notes with new version information. + +### Sources to Monitor + +| Source | URL | Check Frequency | +|--------|-----|----------------| +| Google Search Central Blog | https://developers.google.com/search/blog | Weekly | +| Bing Webmaster Blog | https://blogs.bing.com/webmaster/ | Monthly | +| Search Engine Land | https://searchengineland.com/category/google/algorithm | Weekly during major updates | +| Search Engine Roundtable | https://www.seroundtable.com/ | Weekly | +| Core Web Vitals changelog | https://web.dev/articles/vitals | Quarterly | + +--- + +## PART 12 — BEGINNER EXECUTION TIMELINE + +For users starting from zero, execute in this exact order: + +| When | Actions | +|------|---------| +| **Day 1** | Meta tags (title, description, robots, canonical, viewport) · Organization schema · WebSite schema · robots.txt audit · HTTPS verify · Sitemap → GSC + Bing WT | +| **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 | +| **Week 2** | FAQPage schema · HowTo schema · Person/Author schema · Article schema · Keyword placement audit · Image alt text · Bing social sharing strategy | +| **Week 3** | Topic cluster planning · Internal link audit · Content freshness plan · Social sharing schedule · Fix any orphan pages | +| **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 | +| **Ongoing** | Monthly: Review GSC + Bing WT errors · Quarterly: Refresh top-performing content pages · On update announcement: Check monitoring sources above | + +--- + +## PART 13 — OFFICIAL REFERENCES INDEX + +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. + +### Google +- **Search Essentials (Official Rules):** https://developers.google.com/search/docs/essentials +- **SEO Starter Guide:** https://developers.google.com/search/docs/fundamentals/seo-starter-guide +- **Helpful Content System:** https://developers.google.com/search/docs/fundamentals/creating-helpful-content +- **Core Web Vitals:** https://web.dev/articles/vitals +- **LCP:** https://web.dev/articles/lcp +- **INP:** https://web.dev/articles/inp +- **CLS:** https://web.dev/articles/cls +- **Structured Data Overview:** https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data +- **Rich Results Test:** https://search.google.com/test/rich-results +- **Featured Snippets Guide:** https://developers.google.com/search/docs/appearance/featured-snippets +- **Title Link Guide:** https://developers.google.com/search/docs/appearance/title-link +- **Snippets/Meta Description:** https://developers.google.com/search/docs/appearance/snippet +- **Canonical Guide:** https://developers.google.com/search/docs/crawling-indexing/canonicalization +- **robots.txt Guide:** https://developers.google.com/search/docs/crawling-indexing/robots/intro +- **Robots Meta Tag:** https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag +- **Sitemaps Guide:** https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview +- **Mobile Sites Guide:** https://developers.google.com/search/docs/appearance/mobile-sites +- **Images Guide:** https://developers.google.com/search/docs/appearance/google-images +- **Breadcrumbs Schema:** https://developers.google.com/search/docs/appearance/structured-data/breadcrumb +- **FAQPage Schema:** https://developers.google.com/search/docs/appearance/structured-data/faqpage +- **HowTo Schema:** https://developers.google.com/search/docs/appearance/structured-data/how-to +- **hreflang Guide:** https://developers.google.com/search/docs/specialty/international/localization +- **Search Central Blog (Algorithm Updates):** https://developers.google.com/search/blog +- **Quality Rater Guidelines (PDF):** https://static.googleusercontent.com/media/guidelines.raterhub.com/en//searchqualityevaluatorguidelines.pdf + +### Bing +- **Webmaster Guidelines:** https://www.bing.com/webmasters/help/webmaster-guidelines-30fba23a +- **Webmaster Tools:** https://www.bing.com/webmasters/ +- **Bing Places:** https://www.bingplaces.com/ +- **Bing Structured Data:** https://www.bing.com/webmasters/help/marking-up-your-site-12a3234f +- **Bing URL Inspection:** https://www.bing.com/webmasters/url-inspection +- **Bing Search Blog:** https://blogs.bing.com/webmaster/ + +### Schema Vocabulary +- **Schema.org Full Vocabulary:** https://schema.org/ +- **Schema.org Validator:** https://validator.schema.org +- **Organization:** https://schema.org/Organization +- **WebSite:** https://schema.org/WebSite +- **WebPage:** https://schema.org/WebPage +- **Article:** https://schema.org/Article +- **FAQPage:** https://schema.org/FAQPage +- **HowTo:** https://schema.org/HowTo +- **Product:** https://schema.org/Product +- **SoftwareApplication:** https://schema.org/SoftwareApplication +- **LocalBusiness:** https://schema.org/LocalBusiness +- **BreadcrumbList:** https://schema.org/BreadcrumbList +- **Person:** https://schema.org/Person +- **AggregateRating:** https://schema.org/AggregateRating + +### Protocols & Social +- **Open Graph Protocol:** https://ogp.me/ +- **Twitter/X Card Docs:** https://developer.twitter.com/en/docs/twitter-for-websites/cards/ +- **Facebook OG Debugger:** https://developers.facebook.com/tools/debug/ +- **Google PageSpeed Insights:** https://pagespeed.web.dev/ +- **Mobile-Friendly Test:** https://search.google.com/test/mobile-friendly +- **Meta Tags Preview:** https://metatags.io diff --git a/rules/seo-geo-optimizer-cursorrules-prompt-file/README.md b/rules/seo-geo-optimizer-cursorrules-prompt-file/README.md new file mode 100644 index 00000000..0ff604f2 --- /dev/null +++ b/rules/seo-geo-optimizer-cursorrules-prompt-file/README.md @@ -0,0 +1,25 @@ +# SEO & GEO Optimizer + +A universal AI skill designed to transform any web product into a fully optimized property for Google, Bing, generative search engines (AI Overviews, Copilot), and chat interfaces (ChatGPT, Perplexity). + +- **Author**: [@Aryanpanwar10005](https://github.com/Aryanpanwar10005) +- **Repository**: [seo-geo-optimizer](https://github.com/Aryanpanwar10005/seo-geo-optimizer) +- **License**: MIT + +## Features + +- Complete 40-question SEO intake and context gathering process +- Competitor analysis and gap assessment framework +- Mandatory prioritized progression plan (execution phases 0 to 10) +- Technical SEO, On-Page SEO, Core Web Vitals rules +- Comprehensive JSON-LD structured data/schema templates +- Generative Engine Optimization (GEO) strategies +- Pre-made verification checklists + +## Usage + +Simply use the `.cursorrules` file in this directory as your project's `.cursorrules`, or install via the CLI: + +```bash +npx seo-geo-optimizer --cursor +```