AI Skill Report Card
Implementing Technical SEO
Technical SEO Implementation
Quick Start15 / 15
Bash# SEO Audit Command curl -s "https://example.com" | grep -E "(title|description|og:|twitter:|canonical)" | head -20
Basic meta template:
HTML<title>{{ brand_name }} | {{ page_type }} | {{ location }}</title> <meta name="description" content="{{ value_prop }} in {{ location }}. {{ cta }} {{ phone }}">
Recommendation▾
Remove the curl command from Quick Start - it's not actually useful for SEO implementation. Replace with a more practical meta tag checker or validation tool.
Workflow14 / 15
Progress:
- Meta tags audit and implementation
- Open Graph and Twitter Cards setup
- JSON-LD structured data deployment
- Canonical URL configuration
- XML sitemap generation and submission
- Robots.txt optimization
- Hreflang implementation (multilingual sites)
- Final validation and testing
Step 1: Meta Tags Implementation
Homepage Formula:
HTML<title>{{ Brand Name }} | {{ Primary Service }} in {{ City, State }}</title> <meta name="description" content="{{ Primary benefit }} in {{ City }}. {{ Secondary benefit }}. Call {{ phone }} for {{ CTA }}.">
Product/Service Pages:
HTML<title>{{ Service }} {{ City }} | {{ Brand }} | {{ Unique Value Prop }}</title> <meta name="description" content="{{ Service }} in {{ City }}. {{ Key benefits }}. {{ Social proof }}. {{ CTA }}.">
Blog Posts:
HTML<title>{{ Post Title }} | {{ Brand Name }} Blog</title> <meta name="description" content="{{ Hook sentence }}. {{ Main takeaway }}. {{ CTA to read }}.">
Step 2: Social Media Cards
Open Graph Setup:
HTML<meta property="og:title" content="{{ Page Title }}"> <meta property="og:description" content="{{ Meta description }}"> <meta property="og:image" content="{{ 1200x630px image URL }}"> <meta property="og:url" content="{{ canonical URL }}"> <meta property="og:type" content="{{ website|article }}"> <meta property="og:site_name" content="{{ Brand Name }}">
Twitter Cards:
HTML<meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="{{ Page Title }}"> <meta name="twitter:description" content="{{ Meta description }}"> <meta name="twitter:image" content="{{ 1200x630px image URL }}">
Step 3: JSON-LD Structured Data
Organization Schema:
JSON{ "@context": "https://schema.org", "@type": "Organization", "name": "{{ Brand Name }}", "url": "{{ Website URL }}", "logo": "{{ Logo URL }}", "contactPoint": { "@type": "ContactPoint", "telephone": "{{ Phone }}", "contactType": "customer service" }, "address": { "@type": "PostalAddress", "streetAddress": "{{ Street }}", "addressLocality": "{{ City }}", "addressRegion": "{{ State }}", "postalCode": "{{ ZIP }}" } }
Product Schema:
JSON{ "@context": "https://schema.org", "@type": "Product", "name": "{{ Product Name }}", "description": "{{ Product Description }}", "brand": { "@type": "Brand", "name": "{{ Brand Name }}" }, "offers": { "@type": "Offer", "price": "{{ Price }}", "priceCurrency": "USD", "availability": "https://schema.org/InStock" } }
Step 4: Canonical URLs
Implementation Pattern:
HTML<link rel="canonical" href="{{ absolute_url_without_parameters }}">
Rules:
- Always use absolute URLs
- Remove tracking parameters (?utm_, ?ref=)
- Consolidate HTTP/HTTPS and www/non-www variants
- Point paginated content to page 1
Step 5: XML Sitemap Structure
XML<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>{{ page_url }}</loc> <lastmod>{{ YYYY-MM-DD }}</lastmod> <changefreq>{{ daily|weekly|monthly }}</changefreq> <priority>{{ 0.1-1.0 }}</priority> </url> </urlset>
Priority Guidelines:
- Homepage: 1.0
- Main service pages: 0.8-0.9
- Blog posts: 0.6-0.7
- Utility pages: 0.3-0.5
Step 6: Robots.txt Configuration
TXTUser-agent: * Disallow: /admin/ Disallow: /cart/ Disallow: /*?*sort= Allow: / Sitemap: {{ domain }}/sitemap.xml
Step 7: Hreflang (Multilingual Sites)
HTML<link rel="alternate" hreflang="en-us" href="{{ en_url }}"> <link rel="alternate" hreflang="es-us" href="{{ es_url }}"> <link rel="alternate" hreflang="x-default" href="{{ default_url }}">
Recommendation▾
Condense the workflow steps by combining related tasks (e.g., merge meta tags and social cards sections) to reduce redundancy.
Examples15 / 20
Example 1: Local Business Homepage Input: Plumbing company in Denver Output:
HTML<title>Denver Plumbing Services | Mile High Plumbing | 24/7 Emergency</title> <meta name="description" content="Professional plumbing services in Denver. Emergency repairs, installations, drain cleaning. Licensed & insured. Call (303) 555-0123 for same-day service.">
Example 2: E-commerce Product Page
Input: Blue running shoes product
Output:
HTML<title>Blue Performance Running Shoes | SportMax | Free Shipping</title> <meta name="description" content="Premium blue running shoes with advanced cushioning. Lightweight, durable design for serious runners. Free shipping & 30-day returns. Order now.">
Recommendation▾
Add more concrete input/output examples showing before/after implementations, especially for structured data and sitemap configurations.
Best Practices
- Keep titles under 60 characters, descriptions under 155
- Include target keywords naturally in titles and descriptions
- Use unique meta tags for every page
- Compress images to 1200x630px for social sharing
- Test structured data with Google's Rich Results Tool
- Submit sitemaps to Google Search Console and Bing Webmaster Tools
- Monitor Core Web Vitals and page speed metrics
Common Pitfalls
- DON'T stuff keywords in meta descriptions
- DON'T use relative URLs in canonical tags
- DON'T include session IDs or tracking parameters in sitemaps
- DON'T block CSS/JS files in robots.txt
- DON'T mix HTTP and HTTPS URLs in hreflang
- DON'T exceed 50,000 URLs per sitemap file
- DON'T forget to update lastmod dates in sitemaps