# Blog SEO Article Template channel: blog priority: 4 language: [th, en] # Article structure structure: min_word_count: thai: 1500 english: 2000 max_word_count: thai: 3000 english: 3000 keyword_density: thai: 1.0-1.5% english: 1.5-2.0% sections: - introduction: word_count: 150-250 must_include: - hook - problem_statement - promise - primary_keyword_in_first_100_words - body: h2_sections: 4-7 h3_subsections: "as needed" keyword_in_h2: "at least 2-3" - conclusion: word_count: 150-250 must_include: - summary_of_key_points - primary_keyword - call_to_action - cta_placement: recommended_locations: - after_first_value_section - after_comparison_proof_section - at_end min_cta_count: 2 max_cta_count: 4 # Frontmatter requirements frontmatter: required_fields: - title: 50-60 chars - description: 150-160 chars (meta description) - keywords: array of 5-10 keywords - slug: url-friendly - lang: th_or_en - category: string - tags: array of strings - created: "YYYY-MM-DD" - author: string_optional optional_fields: - updated: "YYYY-MM-DD" - draft: boolean - featured: boolean - image: src: path alt: string caption: string # SEO requirements seo: meta_title: min_chars: 50 max_chars: 60 must_include_primary_keyword: true meta_description: min_chars: 150 max_chars: 160 must_include_primary_keyword: true must_include_cta: true url_slug: max_words: 5 format: "lowercase-with-hyphens" include_primary_keyword: true thai: "use_transliteration_or_keep_thai" headings: h1: count: 1 include_primary_keyword: true h2: count: 4-7 include_keyword_variations: "2-3 minimum" h3: count: "as needed" proper_nesting: true internal_links: min_count: 3 max_count: 7 anchor_text: "descriptive_with_keywords" external_links: min_count: 2 max_count: 4 authority_sources_only: true images: min_count: 2 max_count: 10 alt_text_required: true descriptive_filenames: true compressed: true # Image handling for blog images: hero_image: required: true size: "1200x630" location: "public/images/blog/{slug}/hero.png" inline_images: recommended_frequency: "every 300-400 words" size: "800x600 or 1080x1080" location: "public/images/blog/{slug}/" generation: for_product_content: "browse_repo_then_image_edit" for_non_product: "image_generation" # Content quality requirements quality: min_score: 70 checks: - keyword_optimization - brand_voice_alignment - thai_formality_level - readability_score - factual_accuracy - actionability - originality readability: thai: avg_sentence_length: "15-25 words" grade_level: "ม.6-ม.12" formality: "auto-detect_from_context" english: flesch_reading_ease: "60-70" flesch_kincaid_grade: "8-10" avg_sentence_length: "15-20 words" # Output configuration output: format: markdown_with_frontmatter encoding: "utf-8" line_endings: "unix" payload_cms_integration: collection: "posts" language_prefix: thai: "th/" english: "" image_collection: "media" publishing: auto_publish: "optional (user_choice)" git_commit: true git_push: true trigger_deploy: true # API readiness (for future CMS integration) api_ready: cms_compatible: - "WordPress" - "Contentful" - "Sanity" - "Strapi" schema_org: type: "BlogPosting" required_fields: - headline - description - image - datePublished - author - publisher