AI Skill Report Card

Implementing Technical SEO

B+78·Feb 26, 2026·Source: Web

Technical SEO Implementation

15 / 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.
14 / 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

TXT
User-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.
15 / 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.
  • 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
  • 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
0
Grade B+AI Skill Framework
Scorecard
Criteria Breakdown
Quick Start
15/15
Workflow
14/15
Examples
15/20
Completeness
17/20
Format
15/15
Conciseness
12/15