Sybre Waaijer
Forum Replies Created
-
Hello!
I just created a new up-to-date snippet for exactly your use case: https://gist.github.com/sybrew/6fac62935cc66f2f027ae4b251c58bc0.
It contains two versions: One that extracts HTML and one that takes the text as-is.
I hope this helps!
Forum: Plugins
In reply to: [The SEO Framework β Fast, Automated, Effortless.] Product Schema SettingsHello!
TSF doesn’t output Product schemaβthat’s handled entirely by WooCommerce. The “Output Structured Data” setting in TSF controls other schema types (like WebSite, WebPage, BreadcrumbList, etc.), not Product.
WooCommerce generates Product schema via the
woocommerce_single_product_summaryaction hook.If your theme or page builder (Elementor) doesn’t fire that hook on the Product template, the schema never gets created. You may want to check in with your developer or the theme support to ensure the product template is set up correctly.
If you go to WP Admin > WooCommerce > Status > System status > Templates, do you see any overridden templates listed? These should be reviewed and compared to the latest WooCommerce versions to ensure compatibility.
To quickly identify this issue, you could ask your developer to add this temporarily to your theme’s
functions.phpfile:add_action( 'wp_footer', function () { if ( is_product() ) { echo '<!-- WC hook check: ' . ( did_action( 'woocommerce_single_product_summary' ) ? 'FIRED' : 'NOT FIRED' ) . ' -->'; } }, );Then view the source of a product page and search for “WC hook check: “. If it says “NOT FIRED”, that confirms the theme/builder is bypassing WooCommerce’s standard template structure.
Hi Shaun!
Sorry, I missed your message earlier.
TSF doesn’t support separate sitemaps per post type. However, if you disable the optimized sitemap, WordPress’s built-in sitemap takes over, which does organize entries by post type.
That said, search engines don’t care about sitemap organization—they just look for links. A sitemap with 400 or even thousands of entries won’t cause issues; search engines process these routinely.
TSF sorts entries by last-updated date, so recently changed properties will appear at the top. If older links fall off the sitemap, that’s fine: search engines are already aware of them. For most sites, sitemaps are needed only to discover new and updated content, not as a complete index.
Still, due to popular demand (coming from news networks), I’m working on monthly/yearly sitemaps for archival support (#649); that won’t address per-post-type separation, but it will enable listing all posts of a site.
Forum: Plugins
In reply to: [The SEO Framework β Fast, Automated, Effortless.] Sitemap Noindex IssueHello!
The
X-Robots-Tag: noindexheader is not the cause of this issue — it’s enabled for all plugin users, and we rarely see this issue pop up.If you do a URL Inspection for the sitemap, it will tell you it’s not indexable — this is expected and correct behavior.
If you go to the Sitemaps Report and Google states it cannot fetch the sitemap, there can be many reasons:
1. Google Search Console lag: GSC reports are often delayed by a few days. The sitemap may already be processed successfully, but the report hasn’t updated yet. Check the “Last read” date in the Sitemaps Report.
2. Robots.txt blocking: Check if your robots.txt file is blocking access to the sitemap. Visit
/robots.txton your site and ensure there’s noDisallowrule affecting the sitemap path or Googlebot.3. Server timeouts: If your site is slow or was temporarily offline, Google’s crawler may time out. Check your server error logs.
4. Security plugins: Some security plugins block requests that don’t have typical browser user agents. Temporarily disable security plugins to test, or tweak their settings to allow Googlebot and
/sitemap.xmlaccess.5. Caching issues: We are aware that some caching plugins can interfere with the output (a patch is pending). Try clearing all caches or temporarily disable the caching plugin and test again.
6. CDN or firewall blocking: Services like Cloudflare or Sucuri may block Googlebot. Check your firewall/CDN logs for blocked requests.
7. Incorrect sitemap URL: Ensure you’re submitting the correct URL. With The SEO Framework, the default sitemap is at
/sitemap.xml.Could you share the specific error message Google Search Console displays, along with the sitemap URL? That will help narrow down the cause.
Awesome! Thanks for those details.
I’m not sure if we can solve 2. (update preview). Currently, the
is_admin()clause blocks that, and TSF also dynamically rewrites it as you edit the post.But 1. (remove site name) should be feasible — I’m actually thinking of removing the site name from GeoDirectory if possible, so your SEO title settings are honored.
- This reply was modified 3 weeks, 5 days ago by Sybre Waaijer.
Forum: Plugins
In reply to: [The SEO Framework β Fast, Automated, Effortless.] change locale?Anytime! π
I scraped Facebook’s locale JS SDK yesterday (testing 46500 locale combinations) and found that it only supports 104 locales. This updated list will be part of the next plugin update.
I verified that if the locale is not supported, Facebook always defaults back to
en_US. So, although there’s no harm in usingen_AUor any other unsupported locale, it will probably be treated asen_USuntil they support it.Since your site is in English and Facebook falls back to English, you won’t notice anything by setting
en_AU. For any other language, I recommend against using the filter and allowing TSF to set a supported fallback locale.Forum: Plugins
In reply to: [The SEO Framework β Fast, Automated, Effortless.] GDPR complianceHello! I also saw your email about this–let’s continue in this topic.
You can find the plugin privacy information here: https://tsf.fyi/privacy/plugin
In short, you do not need to list The SEO Framework in your privacy policy:
1. Cookies: TSF does not create or use any cookies.
2. Visitor data: TSF does not collect, process, or share any visitor data.
3. DPA: No personal data processing occurs on our behalf.If you also use our Extension Manager or Troy Client plugins, the same applies to visitor data. Extension Manager or Troy Client may send non-identifiable data (like its version number) for plugin updates, but this does not involve visitor information and doesn’t require GDPR disclosure.
If you have any other questions, let me know! Cheers π
- This reply was modified 3 weeks, 5 days ago by Sybre Waaijer. Reason: formatting
Forum: Plugins
In reply to: [The SEO Framework β Fast, Automated, Effortless.] Sitemap Noindex IssueHello!
The
X-Robots-Tag: noindexheader on sitemaps is intentional: it prevents the sitemap itself from appearing in search results while still allowing search engines to discover and use the URLs within it.This header is outputted on the virtual sitemap.xml, sitemap.xsl, and robots.txt ‘files’.
If you truly need to remove this header, you can use the
the_seo_framework_set_noindex_headerfilter. Hook a little early intothe_seo_framework_sitemap_headerto specifically disable it for sitemaps:add_action( 'the_seo_framework_sitemap_header', function () { add_filter( 'the_seo_framework_set_noindex_header', '__return_false' ); }, 9, // before default priority 10, where the header is set );However, please be aware that removing this header may cause the sitemap to be indexed in search results, which is generally unwanted.
Forum: Plugins
In reply to: [The SEO Framework β Fast, Automated, Effortless.] change locale?Ah, oops! This little quirk slipped my mind. It’s been nearly 7 years since I discussed this.
Facebook (the leading proponent of Open Graph) does not support
en_AUand used to display errors if you used it. TSF falls back to the first match in the supported list foren_, which isen_GB.Here’s some background: https://wordpress.org/support/topic/oglocale-problem/.
Here you can find a more current list of locales Facebook supports in one part of its ecosystem — still no Australian English: https://developers.facebook.com/docs/messenger-platform/messenger-profile/supported-locales/.
Diving deeper into it again, I found:
1. New updated docs: https://developers.facebook.com/docs/sharing/webmasters#markup
2. Which links to: https://developers.facebook.com/docs/javascript/internationalization#locales
3. Which proposed to test for: https://connect.facebook.net/en_AU/all.js
4. Which then showsen_USin the header comment.A supported language, such as
en_GB, shows exactly that in the header: https://connect.facebook.net/en_GB/all.js.
So, I must conclude thaten_AUis still not supported.I just tested
en_AUon my site, and also a few others that definitely do not exist, and Facebook no longer complains about it to the user. Though I think it’s safer to stick with the fallback, you can use this filter to forceen_AU:add_filter( 'the_seo_framework_meta_render_data', function ( $tags_render_data ) { if ( isset( $tags_render_data['og:locale'] ) ) $tags_render_data['og:locale']['attributes']['content'] = 'en_AU'; return $tags_render_data; } );- This reply was modified 4 weeks ago by Sybre Waaijer.
Forum: Plugins
In reply to: [The SEO Framework β Fast, Automated, Effortless.] change locale?Hello!
You can set the site’s locale at “Settings > General > Site Language.” It must match the language of your content. In your case, you should select
English (Australia).After updating it, TSF will change the
og:localeattribute accordingly. This setting will also affect the<html>language attributes, but it seems you have changed that toen-AUvia a different method.For completeness, if you prefer to use a different language for administration, then you can set it at “Users > Profile > Language.”
I hope this helps. Cheers!
Hello!
I understand! You can keep the questions coming!
1. The Query Alteration feature won’t affect Google Search-embedded results; it only affects WordPress’s on-site search results. You can toggle off “Enable search query alteration” to hide the relevant toggles from the page SEO settings.
2. When importing data to TSF, you must not use any other SEO data transport plugin besides that of Extension Manager. The reason is that we need to perform syntax transformations before storing them; otherwise, you get wrong results.
Unfortunately, when I wanted to implement support for AIOSEO, they changed their data structure, so I held off. The dust seems to have settled, and I have it planned for the next large update (probably March 2026).
Until then, you could use Yoast SEO to import from AIOSEO. You should delete AIOSEO’s data via Yoast SEO’s importer. After that, you can use Transport to import from Yoast SEO.
Always make a backup before transporting! Before using Extension Manager’s Transport, I recommend deactivating the other SEO plugins so they won’t repopulate their data.
3. At “SEO Settings > Schema.org Settings > Connected Social Pages,” you can use any field to put any link you’d like. For a future major update, where I rework the settings page, I’m considering an automatically-iterating field so you can add thousands of links.
Still, I don’t think it helps to fill in those fields — no search engine actually acknowledges them. In a past update I hid those fields, but reintroduced them because people were left confused about where to put those links.
4. The optimized sitemap already doesn’t display archives. If you’re asking about the Core sitemaps (which activate when the optimized sitemap is disabled), then no, there’s no setting to hide taxonomy archives from those. You could use this filter to disable them:
add_filter( 'wp_sitemaps_add_provider', fn( $provider, $name ) => in_array( $name, [ 'taxonomies', 'users' ], true ) ? null : $provider, 10, 2, );But I recommend using the optimized sitemap instead. Perhaps, for your use-case, we have historical sitemaps planned for large sites with millions of URLs, which will be part of a future major update.
Hi Janak,
I just replied to your other topic on the same issue, here: https://wordpress.org/support/topic/geodirectory-category-meta-title-and-description-not-working-with-seo-pluginated/#post-18776763. Let’s continue there.
GeoDirectory is only fully compatible with RankMath and Yoast
Ew. Let’s fix that.
@janak5, I created a snippet plugin that adds GeoDirectory’s SEO variable support (%%category%%, %%tag%%, etc.) to TSF. Give it a try:
Download it here: https://tsf.fyi/snippet/get/compatibility/tsf-geodirectory-metas.
View the code here: https://tsf.fyi/snippets/compatibility/tsf-geodirectory-metas.php.
Learn how to install it here: https://tsf.fyi/snippets/how-to-use.Use at your own discretion — WordPress.org has not verified the code!
If this works for you, I’ll include it in the next TSF update.
@paoltaia, what do you think?
Forum: Plugins
In reply to: [Surge] Problem with The SEO Framework pluginThat’s Link, not Zelda! π
Glad to see everything’s working now!
Forum: Plugins
In reply to: [Surge] Problem with The SEO Framework pluginHello!
I believe W3TC excludes the sitemap endpoint, whereas Surge is agnostic of such requests.
If the exclusion hadn’t been in W3TC, the problem might have surfaced with that, too.I mean, how can the autor of the SEO plugin have an influence on caching referring a different pluginβ¦?
In PHP, any plugin can affect buffer behavior. Surge relies on those buffers to capture full-page output for storage.
The SEO Framework clears those buffers on the sitemap page to prevent poorly coded plugins and themes from introducing erroneous code that can render the sitemap invalid. This clearing in TSF stops Surge from operating as intended.
This buffer-clearing isn’t something TSF should have to do. However, I still have to ensure proper output. I’ve dealt with dozens of complaints until I decided this was a necessary feature. This is where Konstantin and I disagree.
Anyway, I have an update scheduled in January.
If you cannot wait until then, I already tried and tested this proposed method in a filter:
add_action( 'the_seo_framework_sitemap_header', function () { defined( 'DONOTCACHEPAGE' ) or define( 'DONOTCACHEPAGE', true ); }, );That filter won’t conflict with the upcoming update, but it will be rendered redundant.
You may need to clear the cache before it takes effect. Deactivating the plugin to clear the cache didn’t work for me (Apple Silicon Tahoe 26 via LocalWP, PHP 8.4); I had to delete the cache folder in
wp-content.- This reply was modified 1 month, 3 weeks ago by Sybre Waaijer. Reason: Coding standards