How to Stop YouTube Embeds from Showing Competitor Videos in WordPress (Gutenberg Fix)

H

When you embed a YouTube video in WordPress, you might be unknowingly promoting other content creators and competitors…even if it’s your video!

Here’s why: by default, YouTube shows related videos at the end of the video. And unless you take specific action, those suggestions may include videos from other channels.

🚫 The Problem with WordPress YouTube Embeds

WordPress makes it easy to embed YouTube videos using the Gutenberg editor; there’s a block for that!

However, as of June 2025, even if you append rel=0 to your YouTube URL (to try to limit related videos to your channel), WordPress strips that YouTube iFrame parameter out during the embed process. (GitHub Gutenberg tracked issue for this).

How adding a youtube embed link with the rel=0 gets stripped out in the final code in WordPress Gutenberg

❗ Result: You’re still showing other people’s videos.


💡 Why This Matters: A Real Example

Back in 2016, a friend of mine was working with an incredible nonprofit — one that inspires hope in marginalized communities facing systemic injustice, poverty, and instability. As part of a fundraising campaign, a heartfelt video was embedded and featured on a donation campaign page.

But when I watched that video, something alarming happened.

As soon as the video ended, YouTube’s recommended content kicked in. One of the suggested videos featured a flashy, off-brand thumbnail of a busty blonde promoting Bike Week in Daytona. This caught me off guard and undermined the tone and credibility of the fundraiser.

I immediately reached out to my friend, explained what was happening, and sent over the technical fix. He passed it along to their web team, and thankfully, they corrected the issue quickly.

But that moment stuck with me. It was a clear reminder:

You may be doing everything right, but if your YouTube embed isn’t properly configured, your website could unintentionally promote content that’s off-brand — or even offensive.

This isn’t just a 2025 problem. It has been an issue for years (this story dates back to 2016). And it’s one worth fixing — no matter your industry.


✅ The WordPress Fix: Modify the Embed Output Using PHP

The solution is to intercept the rendered block and modify the final embed URL after WordPress processes it.

You can do this by adding a small PHP snippet to your site — either in your functions.php file or (preferably) by using the Code Snippets plugin.


🧠 How Gutenberg YouTube Embeds Work

When you paste a link like:

https://youtu.be/ikEjGr_E0q0?si=x31bCtQN4PJ4OzxZ

WordPress converts it automatically into an embed format:

<iframe src="https://www.youtube.com/embed/ikEjGr_E0q0?..."></iframe>

This transformation happens before rendering, and your PHP code runs afterward, on the final HTML output. That’s the perfect time to add rel=0.

So, how can we fix this in WordPress?

We can use PHP code in our WordPress functions.php, or add PHP how I prefer, using the plugin Code Snippets.

✅ Final PHP Snippet

function only_my_related_videos_youtube_player( $block_content, $block ) {
// Apply only to core/embed blocks
if ( isset( $block['blockName'] ) && $block['blockName'] === 'core/embed' ) {
// Further restrict to YouTube embeds only
if ( isset( $block['attrs']['providerNameSlug'] ) && $block['attrs']['providerNameSlug'] === 'youtube' ) {
// Add rel=0 to embed URLs, preserving any existing parameters
$block_content = preg_replace_callback(
'/https:\/\/www\.youtube\.com\/embed\/([^\?"\']+)(\?[^\"]*)?/',
function ( $matches ) {
$video_id = $matches[1];
$query_string = isset($matches[2]) ? $matches[2] : '';

// Parse existing query parameters
parse_str(ltrim($query_string, '?'), $params);
$params['rel'] = '0';

return 'https://www.youtube.com/embed/' . $video_id . '?' . http_build_query($params);
},
$block_content
);
}
}

return $block_content;
}
add_filter( 'render_block', 'only_my_related_videos_youtube_player', 10, 2 );

How it looks to use Code Snippets and add this PHP to your site.

Example of code snippet that appends rel=0 to any YouTube embed links via WordPress Gutenberg

This PHP code is operating at the right moment to modify the final embed URL and therefore doesn’t need to process various types of YouTube video link formats.

🧪 What This Code Does

  • Targets only the YouTube Gutenberg block (core/embed with providerNameSlug youtube)
  • Adds or overrides the rel=0 parameter
  • Preserves existing parameters like start, autoplay, etc.
  • Avoids breaking the embed or double-encoding URLs

✅ How to Know It Worked

You have two quick ways to confirm:

  • Watch the video on your live site. When the video ends, the suggested videos should be only from your own channel.
  • Inspect the iframe embed code. Use your browser’s dev tools to check for rel=0 in the iframe src URL.
Inspect your iframe youtube embed code, does it have rel=0?

💡 Tip: Why Not Just Add rel=0 to the Link?

If you paste a YouTube URL with ?rel=0 into the Gutenberg block, WordPress will strip it out during the oEmbed conversion. That’s why modifying the rendered output with PHP is necessary.


📌 Summary

Adding this small snippet ensures your YouTube embeds in WordPress only show related videos from your channel, not competitors. This keeps your viewers focused on your content and strengthens your video marketing funnel.

Did this snippet work for you?
Leave a comment or share the post to help others keep their content competitor-free!

About the author

Kelly Barkhurst

Designer to Fullstack is my place to geek out and share tech solutions from my day-to-day as a graphic designer, programmer, and business owner (portfolio). I also write on Arts and Bricks, a parenting blog and decal shop that embraces my family’s love of Art and LEGO bricks!

By Kelly Barkhurst

Recent Posts

Archives

Categories