Skip Navigation

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- 9:00 – 14:00 9:00 – 14:00 9:00 – 14:00 9:00 – 14:00 9:00 – 14:00 -
- 15:00 – 18:00 15:00 – 18:00 15:00 – 18:00 15:00 – 18:00 15:00 – 18:00 -

Supporter timezone: Asia/Dhaka (GMT+06:00)

Tagged: 

This topic contains 1 reply, has 0 voices.

Last updated by Prosenjit Barman 1 month ago.

Assisted by: Prosenjit Barman.

Author Posts
November 19, 2024 at 8:52 pm #16421557

sarahP-7

Background of the issue:
I am trying to manage hreflang tags on my website, hidden link, to ensure they do not conflict with noindex meta tags. Hreflang tags are used to indicate language-specific versions of a page to search engines, but if a page has a noindex tag, it should not be indexed. I want to remove hreflang tags from URLs that are marked as noindex, especially for TAG pages, to avoid confusing search engines.

Symptoms:
The SEO system detected a critical issue where outgoing hreflang annotations are pointing to noindex URLs, which could lead to search engines ignoring the hreflang tags.

Questions:
How can I remove hreflang tags from my no-indexed URLs, specifically TAG pages?

November 20, 2024 at 8:43 am #16423035

Prosenjit Barman
Supporter

Languages: English (English )

Timezone: Asia/Dhaka (GMT+06:00)

Hi There!
Thanks for contacting WPML Support.

I understand what you're looking for. If you want a specific tag or taxonomy with a `noindex` directive to not have the hreflang tag, it is possible to achieve that using the `wpml_hreflangs_html` filter hook with a callback function to remove the hreflang. For example, check the code below, which might help remove the hreflang if the tag or taxonomy has the `noindex` directive.

add_filter( 'wpml_hreflangs_html', function( $hreflang ) {
    // Check if the current page is a taxonomy page (tag, category, or other taxonomy)
    if ( is_tag() || is_category() || is_tax() ) {
        // Get the robots meta using the wp_robots filter and check if 'noindex' is set
        $robots_meta = apply_filters( 'wp_robots', [], get_queried_object() );
        // Check if 'noindex' is in the robots meta array
        if ( is_array( $robots_meta ) && in_array( 'noindex', $robots_meta ) ) {
            // If 'noindex' is found, prevent the hreflang tags from being output
            $hreflang = '';
        }
    }

    return $hreflang;
} );

I hope the above code helps you understand the process. However, I’d like to inform you that providing custom coding support is beyond the scope of our support. The code solution above is for demonstration purposes and may assist in solving the issue. If you require further coding assistance, you may need to hire a professional developer experienced in customizing WPML. You can find one here: https://wpml.org/contractors/.

I hope you can understand. Feel free to let me know if you have any other questions or need clarification. I'll be happy to help.

Best regards,
Prosenjit

The topic ‘[Closed] remove outgoing hreflang annotation from some URL (noindex URLS)’ is closed to new replies.