Tsf Seo Framework¶
TSF Outputs WebSite + Organization + BreadcrumbList by Default¶
From legacy section: Schema Deployment
Pattern: Deployed custom schema via mu-plugin but TSF was also outputting duplicate WebSite, Organization, and BreadcrumbList blocks with different @id patterns. Created duplicate entities on every page. Rule: When deploying custom schema on a TSF site, disable TSF's JSON-LD output:
wp option patch update autodescription-site-settings ld_json_enabled 0 && ld_json_searchbox 0 && ld_json_breadcrumbs 0. Do this BEFORE validating, not after. Date: 2026-04-16
TSF auto-excludes noindex pages from sitemap.xml — flag via post_meta, flush transient¶
From legacy section: SEO NEO / Workbook
Pattern: During the audit-noindex fix, after stamping
_genesis_noindex=1on 60 audit pages via WP-CLI, the sitemap.xml athttps://evolvebusiness.com/sitemap.xmlstill showed all 60 audit URLs. Reason: TSF caches the rendered sitemap as a wp_options transient (cache_sitemap=1setting) and post_meta updates don't trigger TSF's cache invalidation hooks. Manually deleting the transients made the next sitemap request regenerate from scratch — and the new sitemap automatically excluded all noindex pages with no extra config (TSF respects_genesis_noindexin its sitemap query). Rule: To remove a page from TSF's sitemap.xml, set_genesis_noindex=1post_meta — that's the entire config (TSF's sitemap query filters out noindex posts automatically). Then flush TSF's sitemap cache so the change takes effect immediately:Without the flush, the cache TTL determines when the sitemap actually updates (typically 24h). For active deploys where you want immediate Google re-crawl signal, always flush. Verification:// wp-options entries that cache TSF's sitemap output $patterns = ['_transient_tsf_sitemap_%', '_transient_timeout_tsf_sitemap_%']; foreach ($patterns as $pat) { $rows = $wpdb->get_col($wpdb->prepare( "SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE %s", $pat )); foreach ($rows as $name) delete_option($name); } // Defense in depth — fire TSF's own purge action if registered do_action('tsf_sitemap_invalidated'); do_action('the_seo_framework_sitemap_purge');curl https://<site>/sitemap.xml | grep -c "<loc>"— should match the count of indexable published posts/pages, not include any with noindex meta. Date: 2026-04-30