Website publishing

When an Embedded Game Does Not Load: What Visitors Should See

What can and cannot be detected, a timeout with helpful text, a fallback link, checking your own setup and avoiding false alarms.

PlayKovo Team4 min read
Games currently available on PlayKovo. Open a title to see its current listing.

Sometimes a visitor opens a game page and the game does not appear. The reason might be their network, a blocker on their side, a school or company firewall, or, more rarely, a problem with the game host. You cannot fix every cause, but you can make sure the visitor sees something helpful instead of an empty box. This post explains what you can detect, what you cannot, and how to design a game page that handles failures well.

Why an embedded game might not load

  • The visitor's network is slow or drops out.
  • A network filter at a school, workplace or public Wi-Fi blocks game sites.
  • Browser extensions such as ad or content blockers interfere with the iframe.
  • Your page settings block it: a Content-Security-Policy without the right frame-src, or a changed embed code.
  • The game or host has a temporary problem.
  • The game was removed from the catalog but is still on your page.

Only the last three are under your control. For the others, good messaging is what you can offer.

What your page can detect

Browsers deliberately limit what a page can learn about a cross-origin iframe. In practice:

  • The iframe's load event tells you the frame finished loading something, but it fires even when the content is an error page. It does not prove the game works.
  • You cannot read the content of the iframe from your page.
  • If the load event never fires within a reasonable time, that is a useful signal that something is wrong.

So you can detect "nothing loaded for a long time", but not every kind of failure. Design for that.

A timeout with a helpful message

const frame = document.querySelector('.game-frame');
const help = document.querySelector('.game-help');
let loaded = false;

frame.addEventListener('load', () => { loaded = true; });

setTimeout(() => {
  if (!loaded) help.hidden = false;
}, 15000);

Choose a generous timeout. Large games on slow connections can take a while, and showing an error too early is confusing. Show the message next to the game area rather than replacing it, in case it is just slow.

What the message should say

Keep it short and practical:

  • "Game not showing? It may still be loading on a slow connection."
  • A Reload button.
  • "If you are on a school or work network, it may block games."
  • "Some browser extensions can stop games from loading. Try turning them off for this site."
  • Links to two or three similar games on your site.
  • A way to report the problem.

Don't promise the game will work, and don't blame the visitor. Do not suggest ways to get around a school or workplace network filter. Those rules are set by the network owner.

Even without detection, a small line under the game helps: "Trouble loading? Open the game in a new tab." Link it to the game's page on PlayKovo. Some failures inside an iframe, such as storage restrictions in third-party contexts, do not happen when the game opens as a normal page.

Check your own setup first

If many visitors report problems, the cause is often on your side:

  • Content-Security-Policy: if your site sends a CSP header, it must allow frames from https://playkovo.com with a frame-src rule.
  • Changed embed code: a CMS may strip the allow attribute, or someone may have added referrerpolicy="no-referrer", which should not be used with PlayKovo embeds.
  • Removed games: if your feed sync stopped, your pages may show games that are no longer in the catalog.
  • Your own scripts: overlays, ad scripts or consent banners that cover the game or block clicks.

Separate posts on our blog cover the CSP rule, the referrer policy and embed troubleshooting in detail.

Monitoring without false alarms

It is tempting to run a script that fetches each game URL and marks failures as broken. Be careful: some game hosts block requests that do not come from a real browser, so a simple server-side request can report a working game as broken. Before removing a game for being broken, open it in a normal browser to confirm. Visitor reports, checked by a person, are often more reliable than automated checks.

When a game really is broken

  • Confirm on more than one device and network.
  • Hide it from your listings and show alternatives on its page.
  • Report it to PlayKovo through the partner contact, with the game name, your page URL and what happens.
  • Re-check after a few days and restore it if it works again.

Checklist

  • A generous load timeout that shows help next to the game.
  • A message with reload, likely causes and alternative games.
  • A fallback link to open the game in a new tab.
  • CSP allows https://playkovo.com frames, embed code unchanged.
  • Feed sync running, removed games gone.
  • Automated checks confirmed in a real browser before acting.
  • Broken games reported to PlayKovo and hidden until fixed.

More embed guides are on the developers and partners blog.

We use optional cookies for site analytics and site advertising. You can change your choice later. Privacy policy.