{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"tool_blogseo","slug":"blogseo","name":"Blogseo","type":"product","url":"https://www.blogseo.ai","page_url":"https://unfragile.ai/blogseo","categories":["text-writing","testing-quality"],"tags":[],"pricing":{"model":"freemium","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"tool_blogseo__cap_0","uri":"capability://data.processing.analysis.on.page.seo.analysis.with.real.time.optimization.feedback","name":"on-page seo analysis with real-time optimization feedback","description":"Analyzes blog post content against SEO best practices by parsing HTML/text structure to extract and evaluate keyword density, heading hierarchy (H1/H2/H3 distribution), meta description length/composition, and readability metrics. Returns specific, actionable recommendations with before/after examples rather than generic scores, enabling creators to identify and fix on-page issues without external tools.","intents":["I want to know if my blog post's keyword usage is optimized for search engines without hiring an SEO consultant","I need to understand why my post isn't ranking and get specific fixes for heading structure, meta tags, and content gaps","I want to check multiple on-page factors (readability, keyword placement, heading structure) in one analysis pass"],"best_for":["solo bloggers publishing 1-20 posts/month who want quick optimization feedback","small business owners managing their own content without SEO team","bootstrapped creators who cannot afford Ahrefs/Semrush subscriptions"],"limitations":["Analysis is limited to on-page factors only — no competitor benchmarking or SERP position tracking","Keyword recommendations lack search volume and difficulty metrics, requiring supplementation with external keyword research tools","No historical tracking of optimization changes over time — each analysis is isolated","Readability scoring uses basic heuristics (word count, sentence length) rather than semantic understanding of content quality"],"requires":["Blog post URL or text content (minimum 300 words recommended)","Internet connection for real-time analysis","WordPress integration optional but not required for core functionality"],"input_types":["plain text","HTML/markdown blog post content","WordPress post URLs (via plugin integration)","copied blog post text"],"output_types":["structured JSON with scores and recommendations","human-readable report with specific fix suggestions","meta tag preview showing how post appears in SERPs"],"categories":["data-processing-analysis","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_blogseo__cap_1","uri":"capability://data.processing.analysis.keyword.density.and.placement.analysis","name":"keyword density and placement analysis","description":"Tokenizes blog post content and calculates keyword frequency distribution across sections (title, headings, body, meta description), comparing against SEO best-practice ranges (typically 0.5-2.5% for primary keywords). Identifies keyword clustering, LSI keyword opportunities, and placement gaps in critical zones (H1, first 100 words, meta description) to guide content optimization.","intents":["I want to know if I'm using my target keyword enough (or too much) in my blog post","I need to understand where in my post I should place my primary and secondary keywords for maximum SEO impact","I want to identify related keywords I'm missing that could improve topical relevance"],"best_for":["content creators optimizing for specific keyword targets","bloggers transitioning from no SEO strategy to keyword-aware writing"],"limitations":["Does not provide search volume or keyword difficulty metrics — requires external keyword research tool integration","Keyword clustering is rule-based (synonym detection) rather than semantic understanding, missing nuanced keyword relationships","No competitor keyword analysis — cannot benchmark keyword usage against top-ranking pages","Treats all keyword placements equally; does not weight H1 placement higher than body text despite SEO best practices"],"requires":["Target keyword(s) specified by user","Blog post content (minimum 300 words)","Optional: secondary/LSI keywords for comparison"],"input_types":["plain text blog post","HTML content with semantic tags preserved","keyword list (comma-separated or JSON)"],"output_types":["keyword density percentage with placement breakdown","heatmap showing keyword distribution across sections","recommendations for keyword placement optimization"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_blogseo__cap_2","uri":"capability://data.processing.analysis.heading.structure.validation.and.hierarchy.optimization","name":"heading structure validation and hierarchy optimization","description":"Parses HTML heading tags (H1-H6) to validate proper hierarchy (no H1 skips to H3, multiple H1s, etc.), identifies missing H2/H3 subheadings that could improve scannability and SEO, and recommends heading rewrites to include target keywords. Outputs visual hierarchy diagram and specific suggestions for restructuring content sections.","intents":["I want to ensure my blog post has proper heading hierarchy that search engines can understand","I need to know if my headings are descriptive enough and include relevant keywords","I want to improve my post's scannability for both users and search engines by adding strategic subheadings"],"best_for":["bloggers new to SEO who don't understand heading hierarchy best practices","content teams managing multiple writers with inconsistent heading styles"],"limitations":["Validation is structural only — does not evaluate heading relevance to content or keyword alignment quality","Cannot suggest heading rewrites that maintain semantic meaning while improving keyword inclusion","Does not consider user intent or search intent when validating heading structure"],"requires":["Blog post with HTML heading tags (H1-H6)","Minimum one H1 tag present"],"input_types":["HTML content with heading tags","WordPress post content","markdown with heading syntax"],"output_types":["heading hierarchy diagram/tree structure","validation report (pass/fail per heading rule)","specific rewrite suggestions for headings"],"categories":["data-processing-analysis","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_blogseo__cap_3","uri":"capability://text.generation.language.meta.description.generation.and.optimization","name":"meta description generation and optimization","description":"Analyzes blog post content to extract key themes and generates or evaluates meta description candidates within SEO constraints (50-160 characters, includes primary keyword, compelling call-to-action). Provides preview of how description appears in search results and flags issues like keyword stuffing, missing CTAs, or length violations.","intents":["I want to write a meta description that includes my target keyword and encourages clicks from search results","I need to know if my current meta description is the right length and compelling enough for CTR","I want to see how my meta description will actually look in Google search results before publishing"],"best_for":["bloggers who don't understand meta description best practices","content teams managing meta descriptions across 50+ posts"],"limitations":["Generated descriptions are template-based and may lack brand voice or unique angle","Cannot predict actual CTR impact — only validates against best-practice guidelines","Does not consider competitor meta descriptions or search intent nuances","Character count validation is basic (no consideration for mobile vs desktop rendering differences)"],"requires":["Blog post title and content excerpt (first 200-300 words)","Target keyword (optional but recommended)"],"input_types":["blog post title and content","existing meta description for evaluation","target keyword"],"output_types":["generated meta description options","SERP preview showing how description appears","validation report (length, keyword inclusion, CTA presence)","specific improvement suggestions"],"categories":["text-generation-language","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_blogseo__cap_4","uri":"capability://data.processing.analysis.readability.and.content.quality.scoring","name":"readability and content quality scoring","description":"Evaluates blog post readability using multiple heuristics: average sentence length, paragraph length, passive voice percentage, flesch-kincaid grade level, and jargon density. Scores content on 0-100 scale with specific recommendations to improve readability (break long sentences, reduce passive voice, simplify terminology). Identifies sections that may confuse readers or search engines.","intents":["I want to know if my blog post is easy to read for my target audience","I need to identify sentences or paragraphs that are too complex and should be simplified","I want to reduce jargon and improve clarity without losing technical accuracy"],"best_for":["non-native English writers improving content clarity","technical bloggers translating complex concepts for general audiences","content teams maintaining consistent readability standards"],"limitations":["Readability scoring uses surface-level metrics (sentence length, passive voice %) rather than semantic understanding of clarity","Cannot distinguish between necessary technical jargon and unnecessary complexity","Does not evaluate content accuracy, factuality, or logical flow — only mechanical readability","Flesch-Kincaid grade level may not correlate with actual audience comprehension for specialized topics"],"requires":["Blog post content (minimum 300 words)","Optional: target audience specification for context-aware recommendations"],"input_types":["plain text blog post","HTML content (strips tags for analysis)","markdown formatted content"],"output_types":["readability score (0-100)","grade level estimate (Flesch-Kincaid)","specific sentences flagged for simplification","passive voice percentage and examples","jargon density report with alternatives"],"categories":["data-processing-analysis","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_blogseo__cap_5","uri":"capability://tool.use.integration.wordpress.plugin.integration.with.direct.post.analysis","name":"wordpress plugin integration with direct post analysis","description":"Provides WordPress plugin that connects to BlogSEO API, allowing creators to analyze blog posts directly from WordPress editor without copy-pasting content. Plugin injects analysis sidebar showing real-time SEO scores, keyword density, heading structure validation, and meta description preview as post is being written or edited. Supports draft analysis and bulk post scanning (premium tier).","intents":["I want to optimize my blog post for SEO while writing it in WordPress, without switching between tools","I need to quickly audit my existing WordPress posts for SEO issues without exporting them","I want to see SEO feedback in real-time as I edit my post content"],"best_for":["WordPress bloggers who want integrated SEO feedback without leaving the editor","content teams managing multiple WordPress sites with consistent SEO standards"],"limitations":["Free tier does not support bulk post analysis — requires manual analysis of each post","Plugin only works with WordPress; no support for other CMS platforms (Webflow, Ghost, Substack, etc.)","Real-time analysis may add 1-3 second latency to editor interactions on slower connections","Cannot analyze posts with custom post types or non-standard content structures"],"requires":["WordPress 5.0+ (Gutenberg editor or Classic Editor with plugin support)","PHP 7.2+","BlogSEO account (free tier available)","Internet connection for API calls"],"input_types":["WordPress post content (title, body, excerpt, featured image alt text)","post metadata (category, tags, publish date)"],"output_types":["real-time SEO score in editor sidebar","keyword density and placement feedback","heading structure validation","meta description preview","readability score with improvement suggestions"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_blogseo__cap_6","uri":"capability://data.processing.analysis.multi.format.content.analysis.text.html.markdown.wordpress","name":"multi-format content analysis (text, html, markdown, wordpress)","description":"Accepts blog post content in multiple formats (plain text, HTML, markdown, WordPress post URLs) and normalizes to common representation for analysis. Preserves semantic structure (headings, emphasis, lists) during conversion to ensure analysis accuracy across formats. Automatically detects format and applies appropriate parsing rules.","intents":["I want to analyze blog posts regardless of how they're stored or formatted","I need to audit content from multiple sources (WordPress, Medium, Substack, static HTML) using the same tool","I want to paste content from any source and get immediate SEO feedback without reformatting"],"best_for":["content creators using multiple platforms or CMS systems","agencies managing client blogs across different platforms","bloggers migrating content between platforms"],"limitations":["Format detection is heuristic-based and may fail on unusual or mixed formats","Markdown parsing does not support all extended markdown syntax (tables, footnotes, etc.)","HTML parsing may lose semantic meaning if content uses non-standard markup or custom CSS classes","WordPress URL analysis requires public post URLs; private/draft posts cannot be analyzed"],"requires":["Content in one of: plain text, HTML, markdown, or WordPress post URL","Minimum 300 words for meaningful analysis"],"input_types":["plain text (pasted or uploaded)","HTML file or HTML snippet","markdown file or markdown text","WordPress post URL (public posts only)","text file upload (.txt, .md, .html)"],"output_types":["normalized content representation","analysis results (same format regardless of input)","format-specific recommendations (e.g., 'add alt text to images' for HTML)"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"tool_blogseo__cap_7","uri":"capability://automation.workflow.free.tier.unlimited.blog.analysis.without.credit.card","name":"free tier unlimited blog analysis without credit card","description":"Provides completely free access to core SEO analysis features (on-page analysis, keyword density, heading structure, meta description, readability) without requiring credit card or account creation. Free tier allows unlimited analyses of individual blog posts with no rate limiting or feature restrictions on core capabilities. Premium tier (paid) adds bulk analysis, advanced competitor insights, and historical tracking.","intents":["I want to try an SEO tool without committing to a paid subscription or providing payment information","I need to analyze a few blog posts for SEO issues without cost","I want to test if this tool is useful before upgrading to premium features"],"best_for":["bootstrapped solo bloggers with zero SEO budget","students and learners exploring SEO best practices","small business owners evaluating SEO tools before purchase"],"limitations":["Free tier lacks bulk analysis — each post must be analyzed individually (tedious for 50+ post blogs)","No competitor analysis, backlink insights, or SERP tracking in free tier","No historical tracking of optimization changes over time","Free tier may have slower analysis speed compared to premium tier","No API access for programmatic analysis in free tier"],"requires":["No credit card or payment information required","Optional: email for account creation (may be optional for basic analysis)"],"input_types":["blog post content (text, HTML, markdown, or WordPress URL)"],"output_types":["full SEO analysis report","optimization recommendations","readability score and suggestions"],"categories":["automation-workflow","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":43,"verified":false,"data_access_risk":"high","permissions":["Blog post URL or text content (minimum 300 words recommended)","Internet connection for real-time analysis","WordPress integration optional but not required for core functionality","Target keyword(s) specified by user","Blog post content (minimum 300 words)","Optional: secondary/LSI keywords for comparison","Blog post with HTML heading tags (H1-H6)","Minimum one H1 tag present","Blog post title and content excerpt (first 200-300 words)","Target keyword (optional but recommended)"],"failure_modes":["Analysis is limited to on-page factors only — no competitor benchmarking or SERP position tracking","Keyword recommendations lack search volume and difficulty metrics, requiring supplementation with external keyword research tools","No historical tracking of optimization changes over time — each analysis is isolated","Readability scoring uses basic heuristics (word count, sentence length) rather than semantic understanding of content quality","Does not provide search volume or keyword difficulty metrics — requires external keyword research tool integration","Keyword clustering is rule-based (synonym detection) rather than semantic understanding, missing nuanced keyword relationships","No competitor keyword analysis — cannot benchmark keyword usage against top-ranking pages","Treats all keyword placements equally; does not weight H1 placement higher than body text despite SEO best practices","Validation is structural only — does not evaluate heading relevance to content or keyword alignment quality","Cannot suggest heading rewrites that maintain semantic meaning while improving keyword inclusion","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.35833333333333334,"quality":0.7200000000000001,"ecosystem":0.25,"match_graph":0.25,"freshness":0.9,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.35,"freshness":0.05}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:29.715Z","last_scraped_at":"2026-04-05T13:23:42.552Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=blogseo","compare_url":"https://unfragile.ai/compare?artifact=blogseo"}},"signature":"vpdCuPxSXwWNv3q5W/ifVRLc6DyQzO6PJBQoa+W5EiBeW6qHIsWhn2GUuRTZvcAmOHRKSi6kDdqu0ctslvOfAA==","signedAt":"2026-06-15T12:39:05.819Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/blogseo","artifact":"https://unfragile.ai/blogseo","verify":"https://unfragile.ai/api/v1/verify?slug=blogseo","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}